El elemento Webhook en chatbots
Puedes configurar el envío de enlaces web de acuerdo con tu script de flujo de chatbot o activar enlaces web globales para diferentes eventos de chatbot y recibir y guardar datos en el sistema. Echemos un vistazo a los enlaces web, dónde se utilizan, cómo activarlos y la estructura de los datos recibidos.
Dónde se utilizan los Webhooks
Un webhook es un mecanismo para transferir datos a tu sistema sobre eventos generados por el usuario. Envía una solicitud HTTP a tu controlador.
Con esta integración, puedes recopilar y enviar datos sobre eventos en el flujo de un chatbot a tu sistema para seguir trabajando con este cliente.
Como ejemplo de uso, imagina: creaste un formulario para que los nuevos usuarios reserven un lugar en tu conferencia usando messenger. Deseas saber acerca de cada usuario que se registró para una conferencia específica para poder contactarlos o cambiar su estado en tu CRM.
Puedes lograr este objetivo fácilmente enviando un webhook. Tan pronto como un usuario llegue al elemento webhook en tu flujo, los datos del evento se enviarán a tu sistema de almacenamiento de datos (es decir, CRM, CMS, sitio, etc.) para su uso futuro.

Cómo habilitar un Webhook en un flujo
Puedes agregar un webhook en el generador de flujo y realizar un seguimiento de información específica a medida que el usuario pasa a través de ciertos elementos del flujo:
| Mensaje | El usuario introduce sus datos o hace clic en un botón. |
| Acción | Abrir un chat con un administrador, cancelar la suscripción de un bot, actualizar una variable, asignar una etiqueta. |
| Flujo | Iniciar un nuevo flujo. |
| Pausa | Después del tiempo de pausa asignado. |
| Filtro | Pasar un filtro establecido con las condiciones. |
| Solicitud de API | Obtener información sobre la solicitud. |
Para insertar un envío de webhook, agrega un elemento Acción después del elemento que deseas rastrear.
Seleccione la opción Enviar Webhook. Introduce el nombre del webhook que se enviará y la URL a la que se enviarán los datos.

Cómo habilitar Webhooks globales
También puedes habilitar webhooks que serán enviados por eventos de todo el chatbot.
Ve a la Configuración del bot > pestaña Webhooks. Activa la configuración e inserta la URL a la que deseas enviar datos.
Selecciona los eventos para los que deseas enviar alertas y haz clic en Guardar.

