Come gestire dentro HubSpot i contatti provenienti da form non HubSpot

Alcuni nostri clienti che utilizzano HubSpot preferiscono non utilizzare i form forniti dalla piattaforma, in quanto, nella versione free, non sono completamente personalizzabili graficamente. Hanno tuttavia l'esigenza di inserire questi contatti dentro HubSpot CRM. Come fare per inserirli in automatico?

Richiesta del cliente

Un nostro cliente, che utilizza il CMS WordPress e il plugin Contact Form 7, ha chiesto di aiutarlo a immettere i contatti dei moduli di contatto dentro HubSpot, per usarli poi per inviare newsletter. Al momento dell'invio del form, oltre all'inserimento nel CRM, era inoltre necessario collegarsi ad un webservice per recuperare alcune informazioni in base ai dati inseriti dal cliente e usare questi dati per mandare le email.

Prima soluzione

HubSpot fornisce di default un sistema per la raccolta dei dati da altri form, semplicemente attivando un'opzione dal pannello di amministrazione:form-non-hubspot

Con questa opzione attiva, tutti i contatti che invieranno uno qualsiasi dei form all'interno del sito saranno inseriti in automatico all'interno del CRM assieme alle informazioni inviate,  e i form compariranno nell'elenco form di HubSpot, chiamati con la loro classe o le loro classi CSS:

elenco-form-non-hubspot

Perché questa soluzione funzioni a dovere, però, sono però necessarie alcune condizioni:

  • dentro il sito deve essere installato il codice di tracciamento di HubSpot (come spiegato in questo articolo);
  • il codice di tracciamento deve essere funzionante (quindi non devono esserci errori Javascript nella pagina);
  • ogni campo del form deve avere una corrispondente proprietà dentro HubSpot con lo stesso nome, e questa proprietà dovrà essere di tipo "testo a riga singola".

La soluzione in esame, inoltre, presenta un grande limitazione: ogni volta che il pulsante di invio viene cliccato sul form si attiverà un invio del modulo in HubSpot, compreso quando un utente non ha compilato tutti i campi richiesti. È quindi possibile che vengano salvati contatti che non hanno compilato tutti i campi obbligatori, compresa l'accettazione della privacy. Inoltre, con questa modalità, HubSpot non può inviare email in automatico e collegarsi a webservice per recuperare eventuali informazioni.

Dovevamo quindi cercare una soluzione alternativa.

Seconda soluzione

HubSpot, anche nella versione base, dà la possibilità all'utente di utilizzare le sue API. Tra le varie API presenti ci sono anche quelle per gestire l'aggiunta, la modifica e la cancellazione di un contatto. È possibile utilizzare queste API con diversi linguaggi di programmazione, tra cui PHP.

Per prima cosa abbiamo cercato un plugin per inviare i dati dei form in POST a uno script PHP, e la scelta è ricaduta su Contact form 7 TO API, dati i commenti positivi.

All'interno dello script PHP abbiamo recuperato i dati inviati dal form, ci siamo collegati ai webservices tramite una chiamata cURL per recuperare le informazioni, inserito il contatto su HubSpot con tutte le sue proprietà tramite una nuova chiamata cURL, e mandato le email tramite la classe di PHP PHPMailer.

Inoltre abbiamo utilizzato la libreria php4log, per tenere traccia nei log di tutte le attività fatte da questo script.
Controindicazioni? Nessuna.