Usiamo cookie di Meta, Google, Reddit, OpenAI e Whop per misurare come le persone trovano Chat33 e mostrare annunci pertinenti. Non viene caricato nulla finché non scegli. Informativa sulla privacy
Quando qualcuno commenta una parola chiave o ti scrive in DM, Chat33 gli chiede l’email nella chat. Ogni email raccolta viene inviata come JSON a un URL webhook in pochi secondi, e il tuo strumento di automazione la mette dove vuoi: una riga di Google Sheets, Airtable, Notion, Slack o il tuo CRM.
Disponibile con ogni piano, anche quello gratuito. Possono collegarla i proprietari e gli amministratori dello spazio di lavoro.
Cosa succede
Tre cose. Nel tuo strumento di automazione non serve nessuna app di Chat33: è un semplice webhook.
Un account Instagram o Facebook collegato
Un account professionale di Instagram (business o creator) o una Pagina Facebook, collegati in Chat33 in Canali.
Un’automazione con un passaggio Raccogli email
Il passaggio chiede l’email in un DM e aspetta la risposta fino a 24 ore. Funziona con i trigger con parola chiave nei DM su Instagram e Facebook e con i trigger sui commenti su Instagram. Chiedere l’email dopo un commento su Facebook non è ancora disponibile.
Uno strumento che può ricevere un webhook
Zapier (Webhooks by Zapier richiede un piano Zapier a pagamento), Make, n8n o il tuo server. L’indirizzo deve essere pubblico e iniziare con https://. In Chat33 possono impostare il webhook i proprietari e gli amministratori dello spazio di lavoro.
Tieni aperti il tuo strumento di automazione e Chat33 in due schede. Copi un URL dall’una all’altra.
Crea una nuova automazione che parte con un webhook, poi copia l’URL che ti dà.
In Chat33 vai in Impostazioni, Chiavi API e trova la card Webhook dei messaggi. Incolla l’URL nel campo dell’indirizzo.
Sotto Invia, spunta Nuovi contatti. Togli la spunta da Nuovi DM se vuoi solo i lead, altrimenti ogni DM che ti scrivono va allo stesso URL. Lascia selezionato Tutti gli account di questo spazio di lavoro, oppure scegli gli account di cui vuoi i lead. Clicca Salva.
Clicca Invia un contatto di prova. Chat33 invia un lead inventato (Ana Lopez, ana@example.com) con "test": true, e la card mostra lo stato HTTP con cui ha risposto il tuo strumento. In Zapier clicca Test trigger, in Make aspetta che il modulo dica di aver determinato la struttura dei dati, in n8n clicca Listen for test event prima di inviare.
Aggiungi il passaggio successivo e associa i campi del lead. Per Google Sheets: in Zapier usa Create Spreadsheet Row, in Make Add a Row, in n8n il nodo Google Sheets con Append Row. Metti data.email, data.name, data.username, data.flow.name e data.capturedAt ciascuno nella sua colonna, o quello che ti serve. Salta o filtra le richieste in cui test è true.
Pubblica lo Zap, attiva lo scenario o il workflow n8n, e attiva la tua automazione Chat33. Prova l’automazione da un secondo account Instagram. La card Zapier, Make, n8n, Google Sheets in Impostazioni, Integrazioni mostra quanti lead sono stati inviati, sono in attesa o non sono riusciti, e il Registro degli invii elenca gli ultimi 50.
Una POST per ogni lead, con un corpo JSON. Questa è una richiesta vera di Invia un contatto di prova, parola per parola.
content-type: application/json
user-agent: Chat33-Webhooks/1.0
x-chat33-event: lead.captured
x-chat33-signature: t=1793009626,v1=0decb33a96de935324152cb242ec33c3c45849853d59e1ff330b20cb89ded992{
"event": "lead.captured",
"id": "evt_lead_test_1793009626943",
"createdAt": "2026-10-26T10:13:46.944Z",
"data": {
"version": 1,
"captureKey": "test_1793009626943",
"email": "ana@example.com",
"name": "Ana Lopez",
"firstName": "Ana",
"lastName": "Lopez",
"username": "ana.lopez",
"platform": "instagram",
"platformId": "test_platform_id",
"contactId": "test_contact",
"channel": {
"id": "test_channel",
"name": "Test account"
},
"flow": {
"id": "test_flow",
"name": "Test flow"
},
"keyword": "guide",
"postId": null,
"postUrl": null,
"tags": [],
"question": "What is your email?",
"capturedAt": "2026-10-26T10:13:46.943Z",
"firstSeenAt": "2026-10-26T10:13:46.943Z"
},
"test": true
}Annidati sotto data, tranne i primi quattro. I campi vengono solo aggiunti, mai rinominati o rimossi, e data.version ti dice la struttura.
Chat33 non scrive mai ai tuoi lead. Cosa succede dopo dipende dall’automazione che costruisci.
Ogni richiesta è firmata con il segreto di firma del tuo webhook, che trovi sulla card Webhook dei messaggi in Impostazioni, Chiavi API. Gli strumenti no-code possono saltare questo passaggio e tenere privato l’URL del webhook. Sul tuo server, controlla la firma prima di fidarti del corpo.
X-Chat33-Event
lead.captured per un lead, message.received per un DM.
X-Chat33-Signature
Ha un aspetto come t=1793009626,v1=0decb33a..., dove t è l’ora Unix in secondi e v1 è l’HMAC-SHA256 del timestamp, un punto e il corpo grezzo della richiesta, con chiave l’intero segreto di firma (whsec_...). Ogni tentativo viene firmato di nuovo con un timestamp aggiornato.
User-Agent
Chat33-Webhooks/1.0, con Content-Type application/json.
Un nuovo segreto
Rimuovere il webhook e salvarlo di nuovo genera un nuovo segreto. Quando succede, aggiorna il tuo server.
const crypto = require("crypto");
const express = require("express");
// Settings, API Keys, Message webhook, Signing secret (whsec_...)
const SECRET = process.env.CHAT33_WEBHOOK_SECRET;
function verifyChat33(rawBody, header, toleranceSeconds = 300) {
const parts = {};
for (const piece of String(header || "").split(",")) {
const i = piece.indexOf("=");
if (i > 0) parts[piece.slice(0, i)] = piece.slice(i + 1);
}
if (!parts.t || !parts.v1) return false;
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > toleranceSeconds) return false;
const expected = crypto
.createHmac("sha256", SECRET)
.update(`${parts.t}.${rawBody}`)
.digest("hex");
const a = Buffer.from(expected, "hex");
const b = Buffer.from(parts.v1, "hex");
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
const app = express();
// The raw body: the signature covers the exact bytes Chat33 sent.
app.post("/chat33-webhook", express.raw({ type: "application/json" }), (req, res) => {
const rawBody = req.body.toString("utf8");
if (!verifyChat33(rawBody, req.get("X-Chat33-Signature"))) return res.sendStatus(401);
const event = JSON.parse(rawBody);
if (event.event === "lead.captured" && !event.test) {
// Save event.data.email, skip event.id values you already have.
}
res.sendStatus(200);
});
app.listen(3000);Cosa fa Chat33 con ogni lead e cosa dovrebbe rispondere il tuo endpoint.
Rispondi con un 2xx entro 10 secondi
Qualsiasi stato 2xx conta come consegnato. Tutto il resto, un timeout dopo 10 secondi o un errore di rete conta come errore. I reindirizzamenti non vengono seguiti, quindi salva l’indirizzo finale.
I lead non riusciti vengono riprovati
Un lead non riuscito viene riprovato dopo circa 1 minuto, 5 minuti, 30 minuti, 2 ore e 12 ore. Dopo, risulta Non riuscito, e Riprova quelli non riusciti sulla card lo invia di nuovo. Una risposta 429 significa aspettare: Chat33 riprova un minuto dopo senza consumare un tentativo.
I lead di prova vengono inviati una volta sola
Invia un contatto di prova fa un solo tentativo, non viene riprovato e non compare nel registro degli invii. Viene inviato anche quando Nuovi contatti non è spuntato, quindi spuntalo prima di contare sui lead veri.
Lo stesso webhook può inviare i DM
Con Nuovi DM spuntato, lo stesso URL riceve anche message.received per ogni DM che le persone mandano ai tuoi account collegati, così il tuo bot può rispondere. Il riferimento API descrive questo evento e gli endpoint del webhook.
Contatti che hai già
Invia i lead esistenti
I lead raccolti prima di attivare Nuovi contatti non vengono inviati da soli. Clicca Invia i contatti esistenti sulla card Zapier, Make, n8n, Google Sheets in Impostazioni, Integrazioni e partono nei prossimi minuti, con gli stessi ID di prima, così il tuo strumento può saltare quelli che ha già.
Chat33 conserva ogni lead, quindi basta sistemare il webhook. Non devi raccogliere di nuovo niente.
Controlla la card Webhook dei messaggi
L’URL deve essere salvato e Nuovi contatti spuntato. La card mostra l’ultima consegna con il suo stato HTTP o l’errore. Usa Invia un contatto di prova per vedere subito la risposta.
Zapier dice che l’app richiede un upgrade
Webhooks by Zapier non è nel piano gratuito di Zapier. Passa a un piano superiore, oppure usa Make o n8n, che possono ricevere webhook anche nei piani gratuiti.
Il tuo strumento risponde con un errore
Una risposta 4xx o 5xx è un errore e il lead viene riprovato. In n8n il Test URL funziona solo mentre sei in ascolto di un evento di prova: usa il Production URL con il workflow attivo. In Make lo scenario deve essere attivo.
L’indirizzo non è stato accettato
Chat33 invia solo a indirizzi https:// pubblici. Un n8n self-hosted su localhost o su una rete privata non può ricevere i lead. Rimuovi tutto ciò che segue un # nell’URL.
I lead sono in Chat33 ma non nel tuo strumento
Apri il Registro degli invii sulla card Zapier, Make, n8n, Google Sheets. Ogni lead mostra il suo stato e il motivo. I lead degli account che il webhook non copre vengono saltati, e i lead raccolti prima di attivare Nuovi contatti richiedono Invia i contatti esistenti.
A nessuno è stata chiesta l’email
Controlla l’automazione. Deve essere attiva e, se parte da un commento su Instagram, il passaggio Raccogli email deve venire prima del primo DM. Chiedere l’email dopo un commento su Facebook non è ancora disponibile.

Crea un account gratuito, collega Instagram, aggiungi un passaggio Raccogli email e incolla il tuo URL webhook.