Vai al contenuto
WbizTool

Guide del prodotto

Numeri inbox e webhook dei messaggi in arrivo

Nella pagina Numeri inbox scegli quali dei tuoi numeri WhatsApp si sincronizzano nell'inbox Unibox, dove il tuo team legge le loro chat e risponde. Se dai a un numero un URL webhook, WbizTool invia anche al tuo server ogni nuovo messaggio che il numero riceve o invia, come JSON firmato: registra le conversazioni in un CRM, avvisa il team o avvia una risposta automatica.

Stai creando il ricevitore? Vai a Come vengono consegnati i webhook, Verificare la firma e Payload.

Chi può farlo: Proprietari ed Editor aggiungono numeri, modificano i webhook e vedono il secret del webhook. Gli Analisti non vedono Numeri inbox nella barra laterale. Serve il componente aggiuntivo Unibox: $20 al mese o $200 all'anno ai prezzi di listino USA per ogni numero nell'inbox (il tuo prezzo compare in Fatturazione e piani), aggiunto a un piano a pagamento o a vita da un Proprietario in Fatturazione e piani (vedi Componenti aggiuntivi). La sua quantità indica quanti numeri possono stare nell'inbox contemporaneamente.

Apri Numeri inbox sotto Inbox nella barra laterale, oppure vai su /unibox/listeners/.

La pagina Numeri inbox in una finestra del browser, con Numeri inbox selezionato nella barra laterale: 2 di 3 numeri inbox in uso, il link Guida ai webhook, il pulsante Aggiungi numero all'inbox e due schede di numeri, una che invia al proprio webhook e una a uno Zap di Zapier

Prima di iniziare#

  • Il componente aggiuntivo Unibox con un numero inbox libero: la riga sotto il titolo della pagina dice, ad esempio, "2 di 3 numeri inbox in uso (componente aggiuntivo Unibox)", oppure "Nessun componente aggiuntivo Unibox" (vedi Senza il componente aggiuntivo Unibox).
  • Un numero WhatsApp collegato con un codice QR o un codice di abbinamento, che mostra Collegato in Numeri WhatsApp. I numeri collegati tramite l'estensione del browser non si possono aggiungere. Un account Telegram collegato si aggiunge come un numero.
  • Per un webhook: un indirizzo https:// di al massimo 500 caratteri raggiungibile da Internet (non localhost né una rete privata) che accetti richieste POST con un corpo JSON e risponda 2xx entro 8 secondi.

Aggiungere un numero all'inbox#

  1. Apri la finestra

    Fai clic su Aggiungi numero all’inbox in alto a destra nella pagina.

  2. Scegli il numero

    Sceglilo in Numero WhatsApp. L'elenco mostra i tuoi numeri collegati che non sono ancora nell'inbox.

  3. Aggiungi un webhook (facoltativo)

    Scrivi il tuo indirizzo in URL del webhook (facoltativo). Compare allora Messaggi da inviare: lascia spuntato Messaggi ricevuti, Messaggi inviati o entrambi. Puoi aggiungere o modificare il webhook in seguito.

    La finestra Aggiungi un numero all'inbox: 2 di 3 numeri inbox in uso, il numero Ingrosso scelto in Numero WhatsApp (2), un URL webhook inserito (3), Messaggi ricevuti e Messaggi inviati spuntati, e il pulsante Aggiungi numero evidenziato (4)
  4. Aggiungilo

    Fai clic su Aggiungi numero. Vedi "Numero aggiunto – le sue chat iniziano a sincronizzarsi entro pochi minuti." Se hai inserito un URL webhook, si apre Il tuo secret del webhook: fai clic su Copia e conserva il secret dove il tuo server può leggerlo. Puoi mostrarlo di nuovo in seguito in Impostazioni webhook.

  • Solo i nuovi messaggi. Un numero si sincronizza dal momento in cui lo aggiungi: i messaggi precedenti non vengono importati né inviati.
  • Tutti i numeri in uso? La finestra dice "Tutti i tuoi numeri inbox sono in uso. Fermane o rimuovine uno, oppure aggiungine altri al componente aggiuntivo Unibox." Ferma o rimuovi un numero, oppure chiedi a un Proprietario di aumentare la quantità del componente aggiuntivo (Vedi i componenti aggiuntivi).
  • Aggiungere di nuovo un numero rimosso ne ripristina l'inbox ("Numero aggiunto di nuovo – le sue chat si sincronizzano di nuovo da adesso in poi."); i messaggi del periodo in cui era rimosso non vengono recuperati. Con un URL webhook mantiene il secret precedente, se ne aveva uno (usa Mostra in Impostazioni webhook); altrimenti si apre Il tuo secret del webhook con uno nuovo.

