Vai al contenuto

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, /user e 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
{
  "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 /info con informazioni aggiuntive sul cliente da altro CRM
  • Registrazione cambiamenti di stato tramite /mark per analisi
  • Creazione fattura con comando /invoice con 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_key dal 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 /hint per 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

  1. Usa servizi per testare Webhooks: postman.com, requestbin.com
  2. Registra tutte le richieste in arrivo sul tuo server
  3. Restituisci stato di risposta HTTP corretto (dovrebbe essere 200 OK)
  4. Monitora il timeout — la risposta dovrebbe arrivare rapidamente (consigliato fino a 3 secondi)
  5. 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