Webhook transform and forward
Receive any JSON, normalise a few fields, reshape it and forward to another endpoint — the smallest useful glue workflow.
Drag to pan, pinch to zoom. This is the real graph the template installs.
Purpose
Receive any JSON, normalise a few fields, reshape it and forward to another endpoint — the smallest useful glue workflow.
How it works
What it does
- Any JSON posted to
transform-in→ trim/lowercaseemail, trimname→ rename tocontact_*and stampreceived_at→ POST onward.
Nodes 4
- 01Inbound JSONtrigger.webhookTrigger
- 02Normalise fieldsdata.transformData
- 03Reshapedata.mapData
- 04Forwardhttp.requestHTTP
View template JSON
{
"format": "mantle-workflow/v1",
"id": "util-webhook-transform-forward",
"name": "Webhook transform and forward",
"graph": {
"nodes": [
{
"id": "webhook",
"type": "trigger.webhook",
"label": "Inbound JSON",
"config": {
"slug": "transform-in"
},
"worker_type": "generic-worker",
"position": {
"x": 60,
"y": 220
}
},
{
"id": "normalise",
"type": "data.transform",
"label": "Normalise fields",
"config": {
"rules": [
{
"path": "email",
"op": "trim"
},
{
"path": "email",
"op": "lower"
},
{
"path": "name",
"op": "trim"
}
]
},
"worker_type": "generic-worker",
"position": {
"x": 380,
"y": 220
}
},
{
"id": "map_out",
"type": "data.map",
"label": "Reshape",
"config": {
"mappings": {
"contact_email": "email",
"contact_name": "name",
"received_at": "'{{ $now }}'"
}
},
"worker_type": "generic-worker",
"position": {
"x": 700,
"y": 220
}
},
{
"id": "forward",
"type": "http.request",
"label": "Forward",
"config": {
"method": "POST",
"url": "https://example.com/inbound",
"headers": {
"Content-Type": "application/json"
},
"body_from_input": true,
"timeout_seconds": 15
},
"worker_type": "generic-worker",
"position": {
"x": 1020,
"y": 220
}
}
],
"edges": [
{
"from": "webhook",
"to": "normalise"
},
{
"from": "normalise",
"to": "map_out"
},
{
"from": "map_out",
"to": "forward"
}
]
}
}Requirements
The connections and permissions each step needs, from the node contracts in the catalog.
No connections. This template runs with built-in nodes only.
Setup
- Change the destination
url; edit therulesandmappingsfor your payload.
Sample input and output
Synthetic examples: node-contract samples or placeholders, never customer data.
Input
Any JSON body; the template forwards it as received.
Output
Forward http.request
{
"body": null,
"headers": {},
"status_code": 0
}Failure handling
What the graph does when a step fails, read from its retry settings, error branches and error policies.
- Forward: the request times out after 15 s.
- A step that fails, after any retries, fails the run. The failed step is kept with its input and error.
See it run, then make it yours.
Templates install as drafts. Edit any step, and Workflow Health re-checks the graph on every save.