Cosa mostra la scheda di un numero#

Ogni scheda mostra il numero, quando WbizTool l'ha controllato l'ultima volta in cerca di messaggi ("Ultimo controllo 1 min fa", oppure Mai controllato), i suoi Messaggi e Contatti sincronizzati (tutte le chat sincronizzate da quel numero, comprese quelle senza messaggi nell'inbox), l'Ultimo messaggio e il Webhook: l'URL e cosa invia, ad esempio "Invia ogni messaggio ricevuto e inviato · firmato con un secret", oppure "Nessuno – i messaggi compaiono solo nell’inbox." Un badge Zapier significa che uno Zap riceve i messaggi (vedi Zapier e numeri inbox).

Il badge in alto a destra indica cosa sta facendo il numero:

BadgeSignificato
In sincronizzazioneControllato circa una volta al minuto; i nuovi messaggi arrivano nell'inbox e al tuo webhook.
Non controllato di recente"Non controllato negli ultimi 15 minuti – ad esempio mentre il numero invia una campagna, che mette in pausa i controlli dell’inbox. Se continua, contatta l’assistenza." I messaggi vengono recuperati quando l'invio finisce.
Numero disconnesso"Il numero WhatsApp è disconnesso, quindi non arriva nulla di nuovo." Fai clic su Riconnettilo.
FermatoFermato da te, oppure da WbizTool quando il componente aggiuntivo è terminato o copre meno numeri (vedi Quando il componente aggiuntivo termina). Non si sincronizza né si invia nulla.
In sospeso"Aggiunto (es. da Zapier) mentre il numero era offline. Non si sincronizza finché non viene avviato." Riconnetti il numero se serve, poi fai clic su Avvia.

Modificare l'URL del webhook o i messaggi inviati#

  1. Apri le impostazioni del webhook

    Fai clic su Impostazioni webhook nella scheda del numero.

  2. Modifica le impostazioni

    Modifica l'URL del webhook (facoltativo) e le spunte in Messaggi da inviare. Per disattivare il webhook, cancella l'URL.

  3. Salva

    Fai clic su Salva. Vedi "Impostazioni webhook salvate."

    La finestra Webhook – Ordini negozio: l'URL del webhook (2), Messaggi da inviare con Messaggi ricevuti spuntato e Messaggi inviati non spuntato, il Secret del webhook nascosto con Mostra e Rigenera, e il pulsante Salva evidenziato (3)
  • Modificare l'URL mantiene il secret. Cancellare l'URL lo elimina; un URL aggiunto in seguito riceve un nuovo secret, mostrato una volta in Il tuo secret del webhook.
  • Se nessuna casella è spuntata, la scheda dice "Nessun evento selezionato – non viene inviato nulla".

Mostrare o rigenerare il secret#

Il secret è composto da 32 lettere e cifre. In Impostazioni webhook, sotto Secret del webhook, Mostra lo rivela con Copia accanto. Rigenera chiede "Generare un nuovo secret? Quello attuale smette subito di funzionare – aggiornalo ovunque verifichi le firme." Fai clic su Genera nuovo secret: viene salvato subito ("Nuovo secret generato."), senza Salva, e tutte le richieste da quel momento sono firmate con il nuovo secret, compresi i nuovi tentativi di messaggi precedenti.

Fermare, avviare o rimuovere un numero#

PulsanteCosa succede
FermaDopo la conferma, le sue chat smettono di sincronizzarsi e non viene inviato nulla. Non occupa più uno dei tuoi numeri inbox; le sue impostazioni vengono conservate.
AvviaTorna a sincronizzarsi e a inviare, occupando uno dei tuoi numeri inbox. I messaggi arrivati mentre era fermo vengono aggiunti all'inbox, fino a 30 giorni prima, ma non inviati: al tuo webhook arrivano solo i messaggi dal momento in cui fai clic su Avvia. Dopo un fermo di meno di un'ora, vengono inviati anche quelli. Avvia è grigio senza il componente aggiuntivo ("Richiede il componente aggiuntivo Unibox") o senza un numero inbox libero ("Tutti i tuoi numeri inbox sono in uso – prima ferma o rimuovi un altro numero").
RimuoviChiede "Rimuovere … dall’inbox?" Le sue chat smettono di sincronizzarsi e il suo webhook viene disattivato; le conversazioni già sincronizzate restano nell'inbox. Aggiungilo di nuovo per ripristinarlo.

I webhook in attesa di un nuovo tentativo vengono scartati quando fermi o rimuovi il numero o ne modifichi l'URL.

Come vengono consegnati i webhook#

  • Quando: ogni numero inbox viene controllato circa una volta al minuto mentre è collegato; i controlli vanno in pausa mentre invia messaggi, ad esempio una campagna. Un messaggio viene inviato dopo il controllo che lo trova, di solito entro un paio di minuti. Non c'è un pulsante di test: invia un messaggio al numero da un altro telefono.
  • Una richiesta per messaggio: message_received per Messaggi ricevuti; message_sent per Messaggi inviati, inviati dal telefono, da WhatsApp Web o da WbizTool (campagne, API, promemoria). Le risposte inviate dall'inbox Unibox di solito non vengono inviate: l'inbox le ha già.
  • Esito positivo: qualsiasi stato 2xx entro 8 secondi. I reindirizzamenti non vengono seguiti: un 3xx conta come errore.
  • Nuovi tentativi: un timeout, un errore di connessione, 429 o un 5xx vengono ritentati 3 volte, dopo 30 secondi, 1 minuto e 2 minuti. Le altre risposte, come 400 o 404, e un certificato TLS non valido non vengono ritentati.
  • 410 Gone: WbizTool disattiva il webhook del numero (URL e secret rimossi; per un hook di Zapier, torna il tuo webhook precedente). Il numero continua a sincronizzarsi nell'inbox.
  • Ordine e duplicati: le richieste possono arrivare fuori ordine e, raramente, due volte. Ordina per message.whatsapp_timestamp e salta un message.id che hai già gestito per lo stesso whatsapp_client_id. Se due dei tuoi numeri sono nello stesso gruppo, ciascuno invia la propria copia.
  • Messaggi in ritardo: un messaggio recuperato in ritardo, ad esempio dopo che il numero si riconnette o dopo una pausa dei controlli, viene comunque inviato, con replayed a true se ha più di 10 minuti. I messaggi arrivati mentre il numero era fermo non vengono inviati dopo Avvia (vedi Fermare, avviare o rimuovere un numero).
  • Controllo dell'indirizzo: l'URL viene ricontrollato prima di ogni richiesta; a un host che ora punta a una rete privata, o che non si risolve, non viene inviato nulla, e quel messaggio non viene ritentato.

Intestazioni#

IntestazioneValore
Content-Typeapplication/json
X-Wbiztool-Eventmessage_received o message_sent
X-Wbiztool-TimestampQuando è stata fatta la richiesta, in ISO 8601 UTC. Uguale a timestamp nel corpo.
X-Wbiztool-Webhook-IdL'ID inbox del numero. Uguale a webhook_id nel corpo.
X-Wbiztool-Signaturesha256= seguito dalla firma (vedi Verificare la firma).

Verificare la firma#

Ogni richiesta è firmata con il secret del webhook del numero usando HMAC-SHA256 sul corpo grezzo della richiesta, esattamente come ricevuto. Il digest esadecimale in minuscolo viene inviato in X-Wbiztool-Signature come sha256=<digest>. Un webhook impostato nella pagina Numeri inbox ha sempre un secret, quindi l'intestazione è sempre presente.

Calcola la firma dai byte grezzi prima di analizzare il JSON. Analizzare e ricodificare il corpo lo modifica (spazi, caratteri con escape), e la firma non corrisponderà.

// Express: register this route before app.use(express.json()), or the raw body is lost
import crypto from "node:crypto";
import express from "express";

const app = express();
const SECRET = process.env.WBIZTOOL_WEBHOOK_SECRET;

app.post("/wbiztool/webhook", express.raw({ type: "application/json" }), (req, res) => {
  const expected = "sha256=" + crypto.createHmac("sha256", SECRET).update(req.body).digest("hex");
  const received = req.get("X-Wbiztool-Signature") || "";

  const a = Buffer.from(received), b = Buffer.from(expected);
  const valid = a.length === b.length && crypto.timingSafeEqual(a, b);
  if (!valid) return res.status(401).send("Invalid signature");

  const data = JSON.parse(req.body.toString("utf8"));
  if (data.event === "message_received") {
    console.log(`New message from ${data.contact.phone}: ${data.message.content}`);
  }
  res.sendStatus(200); // answer quickly; do slow work in the background
});

app.listen(3000);

Per provare il tuo ricevitore prima che arrivi un messaggio vero, firma tu stesso un corpo e invialo:

BODY='{"event":"message_received","message":{"content":"Test"},"contact":{"phone":"12125550120"}}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$WBIZTOOL_WEBHOOK_SECRET" | sed 's/^.* //')
curl -X POST https://your-server.example/wbiztool/webhook -H 'Content-Type: application/json' -H "X-Wbiztool-Signature: sha256=$SIG" -d "$BODY"

La firma copre il corpo, compreso il suo timestamp, che è nuovo a ogni tentativo. Per rifiutare le richieste ripetute, scarta un timestamp più vecchio di 5 minuti e salta un message.id che hai già gestito.

Payload#

Esempi di corpi del webhook
{
  "event": "message_received",
  "timestamp": "2026-10-15T10:30:31.482913+00:00",
  "replayed": false,
  "webhook_id": 51,
  "whatsapp_client_id": "101",
  "whatsapp_phone": "12125550101",
  "platform": "whatsapp",
  "message": {
    "id": "[email protected]_3EB0C1A2B3D4E5F60718",
    "type": "chat",
    "content": "Can I add a gift note to it?",
    "from": "12125550120",
    "from_name": "Emma Thompson",
    "to": "12125550101",
    "timestamp": "2026-10-15T10:30:04+00:00",
    "whatsapp_timestamp": 1792060204,
    "direction": "incoming",
    "status": "pending",
    "is_forwarded": false,
    "forwarding_score": 0
  },
  "contact": {
    "whatsapp_id": "[email protected]",
    "phone": "12125550120",
    "lid": null,
    "phone_hidden": false,
    "name": "Emma Thompson",
    "is_group": false,
    "is_business": false
  },
  "organisation": {
    "id": "10314",
    "name": "Lumen & Wick"
  }
}

I numeri, gli ID e i nomi qui sopra sono esempi. Il corpo reale è una sola riga di JSON compatto, e ogni carattere non ASCII (lettere accentate, altri alfabeti, emoji) arriva come escape \uXXXX, ad esempio \ud83d\udcf8 per 📸. Potrebbero essere aggiunti altri campi; ignora quelli che non usi.

Campi di primo livello#

CampoTipoDescrizione
eventstringmessage_received o message_sent.
timestampstringQuando è stata fatta la richiesta (ISO 8601, UTC).
replayedbooleantrue quando il messaggio è di oltre 10 minuti precedente alla richiesta: un recupero, ad esempio dopo che il numero si riconnette. Altrimenti false. timestamp resta l'ora della richiesta.
webhook_idintegerL'ID inbox del numero.
whatsapp_client_idstringL'ID del tuo numero WhatsApp, come in Numeri WhatsApp e nell'API.
whatsapp_phonestringIl tuo numero WhatsApp, solo cifre.
platformstringwhatsapp, oppure telegram per le chat di un account Telegram.
messageobjectIl messaggio, vedi sotto.
contactobjectLa persona o il gruppo con cui è la chat, vedi sotto.
organisationobjectIl tuo spazio di lavoro: id (string) e name.
groupobjectSolo per le chat di gruppo: name, il nome del gruppo.

Campi di message#

CampoTipoDescrizione
idstringL'ID WhatsApp del messaggio. Usalo per saltare i duplicati.
typestringchat per il testo. Altrimenti il tipo WhatsApp, ad esempio image, video, audio, ptt (nota vocale), document, sticker, location, vcard (scheda contatto), poll_creation, call_log (una chiamata) o revoked (un messaggio eliminato).
contentstringIl testo di un messaggio chat. Altrimenti un'etichetta: 📸 Image, 🎥 Video, 🎵 Audio, 🎤 Voice Message, 😊 Sticker, Document: seguito dal testo del documento (Document se non c'è), oppure il tipo con l'iniziale maiuscola, come Location o Call_Log. Le didascalie di foto e video non sono incluse.
fromstringSempre il numero del contatto (o l'ID del gruppo), in entrambe le direzioni. Vuoto quando WhatsApp nasconde il numero.
from_namestringIl nome del contatto o del gruppo. Può essere vuoto.
tostringSempre il tuo numero WhatsApp, in entrambe le direzioni.
timestampstringQuando il messaggio è stato inviato su WhatsApp (ISO 8601, UTC).
whatsapp_timestampintegerLo stesso orario in secondi Unix.
directionstringincoming o outgoing. Usa questo campo, non from e to, per la direzione.
statusstringSempre pending: non è uno stato di consegna o di lettura.
is_forwardedbooleanSe il messaggio è stato inoltrato.
forwarding_scoreintegerAttualmente sempre 0.
mediaobjectPer foto, video, audio, note vocali, documenti e sticker: filename (spesso vuoto per le foto), mimetype, size in byte e, quando WbizTool ne ha salvato una copia, url.
media.urlstringUn link di download firmato che scade – dopo 3,5-7 giorni – quindi scarica il file quando arriva il webhook. Usalo esattamente come inviato. Manca quando il file non è stato salvato, ad esempio i file oltre 15 MB.
senderobjectSolo chat di gruppo: chi ha scritto il messaggio – name, phone (vuoto quando WhatsApp ne nasconde il numero) e phone_hidden (true quando lo nasconde).

Campi di contact#

CampoTipoDescrizione
whatsapp_idstringL'ID WhatsApp della chat: …@c.us per una persona, …@g.us per un gruppo, oppure un ID privacy come 62337239240946@lid.
phonestringIl numero senza +, o l'ID del gruppo. Vuoto quando WhatsApp nasconde il numero.
lidstring or nullL'ID privacy di WhatsApp del contatto, quando WhatsApp ne usa uno, altrimenti null.
phone_hiddenbooleantrue quando WhatsApp non condivide il numero del contatto. WbizTool inserisce il numero quando WhatsApp lo rende disponibile.
namestringIl nome del contatto o il nome del gruppo. Può essere vuoto.
is_groupbooleantrue per le chat di gruppo.
is_businessbooleantrue per gli account WhatsApp Business, quando si sa.

Zapier e numeri inbox#

Il trigger Incoming WhatsApp Message di WbizTool in Zapier usa questi webhook. Attivare uno Zap aggiunge il numero all'inbox se serve (occupando uno dei tuoi numeri inbox) e punta il suo webhook a Zapier, solo per i messaggi ricevuti, con un secret proprio; la scheda mostra un badge Zapier. Il tuo URL webhook, il tuo secret e le tue spunte tornano quando lo Zap viene disattivato.

Impostazioni webhook avvisa allora: "Questo webhook appartiene a uno Zap di Zapier. Se modifichi o rimuovi l’URL, lo Zap smette di ricevere messaggi." Anche Ferma e Rimuovi avvisano: lo Zap resta attivo in Zapier ma non riceve nulla, quindi disattivalo invece in Zapier. Vedi Come funziona il trigger con i tuoi numeri inbox.

Senza il componente aggiuntivo Unibox#

La pagina dice "Nessun componente aggiuntivo Unibox" e "Il componente aggiuntivo Unibox non è attivo in questo spazio di lavoro.", e Aggiungi numero all’inbox apre Componente aggiuntivo Unibox richiesto: "Per aggiungere numeri WhatsApp all’inbox condivisa e ricevere i loro messaggi via webhook, abbonati al componente aggiuntivo Unibox." Un Proprietario fa clic su Vedi i componenti aggiuntivi e aggiunge il componente aggiuntivo Numero Unibox in Fatturazione e piani, su un piano a pagamento o a vita (non nella prova gratuita).

La pagina Numeri inbox senza il componente aggiuntivo: Nessun componente aggiuntivo Unibox, l'avviso giallo Il componente aggiuntivo Unibox non è attivo in questo spazio di lavoro con il pulsante Vedi i componenti aggiuntivi evidenziato, e Ancora nessun numero nell'inbox

Quando il componente aggiuntivo termina o un numero si disconnette#

  • Il componente aggiuntivo termina: tutti i numeri inbox vengono fermati, subito o entro circa un'ora. Le schede mostrano Fermato con "Fermato perché il componente aggiuntivo Unibox non è attivo in questo spazio di lavoro." Proprietari ed Editor vengono informati di quali inbox sono state fermate, nell'email di fatturazione o nell'avviso "Alcuni numeri o funzioni di … si sono fermati" (Problemi con numeri e invii in Notifiche). Conversazioni, URL webhook e secret vengono conservati: quando il componente aggiuntivo torna attivo, fai clic su Avvia su ogni numero. I messaggi del periodo in cui era fermo vengono poi aggiunti all'inbox, fino a 30 giorni prima, ma non inviati al tuo webhook.
  • Il componente aggiuntivo copre meno numeri di quelli attivi: "Ci sono più numeri attivi di quanti ne consenta il tuo componente aggiuntivo. Quelli in eccesso più recenti vengono fermati automaticamente entro circa un’ora."
  • Il numero si disconnette: la scheda mostra Numero disconnesso e non viene sincronizzato né inviato nulla. Dopo che lo riconnetti, anche i messaggi arrivati nel frattempo vengono recuperati e inviati; quelli con più di 10 minuti hanno replayed a true.
  • Viene riconnesso con un altro telefono: il numero inbox e il suo webhook proseguono con il nuovo numero (stesso whatsapp_client_id, nuovo whatsapp_phone) da quel momento; le vecchie chat restano nell'inbox come cronologia.

Risoluzione dei problemi#

Messaggio o problemaCosa fare
Componente aggiuntivo Unibox richiesto, oppure "Serve il componente aggiuntivo Unibox."Chiedi a un Proprietario di aggiungere il componente aggiuntivo Unibox; vedi Senza il componente aggiuntivo Unibox.
"Tutti i tuoi numeri inbox sono in uso. Prima fermane o rimuovine uno, oppure aggiungine altri al componente aggiuntivo Unibox."Ferma o rimuovi un numero che non ti serve, oppure aumenta la quantità del componente aggiuntivo. I numeri fermati non contano.
"Nessun numero WhatsApp connesso è disponibile da aggiungere."Tutti i numeri collegati sono già nell'inbox, oppure nessuno è collegato con un codice QR o di abbinamento. Fai clic su Collega un numero.
"Questo numero non è più connesso. Riconnettilo o scegline un altro."Riconnettilo in Numeri WhatsApp, poi riprova.
"Inserisci un indirizzo completo che inizi con https://" o "L’URL del webhook deve iniziare con https://"Usa un indirizzo https://; http:// non è accettato.
"L’indirizzo può contenere al massimo 500 caratteri."Usa un URL più corto, ad esempio senza una lunga query.
"L’URL del webhook deve puntare a un indirizzo Internet pubblico."L'host è localhost, un indirizzo di rete privata, oppure non si risolve. Usa un indirizzo pubblico, o un tunnel durante i test.
Numeri inbox non compare nella barra laterale, oppure "Solo il proprietario dello spazio di lavoro o un editor può farlo."Sei Analista. Chiedi a un Proprietario di renderti Editor; vedi Ruoli e autorizzazioni.
Non arriva nessun webhookControlla che la scheda mostri In sincronizzazione, che l'URL sia corretto e che la casella sia spuntata in Messaggi da inviare. Il tuo server deve rispondere 2xx entro 8 secondi, con un certificato valido. Le risposte dall'inbox non vengono inviate.
Mancano alcuni webhookIl tuo server ha risposto 4xx o 3xx, ha fallito tutti e 3 i nuovi tentativi, oppure il suo host non si è risolto. Controlla i suoi log all'ora del messaggio mancante. I messaggi arrivati mentre il numero era fermo non vengono inviati: leggili nell'inbox.
La firma non corrispondeUsa il corpo grezzo, non il JSON ricodificato, e il secret attuale. Mentre uno Zap usa il numero, le richieste vanno a Zapier con il secret di Zapier.
Un link a un file multimediale restituisce un erroreÈ scaduto. Scarica i file quando arriva il webhook.

Pagine correlate#