Torna all’App
Torna a Clienti

La Timeline del Cliente e gli Eventi dal tuo Gestionale

La Timeline è il racconto di cosa è successo a un cliente, in ordine di tempo: quando il contratto è partito, quando è stato messo in pausa, quando un pagamento è arrivato e con quanti giorni di ritardo, quando gli è stata mandata una notifica. Non devi ricordarti di scriverci nulla: si riempie da sola.

E se il tuo gestionale sa cose che SalesControl non può sapere — una call di onboarding fissata, un accesso consegnato, una campagna approvata — puoi fargliele raccontare con un webhook: ogni evento che invii diventa una riga della Timeline, con la sua data e ora.

Piano richiesto

La Timeline e i webhook eventi richiedono un piano a pagamento (dal piano Starter in su). Vedi i Piani di Abbonamento.

Dove si trova

Apri un cliente dalla lista Clienti e scegli la scheda Timeline. Ogni riga porta l’evento e il momento in cui è stato registrato, nel tuo fuso orario.

È una cosa diversa dalla scheda Logs: quella è il registro tecnico completo, riservato a chi ha il permesso di vedere i log, e contiene anche importi e dettagli interni. La Timeline racconta i fatti del rapporto con quel cliente, senza i dettagli riservati: per questo la vede tutto il team.

Quello che si registra da solo

Senza configurare nulla, finiscono in Timeline gli eventi che SalesControl già conosce:

Quella storia è una copia, non un collegamento: se il lead viene poi eliminato, gli eventi travasati sul cliente restano dove sono. E una seconda conversione dello stesso lead non crea doppioni.

Nota

La Timeline parte dal 19 agosto 2026: gli eventi anteriori non vengono ricostruiti a posteriori. Un contratto firmato a giugno non avrà la riga “contratto partito”, ma da qui in avanti tutto viene registrato. La storia da lead ha una data di nascita sua: il suo registro esiste dal 28 agosto 2026, quindi un lead lavorato prima porta in dote solo ciò che è stato registrato da quel giorno in poi.

Gli eventi dall’ecosistema (GodAds)

Se la tua agenzia usa anche GodAds e le due piattaforme sono collegate tramite l’Ecosistema, nella Timeline possono comparire anche gli eventi che arrivano da lì. Toccano solo i clienti che SalesControl riconosce con certezza (gli altri aspettano nella lista Clienti non abbinati della card Ecosistema, dove li abbini a mano) e dipendono da due interruttori che l’Admin trova nella stessa card, entrambi spenti finché non li attiva.

Come si collega l’ecosistema, come si accendono le automazioni e come si abbinano gli eventi in attesa è spiegato in Collegare SalesControl all’Ecosistema (GodAds).

Portare gli eventi del tuo gestionale

Nel Pannello Admin, scheda Integrazioni, la card Eventi personalizzati crea gli indirizzi a cui il tuo gestionale può mandare quello che succede.

Con l’app GoHighLevel basta un tag

Se hai collegato l’app GoHighLevel non serve un webhook per ogni evento: nella card Eventi da tag GoHighLevel decidi quale tag, aggiunto a un contatto del sotto-account dell’agenzia o di un cliente, scrive quale evento nella Timeline. Gli eventi da tag che non trovano il cliente finiscono nella stessa coda qui sotto, con l’etichetta tag GHL.

Crea un webhook

Nuovo webhook, dagli un nome che ti ricordi a cosa serve (“Onboarding”, “Accessi consegnati”). Puoi crearne quanti ne vuoi: uno per tipo di evento tiene le automazioni ordinate.

Copia l’indirizzo

Finisce con /functions/v1/client-event-intake?t=…. La parte dopo t= è il token di quel webhook: chi lo possiede può scrivere eventi nella tua agenzia, quindi trattalo come una credenziale.

Incollalo nel tuo strumento

In GoHighLevel: in un workflow aggiungi l’azione Webhook, metodo POST, e aggiungi i campi personalizzati. In Zapier o Make: una richiesta POST allo stesso indirizzo con un corpo JSON.

Usa i template pronti

La voce Come configurarlo apre due esempi JSON già pronti, uno per ciascuno dei due casi spiegati qui sotto, ognuno col suo pulsante di copia.

Due casi, due template: chi sta inviando?

È il punto più importante da capire, e l’unico dove si può sbagliare in modo silenzioso.

Se il workflow parte dal sotto-account del cliente

È il caso normale: il cliente ha il suo sotto-account in GoHighLevel e l’automazione gira lì. Le variabili della location indicano proprio lui, quindi bastano quelle:

{
  "event": "Contratto firmato",
  "location_id": "{{location.id}}",
  "location_name": "{{location.name}}",
  "external_event_id": ""
}

Al primo evento SalesControl riconosce il cliente dal nome e impara l’identificativo del sotto-account: da quel momento gli eventi successivi lo trovano subito, anche se il nome nel gestionale cambia.

Se il workflow parte dal sotto-account dell’agenzia

Alcune procedure che riguardano un cliente girano dal tuo sotto-account: una call di onboarding che prenoti tu, per dire. Lì la variabile della location è l’agenzia, non il cliente. Dichiaralo con location_type e indica il cliente per nome:

{
  "event": "Onboarding prenotata",
  "location_type": "agenzia",
  "cliente_nome": "Nome del cliente",
  "contact_id": "{{contact.id}}",
  "external_event_id": ""
}

