Saltar al contenido

Salesforce: crear o actualizar registro

Utilice Salesforce: crear o actualizar registro para insertar o actualizar (upsert) un registro de Salesforce desde un paso de un journey, coincidiendo con un campo de ID externo: actualiza el registro cuando el valor ya existe y lo crea cuando no. Salesforce no tiene un token de API estático, por lo que este punto se autentica a través de una aplicación conectada registrada una vez para toda la cuenta. No hay un campo de token en el punto mismo.

Usos típicos:

  • Mantener Salesforce sincronizado: cree o actualice un Contacto o Lead a medida que el viajero avanza en el journey, para que el equipo de ventas vea los datos actuales.
  • Sincronizar la actividad del journey en el CRM: establezca un campo cuando un viajero alcance un hito, para que el equipo de ventas pueda filtrar o generar informes sobre él.
  • Evitar registros duplicados: la coincidencia por ID externo significa que un viajero que pasa por este punto nuevamente actualiza el mismo registro en lugar de crear uno nuevo.

Antes de empezar

Anchor link to

Cree una aplicación conectada en su organización de Salesforce y conéctela en Settings > 3rd-party integrations > Salesforce:

  1. En Salesforce, cree una External Client App (o una aplicación conectada clásica) con OAuth habilitado y el ámbito Manage user data via APIs (api).
  2. Habilite el Client Credentials Flow en ella y elija el usuario de ejecución. El punto escribe como ese usuario, por lo que su perfil decide qué objetos y campos puede tocar.
  3. En Pushwoosh, en My Domain host, ingrese el host de su organización sin https://, por ejemplo acme.my.salesforce.com.
  4. En Consumer Key y Consumer Secret, pegue las credenciales de la aplicación. El secreto se almacena como solo escritura: Pushwoosh nunca lo mostrará de nuevo, así que pegue uno nuevo para reemplazarlo.
  5. Haga clic en Connect Salesforce.
Formulario de conexión de Salesforce en Ajustes con los campos My Domain host, Consumer Key y Consumer Secret

Después de conectar Salesforce, instale la integración para que el punto aparezca en el creador de journeys.

También es necesario que dos cosas estén en su lugar en el lado de Salesforce:

  • El campo con el que coincide debe estar marcado como External ID en ese objeto. Un campo de texto sin formato, incluso Email, no es suficiente — Salesforce rechaza la solicitud con NOT_FOUND cuando el campo no es un ID externo.
  • El usuario de ejecución de la aplicación conectada necesita acceso a nivel de campo a ese campo. Un campo creado a través de Setup o la API no concede nada por sí mismo, y sin el permiso, Salesforce responde con el mismo NOT_FOUND: Field name provided ... does not match an External ID — el campo es invisible para ese usuario, por lo que desde el lado de la API no existe. Agréguelo a un conjunto de permisos asignado al usuario de ejecución.

Configurar el punto

Anchor link to
  1. Arrastre Salesforce: crear o actualizar registro desde la sección Integrations del panel izquierdo al lienzo.
  2. Haga doble clic en el punto e ingrese un Step Name.
  3. En My Domain host, ingrese el mismo host en el que reside la aplicación conectada.
Panel de Salesforce: crear o actualizar registro con el Step Name rellenado y el My Domain host configurado en un dominio de Salesforce
  1. En Object, ingrese el nombre de la API del objeto — Contact, Lead o un objeto personalizado que termine en __c.
Campo Object configurado como Contact
  1. En External id field, ingrese el nombre de la API del campo marcado como External ID.
Campo External id field configurado como Pushwoosh_HWID__c
  1. En External id value, ingrese el valor con el que coincidir, generalmente una macro como {{device:hwid}}.
Campo External id value configurado con una macro hwid de dispositivo
  1. En Fields, agregue una fila por cada campo de Salesforce que desee establecer. Ingrese el nombre de la API del campo y el valor. Los nombres no deben estar vacíos y deben ser únicos. Los campos obligatorios del objeto deben estar entre ellos, o Salesforce se negará a crear un nuevo registro. Un valor puede ser texto fijo o una macro de viajero como {{device:hwid}}, las mismas macros que en el cuerpo de un Webhook. O haga clic en Insert Dynamic Value para elegir un atributo que un paso anterior en este journey haya producido, por ejemplo, una respuesta de LLM o un valor de Webhook mapeado.
Tabla de nombres y valores de Fields con Email asignado a una macro de tag
  1. Haga clic en Save.

El viajero continúa al siguiente paso que conecte en el lienzo.

Atributos después de que se ejecute el paso

Anchor link to
AtributoQué contiene
salesforce_record_idEl ID del registro

Cómo usarlo en pasos posteriores

Anchor link to

El viajero ya ha continuado al siguiente paso independientemente de este atributo. Guárdelo en un Tag con Update user profile si necesita hacer referencia a este registro específico más tarde, por ejemplo, a través de la propia API de Salesforce.

Fallos y respuestas inesperadas

Anchor link to

Abra Calls log en el panel del punto y verifique la respuesta:

  • 401 — las credenciales de la aplicación conectada son incorrectas, o el flujo de credenciales de cliente no está habilitado en ella.
  • NOT_FOUND en el cuerpo — el nombre del objeto, o el campo de ID externo, no coincide con nada en esa organización. Verifique que el campo esté realmente marcado como External ID.
  • REQUIRED_FIELD_MISSING en el cuerpo — la creación de un nuevo registro necesita un campo que el punto no envía. Agréguelo en Fields.
  • INVALID_FIELD en el cuerpo — un nombre en Fields no es un nombre de API en ese objeto. El nombre de la API de un campo personalizado termina en __c.

Una solicitud fallida elimina al viajero del journey. Consulte Errors and failed requests.

Escenario de ejemplo: Enrutar una solicitud de asesoramiento in-app a ventas

Anchor link to

Una aplicación de bienestar permite a los usuarios tocar Talk to an advisor in-app. El equipo quiere que esa solicitud se convierta en un Contact de Salesforce al que un representante pueda dar seguimiento.

  1. Agregue un elemento Trigger-based entry y configúrelo para que se active con un evento AdvisorCallRequested.
  2. Agregue Salesforce: create or update record justo después. Establezca Object en Contact, External id field en Pushwoosh_HWID__c, y External id value en {{device:hwid}}. En Fields, establezca Email en {{tag:Email}}.
  3. Haga clic en Save.

Una vez que esto se ejecute, cada solicitud de asesoramiento in-app llegará a Salesforce como un Contact, coincidiendo por dispositivo para que un toque repetido actualice el mismo Contact en lugar de crear un duplicado.