Receive workflow completion callback from external systems (e.g., n8n).
URL format: /hooks/{projectKey}/executions/{executionId}/callback
Security:
- Project key identifies tenant (RLS enforces isolation)
- Execution ID is UUIDv4 (unguessable)
- Execution must be < 1 hour old
- Execution cannot receive multiple callbacks
No authentication required - security via execution ID secrecy + RLS.
Security
projectKey
- Mock serverhttps://docs.pers.ninja/_mock/swagger/hooks/{projectKey}/executions/{executionId}/callback
- https://api.pers.ninja/v2https://api.pers.ninja/v2/hooks/{projectKey}/executions/{executionId}/callback
curl -i -X POST \
'https://docs.pers.ninja/_mock/swagger/hooks/{projectKey}/executions/{executionId}/callback' \
-H 'Content-Type: application/json' \
-H 'x-project-key: YOUR_API_KEY_HERE' \
-d '{
"status": "SUCCESS",
"result": {},
"error": "string"
}'Callback processed successfully
Callback status from external workflow
Default:"NONE"
Enum:"NONE""SUCCESS""FAILED""CANCELLED"
Response
{ "id": "string", "webhookId": {}, "outboxEventId": {}, "method": "POST", "targetUrl": "string", "status": "PENDING", "responseStatusCode": 0, "durationMs": 0, "sourceIp": "string", "message": "string", "startedAt": "2019-08-24T14:15:22Z", "completedAt": {}, "callbackStatus": "NONE", "callbackResult": {}, "callbackReceivedAt": {} }