Il contact_id è ciò che rende automatici gli invii successivi. Nel tuo sotto-account i contatti sono i tuoi clienti: al primo evento SalesControl riconosce il cliente dal nome e impara quel contatto; da allora il nome non serve più, e l’evento arriva a destinazione anche se in GoHighLevel il cliente viene rinominato. Se non lo mandi, funziona lo stesso: ogni volta si tornerà a confrontare il nome.

Perché conta davvero

Senza quella dichiarazione, SalesControl prenderebbe la location dell’agenzia per quella del cliente e la collegherebbe al primo cliente riconosciuto per nome. Da quel momento ogni evento inviato dal tuo sotto-account — anche quelli di altri clienti — finirebbe addosso a lui, senza nessun errore visibile. Con location_type impostato a agenzia la location viene conservata ma ignorata: né cerca il cliente né viene mai collegata.

Il valore da scrivere è agenzia (va bene anche agency). Dai sotto-account dei clienti il campo si omette: l’assenza significa già “sono il cliente”.

I campi accettati

CampoChiavi riconosciuteA cosa serve
Nome dell’eventoevent, evento, event_name, tipo_evento, azioneIl testo che comparirà in Timeline. Se il webhook ha un nome evento predefinito, può anche mancare.
Identificativo del sotto-accountlocation_id, ghl_location_id, sub_account_id, account_idIl sotto-account del cliente. Al primo aggancio viene collegato e poi basta lui.
Nome del sotto-accountlocation_name, nome_location, sub_account, account_nameServe al primo aggancio, per riconoscere il cliente dal nome.
Tipo di sotto-accountlocation_type, tipo_locationScrivi agenzia quando invii dal tuo sotto-account. Omettilo negli altri casi.
Clientecliente_nome, customer_name, client_name, customer_name, oppure cliente_idIndica il cliente per nome. È la strada da usare quando invii dall’account dell’agenzia.
Contattocontact_id, ghl_contact_id, id_contattoSolo dagli invii dell’agenzia: il contatto che rappresenta il cliente. Viene collegato al primo aggancio e poi basta lui.
Id dell’eventoexternal_event_id, event_id, idempotency_keyChiave anti-doppioni: se lo stesso identificativo torna, l’evento non viene registrato due volte.

I nomi si leggono senza distinzione tra maiuscole e minuscole. In GoHighLevel i valori personalizzati del workflow finiscono dentro customData: il webhook legge sia quelli, sia il livello principale, sia contact — e un campo personalizzato lasciato vuoto non cancella il valore standard con lo stesso nome.

Quando è successo

La data e l’ora sono quelle in cui l’evento arriva, prese dall’orologio del server: è ciò che rende la Timeline una prova e non una dichiarazione. Se vuoi registrare che qualcosa è avvenuto davvero, manda un secondo evento nel momento in cui avviene — per esempio “Onboarding prenotata” quando la si prenota e “Onboarding fatta” quando si tiene.

Come l’evento trova il cliente

Perché due chiavi diverse

Le due non si scambiano mai di posto, ed è voluto. Nel sotto-account di un cliente la location è lui, mentre i contatti sono i suoi lead: impararne uno significherebbe scambiare un lead per il cliente. Nel tuo sotto-account è l’opposto — la location sei tu, i contatti sono i tuoi clienti.

La coda degli eventi da associare

Gli eventi che non trovano un cliente non si perdono: restano nella card Eventi personalizzati, sotto Eventi da associare, con il nome e l’identificativo arrivati. Scegli il cliente e conferma: l’evento entra in Timeline con la sua data originale, non con quella di oggi.

Se l’evento portava un sotto-account del cliente, associandolo colleghi anche quello, e le altre righe in attesa con la stessa provenienza vengono sistemate insieme. Lo stesso vale per gli eventi arrivati dall’agenzia che portano un contact_id: associandone uno colleghi il contatto e le altre righe dello stesso contatto vengono sistemate insieme. Se invece il contatto non c’era, quegli eventi si associano uno per uno: la location dell’agenzia non appartiene a nessun cliente e non può fare da criterio per gli altri.

Il collegamento al gestionale

Quando un cliente è collegato a un sotto-account, nella sua Timeline compare l’etichetta Collegato al gestionale con il pulsante Scollega. Se è collegato anche a un contatto — cioè se ricevi suoi eventi dal tuo sotto-account — compare accanto l’etichetta Collegato al contatto, con il suo Scollega.

Scollegando, gli eventi che arrivavano per quella via smettono di agganciarsi da soli e torneranno nella coda di associazione — quelli già registrati restano dove sono. I due collegamenti sono indipendenti: puoi disfarne uno e tenere l’altro. Serve quando un collegamento è stato imparato sul cliente sbagliato, o quando un cliente cambia sotto-account.

Mostrare gli eventi nella chat del cliente

Gli eventi possono comparire anche nella chat con il cliente, come annotazioni al centro della conversazione — non come messaggi di qualcuno. Il cliente vede solo il nome dell’evento, mai i dettagli.

Solo alcuni eventi possono arrivare in chat: i passi della firma, gli appuntamenti, la storia da lead e le correzioni interne restano sempre e solo in Timeline.

Portare la Timeline fuori

Se qualcosa non funziona