HTTP Handler Webservices

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.

image

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ì:

image

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 webhook

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

workflow_webhook_flow

Le variabili generato permettono di fare operazioni di vario tipo, come verificare se effettivamente è stata passata, e valorizzarla in caso non lo fosse:

workflow_webhook_5

Ad esempio si potrà craere un lead con il blocchetto crea record così configurato:

workflow_webhook_6

Nel nostro workflow dopo aver creato il lead andiamo a recuperare i dati effettivamente creati per poi mandarli in risposta: workflow_webhook_7

Il sistema è quindi in grado di restituire una risposta alla chiamata, tramite un blocchetto condizioni personalizzate.

In caso di ok: workflow_webhook_3

In caso non risulti creato il nuovo oggetto: workflow_webhook_4