AutoMod

Premium
Volver a los tutoriales

Connecting an External Service with Webhooks

Un webhook entrante que publica un anuncio, lleva un total acumulado en una variable guardada y pasa el relevo a una segunda automatización al alcanzar un hito.

1

Crea una variable para llevar un total acumulado

Abre la pestaña Variables del plugin Automatizaciones y crea una variable llamada total_orders, de tipo Número y con valor predeterminado 0. Las variables se comparten en todo el servidor, así que cualquier automatización puede leer o actualizar la misma.

Ver la referencia completa
2

Crea la automatización de entrada

Crea una automatización llamada "Alertas de pedidos" y elige Webhook entrante en la pestaña Disparador. Activa "Exigir un secreto" para que solo las solicitudes firmadas puedan activarla y copia la URL y el secreto en el servicio que envía la solicitud, como una tienda online, un proveedor de pagos o tu propio backend.

Un envío firmado, desde el lado del emisor

timestamp=$(date +%s)
body='{ "customer_name": "Alex", "amount": 42 }'
signature=$(printf '%s.%s' "$timestamp" "$body" | openssl dgst -sha256 -hmac "<secret>" | sed 's/^.* //')

curl -X POST <webhook-url> \
  -H "Content-Type: application/json" \
  -H "X-Automation-Timestamp: $timestamp" \
  -H "X-Automation-Signature: sha256=$signature" \
  -d "$body"
3

Convierte los datos en un mensaje y un total acumulado

En la pestaña Acciones, añade una acción Enviar mensaje a un canal #pedidos, tomando los datos directamente del cuerpo de la solicitud con tokens {http.body.*}. Después añade una acción Definir variable: elige total_orders, pon la operación en Incrementar y deja el valor en 1 para que cuente un pedido por envío.

CampoValor
1. Enviar mensaje#pedidos · "🛒 ¡Nuevo pedido de {http.body.customer_name}: ${http.body.amount}!"
2. Definir variabletotal_orders · Incrementar · 1
4

Encadena una segunda automatización

Añade una acción más: Llamar a automatización. En lugar de hacer algo directamente en Discord, esta acción de control de flujo invoca otra automatización como una subrutina. Apúntala a la automatización de hitos que vas a crear en el siguiente paso y deja desactivado "Esperar a que termine", ya que esta no necesita devolver nada.

5

Crea la automatización de hitos

Crea una segunda automatización, "Alertas de hitos". Su disparador es Llamada por otra automatización, que no tiene ajustes porque solo se ejecuta cuando la inicia la acción Llamar a automatización de otra automatización. Añade una condición Variable guardada que compruebe que total_orders es mayor que un número redondo como 1000 y después una acción Enviar mensaje que lo anuncie en #anuncios.

CampoValor
DisparadorLlamada por otra automatización
CondiciónVariable guardada · total_orders · mayor que · 1000
AcciónEnviar mensaje · #anuncios · "🎉 ¡Acabamos de superar los 1000 pedidos!"
6

Prueba toda la cadena

Usa Pruebas y registros en la automatización de entrada. Los datos de ejemplo te permiten rellenar un customer_name y un amount ficticios. El recorrido muestra el mensaje, la actualización de la variable y la llamada a Alertas de hitos, coincida o no su condición.

Has conectado un servicio externo

El mismo patrón, un webhook entrante que alimenta variables y otras automatizaciones, sirve para casi cualquier herramienta que pueda enviar una solicitud HTTP: un servicio de formularios, un proveedor de pagos, tu propio backend. Consulta la referencia completa para ver todos los disparadores, condiciones y acciones disponibles.