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 perModificabile
HubSpotl’e-mail del contattono: l’endpoint di ricerca si basa su quella
Pipedrivepersone per termine, prima per e-mailno
Salesforceun campo indicato da lei, predefinito Emailsì

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 CRMFreshsales
Da fornirecentro dati, ID client, client secret, token di aggiornamentochiave API e dominio Freshworks
Cerchiamo perun campo indicato da lei, predefinito Emailun campo indicato da lei, predefinito email
La nota arrivasul contatto, come record Notesul 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.