Configuración de webhooks al reenviar en Telegram

Los webhooks son un mecanismo de envío automático de datos entre sitios web y aplicaciones cuando se producen determinados eventos. Los datos se transmiten mediante una solicitud HTTP: una aplicación los envía por internet a una dirección previamente indicada de otra.

Envío de un mensaje de Telegram a otro sitio o aplicación

Posibilidades de los webhooks

En FLOWIN, los webhooks funcionan con los reenvíos. Pueden activarse al aparecer, modificarse, eliminarse o fijarse un mensaje en el chat original, llamado origen, y también al pulsar un botón en el chat al que se reenvían los mensajes, llamado destino.

Así puedes conectar FLOWIN con redes sociales, plataformas de intercambio, hojas de cálculo y CRM, que son sistemas de gestión de clientes. Esta conexión se llama integración y permite:

  • Añadir automáticamente a un CRM las solicitudes de Telegram.
  • Enviar señales de trading de Telegram a una plataforma de intercambio para su seguimiento automático, es decir, para realizar operaciones automáticamente a partir de esas señales.
  • Reenviar mensajes de Telegram a otras redes sociales.
  • Copiar posts y mensajes en Hojas de cálculo de Google.
  • Configurar un contestador automático en un bot.

En cada caso hay que configurar la recepción de datos y la acción correspondiente en el sitio web o la aplicación.

Crear un webhook

Comprobaremos el webhook en webhook.site, un sitio que proporciona una dirección para recibir datos y muestra las solicitudes recibidas. Le enviaremos el texto de un mensaje nuevo de Telegram.

Para ello necesitas un reenvío configurado y en funcionamiento en FLOWIN.

Para la primera prueba

Utiliza un chat de prueba independiente y una solicitud ficticia. Para comprobarlo basta con enviar texto, sin nombres, teléfonos ni otros datos personales.

  1. Abre @flow_in_bot, envía el comando /start y pulsa «Panel de control».

    Acceso al panel de control a través de @flow_in_bot
    Acceso al panel de control a través de @flow_in_bot.
  2. Abre webhook.site en una pestaña aparte. Copia la dirección para recibir solicitudes del campo «Your unique URL».

    Dirección para recibir la solicitud de prueba
    Dirección para recibir la solicitud de prueba.
  3. En el panel de FLOWIN, abre «Menú» → «Webhooks» y pulsa «Crear».

    Sección «Webhooks» en el menú de FLOWIN
    Sección «Webhooks» en el menú de FLOWIN.
    Creación del primer webhook
    Creación del primer webhook.
  4. Pega la dirección copiada en el campo superior. En «Cuerpo de la solicitud», indica {"message":"<message-text>"} y pulsa «Crear». Esta es la plantilla de los datos enviados: en lugar de <message-text> FLOWIN insertará el texto del mensaje y el receptor lo verá en el campo message.

    Dirección y cuerpo de la solicitud de prueba
    Dirección y cuerpo de la solicitud de prueba.
  5. Pulsa «Aplicar» en el webhook creado. Marca el reenvío correspondiente y pulsa «Guardar».

    Conexión del webhook al reenvío
    Conexión del webhook al reenvío.
    Selección del reenvío para el webhook
    Selección del reenvío para el webhook.
  6. Envía al chat de origen un mensaje de prueba, por ejemplo, «Solicitud n.º 1042: necesito un catálogo de muebles.». Vuelve a webhook.site: la primera solicitud recibida se abrirá automáticamente. En el bloque «Request Content» aparecerá el texto de la solicitud en el campo message. Ahora FLOWIN enviará automáticamente el texto de cada mensaje nuevo a la dirección indicada antes de reenviarlo al chat de destino.

    Solicitud de prueba en el chat de origen
    Solicitud de prueba en el chat de origen.
    Texto de la solicitud recibido en webhook.site
    Texto de la solicitud recibido en webhook.site.

Ajustes de los webhooks

Veamos los ajustes a partir del webhook creado: cómo modificarlos y qué significa cada campo.

De dónde obtener los ajustes

Para conectar otro sitio web o aplicación, utiliza su documentación. Normalmente, las reglas de recepción de datos se encuentran en el apartado de la API, que describe la interacción con otros programas. Allí se indican la dirección, el método HTTP y el formato de datos con los que rellenar los campos siguientes.

