HTTP Request (REST)
This service task sends an HTTP request to any URL and returns the response. It acts as a universal REST connector within a BPMN process – ideal for calling external APIs, triggering webhooks, or fetching data from third-party services.
Benefit: External systems can be integrated directly into automated workflows without custom code.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
String | Yes | The target URL (must start with http:// or https://). |
method |
String | No | HTTP method: GET, POST, PUT, PATCH, DELETE. Default: GET. |
headers |
Object | No | Key-value pairs sent as HTTP request headers (e.g. Authorization, Content-Type). |
body |
Object / String | No | Request body. Objects are automatically serialized to JSON. Ignored for GET. |
queryParams |
Object | No | Key-value pairs appended to the URL as query parameters. |
timeout |
Number | No | Request timeout in milliseconds. Default: 30 000. Maximum: 60 000. |
Example Input
{
"url": "https://api.example.com/orders",
"method": "POST",
"headers": {
"Authorization": "Bearer {{token}}",
"Content-Type": "application/json"
},
"body": {
"orderId": "2024-001",
"status": "confirmed"
},
"timeout": 10000
}
Output
| Field | Type | Description |
|---|---|---|
statusCode |
Number | The HTTP status code of the response (e.g. 200, 404, 500). |
body |
Object / String | Response body. Automatically parsed as JSON when possible; otherwise returned as plain text. |
headers |
Object | Response headers as key-value pairs. |
Example Output
{
"statusCode": 200,
"body": {
"success": true,
"message": "Order confirmed"
},
"headers": {
"content-type": "application/json"
}
}
Behaviour & Limitations
- Only
httpandhttpsprotocols are supported. - The maximum response size is 5 MB. Larger responses cause an error.
- If the body is an object and no
Content-Typeheader is set,application/jsonis added automatically. - The response body is parsed as JSON when possible; otherwise it is returned as a raw string.
- Network errors or timeouts result in a process error – they are not silently swallowed.
Use Cases
- Trigger a webhook when a process step completes.
- Create or update records in an external CRM or ERP system.
- Fetch real-time data (e.g. exchange rates, weather, stock levels) for downstream decisions.
- Notify external tools (Slack, Teams, email APIs) about process events.
- Chain microservices together within a BPMN workflow.