Torna all’App
Torna a Leads

Ricevere Lead da GHL, Zapier o Make

Un webhook lead-in è un indirizzo che il tuo gestionale (GoHighLevel, Zapier, Make o qualunque strumento capace di inviare una chiamata HTTP) usa per consegnare i contatti a SalesControl. Quando il webhook riceve un contatto, questo compare subito nella pagina Leads, già assegnato.

Piano richiesto

Questa funzione richiede un piano a pagamento (dal piano Starter in su). Vedi i Piani di Abbonamento.

Dove si configura

Apri Impostazioni › Integrazioni e apri il gruppo Webhook: la card Webhook Lead-in è riservata agli admin.

Creare un webhook

Clicca “Nuovo webhook”

Dai un Nome riconoscibile (per esempio “GHL — chiamate”): serve a capire da dove arrivano i lead quando ne hai più di uno.

Imposta i valori predefiniti

Fonte predefinita (per esempio “Facebook Ads”) viene usata quando il contatto arriva senza fonte. Setter e Closer predefiniti sono la rete di sicurezza per i contatti che non indicano un nome, o ne indicano uno non riconoscibile.

Copia l’URL

Il pulsante Copia URL mette negli appunti l’indirizzo completo del webhook, token compreso.

Incollalo nel tuo strumento

In GoHighLevel: Automazioni › Workflow › aggiungi l’azione Webhook con metodo POST e incolla l’URL. In Zapier o Make: aggiungi il modulo Webhooks, scegli POST, incolla l’URL e componi il corpo JSON con i campi qui sotto.

Nella card, sotto l’elenco, la voce Come si collega (GHL / Zapier / Make) apre le stesse istruzioni insieme al Template JSON pronto da copiare.

I campi accettati

L’unico requisito è che arrivi almeno il nome oppure l’email. Tutto il resto è facoltativo.

Campo del leadChiavi riconosciute
Nome completoname, nome, full_name, contact_name. Se manca, viene composto da first_name + last_name.
Nome e Cognomefirst_name (o firstname) e last_name (o lastname): vengono ora salvati anche separatamente, non solo fusi nel nome completo. Un valore vuoto non cancella la parte già registrata.
Emailemail, email_address
Telefonophone, telefono, mobile, tel, phone_number
Aziendacompany, azienda, company_name, business_name, organization
Fontesource, source, lead_source, contact_source
Stato trattativanote, notes, note, message, description, stato_trattativa
Call conoscitivadiscovery_call_date, call_date, call_conoscitiva, appointment_date, appointment_date — oppure, in automatico, calendar.startTime dai trigger appuntamento di GHL
Ultimo follow-uplast_followup, last_contact_date, ultimo_followup, ultimo_contatto
Prossimo follow-upnext_contact_date, follow_up_date, prossimo_contatto
Note (cosa dire)what_to_say, what_to_say, next_contact_note
Settersetter, setter_name, venditore
Closercloser, closer_name
Lingualanguage, language, lead_language, locale
La lingua è testo libero, quindi mandane il codice

Nel modulo del lead la lingua è una tendina chiusa sulle cinque lingue dell’app, ma il webhook accetta ancora qualunque testo e lo salva così com’è. Un invio con “Inglese” o “English” non viene riconosciuto: il lead viene creato lo stesso, ma quella lingua non concorre a dedurre il mercato e alla riapertura in modifica il campo si mostra come “Non impostata”. Manda i codici it, en, es, de, fr.

Nota

Le date sono accettate sia come GG/MM/AAAA sia come AAAA-MM-GG (un eventuale orario in coda viene ignorato). Se il formato non è riconosciuto, quel campo resta vuoto ma il lead viene creato lo stesso: non si perde mai un contatto per colpa di una data.

Il formato di GoHighLevel

GHL non manda sempre i campi allo stesso livello: i dati del contatto possono stare dentro contact e i valori personalizzati dentro customData. Il webhook li legge entrambi. In caso di doppioni vince customData, poi il livello principale, infine contact — ma un campo personalizzato vuoto non cancella il valore standard con lo stesso nome.

La data della call dai booking calendario

Se il workflow GHL parte da un trigger appuntamento (una prenotazione sul calendario), GHL include da solo nel messaggio un oggetto calendar con l’orario dell’appuntamento: il webhook legge calendar.startTime (accettati anche start_time e starttime) e compila la call conoscitiva in automatico — non serve configurare un campo personalizzato con la data. I campi espliciti della tabella (discovery_call_date e gli altri, in customData, al livello principale o dentro contact) vincono se contengono una data riconosciuta; solo se mancano, o sono in un formato rifiutato, si ripiega su calendar.startTime. L’ora della call viene letta dalla stessa stringa da cui è stata capita la data — a meno che il messaggio non porti un campo ora dedicato (es. call_ora, appointment_time), che vince sempre. Da una data rifiutata non viene mai presa un’ora.