Cómo modificar los ajustes del webhook

  1. En la lista «Webhooks», pulsa «Cambiar» en el webhook correspondiente.

    Apertura de los ajustes del webhook
    Apertura de los ajustes del webhook.
  2. Modifica los campos necesarios y pulsa «Guardar».

    Guardado de los ajustes modificados
    Guardado de los ajustes modificados.
    La descripción se ha guardado en los ajustes del webhook
    La descripción se ha guardado en los ajustes del webhook.

Método HTTP

El método HTTP define la acción de la solicitud: POST envía datos para su procesamiento, GET solicita datos y PUT los sustituye. De forma predeterminada está seleccionado POST, adecuado para nuestra prueba. Para otro sitio web o aplicación, elige el método indicado en su documentación.

Métodos HTTP disponibles
Métodos HTTP disponibles.

Dirección URL

URL significa dirección en internet. Aquí se indica la dirección para recibir datos proporcionada por el sitio web o la aplicación que se va a conectar. En nuestro ejemplo, la ha proporcionado webhook.site.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene los datos enviados en formato JSON: pares de «nombre del campo: valor». Los campos concretos dependen de los requisitos del sitio web o de la aplicación que se conecta.

Las metaetiquetas son identificadores en cuyo lugar FLOWIN inserta los datos del mensaje. Por ejemplo, <message-text> se sustituye por el texto y <author-name> por el nombre del autor. La lista de metaetiquetas también se abre mediante el enlace «metaetiquetas» situado debajo del campo.

Los números de usuarios, mensajes, chats y temas de la siguiente lista son sus identificadores, o ID, en Telegram.

Mensaje y autor

  • Texto del mensaje: <message-text>.
  • Fecha del mensaje: <message-date>.
  • Hora del mensaje: <message-time>.
  • ID del autor: <author-id>.
  • Nombre del autor: <author-name>.
  • Nombre del autor en un enlace HTML a su perfil: <author-name-link>.
  • Nombre del autor como hashtag: <author-name-tag>.
  • Nombre de usuario del autor: <author-username>.

Origen

  • Texto del mensaje: <src-message-text>.
  • ID del mensaje: <src-message-id>.
  • Enlace al mensaje: <src-message-link>.
  • ID del chat: <src-chat-id>.
  • Nombre del chat: <src-chat-name>.
  • Nombre de usuario del chat: <src-chat-username>.
  • ID del tema: <src-topic-id>.
  • Nombre del tema: <src-topic-name>.

Destino

  • Texto del mensaje: <dst-message-text>.
  • ID del mensaje: <dst-message-id>.
  • Enlace al mensaje: <dst-message-link>.
  • ID del chat: <dst-chat-id>.
  • Nombre del chat: <dst-chat-name>.
  • Nombre de usuario del chat: <dst-chat-username>.
  • ID del tema: <dst-topic-id>.
  • Nombre del tema: <dst-topic-name>.

El ID y el enlace del mensaje en el destino aparecen después del reenvío. Para enviarlos, elige «Después del envío» en el campo «Disparador de solicitud».

Pulsación de botón

  • ID del usuario que ha pulsado: <clicker-id>.
  • Nombre del usuario que ha pulsado: <clicker-name>.
  • Datos del botón: <clicker-data>.
  • Fecha de la pulsación: <click-date>.
  • Hora de la pulsación: <click-time>.

Selección de texto

  • Una expresión regular define una regla para buscar texto. Por ejemplo, <regexp>(short|sell)</regexp> inserta la primera coincidencia encontrada con short o sell.
  • El texto aleatorio <random>1|2|3|4|5</random> inserta una de las cinco opciones. Puedes indicar tus propias opciones entre las etiquetas y separarlas con el símbolo |.

Encabezados de la solicitud

«Encabezados de la solicitud» contiene información auxiliar para el receptor. Por ejemplo, una clave de acceso permite comprobar quién ha enviado la solicitud. Los encabezados se definen en formato JSON. Normalmente no hace falta modificar este campo; los valores necesarios se obtienen de la documentación del sitio web o de la aplicación que se conecta.

