Webhooks¶
Ricevi eventi dai dialoghi Hotline come richieste POST in formato JSON per l'integrazione con i tuoi sistemi.
Funzionalità a pagamento
L'utilizzo di Webhooks e REST API è disponibile solo per gli utenti premium di Hotline. Per acquistare la versione a pagamento del sistema, contattare il nostro servizio di supporto.
Capacità¶
Il modulo Webhooks consente di:
- Tracciare eventi di sistema — creazione, chiusura e riapertura dialoghi, ricezione e invio messaggi.
- Elaborare comandi personalizzati — sia standard
/mark,/info, che propri/invoice,/usere qualsiasi altro. - Restituire risposte ai topic — i risultati dell'esecuzione dei comandi possono essere mostrati direttamente nei topic dei clienti.
Configurazione¶
I Webhooks vengono configurati tramite il bot di configurazione @hotlinetg_bot nel parametro di connessione WEBHOOKS.
Formato di configurazione: oggetto JSON dove le chiavi sono gli URL dei tuoi script e i valori sono array di eventi da tracciare:
Esempio di Configurazione JSON¶
{
"https://someapiserver.com/webhooks/test-hook1": [
"dialog_created",
"dialog_reopened",
"dialog_closed",
"message_received",
"message_sent",
"message_intercepted"
],
"https://someapiserver.com/webhooks/test-hook2": [
"/mark", "/info",
"/invoice", "/client"
]
}
Più indirizzi
Puoi specificare più URL per diversi set di eventi — ad esempio, uno per ricevere eventi su messaggi e dialoghi, e un altro per elaborare i tuoi comandi.
Eventi di Sistema¶
Notifiche automatiche sugli eventi dei dialoghi. Inviate senza attendere risposta dal tuo server.
Eventi di Dialogo Disponibili¶
| Evento | Descrizione |
|---|---|
dialog_created |
Creazione nuovo dialogo nel sistema. Spesso utilizzato per contare nuovi dialoghi, inviare saluti, ottenere informazioni aggiuntive sul cliente o creare record nel database clienti. |
dialog_reopened |
Riapertura dialogo dopo chiusura. Utile per tracciare contatti ripetuti. |
dialog_closed |
Chiusura dialogo da operatore o automaticamente. Usato per finalizzare ticket, inviare sondaggi o calcolare metriche di chiusura. |
Eventi di Messaggio Disponibili¶
| Evento | Descrizione |
|---|---|
message_received |
Ricezione qualsiasi messaggio in arrivo dal cliente. Utilizzato per registrazione e analisi contenuto, ad esempio training modelli AI. |
message_sent |
Invio messaggio al cliente. Utile per controllo qualità risposta e calcolo tempo di reazione operatore. |
message_intercepted |
Messaggio in uscita al cliente da sessione parallela (ad esempio, da un'altra sessione account). Utilizzato per sincronizzazione dati tra sistemi. |
Scenari di Utilizzo¶
- Invio messaggi automatici per timeout dopo inizio dialogo
- Monitoraggio tempo di risposta operatore alle richieste
- Verifica messaggi per conformità alle politiche aziendali
- Raccolta dati per analisi esterne
- Registrazione dialoghi per training modelli AI
- Duplicazione messaggi nel database aziendale
Esempio Richiesta: Riapertura Dialogo¶
{
"event_type": "dialog_reopened",
"timestamp": "2025-10-09 00:24:55",
"instance_id": "13209946874612345",
"data": {
"chat_id": -1002146012345,
"thread_id": 5602541568,
"topic_id": 5343,
"topic_link": "https://t.me/c/2146012345/5343",
"user_id": 5339212345,
"frontend_chat_id": 5339212345,
"frontend_topic_id": null,
"frontend_topic_link": null,
"frontend_user_id": 6406751371,
"chat_type": "private",
"title": "Some User Name",
"department": "default"
},
"api_key": "pQTngMZLh0NmAh"
}
Esempio Richiesta: Messaggio Inviato¶
{
"event_type": "message_sent",
"timestamp": "2025-10-09 00:21:57",
"instance_id": "132099468746812345",
"data": {
"backend_chat_id": -1002146012345,
"backend_thread_id": 5602541568,
"backend_message_id": 6171918336,
"sender_user_id": 5339212345,
"frontend_user_id": 640675123,
"frontend_message_id": 3260022784,
"text": "test message",
"content_type": "messageText",
"department": "default",
"backend_reply_message_id": 0
},
"api_key": "pQTngMZLh0NmAh"
}
Comandi Personalizzati¶
Eventi sulle chiamate di comandi operatore. Il tuo server può registrare l'evento corrispondente e restituire una risposta che verrà mostrata nel topic del dialogo.
- Specifica comandi di sistema standard nella configurazione JSON:
/info,/mark,/close - Imposta i tuoi comandi:
/invoice,/client,/order - Restituisci il risultato dell'esecuzione come testo o JSON se necessario
Scenari di Utilizzo¶
- Estensione
/infocon informazioni aggiuntive sul cliente da altro CRM - Registrazione cambiamenti di stato tramite
/markper analisi - Creazione fattura con comando
/invoicecon ritorno link - Ottenimento dati cliente dal database tramite
/user - Automazione processi aziendali per trigger comando
Esempio Richiesta: Comando /mark¶
{
"event_type": "/mark",
"timestamp": "2025-10-08 20:41:20",
"instance_id": "132099468746812345",
"data": {
"command_data": "deal",
"chat_id": -1002146012345,
"topic_id": 5,
"topic_link": "https://t.me/c/2146012345/5",
"message_id": 5850,
"reply_message_id": null,
"sender_user_id": 123456,
"user_id": 7890123,
"frontend_chat_id": 7890123,
"frontend_thread_id": null
},
"api_key": "pQTngMZLh0NmAh"
}
Formato Risposta¶
Il tuo server può restituire il risultato come testo semplice o JSON con nodi message o error.
Esecuzione riuscita:
{
"message": "Trattativa creata: http://internal.domain.com/crm/deals/76238",
"status": "ok"
}
Errore di esecuzione:
{
"error": "Utente 12345678 non trovato nel nostro database"
}
Risposta testuale:
Puoi restituire solo testo con supporto Markdown v2:
✅ Fattura №12345 creata
Totale: 1500
Link: https://intranet.example.com/invoice/12345
Altri nodi JSON sono ignorati
In caso di risposta JSON, Hotline elabora solo i nodi message ed error.
Sicurezza¶
Tutte le richieste da Hotline contengono il campo api_key della connessione corrispondente per la verifica del mittente.
- Verifica
api_keydal tuo lato - Configura filtraggio per IP del server proxy Hotline
- Usa HTTPS per l'URL dei Webhooks
Scenari Pratici¶
-
Integrazione CRM
Crea automaticamente lead all'inizio del dialogo, aggiorna stati trattative tramite
/mark, carica informazioni complete cliente tramite/user -
Analisi Avanzate
Raccogli tutti i messaggi ed eventi nel tuo sistema di analisi per un'analisi dettagliata del lavoro operatore e della qualità del servizio
-
Assistenti AI
Registra dialoghi nel database per training AI, crea comandi come
/hintper generare risposte basate sul contesto -
Automazione Documenti
Genera fatture, contratti, proposte commerciali tramite comando con compilazione automatica dati cliente
-
Controllo Qualità
Traccia tempo di risposta operatore, verifica messaggi per parole proibite, ricevi avvisi per lunghi periodi senza risposta
-
Backup
Salva tutti i dialoghi nel proprio database per archiviazione o migrazione ad altri sistemi
Suggerimenti per il Debug¶
- Usa servizi per testare Webhooks: postman.com, requestbin.com
- Registra tutte le richieste in arrivo sul tuo server
- Restituisci stato di risposta HTTP corretto (dovrebbe essere
200 OK) - Monitora il timeout — la risposta dovrebbe arrivare rapidamente (consigliato fino a 3 secondi)
- Gestisci gli errori con grazia e restituisci messaggi comprensibili
Usa connessioni di test
Per il debug, crea una connessione di test per facilitare il controllo del flusso di eventi in arrivo e fare debug di eventi con proprietà diverse.
Limitazioni¶
- Timeout risposta comando — consigliato non più di 3 secondi
- Dimensione risposta — fino a 4096 caratteri (limitazione Telegram)
- Tentativi di ripetizione — se il tuo server non è disponibile, la richiesta può essere ripetuta
- Limiti di frequenza — con grande flusso di eventi considera le capacità del tuo server
Supporto¶
Per domande sulla configurazione webhook, connessione abbonamento a pagamento, contattare il servizio di supporto @hotlinetg_support