Opción de menu | Permisos de perfil |
Configuración - Integraciones - EVO API - Webhook |
|
CRM 2.0 - Automación |
|
CRM 2.0 - Segmentación - Enviar mensaje |
|
Clientes pestaña Relacionamiento - Webhook |
|
Los clientes con API Pro pueden registrar Webhooks en EVO y reutilizarlos en automatizaciones, segmentaciones y en el relacionamiento del cliente.
Introdución
El Webhook permite enviar datos de EVO a herramientas externas mediante una solicitud HTTP POST.
La configuración del Webhook se realiza en un único lugar. Después de eso, puede seleccionarse en diferentes módulos del sistema.
Con esta funcionalidad, es posible activar bots de IA, integraciones con WhatsApp oficial, CRM externos y otras herramientas conectadas al flujo del cliente.
Atención
La funcionalidad de Webhook está disponible únicamente para clientes con API Pro activa.
Cuando la sede no cuenta con API Pro, la pestaña Webhook aparece visible, pero bloqueada para su uso.
Al interactuar con la funcionalidad bloqueada, el sistema informa que esta funcionalidad requiere API Pro y muestra la opción Ver planes en la integración.
El envío del webhook consume el límite de requests de la API Pro.
Registrar Webhook
Accede a Configuración - Integraciones
Clic en EVO API.
En la pestaña Webhook, clic en Nuevo Webhook.
Ingresa el Nombre.
Ingresa la URL de callback.
Configura los Encabezados, si es necesario.
Revisa el Cuerpo de la solicitud.
Clic en Guardar.
Después de guardar, el sistema muestra el mensaje Guardado con éxito y actualiza la lista de Webhooks.
Reglas para registrar Webhook
El campo Nombre es obligatorio.
El campo URL de callback es obligatorio y debe utilizar una URL válida con HTTPS.
La URL no se informa en los módulos de uso. En Automatización, Segmentación y Relacionamiento, el usuario selecciona únicamente el nombre del Webhook registrado.
Gestionar Webhooks registrados
En la pestaña Webhook, el sistema muestra una tabla con los Webhooks registrados. La tabla contiene:
Nombre
URL de callback
Creado por
Acciones
Es posible editar o eliminar un Webhook desde la columna Acciones.
Editar Webhook
Accede a Configuración.
Clic en Integraciones.
Accede a EVO API.
Clic en la pestaña Webhook.
Localiza el Webhook deseado.
Clic en el ícono de Editar.
Modifica la información necesaria.
Clic en Guardar.
Eliminar Webhook
Un Webhook solo puede eliminarse cuando no está en uso en el sistema. Cuando la eliminación está disponible, el sistema muestra una confirmación antes de eliminar el Webhook.
Después de confirmar, el sistema muestra el mensaje Eliminado con éxito.
Nota
Cuando el Webhook está en uso, el botón de eliminación aparece deshabilitado.
Utilizar Webhook en Automatización
Accede a CRM 2.0 y luego a Automatización.
Crea o edita una automatización.
Añade la acción Webhook.
Selecciona el Webhook por nombre.
Guarda la automatización.
El Webhook se enviará según el disparador configurado en la automatización.
Utilizar Webhook en Segmentación
Accede a CRM 2.0 en Segmentación.
Clic en el registro deseado
Y en la pestaña Relacionamiento en Webhook.
Y clic en Clic aquí para guardar un webhook.
Selecciona el webhook
Clic en Guardar.
La Segmentación permite enviar Webhooks de forma masiva.
Utilizar Webhook en Relacionamiento
Accede al perfil del cliente
Clic en la pestaña Relacionamiento.
Accede a la pestaña Webhook en Clic aquí para guardar un webhook.
Selecciona el Webhook por nombre.
Completa la información necesaria y clic en enviar.
Después del envío, el sistema registra el historial en el relacionamiento.
Historial de envío
Después de que un Webhook es enviado desde el relacionamiento, el sistema registra la información del envío. El historial puede mostrar:
Nombre del Webhook
URL
Cuerpo de la solicitud
Fecha y hora
Usuario responsable
El registro puede expandirse para visualizar el JSON enviado.
Cuerpo de la solicitud
El Webhook envía una solicitud HTTP POST a la URL configurada.
El cuerpo de la solicitud utiliza JSON y puede contener datos del cliente, de la oportunidad, del evento y del contexto del envío.
El campo eventType identifica el origen del envío y debe ser utilizado por las integraciones externas para reconocer el evento recibido.
Importante
El JSON presentado en la pantalla es solo un modelo de referencia de la estructura del payload.
Los datos enviados en el disparo del Webhook varían según el evento que originó la ejecución.
Ejemplo:
si el Webhook se utiliza en una automatización de inscripción, el payload enviado contendrá datos relacionados con la inscripción.
En automatizaciones de vencimiento de planes, los datos enviados estarán relacionados con el vencimiento del plan.
El eventType y los demás campos del payload se completan dinámicamente según el contexto del disparo.
Estructura del cuerpo de la solicitud (JSON)
Los Webhooks del CRM 2.0 envían un payload estructurado con información del evento disparado, contexto de la regla, datos de la persona relacionada y enlaces relevantes para la automatización externa.
Ejemplo:
{
"eventType": "crm.automation.contract_due_date",
"eventLabel": "Vencimento de contrato",
"eventDate": "2026-03-17T14:30:00Z",
"eventContext": {
"moment": "after",
"daysOffset": 10
},
"organization": {
"idW12": 12345,
"idBranch": 10,
"branchName": "Body Edge - Barra Funda"
},
"person": {
"idMember": 456789,
"idProspect": null,
"firstName": "João",
"lastName": "Silva",
"fullName": "João Silva",
"nickName": "João",
"gender": "male",
"status": "active",
"phone": "+5511999999999",
"email": "[email protected]"
},
"membership": {
"nameMembership": "Plano Gold Mensal"
},
"links": {
"checkout": "https://pagamento.evo.com/checkout/123",
"parq": "https://evo.com/parq/456",
"contractSigning": "https://evo.com/contract/sign/789", "creditCardRegistration": "https://evo.com/card/register/123"
},
"communication": {
"subject": "Seu contrato venceu",
"message": "Olá João, seu contrato venceu há 10 dias. Regularize sua situação."
}
}
Explicación de los campos
Nombre del campo | Descripción | Ejemplo |
eventType | Identifica el tipo de evento disparado por el CRM. El formato estándar es crm... Debe ser utilizado por la herramienta externa para identificar qué flujo ejecutar. | crm.automation.contract_due_date |
eventLabel | Nombre descriptivo del evento enviado. Se utiliza para facilitar la lectura humana, logs y debug. | "eventLabel": "Vencimiento de plan" |
eventDate | Fecha y hora del disparo del evento en formato UTC ISO 8601. | "eventDate": "2026-03-17T14:30:00Z" |
eventContext | Objeto que informa el contexto de la regla que originó el disparo. | "eventContext": { "moment": "after", "daysOffset": 10 } |
moment | Indica cuándo se disparó el evento en relación con el evento principal. | "moment": "before" |
daysOffset | Cantidad de días de distancia del evento principal. | "daysOffset": 10 |
organization | Información de la organización/sede responsable del disparo. | "organization": {} |
idW12 | ID de la cuenta/red en EVO. | "idW12": 12345 |
idBranch | ID de la sede/sucursal relacionada con el evento. | "idBranch": 10 |
branchName | Nombre descriptivo de la sede/sucursal. | "branchName": "Body Edge - Barra Funda" |
person | Información de la persona relacionada con el evento. | "person": {} |
idMember | ID del cliente en EVO. Cuando está informado, indica que el evento pertenece a un cliente. | "idMember": 456789 |
idProspect | ID de la oportunidad/prospecto. Cuando está informado, indica que el evento pertenece a una oportunidad. | "idProspect": 987654 |
firstName | Nombre de la persona. | "firstName": "João" |
lastName | Apellido de la persona. | "lastName": "Silva" |
fullName | Nombre completo de la persona. | "fullName": "João Silva" |
nickName | Apodo de la persona. | "nickName": "João" |
gender | Género de la persona. | "gender": "male" |
status | Estado actual de la persona en EVO. | "status": "active" |
phone | Teléfono/celular de la persona. | "phone": "+5511999999999" |
Correo electrónico de la persona. | "email": "[email protected]" | |
membership | Información del plan/contrato relacionado. | "membership": {} |
nameMembership | Nombre del plan/contrato. | "nameMembership": "Plan Gold Mensual" |
links | Enlaces relevantes relacionados con el evento. Los enlaces enviados pueden variar según el tipo de evento. | "links": {} |
checkout | Enlace de checkout/cobro. | "checkout": "https://pagamento.evo.com/checkout/123" |
parq | Enlace relacionado con el PAR-Q. | "parq": "https://evo.com/parq/456" |
contractSigning | Enlace para firma de plan/documento. | "contractSigning": "https://evo.com/contract/sign/789" |
creditCardRegistration | Enlace para registro de tarjeta. | "creditCardRegistration": "https://evo.com/card/register/123" |
communication | Información de la comunicación/origen del disparo. | "communication": {} |
subject | Asunto/título de la comunicación. | "subject": "Tu plan venció" |
message | Mensaje/texto asociado al evento. | "message": "Hola João, tu plan venció hace 10 días. Regulariza tu situación." |
Valores posibles de moment
Valor | Descripción |
before | Disparado antes del evento principal |
on | Disparado en el momento del evento principal |
after | Disparado después del evento principal |
manual | Disparo manual realizado por usuario |
bulk | Disparo realizado en masa vía Segmentación |
Valores posibles de eventType
El campo eventType identifica técnicamente el origen y el tipo de evento que disparó el Webhook.
Debe ser utilizado por las herramientas externas como la principal clave de decisión para definir qué flujo será ejecutado.
Campo | Descripción | Ejemplo |
crm | Representa el dominio de la funcionalidad | crm.automation.contract_due_date |
<origem> | Representa el origen funcional del disparo | automation |
<evento> | Representa el evento o contexto técnico del disparo | contract_due_date |
Reglas importantes
El eventType es un valor técnico y estable
No varía según el idioma de la base
No depende del texto mostrado en la interfaz
No debe ser alterado por cambios de nomenclatura visual
Debe ser tratado como contrato de integración.
eventTypes de Automatización
Cuando el Webhook sea disparado a partir de una regla de Automatización, el eventType debe representar la regla que originó el disparo.
eventType | Descripción |
crm.automation.member_appointment_scheduling | Agendamiento de cliente |
crm.automation.account_debit_scheduling | Agendamiento de débito en cuenta |
crm.automation.member_birthday | Cumpleaños de cliente |
crm.automation.prospect_birthday | Cumpleaños de oportunidad/prospecto |
crm.automation.member_trial_class_completed | Clase de prueba completada por el cliente |
crm.automation.completed_classes | Clases completadas |
crm.automation.prospect_registration | Registro de oportunidad/prospecto |
crm.automation.prospect_campaign_landing_signup | Registro de prospecto en campaña/landing page |
crm.automation.contract_cancellation | Cancelación de plan |
crm.automation.online_sale_boleto_non_payment | No pago de boleto en venta online |
crm.automation.account_debit_charge_declined | Cobro de débito en cuenta rechazado |
crm.automation.recurring_debit_charge_declined | Cobro recurrente rechazado |
crm.automation.contract_age_limit_non_renewal | No renovación por límite de edad |
crm.automation.scheduled_cancellation_date | Fecha de cancelación programada |
crm.automation.enrollment | Matrícula |
crm.automation.level_change | Cambio de nivel |
crm.automation.next_level_completion | Finalización del siguiente nivel |
crm.automation.physical_assessment_completed | Evaluación física completada |
crm.automation.reenrollment | Rematrícula |
crm.automation.contract_renewal | Renovación de plan |
crm.automation.no_attendance | Ausencia/falta de asistencia |
crm.automation.physical_assessment_expiry | Vencimiento de evaluación física |
crm.automation.nutrition_assessment_expiry | Vencimiento de evaluación nutricional |
crm.automation.active_member_card_expiry_monthly | Vencimiento mensual de tarjeta de cliente activo |
crm.automation.unlimited_personal_credit_expiry | Vencimiento de crédito de personal ilimitado |
crm.automation.boleto_expiry | Vencimiento de boleto |
crm.automation.contract_due_date | Vencimiento de plan |
crm.automation.dermatological_exam_expiry | Vencimiento de examen dermatológico |
crm.automation.medical_exam_expiry | Vencimiento de examen médico |
crm.automation.parq_expiry | Vencimiento de PAR-Q |
crm.automation.overdue_balance_expiry | Vencimiento de saldo deudor |
crm.automation.training_expiry | Vencimiento de entrenamiento |
crm.automation.prospect_visit | Visita de oportunidad/prospecto |
crm.automation.prospect_appointment_scheduling | Agendamiento de oportunidad/prospecto |
crm.automation.prospect_trial_class_completed | Clase de prueba completada por prospecto |
crm.automation.active_days | Días activo |
crm.automation.automatic_cancellation_delinquency | Cancelación automática por morosidad |
eventTypes de Segmentación
Cuando el Webhook sea disparado desde Segmentación, el eventType indica si el envío fue realizado en lote o individualmente.
eventType | Descripción |
crm.segmentation.batch | Envío en lote realizado por Segmentación |
crm.segmentation.individual | Envío individual realizado por Segmentación |
Reglas
Usar crm.segmentation.batch cuando el envío sea realizado para múltiples registros seleccionados.
Usar crm.segmentation.individual cuando el envío sea realizado para un solo registro.
El contexto del envío debe ser indicado en eventContext.
Ejemplo:
"eventType": "crm.segmentation.batch",
"eventContext": {
"moment": "bulk",
"daysOffset": 0
}
eventTypes de enlaces transaccionales
Cuando el Webhook sea disparado desde los flujos transaccionales de envío de enlaces, el eventType debe indicar qué tipo de enlace fue generado por EVO.
Estos eventos se utilizan cuando la configuración Habilitar para envío vía WhatsApp está activa y el envío de enlaces por WhatsApp pasa a ser realizado vía Webhook.
Valores soportados
eventType | Descripción |
crm.transactional.card_registration_link | Enlace para registro de tarjeta |
crm.transactional.debt_charge_link | Enlace de cobro generado a partir de saldo deudor |
crm.transactional.sale_charge_link | Enlace de cobro generado en el flujo de venta/cobro |
crm.transactional.document_signature_link | Enlace para firma de documento |
Reglas
Usar crm.transactional.card_registration_link cuando el enlace generado sea de registro de tarjeta
Usar crm.transactional.debt_charge_link cuando el enlace generado sea de cobro en Clientes - Financiero - Saldo deudor.
Usar crm.transactional.sale_charge_link cuando el enlace generado sea de cobro en el flujo de venta/cobro
Usar crm.transactional.document_signature_link cuando el enlace generado sea de firma de documento
El contexto del envío debe ser indicado en eventContext
Ejemplo:
"eventType": "crm.transactional.debt_charge_link",
"eventContext": {
"moment": "manual",
"daysOffset": 0
}
eventTypes de Relacionamiento
Cuando el Webhook sea disparado desde la pestaña Relacionamiento del perfil, el eventType indica si el envío fue realizado en el perfil de un cliente o de una oportunidad/prospecto.
Valores soportados
eventType | Descripción |
crm.relationship.member | Envío manual realizado en el perfil del cliente |
crm.relationship.prospect | Envío manual realizado en el perfil de la oportunidad/prospecto |
Reglas
Usar crm.relationship.member cuando el envío sea realizado en el perfil de cliente
Usar crm.relationship.prospect cuando el envío sea realizado en el perfil de oportunidad/prospecto
El contexto del envío debe ser indicado en eventContext
Ejemplo:
"eventType": "crm.relationship.member",
"eventContext": {
"moment": "manual",
"daysOffset": 0
}
Relación entre eventType y eventContext
El eventType informa qué evento disparó el Webhook.
El eventContext informa el contexto en que el evento fue disparado.
En este ejemplo, el evento es una regla de vencimiento de plan, disparada 10 días después del vencimiento:
"eventType": "crm.automation.contract_due_date",
"eventContext": {
"moment": "after",
"daysOffset": 10
}
Valores posibles de moment
Valor | Descripción |
before | Cuando el disparo ocurra antes del evento principal |
on | Cuando el disparo ocurra el día/momento del evento principal |
after | Cuando el disparo ocurra después del evento principal |
manual | Cuando el disparo sea manual, como en Relacionamiento |
bulk | Cuando el disparo sea masivo, como en Segmentación |
Reglas de daysOffset
moment | daysOffset |
before | Cantidad de días antes del evento |
on | 0 |
after | Cantidad de días después del evento |
manual | 0 |
bulk | 0 |