Puedes seleccionar los siguientes eventos:
| Suscripción de bot | Enviado con información sobre cuándo el usuario se suscribió al chatbot seleccionado. |
| Mensajes entrantes | Se envían con cada nuevo mensaje entrante del usuario en el chat con información sobre el usuario y el texto del mensaje. |
| Mensajes salientes | Se envían con cada mensaje enviado al usuario con información sobre el usuario y el texto del mensaje. |
| Chat en vivo abierto | Se envía después de que el usuario haya pasado el elemento "Acción" con la opción "Abrir chat". |
| Flujo de activación personalizado iniciado | Se envía cuando se disparan flujos con el usuario y la información de flujo. |
| Redirigir | Se envía cuando el usuario hace clic en los vínculos de botones y texto con información sobre el vínculo, el elemento emisor y el usuario. |
| Bot cancelado |
Se envía cuando el usuario se ha dado de baja de un bot con la información del usuario y del bot. |
| Bot bloqueado | Se envía cuando el usuario ha bloqueado mensajes del bot con información sobre el usuario y el bot |
También puedes habilitar el seguimiento de pagos de chatbot en la configuración de tu cuenta. Leer más: Cómo enviar un Webhook de pago exitoso.
Estructura del Webhook
Un webhook puede transmitir datos sobre:
- La fecha en que se completó una acción;
- Título del webhook: puede filtrar tu audiencia en función de si recibió un webhook por su
título. - Información sobre el bot y la página social a la que está vinculada: identificación, foto, enlace a una página.
- Información sobre el contacto que activó el evento: su identificador, nombre, fecha de nacimiento, ciudad, país, foto de perfil, cualquier variable existente y etiquetas.
Un ejemplo de webhook enviado desde un chatbot flow:
[
{
"info": null, // information from messenger
"service": "messenger", // messenger - Facebook chatbot, telegram - Telegram chatbot
"title": "Reserved. Apartment #3" // title of the webhook
"bot": {
"url": "https://m.me/104117781360763",
"external_id": "104117781360763", // community identifier in the messenger (for Facebook, the value is passed as a “string”, for Telegram as a number).
"id": "17ff4105-d5f1-4790-9d09-a6f64ea73d54", // identifier of the connected bot in SendPulse
"name": "BEST" //
},
"contact": {
"name of variable": "value of variable",
"email": "name@example.com",
"phone": "+38093000000",
"last_message": "hey! whats up?", // last message of the user
"photo": "https://..",
"tags": ["tag1", "tag2"],
"id": "467bf50f-9cb0-4b65-b722-0135ad5fb9e0", // contact’s identifier in SendPulse
"name": "Alexander"
},
"date": 1617401679 // execution date and time in milliseconds
}
]
Un ejemplo de webhook para Suscripción del bot:
[
{
"info":null,
"service":"telegram",
"title":"webhook",
"bot":{
"url":"https://t.me/best_bot",
"external_id":1845120800,
"id":"60b0a854b4d8073f592b92f3",
"name":"BEST"
},
"contact":{
"username":"veronica",
"name":"name",
"tags":[
],
"last_message":"Test",
"photo":null,
"variables":{
"name":"Veronica Petrova",
"Phone":"380985236985",
"Email":"test@gmail.com"
},
"id":"60b0a854083b4964fd0f7b657847848"
},
"date":16377590567070
}
]
Un ejemplo de webhook para Mensajes entrantes:
[
{
"info":{ // information from messenger
"message":{
"channel_data":{
"message":{
"audio":null,
"from":1332678955,
"context":null,
"interactive":null,
"contacts":null,
"text":{
"body":"hey! whats up?"
},
"button":null,
"system":null,
"voice":null,
"video":null,
"identity":null,
"image":null,
"timestamp":1625834714,
"document":null,
"type":"text",
"id":"ABCDOAk1346346go-sKd--dduwQ9p",
"sticker":null,
"location":null
},
"message_id":"ABCDOAk1Z43535-sKd--dduwQ9p"
},
"id":"60e8434b446846838d8463"
}
},
"service":"whatsapp",
"title":"incoming_message",
"bot":{
"url":"https://wa.me/380932674329",
"external_id":"380932674329",
"id":"60c1c50c156845831909cf74",
"name":"Revision_me"
},
"contact":{
"username":"Alexander",
"name":"Alexander",
"tags":[
],
"last_message":"hey! whats up?", // last message of the user
"photo":null,
"variables":{
"dept":"Designer"
},
"id":"60c0f31f457479d02b7512"
},
"date":1625834714
}
]
Un ejemplo de webhook para Mensajes salientes:
[
{
"info":{
"message":{
"channel_data":{
"message":{
"disable_web_page_preview":null,
"text":"Click",
"disable_notification":null,
"reply_to_message_id":null,
"parse_mode":"HTML",
"reply_markup":{
"inline_keyboard":[
[
{
"payload_id":"84d30d5624-92245695-4e834560-86f4-bbdb694710b0456",
"callback_data":"eyJwIjoiODRkMzBkMjQtOTI5NS00ZTgwLTg2ZjQtYmJkYjY5NDcxMGIwIn05257",
"text":"Click",
"data":{
"to_block_id":"3bd58f77-ef28-4f0d-9ae7-33ef71bedeb85724",
"to_block":1,
"button_id":"6cb63b34-a030-4e53-ba91-8f13320ad36b3687568"
},
"type":"postback",
"statistic_id":"6cb63b34-a030-4e53-ba91-8f13320ad36b5367637",
"external_id":"ce60c182-c058-4450-a002-2e500936ab536739",
"id":"6cb63b34-a030-4e53-ba91-8f13320ad36467346b"
}
],
[
{
"payload_id":"97867499-063c-498d-9386-e26284addf1367568658",
"callback_data":"dummy",
"text":"Click",
"data":{
"to_block_id":"9ba1c058-7ae8-429d-9d83-f674bf6635685b2f8",
"to_block":null,
"button_id":"bc769bd8-edef-42a6-9448-e47875b4663568999"
},
"type":"postback",
"statistic_id":"bc769bd8-edef-42a6-9448-e47875b46935683599",
"external_id":"5148a80f-0dc7-4bb9-aa26-8331a013568dfabc",
"id":"bc769bd8-edef-42a6-9448-e47875b46568586999"
}
]
]
}
},
"message_id":943544,
"chat_id":6069664546956
},
"id":"619e3686cac8ab43e20a4a0546549"
}
},
"service":"telegram",
"title":"outgoing_message",
"bot":{
"url":"https://t.me/best_bot",
"external_id":"18451208006576",
"id":"60b0a854b4d8073f592b925675f3",
"name":"BEST"
},
"contact":{
"username":"veronica",
"name":"veronica",
"tags":[
],
"last_message":"Test",
"photo":null,
"variables":{
"name":"Veronica Petrova",
"Phone":"380985236985",
"Email":"test@gmail.com"
},
"id":"60b0a854083b4964fd0f7b65675675"
},
"date":16377585936738
}
]
Un ejemplo de webhook para Flujo de activación personalizado iniciado:
[
{
"info":null,
"service":"telegram",
"title":"webhook",
"bot":{
"url":"https://t.me/best_bot",
"external_id":1845120856756700,
"id":"60b0a854b4d8073f592b92f3564567",
"name":"BEST"
},
"contact":{
"username":"veronica",
"name":"veronica",
"tags":[
],
"last_message":"Test",
"photo":null,
"variables":{
"name":"Veronica Petrova",
"Phone":"380985236985",
"Email":"test@gmail.com"
},
"id":"60b0a854083b4964fd0f7b655858"
},
"date":163775889778478
}
]
Un ejemplo de webhook para Redirigir:
[
{
"info":null,
"service":"telegram",
"title":"webhook",
"bot":{
"url":"https://t.me/best_bot",
"external_id":1845120806750,
"id":"60b0a854b4d8073f592b9254677654f3",
"name":"BEST"
},
"contact":{
"username":"veronica",
"name":"veronica",
"tags":[
],
"last_message":"Test",
"photo":null,
"variables":{
"name":"Veronica Petrova",
"Phone":"380985236985",
"Email":"test@gmail.com"
},
"id":"60b0a854083b4964fd0f65757b65"
},
"date":16377589785675
}
]
Un ejemplo de webhook para Bot cancelado:
[
{
"info":null,
"service":"telegram",
"title":"webhook",
"bot":{
"url":"https://t.me/best_bot",
"external_id":1845120806780,
"id":"60b0a854b4d8073f592b92678f3",
"name":"BEST"
},
"contact":{
"username":"veronica",
"name":"veronica",
"tags":[
],
"last_message":"Test",
"photo":null,
"variables":{
"name":"Veronica Petrova",
"Phone":"380985236985",
"Email":"test@gmail.com"
},
"id":"60b0a854083b4966784fd0f7b65"
},
"date":1637759687101
}
]
Un ejemplo de webhook para Bot bloqueado:
[
{
"info":null,
"service":"telegram",
"title":"webhook",
"bot":{
"url":"https://t.me/best_bot",
"external_id":1845126570800,
"id":"60b0a854b4d8056773f592b92f3",
"name":"BEST"
},
"contact":{
"username":"veronica",
"name":"veronica",
"tags":[
],
"last_message":"Test",
"photo":null,
"variables":{
"name":"Veronica Petrova",
"Phone":"380985236985",
"Email":"test@gmail.com"
},
"id":"60b0a854083b4964fd5670f7b65"
},
"date":1637756579166
}
]
Los datos de Webhook se envían con tipo de contenido application/x-www-form-urlencoded.
Última actualización: 08.01.2025
o