Disparador de solicitud

«Disparador de solicitud» define el evento y el momento en que el webhook debe enviar la solicitud a la dirección indicada. Puedes elegir entre estos eventos:

  • «Envío» está seleccionado de forma predeterminada. El webhook se activa al reenviar un mensaje nuevo.
  • «Modificación» se activa al procesar un cambio del mensaje en el origen.
  • «Fijación» se activa al procesar la fijación de un mensaje en el origen.
  • «Eliminación» se activa al procesar la eliminación de un mensaje en el origen.
  • «Pulsación de botón» se activa con los botones callback del chat de destino. Estos botones notifican al bot que se han pulsado y le envían los datos definidos para ellos. Un botón normal con un enlace no activa este webhook.
Eventos que activan la solicitud
Eventos que activan la solicitud.

El momento del envío define en qué fase del reenvío saldrá la solicitud:

  • «Antes del procesamiento»: la solicitud se envía antes de la traducción y del procesamiento del mensaje con inteligencia artificial, o IA.
  • «Después del procesamiento»: la solicitud se envía después de la traducción y del procesamiento con IA.
  • «Después del envío»: la solicitud se envía cuando el mensaje ya se ha enviado o modificado correctamente en el chat de destino.
Momento de envío de la solicitud
Momento de envío de la solicitud.

Momentos de envío disponibles

Las tres opciones están disponibles para los eventos «Envío» y «Modificación». Para «Fijación», «Eliminación» y «Pulsación de botón» se utiliza «Antes del procesamiento» y no se puede elegir otro momento.

Descripción

«Descripción» sirve de comentario para tu comodidad y no influye en el funcionamiento del webhook. Puedes dejar el campo vacío.

Acciones disponibles con el webhook

Puedes gestionar los webhooks creados desde la lista «Webhooks»:

  • «Cambiar» abre los ajustes principales del webhook.
  • «Duplicar», en el menú «Más», crea una copia de los ajustes del webhook.
  • «Seleccionar proyecto», en el menú «Más», añade el webhook a un proyecto.
  • «Eliminar», en el menú «Más», elimina el webhook.
Acciones adicionales con el webhook
Acciones adicionales con el webhook.

Además, cada webhook tiene un botón «Reenvíos [N]» que abre la selección de reenvíos a los que se aplica. N indica la cantidad de reenvíos seleccionados. Si aún no has seleccionado ninguno, en su lugar aparece «Aplicar».

Preguntas frecuentes

¿Qué es un webhook en palabras sencillas?

Es una forma de enviar datos automáticamente a otra aplicación cuando ocurre un evento concreto. Por ejemplo, al reenviar un mensaje nuevo, FLOWIN envía su texto a la dirección que has indicado mediante una solicitud HTTP. Aquí es FLOWIN quien envía la solicitud; el método de Telegram setWebhook configura otra dirección de comunicación: la entrega de actualizaciones de Telegram al programa que atiende al bot.

¿Basta con indicar la dirección del CRM?

No. Hace falta la dirección para recibir datos que indique la documentación del CRM, además del método HTTP, los campos JSON y los encabezados adecuados si se requieren para el acceso. La dirección normal del sitio web del CRM no sirve para ello. FLOWIN envía la solicitud, mientras que la creación de una solicitud de cliente u otra acción depende de cómo procese el CRM los datos recibidos. Los valores de los campos se describen en el apartado «Ajustes de los webhooks».

¿Se puede activar un webhook pulsando un botón URL normal?

No. Un botón URL normal abre un enlace. Para el evento «Pulsación de botón» hace falta un botón callback en el chat de destino: este envía al bot los datos de la pulsación. La diferencia se describe en el apartado «Disparador de solicitud».

¿Cómo comprobar que el servicio externo ha recibido los datos?

Envía un mensaje ficticio y comprueba la solicitud recibida en el propio servicio. En el ejemplo con webhook.site el texto de la solicitud aparece en el bloque «Request Content». Un reenvío correcto en Telegram no confirma por sí solo que el servicio externo haya aceptado los datos o realizado la acción correspondiente. Para comprobarlo basta con texto sin nombres, teléfonos ni otros datos personales.