web_hook
web_hook nodes handle inbound POST calls from external systems.
This page describes inbound webhooks that start or continue backend campaign logic. To send submitted lead form data from ResultFly to an external system, see Lead Form Webhooks.
Summary
- Placement: Entry only (webhook calls start the flow).
- Context: Backend apps.
- Visual: No.
- Level: Intermediate (requires integration setup).
- Purpose: Accept external events and route them into campaign logic.
- Support secret headers, HMAC signatures, and IP allowlists to secure integrations.
- Map JSON payloads into
$statefields or pass-through attachments for downstream use. - Provide explicit success/error responses so partners know when the automation accepts an event.
Example: update user variables
POST /api/hooks/campaign/{campaignId} HTTP/1.1
Authorization: Bearer {{ token }}
Content-Type: application/json
{
"event": "user.update",
"userId": "usr_9834",
"variables": {
"bonus": 50,
"xp_delta": {
"op": "increment",
"value": 120
}
}
}userIdidentifies the player whose state will be updated.bonussets the absolute value for a declared user variable (for examplestate.user_global.bonus).xp_deltashows how to express a relative change; in this example the user gains 120 XP by incrementing the existing value.
Example: send arbitrary user events
POST /api/hooks/campaign/{campaignId} HTTP/1.1
Authorization: Bearer {{ token }}
Content-Type: application/json
{
"event": "user.events",
"events": [
{
"userId": "123456",
"amount": 1299,
"transactionId": "tx_001"
}
]
}Example ResultFly response:
HTTP/1.1 200 OK
Content-Type: application/json
Signature: sha256=3cb32e…
{
"status": "accepted",
"node": "node-web-hook-demo",
"traceId": "hook_01J8XCG9YNX6",
"next": "node-branch-loyalty"
}