CRM-koppeling
Zodra een sessie een naam krijgt, komt de opname als notitie bij die persoon in uw CRM terecht: bij het bestaande contact, zonder een nieuw contact aan te maken.
1. Wat dit doet, in één zin
Zodra een sessie wordt geïdentificeerd, zoeken we de persoon in uw CRM op via de identificatie die u ons hebt gestuurd en voegen we een notitie met een link naar de opname toe.
Dat is alles. Geen nieuwe contacten, geen nieuwe deals en geen wijzigingen aan uw pipeline. Een CRM dat een duplicaat aanmaakt telkens wanneer iemand uw prijspagina bezoekt, is slechter dan geen integratie.
Als we de persoon niet kunnen vinden, gebeurt er niets. Die aanmaken zou betekenen dat we op basis van een browsersessie een record in uw CRM schrijven, en browsersessies zijn geen betrouwbare bron voor wie uw klanten zijn.
2. De zoeksleutel: hoe we de persoon vinden
Dit onderdeel verdient tien minuten aandacht, want hier gaat een CRM-integratie meestal ongemerkt mis.
We kennen de bezoeker via wat uw site ons heeft verteld: via MousePlayer.setUserId(), via een unieke ID die uit uw analysetool is uitgelezen of via een identify-aanroep vanaf de server. Uw CRM kent de persoon ook via een bepaalde waarde. Die twee waarden moeten gelijk zijn.
| We zoeken op | U kunt dit wijzigen | |
|---|---|---|
| HubSpot | het e-mailadres van het contact | nee; het zoekendpoint is hierop gebaseerd |
| Pipedrive | personen via een zoekterm, eerst op e-mail | nee |
| Salesforce | een veld dat u opgeeft, standaard Email | ja |
Waarom Salesforce hiernaar vraagt
Salesforce-installaties gebruiken zelden e-mail als sleutel. Uw installatie gebruikt misschien Customer_Number__c, of een externe ID uit uw factureringssysteem. Als we toch op e-mail zouden zoeken, zouden we niets vinden en succes melden: de ergste fout, omdat de integratie lijkt te werken.
Daarom vraagt het formulier: welk veld op Contact bevat de waarde die we u sturen? Vul de API-naam in, inclusief __c als het een aangepast veld is.
De veldnaam wordt aan een strikt patroon getoetst voordat deze in een query terechtkomt. Een CRM-veldnaam bestaat uit letters, cijfers en onderstrepingstekens. Alles daarbuiten wordt geweigerd in plaats van ge-escaped, omdat escapen subtiel fout kan gaan en weigeren niet.
3. Wanneer de koppeling wordt geactiveerd en wanneer bewust niet
Bij identificatie: wanneer uw site MousePlayer.setUserId()aanroept, wanneer onze analysekoppeling een unieke ID uit PostHog, Mixpanel of Amplitude uitleest of wanneer uw server het identify-endpoint aanroept.
Eén keer per sessie, niet per pagina
Iemand die inlogt en daarna elf pagina’s bekijkt, levert één notitie op, geen elf. Uw CRM-tijdlijn is een plek die mensen lezen.
Niet zonder identificatie
Een anonieme sessie heeft niets om op te koppelen. We raden niet op basis van een IP-adres en voegen de opname niet toe aan wie toevallig hetzelfde adres deelt.
Niet als uw CRM de persoon niet kent
Dit telt als voltooid, niet als mislukt. Een prospect die nog niet in uw CRM staat, is normaal, en morgen opnieuw proberen zou daar niets aan veranderen.
4. Hoe de notitie eruitziet en waar het token blijft
Eén notitie op de tijdlijn van het contact: een regel die meldt dat een sessie is opgenomen en de link. Uw verkoper klikt erop en ziet wat de persoon werkelijk deed voordat deze contact opnam.
Het toegangsgegeven
Wordt met AES-256-GCM versleuteld opgeslagen. Na het opslaan wordt het nooit meer getoond: het veld toont sterretjes, en het formulier opslaan met sterretjes laat de opgeslagen waarde ongemoeid. Het blijft ook bewust buiten de interne wachtrij voor de taak. Die wachtrij bevat gedeelde gegevens, en dat is de verkeerde plek voor een sleutel.
Salesforce heeft drie dingen nodig, de andere twee
Salesforce authenticeert via een Connected App met een vernieuwingstoken en vraagt daarom om de Consumer Key, de Consumer Secret en het vernieuwingstoken, plus de URL van uw instantie. HubSpot en Pipedrive gebruiken één API-token. In alle drie de gevallen is de app van u; MousePlayer gebruikt geen marketplace-app die u moet vertrouwen.
5. Zoho CRM en Freshsales
Nog twee CRM-systemen, met sterk uiteenlopende inspanningen voor de configuratie.
| Zoho CRM | Freshsales | |
|---|---|---|
| U geeft op | datacenter, client-ID, clientgeheim en vernieuwingstoken | API-sleutel en uw Freshworks-domein |
| We zoeken op | een veld dat u opgeeft, standaard Email | een veld dat u opgeeft, standaard email |
| De notitie komt terecht | bij het contact, als Note-record | bij het contact, als notitie |
Zoho staat in een van zes datacenters
Een account staat in com, eu, in, com.au, jp of com.cn, en niets in de sleutel vertelt u welke locatie het is. Kies de verkeerde en Zoho antwoordt met INVALID_TOKEN , wat lijkt op een onjuiste sleutel en u op het verkeerde spoor zet. Precies daarom is dit veld een keuzelijst.
De Self Client, eenmalig
Maak een Self Client in de Zoho API-console, genereer een grant-token voor ZohoCRM.modules.ALL en ZohoSearch.securesearch.READen wissel dat eenmalig in voor een vernieuwingstoken. Dat vernieuwingstoken verloopt niet; de toegangstokens voor telkens een uur worden ermee opgehaald en nooit opgeslagen.
Zoho antwoordt met 200 wanneer het nee bedoelt
Zowel het uitwisselen van tokens als het schrijven van records kan HTTP 200 retourneren met een fout of een status per record in de antwoordtekst. We lezen die inhoud: een koppeling die op de statuscode vertrouwde, zou succes melden voor een notitie die nooit is aangemaakt.
Alle genoemde handelsmerken zijn eigendom van hun respectieve eigenaren. MousePlayer heeft geen zakelijke relatie met deze aanbieders.