This is an old revision of the document!
HTTP Handler
This feature allows you to execute Workflow from any System, which could initiate HTTP Post Requests. You could also submit any values to the workflow and access these variables from every task.
This allows a very flexible Webservice System you could configure in vtigerCRM Frontend.
You could execute single Workflows by ID or trigger a custom trigger, which could be managed via trigger configuration.
use cases
- replacement of Record Creation, like Forms on Webpage for Lead collection
- execute special processes from webpage (External Administrations) if the record ID of organization is known (generation of quotes, …)
execute single Workflow
Execution Configuration
To configure the Workflow/Trigger you want to execute, use the following GET Variables:
- workflow_trigger
Which trigger should be triggered. Set by trigger key (CUSTOM_43) - record_id
Which record from CRM should be used by Workflow Designer to append the Workflow
If you don't want to connect a record, set the record_id = 0 - workflow_id
Which Workflow should be executed? You get the Workflow ID from the URL in administration
Examples
You want to execute a single workflow with no special connected record (You want to create a new lead) use
?record_id=0&workflow_id=<IDofWorkflow>
submit Variables
To submit variables to the workflow only use POST variables to transfer data.
The values could be used inside the executed workflows in the $env variable.
For example if you submit a variable lastname to the workflow, you could access the variable in every task by $env[“lastname”]
Process
- Call
<urlofvtigerCRM>/modules/Workflow2/HTTPHandler.php?<ExecutionConfiguration>
- Submit any Variable you want to use in Workflow via POST values.
- At the moment, there is no useful return value
PHP Example
$url = '<urlofvtigerCRM>/modules/Workflow2/HTTPHandler.php?<ExecutionConfiguration>'; $fields = array( 'firstname' => "Firstname", 'lastname' => "Lastname", 'street' => "streetname 123" ); foreach($fields as $key=>$value) { $fields_string .= $key.'='.urlencode($value).'&'; } rtrim($fields_string, '&'); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch);