Ricevere eventi webhook
Userbot invia eventi al tuo server tramite HTTP POST quando accadono cose rilevanti: un nuovo messaggio, una conversazione avviata, un cambio di stato, un aggiornamento variabili. Non serve fare polling — il tuo backend riceve una push ogni volta che qualcosa cambia.
Perché i webhook sono obbligatori
Le integrazioni Userbot non devono costruire la UI chat dalla risposta REST di POST /v1/bots/{bot_key}/messages/. L’agente può generare più messaggi per ogni input; dopo un’escalation i messaggi dell’operatore devono comparire in tempo reale. Tutto questo arriva sul webhook registrato in dashboard — in particolare tramite l’evento message.added.
In produzione:
- Registra un endpoint HTTPS in dashboard Userbot
- Invia messaggi REST con
webhookOnly: true - Aggiorna la UI solo dagli eventi webhook verificati (HMAC)
Il parametro webhookUrl nel body REST esiste solo per test locali — non sostituisce il webhook in dashboard.
Per il flusso completo passo passo, vedi Quickstart e Concetti chiave.
Per ricevere gli eventi devi esporre un endpoint HTTPS raggiungibile pubblicamente da internet. Userbot non consegna webhook a localhost o URL HTTP non sicuri.
Setup
La configurazione richiede tre passi:
- Crea un endpoint sul tuo server che accetti POST JSON e risponda 200 entro 5 secondi
- Registra l’URL nella dashboard Userbot — Userbot ti fornirà un Webhook Secret per la verifica delle firme (mostrato una sola volta in creazione, salvalo subito)
- Implementa la verifica HMAC — ogni richiesta va validata prima di processare il payload (Verifica firma HMAC)
Il tuo endpoint deve rispondere con status 200 entro 5 secondi. Se rispondi in ritardo o con errore, Userbot ritenta la consegna — e potresti ricevere lo stesso evento più volte. Per questo serve la deduplicazione per eventId.
Headers della richiesta
Ogni webhook include header che identificano l’evento e permettono la verifica della firma:
Struttura del body
Tutti gli eventi condividono una struttura comune. Il campo data varia in base al tipo di evento:
Per tipi di evento, campi in data ed esempi di payload per ciascun evento, consulta Userbot Webhook Events nella tab API Reference.
I valori di state negli eventi webhook (agent_assigned, bot_assigned) differiscono dalla nomenclatura usata nelle API REST di aggiornamento stato (escalated, bot). Tieni conto del mapping nella tua integrazione — vedi Concetti chiave.
Esempio server
Gli esempi sotto mostrano un handler completo: verifica HMAC, controllo timestamp, deduplicazione implicita (log per evento) e risposta 200. Adattali al tuo framework e al tuo secret manager.
Node.js (Express)
Python (Flask)
Per un tutorial end-to-end che collega REST, webhook e HMAC, vedi Tutorial: prima integrazione.
