Producto: | TCRM - Gestión de clientes |
---|---|
Línea de producto: | TOTVS CRM |
Segmento: | Cross Segmentos |
Módulo: | Workflow |
Aplicación | Web/app móvil |
Identificador: | ME261020221452 |
Stakeholder: | TOTVS Connector |
Ticket: | |
Requisito/Story/Issue (informe el requisito relacionado) : |
DTCRMSC-2480
-
ME261020221452 - Soporte a webhooks vía Workflow
En ejecución
|
Muchas empresas enfrentan el desafío de mantener sus registros actualizados en diversos sistemas cuando se ejecuta una acción en el TOTVS CRM. Este proceso manual demora y puede inducir a cometer errores, impactando negativamente en la eficiencia y productividad del equipo. Para superar esta dificultad, TOTVS CRM lanzó recientemente un nuevo recurso de acción denominado Webhook, disponible en el módulo de workflow. Con la utilización de Webhooks, ahora los clientes pueden automatizar estos procesos e integrar fácilmente diferentes sistemas y aplicaciones. Cuando un disparador de creación o actualización es activado en el TOTVS CRM, la acción de Webhook se ejecuta, permitiendo que las informaciones se actualicen en tiempo real en otros sistemas conectados. Este proceso resulta en actualizaciones rápidas y precisas, economizando tiempo y eliminando errores manuales que antes eran muy usuales. En otras palabras, la acción de Webhook permite que los clientes conecten sus sistemas y automaticen la actualización de registros, lo cual simplifica el proceso y mejora significativamente la eficiencia operativa de la empresa.
Salida: esta integración envía datos del TCRM - Gestión de clientes a una herramienta destino, especificada en la configuración.
Esta configuración permite enviar datos de TOTVS CRM a otras herramientas que dispongan de una URL de entrada de datos. Esta URL debe conseguir leer y consumir datos enviados en formato JSON.
Es importante tener un desarrollador o contacto con el soporte de su otro sistema para chequear la compatibilidad con la lectura del paquete de datos que TOTVS CRM envía.
Cuando TOTVS CRM Gestión de clientes realiza una llamada a sistemas externos vía Webhooks, este transmite metadatos sobre el evento que permiten identificar lo que sucedió y reaccionar adecuadamente. Estos metadatos se envían por medio de una llamada HTTP utilizando el método POST, con el contenido (payload/body) formateado en JSON.
Aquí está un ejemplo de este formato JSON y las informaciones incluidas en este para referencia:
{
"eventId": "00000000-0000-0000-0000-000000000000",
"timestamp": "2022-05-06T15:28:36.110-03:00",
"workflow": {
"id": "00000000-0000-0000-0000-000000000000",
"description": "Lorem ipsum dolor sit amet"
},
"trigger": {
"id": "00000000-0000-0000-0000-000000000000",
"description": "Opportunity won"
},
"source": {
"object": {
"id": "00000000-0000-0000-0000-000000000000",
"description": "Opportunity",
"contextUrl": "/api/v11/opportunity/opportunities"
},
"row": {
"id": "00000000-0000-0000-0000-000000000000",
"externalId": "00000000-0000-0000-0000-000000000000"
}
}
}
La siguiente tabla contiene información detallada sobre los atributos presentes en el formato JSON. Estos atributos se listan junto con sus respectivos formatos e intenciones. Esta información puede ser útil para entender mejor la estructura del JSON y cómo utilizarlo.
Atributo
|
Tipo de datos
|
Descripción
|
---|---|---|
eventId | String | Identificador único del evento |
timestamp | Fecha y hora formateados como String (ISO 8601) | Fecha y hora en la cual se ejecutó el Workflow |
workflow.id | UUID formateado como String | Identificador único del workflow que emitió el evento |
workflow.description | String | Nombre del workflow que emitió el evento, como se definió en el momento que se disparó la llamada |
trigger.id | UUID formateado como String | Identificador único global del disparador definido en el Workflow en el momento en el cual se disparó el evento |
trigger.description | String | Nombre del disparador definido en el Workflow en el momento en el cual el evento fue disparado |
source.object.id | UUID formateado como String | Identificador único del objeto de origen del evento (oportunidades, leads, actividades, etc.) |
source.object.description | String | Descripción del objeto de origen del evento |
source.object.contextUrl | URL formatea como String | URL base da API del objeto de origen en el TOTVS CRM Gestión de clientes |
source.row.id | UUID formateado como String | Identificador único del registro de origen del evento (ID de la oportunidad, lead, actividad, etc.) |
source.row.externalId | String | Identificador externo del registro de origen del evento, si hubiera uno y el atributo estuviera visible en el Workflow |
O TOTVS CRM Gestión de clientes ejecuta las llamadas de forma asíncrona y basada en consistencia eventual, lo cual puede resultar en eventos entregados fuera de orden y con atrasos de algunos minutos. En caso de fallas de comunicación, los eventos son devueltos a la cola y se realiza un nuevo intento después de por lo menos 5 minutos, pudiendo ocurrir entregas de nuevos eventos durante este período. Es importante que el sistema tercero que recibe los eventos esté preparado para trabajar con posibles escenarios de eventos entregados fuera de orden, más de una vez y/o con atrasos, identificables por los atributos eventId y timestamp.
Cuando el TOTVS CRM Gestión de clientes llama al sistema tercero para informar un evento, este verifica si la respuesta HTTP recibida es de la familia 2xx para entender si la entrega fue exitosa. Si fuera afirmativo, el evento se considera entregado con éxito. En caso contrario, el evento se encamina a una cola de nuevos intentos de entrega, con un intervalo de por lo menos 5 minutos entre cada intento. Si después de 10 intentos el evento no se entregara con éxito, este se descartará. TOTVS CRM también establece un tiempo límite de 5 segundos para la conexión con el servicio remoto y 60 segundos para recibir una respuesta. Si estos límites fueran superados, el evento se encaminará a la cola de nuevos intentos, independientemente de que el sistema tercero haya recibido el mensaje después de estos límites.