VERSIONE: 1.0
HTTP HANDLER
Questa feature permette l'escuzione di un worflow tramite una chiamata HTTP di tipo Post. É possibile inoltre inviare valori al workflow e utilizzarli con qualunque task.
casi d'uso
- Sostituire i webservices di vtiger per la creazione dei record
- Eseguire processi da una pagina web su record presenti sul CRM
- Elaborare dati sul CRM e restituirli a alla chiamata webservices come ad esempio estrarre l'elenco di ticket aperti per l'azienda indicata nella chiamata triggera l'HTTP handler
prerequisiti
- Workflow designer > 7.02.99
- Suite tools > 7.04
Sicurezza e configurazione
L'accesso alla URL dell'HTTP handler è limitata ai soli IP configurati alla voce Impostazioni HTTP del workflow designer.
Qui oltre ad impostare un titolo è possibile indicare uno o più IP autorizzati ad accedere all'handler e quale workflow deve essere eseguito. É possibile usare un singolo IP o dei range con strutture come
192.168.0.* 192.168.0.100-192.168.0.160 192.168.0.0/24
Esecuzione del workflow
Partiamo da un esempio di chiamata POST:
https://NOMEAZIENDA.opencrmitalia.com/shorturl.php?id=XXXXXXXXXXXXXX.XXXXXXXX&record_id=234&workflow_id=43&campo=valore1&xcampo2=valore2
La prima parte è presa direttamente dall'HTTP handler.
- record_id è l'id del record su cui vuoi eseguire in workflow. Se impostato a 0 il workflow sarà eseguito senza un recordo collegato.
- workflow_id è l'id del workflow da eseguire, deve essere lo stesso indigato nella configurazione dell'handler.
- campo, campo2 ecc sono valori che vogliamo passare al workflow e potranno essere usati come variabile: $env["campo"], $env["campo2"]
Uso come webservices
Nel caso sia necessario restituire informazioni sulla alla chiamata il workflow dovrà contenere un blocco condizioni personalizzate configurato così:
Non ho un ip pubblico da configurare nell'http handler
In questo caso bisogna configurare negli ip permessi quello del server del CRM. Poi la chiamata va modificate come segue:
https://NOMEAZIENDA.opencrmitalia.com/public/wf_api/index.php?id=XXXXXXXXXXXXXX.XXXXXXXX?secret_key=1234&workflow_id=43&campo=valore1&xcampo2=valore2
la secret_key va calcolata così substr(md5('secret='.$vtigerUrl), 0, 4)
o in alternativa modifichi la riga 32 dove viene definita $secretKey harcodandone una
NOTA: nel caso di usi questo entry point sul WF le variabili hanno il formato wf_api_request_NOMECAMPO
Un esempio pratico
Il caso
Creare un webhook richiamabile dall'esterno (in particolare da webform sul sito internet) per creare un lead nel CRM
Creazione webhook
Per prima cosa va creato il webhook, andando nei setting
ALTRE IMPOSTAZIONI -> WORKFLOW DESIGNER -> IMPOSTAZIONI HTTP
Il workflow
Il workflow avrà a dispozioni le variabili che verranno passate arbitrariamente nella chiamata, in questo caso abbiamo previsto che la chiamata passi le variabili: surname name email company phone leadStatus description
Che nel workflow genereranno variabili d'ambiente con la forma:
$env['wf_api_request_surname']
Un flusso potrebbe avere la forma seguente
Le variabili generato permettono di fare operazioni di vario tipo, come verificare se effettivamente è stata passata, e valorizzarla in caso non lo fosse:
Ad esempio si potrà craere un lead con il blocchetto crea record così configurato:
Nel nostro workflow dopo aver creato il lead andiamo a recuperare i dati effettivamente creati per poi mandarli in risposta:
Il sistema è quindi in grado di restituire una risposta alla chiamata, tramite un blocchetto condizioni personalizzate.
In caso di ok:
In caso non risulti creato il nuovo oggetto: