n8n
Send events from HTTP Request nodes at the end of success and failure paths.
Use the ingestion URL below, your API key, and either workflow_id or workflow_slug. Optional fields depend on what n8n exposes in your workflow.
Success path
- Add an HTTP Request node after the last successful step.
- Configure:
- Method: POST
- URL:
https://app.flowpulse.xyz/api/v1/ingest/run-success - Authentication: None (use headers below)
- Headers:
X-API-Key,Content-Type: application/json - Body: JSON
Example body using workflow_id:
{
"workflow_id": "YOUR_FLOWPULSE_WORKFLOW_ID",
"ended_at": "{{ $now.toISO() }}",
"external_execution_id": "{{ $execution.id }}",
"source_platform": "n8n",
"source_workflow_id": "{{ $workflow.id }}",
"duration_ms": {{ $execution.duration }},
"metadata": {
"trigger": "{{ $execution.mode }}"
}
}
Example using workflow_slug instead of workflow_id:
{
"workflow_slug": "lead-enrichment",
"ended_at": "{{ $now.toISO() }}",
"external_execution_id": "{{ $execution.id }}",
"source_platform": "n8n"
}
external_execution_id, source_platform, source_workflow_id, and duration_ms are optional where not supported.
Failure path
- Use an Error Trigger or n8n error workflow.
- Add an HTTP Request to
https://app.flowpulse.xyz/api/v1/ingest/run-failurewith the same headers.
{
"workflow_id": "YOUR_FLOWPULSE_WORKFLOW_ID",
"error_message": "{{ $json.message || 'Workflow failed' }}",
"ended_at": "{{ $now.toISO() }}",
"external_execution_id": "{{ $execution.id }}",
"source_platform": "n8n"
}
Prerequisites
Create the workflow in FlowPulse first. Resolve workflow_id via the dashboard or GET /api/v1/workflows.