Setter e closer per nome

Nei campi setter e closer puoi mandare il nome del membro del team: viene abbinato in automatico anche se scritto in modo abbreviato (nome, cognome o iniziale). Se il nome è ambiguo (due membri compatibili) o non viene riconosciuto, si usano il setter e il closer predefiniti del webhook. Il lead viene creato in ogni caso.

Contatti già presenti

Se arriva un contatto che corrisponde a un lead già Open — stessa email, oppure stesso telefono, anche quando l’email nel messaggio è diversa da quella registrata — non viene creato un doppione: i campi presenti nel messaggio aggiornano il lead esistente, quelli assenti restano come sono. Setter e closer vengono cambiati solo se il messaggio contiene un nome riconosciuto. In questo caso non parte la notifica “Nuovo Lead”.

L’ordine è questo: se l’email c’è e corrisponde a un lead Open, vince sempre lei. Se invece l’email è nuova (nessun lead Open la usa) oppure manca del tutto, si confronta il telefono: il numero viene normalizzato guardando le ultime 9 cifre, così i prefissi internazionali non contano, e a parità di numero il lead esistente viene aggiornato. È il caso tipico della stessa persona che compila il form con un’email e poi prenota la call con un’altra, ma con lo stesso numero di telefono.

Un lead Lost non blocca nulla: un contatto archiviato che ritorna crea un lead nuovo.

Chi è già cliente (o un lead Won) invece non diventa più un lead: una persona è lead oppure cliente, mai entrambi. Il contatto viene riconosciuto per id contatto GHL, email o telefono. Se il messaggio porta un appuntamento, la call compare in Agenda sulla scheda del cliente; se è un form senza appuntamento, la richiesta viene salvata come nota Da webhook nella sezione Note del cliente, con il nome del webhook, la fonte e il testo ricevuto. Per questo conviene che ogni cliente abbia email e telefono compilati nella sua scheda: senza, il webhook non può riconoscerlo.

La notifica “Nuovo Lead”

È disattivata di default. Per accenderla vai in Pannello Admin › Notifiche, cerca Nuovo Lead e scegli canali e destinatari (setter, closer, admin, sales manager).

Ricevere le note da GHL (webhook “Solo nota”)

Ogni webhook ha due indirizzi. Il primo, Lead e appuntamenti, è quello descritto finora. Il secondo, Solo nota, serve a portare in SalesControl una nota scritta in GoHighLevel: usa lo stesso token, quindi Disattiva e Rigenera token valgono per entrambi.

In GoHighLevel crea un workflow con trigger Note Added e un’azione Webhook (metodo POST) verso l’URL Solo nota. GHL manda da solo il contatto e il testo della nota: il template Template per il trigger “Note Added” della card serve solo con Zapier, Make o un webhook personalizzato. La nota compare nella sezione Note della scheda del lead (o del cliente, se il lead è già stato convertito) con l’etichetta Da webhook.

Il lead non viene creato né modificato: se il contatto non esiste in SalesControl la nota viene ignorata, senza errori per GHL.

DatoChiavi riconosciute
Testo della notanote, nota, note_body (anche notes, note_text, body, message, text). Il formato standard di GHL, note.body, viene letto da solo; se la nota arriva in HTML viene convertita in testo semplice. Massimo 5000 caratteri.
Contattocontact_id (l’id del contatto GHL), email, phone: ne basta uno.

L’abbinamento al contatto segue quest’ordine: prima l’id del contatto GHL, poi l’email, infine il telefono. Per ciascuno si cerca prima un lead Open, poi un lead già convertito, infine un cliente. Se il dato corrisponde a più contatti, la nota non viene salvata.

Nessun doppione

Se la stessa nota arriva due volte per lo stesso contatto entro 10 minuti (per esempio quando GHL ritenta l’invio), viene salvata una volta sola.

Gestire i webhook nel tempo

Attenzione

L’URL contiene un token: chi lo possiede può inserire o aggiornare lead e aggiungere note ai contatti della tua agenzia. Non può però leggere nulla. Trattalo come una credenziale e, se finisce nel posto sbagliato, usa Rigenera token.

Se qualcosa non funziona