Integrazione Google Form

VERSIONE: 1.0

INTRODUZIONE

L’integrazione con Google Form è una struttura realizzata con dei workflow che consentono il passaggio a Google di dati provenienti dal CRM e la lettura delle risposte inserite nel form, fornendo la possibilità di manipolare i dati a proprio piacere all’interno del CRM.

CONFIGURAZIONE

Il primo passaggio è creare il form di Google, accedendo a Google Moduli e creando il proprio modulo a piacere.

N.B. È molto importante in questa fase creare ed impostare tutti i campi necessari, il cambiamento di un campo nelle fasi successive potrebbe comportare errori.

Il secondo passaggio è generare l’URL del form.

Per ottenere l’URL che riporta al form, cliccare in alto a destra sul bottone invia, apparirà un popup simile al seguente:

image

Sarà sufficiente cliccare su “Copia” per ottenere l’URL del form. È possibile generare un form precompilato passando in maniera dinamica alcuni dati provenienti dal CRM, che andranno a popolare dei campi specifici. Per specificare quali campi popolare sul form, cliccare in alto a destra i tre puntini e successivamente la voce “genera link precompilato”. Popolare con valori a scelta i campi che dovranno essere precompilati, poi scorrere fino in fondo alla pagina, cliccare “Ottieni link” e successivamente “COPIA LINK”.

image

Verrà generato un link simile al seguente: https://docs.google.com/forms/...usp=pp_url&entry.6947631170=test1&entry.458743805=test2&entry.123456789=zzz È possibile notare che i valori inseriti a mano ora sono nel link, preceduti da entry."NUMERO CASUALE". Quindi ogni campo precompilato è identificato da una variabile (entry."numero casuale"). All’interno del CRM, attraverso Workflow Designer, è possibile creare un workflow che in maniera dinamica estrae dei dati, li inserisce all’interno del link e di conseguenza li inserirà all’interno del form Google.

  • ESEMPIO DI WORKFLOW: creare un'organizzazione e successivamente inviare una mail che contiene il link al modulo Google precompilato. Nel link verranno passati ID del record e nome dell’organizzazione.
  • URL inserito all’interno della mail: docs.google.com/forms/d/e/iR3wqS49qWx1BNcvuuI-SRLmu9l6LQ/viewform?usp=pp_url&entry.5 53987263=$id&entry.1234569161=$accountname

image

Per riuscire a passare i dati dal form Google al CRM bisogna sempre utilizzare il workflow designer. Creare un workflow che servirà per elaborare i dati che verranno inviati al CRM dal form, scegliere il modulo per cui serviranno i dati inviati dal form, impostare il trigger d’inizio come ”inizia manualmente”, attivare il workflow e per ora non inserire nessun blocco, successivamente verrà spiegato come elaborare i dati ricevuti.

Una volta creato il workflow, cliccare su Impostazioni HTTP dal menu laterale di sinistra. Successivamente cliccare in alto a destra sul bottone Nuovi permessi, apparirà un popup come il seguente:

image

I 5 campi riportati all’interno del popup sono:

  • URL destinazione: URL che farà scattare il workflow, da copiare, successivamente verrà modificato ed aggiunto all’interno dell’ script su Google moduli;
  • Titolo del limite: titolo da inserire a piacere;
  • IP per permessi: in questa casella di testo va inserito l’indirizzo IP del server dove si trova il CRM;
  • Trigger che questo IP può eseguire: da lasciare vuoto;
  • Workflow che questo IP può eseguire: qui bisogna selezionare il workflow che è stato creato in precedenza per elaborare i dati che saranno mandati dal form.

Successivamente bisogna caricare il file google-webhook.php nella directory principale del CRM. All’interno del file, alla riga 22 bisogna inserire all’interno degli apici l’url del CRM e alla riga 23 un codice numerico scelto a piacere.

image

Spostandosi all’interno del modulo Google, cliccare sui tre puntini in alto a destra e successivamente su editor di script, si aprirà una schermata come questa:

image

Cancellare il contenuto dell’editor e inserire il seguente codice:

var POST_URL = ""; function onSubmit(e) { var form = FormApp.getActiveForm(); var allResponses = form.getResponses(); var latestResponse = allResponses[allResponses.length - 1]; var response = latestResponse.getItemResponses(); var payload = {}; for (var i = 0; i < response.length; i++) { var question = response[i].getItem().getTitle(); var answer = response[i].getResponse(); payload[question] = answer; } var options = { "method": "post", "contentType":"application/json", "payload":JSON.stringify(payload)}; UrlFetchApp.fetch(POST_URL, options); };

All’interno delle virgolette nella prima riga dello script (var POST_URL = "qui";) bisogna inserire il link che è stato copiato prima dalle Impostazioni HTTP, modificandolo nel seguente modo:

  • LINK COPIATO DALLE IMPOSTAZIONI HTTP: https://"indirizzoCRM"//shorturl.php?id="stringa_alfanumerica"
  • LINK MODIFICATO: https://"indirizzoCRM"/google-webhook.php?id="stringa_alfanumerica"&workflow_id="id_w orkflow"&secret_key="secretkey"

Dove sono stati aggiunti:

  • ID workflow: ID del workflow che è stato creato in precedenza per elaborare i dati;
  • Secret key: codice che viene specificato all’interno del file google-webhook.php.

Una volta inserito il link modificato, bisogna impostare l’attivatore all’interno del form. Cliccare i tre puntini in alto a destra e successivamente “editor di script”. Dal menù di sinistra cliccare l’icona della sveglia (attivatori). Dalla schermata che si è aperta, cliccare il bottone in basso a sinistra “Aggiungi attivatore”. Apparirà un popup, impostare i campi come segue:

image

Successivamente cliccare su “Salva”.

Così facendo ogni volta che verrà cliccato il bottone “Invia” all’interno form, verranno passate le informazioni al nostro CRM che dovranno essere elaborate attraverso il workflow creato in precedenza. Il primo passaggio per riuscire ad elaborare i dati ricevuti dal form è scoprire come si chiamano le variabili che contengono i dati. Per scoprirlo inserire all’interno del workflow un blocco “Crea Record”. All’interno del blocco, utilizzando un campo di tipo area di testo o RTF, impostiamo il valore del campo con la variabile $env['payload_structure'].

image

A questo punto compilare il form completando tutti i campi, premendo invio verrà creato il record impostato in precedenza (nell’esempio un record sul modulo Organizzazioni). Il campo scelto conterrà del testo simile a questo: google_nome=Mario&google_cognome=Rossi&google_indirizzo=Via+Roma

I valori inseriti nel form saranno preceduti da una variabile formata da google_"NOME VARIABILE". Per utilizzare queste variabili, provenienti dal form, in workflow designer bisogna trasformarle in variabili d’ambiente, inserendo il nome della variabile all’interno della struttura $env[“”]. Quindi nell’esempio riportato qui sopra le variabili utilizzabili in workflow designer saranno:

  • $env[“google_nome”]
  • $env[“google_cognome”]
  • $env[“google_indirizzo”]

Utilizzando le variabili d’ambiente si potranno manipolare i dati ricevuti dal form a proprio piacere.