Actualizar o crear una acción

Una acción de actualización o creación modifica un registro existente en la aplicación de destino si ya existe, pero crea el registro si aún no existe. También se conoce como acción upsert (actualizar o insertar).

Por ejemplo, supongamos que alguien ha enviado un formulario de Wufoo con un cambio de dirección. Si el contacto ya está en tu sistema CRM, quieres actualizar su dirección; pero si no lo está, quieres añadirlo. Al igual que la acción de recuperación, cuando elija una acción para actualizar datos en una de sus aplicaciones, puede añadir una o más condiciones para asegurarse de que está actualizando la información correcta.

Si hay más de un registro en el sistema de destino que coincida con sus criterios, verá un error para el flujo en el cuadro de mandos, y el flujo no actualizará ni creará ningún registro. Por ejemplo, tal vez tenga más de un contacto con el mismo nombre y apellidos. Por lo tanto, puede intentar hacer coincidir un contacto utilizando datos exclusivos, como por ejemplo su dirección de correo electrónico.

Figura 1. Actualizar o crear una acción de contacto para Salesforce
Actualizar o crear una acción de contacto para Salesforce

Una vez especificadas las condiciones de filtrado, puede completar los campos del registro que desea actualizar o crear en la aplicación de destino. Si ya existe un registro, los valores que especifique sobrescribirán los valores existentes en la aplicación de destino; si no desea actualizar un valor, puede dejar el campo en blanco en App Connect.

Cuando se utiliza un campo en una condición de filtro, no se puede cambiar el valor de ese campo en el registro de la aplicación de destino. El campo de destino utiliza el valor especificado en la condición de filtro. Este comportamiento hace que la acción sea idempotente : si repite la acción varias veces, obtendrá los mismos resultados (consulte la siguiente información sobre la idempotencia). Esto resulta especialmente útil cuando se sincronizan datos entre sistemas.

Los códigos de estado que es probable que veas en respuesta a una acción de actualización o creación son:

  • 200: Se ha actualizado un registro
  • 201: Se ha creado un registro
  • 204: No se ha encontrado ningún registro para la condición de filtro

Puede utilizar estos códigos de respuesta en un punto posterior del flujo. Tal vez desee realizar diferentes acciones en función de si un registro se ha actualizado o se ha creado. Añadiendo un nodo "If", puede indicar qué acción debe realizarse para cualquiera de los códigos de estado.

Puede asignar el código de estado que devuelve una acción de actualización o creación expandiendo el nodo Información de respuesta en la lista de entradas disponibles. El siguiente ejemplo muestra cómo se puede asignar a un código de estado devuelto por una acción Salesforce Actualizar o crear contacto. (El valor puede fijarse en 200, 201, o 204 según sea necesario)

Figura 2. Selección del código de estado para una acción de actualización o creación
Selección del código de estado para una acción de actualización o creación

Puede encontrar una lista de las acciones de actualización o creación disponibles buscando update or create en la pestaña Aplicaciones de la página Catálogo.

Figura 3. El usuario ha introducido actualizar o crear en el campo de búsqueda de la pestaña Aplicaciones, y en respuesta se muestra una lista de acciones de actualización o creación
El gráfico muestra que el usuario ha introducido actualizar o crear en el campo de búsqueda de la pestaña Aplicaciones, y se muestra una lista de acciones de actualización o creación

Idempotencia de la acción actualizar o crear

A la hora de elegir qué acciones incluir en su flujo, tenga en cuenta qué ocurriría si la solicitud al sistema externo fallara por algún motivo y App Connect volviera a intentar la solicitud. Algunas acciones de aplicación son idempotentes (pueden llevarse a cabo muchas veces sin resultados diferentes) y otras no lo son (si se llevaran a cabo más de una vez, el sistema se encontraría en un estado diferente que si la acción se llevara a cabo una sola vez). Por ejemplo, si utiliza la acción Salesforce Crear cliente potencial, esta acción podría repetirse en App Connect para un registro concreto, por ejemplo porque el sistema Salesforce tardó demasiado en responder. Dado que Crear cliente potencial no es una acción idempotente, podría encontrarse con clientes potenciales duplicados una vez finalizado el proceso. En su lugar, le recomendamos que elija una acción idempotente, como Actualizar o crear cliente potencial, y configure la acción para que sólo cree un cliente potencial si no existe ya un cliente potencial equivalente en su cuenta de Salesforce. De esta forma, no importa si la acción se intenta sólo una vez o cinco veces; tendrá el número exacto de clientes potenciales que recuperó de su sistema fuente.

Ejemplo

Para leer sobre un escenario que utiliza una acción de actualización o creación y sus códigos de respuesta, consulta el tutorial Creación de un flujo controlado por eventos que actualiza o crea un contacto en Salesforce y actualiza Asana cada vez que recibes un formulario en Wufoo.