Le integrazioni inviano gli eventi dell’attività a un altro servizio appena avvengono: una nuova conversazione, una prenotazione, la richiesta di un membro del team, una richiesta di assistenza. Con Zapier o Make puoi, per esempio, aggiungere una riga a un foglio, inviare un messaggio in una chat o creare una scheda nel CRM senza copiare i dati a mano.
Dove trovarle
Apri “Moduli” dal menu superiore, collega il modulo “Integrazioni” (è disattivato per impostazione predefinita) e fai clic su “Apri integrazioni” sulla sua scheda. Si apre “Webhook”, accanto c’è “Registro eventi”. La sezione è accessibile solo a Proprietario e Amministratore: l’indirizzo di un destinatario può contenere un token privato. Finché il modulo è disattivato non viene consegnato nulla e gli eventi avvenuti nel frattempo non vengono rinviati in seguito. I destinatari restano configurati e il registro eventi continua a essere compilato.
Come aggiungere un destinatario
- In Zapier crea uno Zap con il trigger “Webhooks by Zapier” e l’evento “Catch Hook” e copia l’indirizzo che ricevi. In Make aggiungi il modulo “Custom webhook” e copia il suo indirizzo.
- Nella pagina delle integrazioni compila “Nome” (per esempio il nome dello Zap) e “Indirizzo del destinatario” (l’indirizzo copiato).
- In “Eventi da inviare” spunta cosa inviare.
- Fai clic su “Aggiungi destinatario”.
- Il segreto di firma compare una sola volta. Copialo e conservalo. Zapier e Make non ne hanno bisogno; il tuo server lo usa per verificare la firma. Se lo perdi, creane uno nuovo con “Cambia il segreto”.
- Nella scheda del destinatario fai clic su “Invia un test”. Il risultato dice Consegnato o Non consegnato con il motivo.
L’indirizzo deve essere pubblico e iniziare con https. Vengono rifiutati, con il motivo indicato: indirizzi http, indirizzi IP al posto di un dominio, porte personalizzate, indirizzi con nome utente e password, indirizzi interni e indirizzi dei domini di ReceptionWorks. La pagina mostra solo dominio e percorso: la parte dopo il punto interrogativo può contenere il token del tuo destinatario.
Quali eventi vengono inviati
- “Nuova conversazione” (
conversation.started): un cliente ha avviato una nuova conversazione in qualsiasi canale. Le chat di prova e i clienti bloccati non vengono inviati. - “Richiesto un membro del team” (
conversation.handoff_requested): il dipendente IA o il sistema ha chiesto un membro del team. L’evento riporta il motivo: richiesta del dipendente IA stesso, risposte automatiche ferme, modalità manuale, dipendente IA non disponibile, limite di risposte esaurito o piano non attivo. - “Conversazione passata a un membro del team” (
conversation.handed_off): un membro del team ha preso in carico la conversazione. Viene inviato ogni volta. - “Nuova prenotazione”, “Prenotazione modificata” e “Prenotazione annullata” (
booking.created,booking.changed,booking.cancelled): una prenotazione è stata creata, modificata o annullata da un dipendente IA, da te nel calendario o dall’assistente aziendale. - “Nuova richiesta di assistenza” (
support_case.created) e “Richiesta di assistenza modificata” (support_case.updated): una richiesta di assistenza è stata creata, oppure ne sono cambiati stato, priorità o descrizione. Le note interne del team non vengono inviate. - «Nuovo messaggio» (
message.created): ogni messaggio visibile al cliente, inviato appena viene scritto: del cliente, del dipendente IA, di un membro del team o del sistema (un avviso nella conversazione). Il testo del messaggio è incluso. - «Conversazione completa» (
conversation.transcript): l’intera conversazione, inviata quando per 30 minuti non ci sono stati messaggi. Se la conversazione continua, viene inviata di nuovo dopo ogni pausa successiva.
Gli eventi della chat di prova non vengono inviati. Un destinatario riceve solo gli eventi avvenuti dopo la sua aggiunta e finché è attivo: ciò che accade durante una pausa o una disattivazione non viene inviato dopo.
«Nuovo messaggio» e «Conversazione completa» contengono il testo integrale delle conversazioni, compreso ciò che scrivono i clienti. Il testo esce da ReceptionWorks e arriva al destinatario scelto, quindi selezionali solo per destinatari di cui ti fidi. Un nuovo destinatario parte con questi due eventi non selezionati. Vengono inviati solo finché un destinatario li ha selezionati e non compaiono nel registro eventi né nella sua esportazione: la conversazione stessa è nella posta in arrivo. Le chat di prova e i clienti bloccati non vengono inviati.
Cosa riceve il destinatario
Ogni evento è una richiesta POST con un corpo JSON. Esempio per la richiesta di un membro del team fatta da un dipendente IA:
{
"schema_version": "business-webhook.v1",
"id": "5b0c5e2e-0000-4000-8000-000000000001",
"type": "conversation.handoff_requested",
"occurred_at": "2026-10-07T09:30:00.000Z",
"business": { "name": "Example Studio" },
"actor": { "kind": "ai_employee" },
"channel": "telegram",
"employee": { "name": "Anna" },
"conversation": { "url": "https://app.example.com/businesses/studio/inbox?conversation=example" },
"customer": { "name": "Maria", "email": "maria@example.com", "phone": "+1 555 0100" },
"booking": null,
"handoff": { "reason": "ai_request", "reason_text": "The customer wants to discuss a discount" },
"support_case": null
}
id: l’identificatore dell’evento. Resta uguale a ogni nuovo tentativo, quindi ignora un id già elaborato.type: il tipo di evento dell’elenco qui sopra;occurred_at: l’ora in UTC.business: il nome della tua attività.actor: chi ha causato l’evento.kindècustomer,ai_employee,team_member(un membro del team o l’assistente aziendale) oppuresystem.channel:web,telegram,instagram,whatsappomessenger, oppurenullse l’evento non ha una conversazione.employee: il nome del dipendente IA, oppurenullse ha agito il team o l’assistente aziendale.conversation.url: un link alla conversazione; si apre per i membri del team con l’accesso effettuato.nullse non c’è una conversazione.customer: nome, email e telefono al momento dell’invio, oppurenull. I contatti vengono inviati per intero, quindi aggiungi solo destinatari di cui ti fidi.booking: solo per gli eventi di prenotazione:service,starts_at,ends_at,statuselocation.handoff: solo per “Richiesto un membro del team”:reason(ai_request,automation_stopped,manual_mode,ai_unavailable,quota_exhaustedoplan_inactive) ereason_text, la spiegazione del dipendente IA stesso oppurenull.support_case: solo per gli eventi delle richieste di assistenza:subject,status(open,in_progress,waiting_customer,resolvedoclosed) epriority(low,normal,highourgent).message: solo per «Nuovo messaggio»:id,sequence(la posizione del messaggio nella conversazione),author(customer,ai_employee,team_memberosystem),text,created_ateattachments: un elenco conkind(sempreimage),nameemedia_type. Vengono inviati solo il nome e il tipo dell’allegato, non il file.transcript: solo per «Conversazione completa»:message_count(messaggi della conversazione),truncatedemessages: messaggi nella stessa forma dimessage. Una trascrizione contiene al massimo i 500 messaggi più recenti e 512 KiB di testo;truncatedètruese i messaggi più vecchi sono stati omessi.
Le sezioni che non riguardano l’evento sono null. L’evento di “Invia un test” ha il tipo webhook.test e tutte le sezioni tranne business sono null. I dati non contengono testo tradotto: i nomi sono come salvati, i codici sono parole inglesi fisse e gli orari sono in UTC.
"message": {
"id": "6c1d0f52-0000-4000-8000-000000000002",
"sequence": 12,
"author": "customer",
"text": "Hello, can I book for Friday?",
"created_at": "2026-10-07T09:29:41.000Z",
"attachments": [{ "kind": "image", "name": "photo.jpg", "media_type": "image/jpeg" }]
}
Messaggi e trascrizioni possono arrivare fuori ordine e ripetersi, quindi non fare affidamento sull’ordine di arrivo. Usa sequence per ripristinare l’ordine dei messaggi di una conversazione e scarta la consegna il cui webhook-id hai già elaborato. La trascrizione ripete messaggi che potresti aver già ricevuto uno a uno: usala per controllare o ricostruire l’intera conversazione.
Come verificare la firma
Ogni richiesta ha tre intestazioni dello standard Standard Webhooks: webhook-id, webhook-timestamp e
webhook-signature. Zapier e Make non le verificano. Sul tuo server usa la libreria ufficiale Standard Webhooks per il
tuo linguaggio: passale il segreto così com’è mostrato (inizia con whsec_), il corpo originale non modificato e le tre
intestazioni. Verifica manuale:
signed_content = webhook-id + "." + webhook-timestamp + "." + raw request body
signature = "v1," + base64( HMAC-SHA256( key, signed_content ) )
key = base64-decoded part of the secret after "whsec_"
L’intestazione webhook-signature contiene v1, e la firma. Dopo “Cambia il segreto” contiene due firme separate da uno
spazio: accetta la richiesta se ne corrisponde una. Rifiuta le richieste il cui timestamp differisce dal tuo orologio
di oltre cinque minuti.
Nuovi tentativi e disattivazione automatica
Il destinatario deve rispondere con un codice 2xx entro 10 secondi. I reindirizzamenti non vengono seguiti: un
indirizzo che reindirizza conta come errore. Altrimenti ReceptionWorks riprova: subito, poi dopo 1 minuto, 5 minuti,
30 minuti, 2 ore, 6 ore e 12 ore. Sono 7 tentativi in circa 21 ore. Se falliscono tutti, l’invio è segnato come Non consegnato in “Registro degli invii” e puoi fare clic su “Invia di nuovo”. I nuovi tentativi portano lo stesso webhook-id, quindi il
destinatario può scartare i duplicati.
Un destinatario viene disattivato automaticamente se risponde che l’indirizzo non esiste più (codice 410) o se cinque eventi di fila non vengono consegnati. La scheda mostra allora “Disattivato automaticamente” con il motivo e il tuo team riceve una notifica. Correggi l’indirizzo e fai clic su “Attiva”: gli eventi persi nel frattempo non vengono inviati.
Pausa, nuovo segreto, eliminazione
- “Metti in pausa” ferma l’invio senza eliminare il destinatario; fai clic su “Attiva” per riprendere.
- “Cambia il segreto” e poi “Crea nuovo segreto”: un nuovo segreto viene mostrato una sola volta. Quello vecchio vale ancora 24 ore, così puoi aggiornare il destinatario senza perdere eventi.
- “Elimina” e poi “Elimina destinatario” eliminano il destinatario per sempre.
Da sapere
- Solo Proprietario e Amministratore gestiscono le integrazioni. Un’attività può avere fino a 5 destinatari.
- Il registro degli invii mostra evento, destinatario, ora, stato, tentativi e prossimo tentativo. Non conserva il testo delle richieste.
- La prova con “Invia un test” non crea una voce nel registro e non richiede un evento reale.