Connettore CRM
Quando una sessione riceve un nome, la registrazione diventa una nota sulla persona nel CRM: sul contatto esistente, senza crearne uno nuovo.
1. Cosa fa, in una frase
Quando una sessione viene identificata, cerchiamo la persona nel CRM tramite l’identificativo ricevuto e aggiungiamo una nota con il link alla registrazione.
Nient’altro. Nessun nuovo contatto o affare, nessun cambiamento alla pipeline. Un CRM che crea un duplicato a ogni visita alla pagina prezzi è peggio di nessuna integrazione.
Se non troviamo la persona, non succede nulla. Crearla significherebbe scrivere una scheda nel CRM da una sessione browser, che non è una fonte affidabile su chi siano i clienti.
2. La chiave di corrispondenza: come troviamo la persona
Questa parte merita dieci minuti di attenzione: è qui che un’integrazione CRM tende a fallire silenziosamente.
Conosciamo il visitatore tramite ciò che ci ha comunicato il sito: MousePlayer.setUserId(), un ID distinto recuperato dallo strumento di analisi o una chiamata di identificazione lato server. Anche il CRM lo conosce tramite un dato. I due dati devono coincidere.
| Cerchiamo per | Modificabile | |
|---|---|---|
| HubSpot | l’e-mail del contatto | no: l’endpoint di ricerca si basa su quella |
| Pipedrive | persone per termine, prima per e-mail | no |
| Salesforce | un campo indicato da lei, predefinito Email | sì |
Perché Salesforce chiede il campo
Le installazioni Salesforce usano raramente l’e-mail come chiave. La sua potrebbe usare Customer_Number__c, oppure un ID esterno del sistema di fatturazione. Cercando comunque per e-mail non troveremmo nulla e segnaleremmo successo: il peggior errore, perché l’integrazione sembra attiva.
Perciò il modulo chiede: quale campo di Contact contiene il valore che le inviamo? Inserisca il nome API, incluso il suffisso __c se è un campo personalizzato.
Il nome viene verificato con un modello rigoroso prima di raggiungere una query. I nomi dei campi CRM contengono lettere, cifre e trattini bassi: il resto viene rifiutato anziché sottoposto a escape, perché l’escape può contenere errori sottili e il rifiuto no.
3. Quando si attiva e quando volutamente no
All’identificazione: quando il sito chiama MousePlayer.setUserId(), quando il connettore di analisi recupera un ID distinto da PostHog, Mixpanel o Amplitude, oppure quando il server chiama l’endpoint di identificazione.
Una volta per sessione, non per pagina
Una persona che accede e visita undici pagine produce una nota, non undici. La timeline del CRM deve restare leggibile.
Non senza identificativo
Una sessione anonima non offre nulla da confrontare. Non indoviniamo tramite indirizzo IP né associamo la registrazione a chi condivide casualmente quell’indirizzo.
Non se la persona è sconosciuta al CRM
Considerato completato, non fallito: un potenziale cliente non ancora nel CRM è il caso normale e riprovare domani non cambierebbe nulla.
4. Come appare la nota e dove resta il token
Una nota nella timeline del contatto: una riga che segnala una sessione registrata e il link. Il commerciale fa clic e vede cosa ha fatto davvero la persona prima di scrivere.
La credenziale
Conservata cifrata con AES-256-GCM. Non viene più mostrata dopo il salvataggio: il campo mostra asterischi e salvare con gli asterischi lascia invariato il valore. È anche esclusa dalla coda interna che trasporta l’attività: la coda è uno stato condiviso, il posto sbagliato per una chiave.
Salesforce richiede tre elementi, gli altri due
Salesforce si autentica tramite una Connected App con token di aggiornamento, quindi chiede Consumer Key, Consumer Secret e token di aggiornamento, più l’URL dell’istanza. HubSpot e Pipedrive usano un unico token API. L’app è sempre sua: MousePlayer non gestisce un’app di marketplace a cui dover accordare fiducia.
5. Zoho CRM e Freshsales
Altri due CRM, con impegni di configurazione molto diversi.
| Zoho CRM | Freshsales | |
|---|---|---|
| Da fornire | centro dati, ID client, client secret, token di aggiornamento | chiave API e dominio Freshworks |
| Cerchiamo per | un campo indicato da lei, predefinito Email | un campo indicato da lei, predefinito email |
| La nota arriva | sul contatto, come record Note | sul contatto, come nota |
Zoho usa uno di sei centri dati
Un account si trova in com, eu, in, com.au, jp oppure com.cn, e la chiave non indica quale. Scegliendo quello sbagliato Zoho risponde INVALID_TOKEN - sembra una chiave errata e fa cercare nel posto sbagliato. Il campo è un menu a discesa proprio per questo.
Configurare Self Client una volta
Crei un Self Client nella console API Zoho, generi un grant token per ZohoCRM.modules.ALL e ZohoSearch.securesearch.READ, poi lo scambi una volta con un token di aggiornamento. Questo non scade; i token di accesso orari vengono ricavati da esso e mai conservati.
Zoho risponde 200 anche quando rifiuta
Lo scambio di token e la scrittura di record possono restituire HTTP 200 con un errore o uno stato per record nel corpo. Leggiamo il corpo: fidarsi del codice di stato significherebbe segnalare successo per una nota mai creata.
Tutti i marchi citati appartengono ai rispettivi titolari. MousePlayer non ha rapporti commerciali con questi fornitori.