X-API-Key, rather than in an exported workflow.
Receive workspace events
- Add a POST Webhook node and obtain its public HTTPS URL.
- Register it in SendPilot → Integrations → Webhooks.
- Subscribe to exact event names such as
reply.receivedandconnection_request.accepted. - Preserve the raw body and signature headers for Svix verification, or use a verifying receiver before n8n.
- Extract the verified event body from the trigger output and deduplicate by
eventId.
$json.body; inspect your node’s actual output before mapping expressions. This guide describes the workflow, not an importable version-specific node export.
Reply → Slack and CRM
leadId and campaignId can be null for non-campaign replies. Guard those fields before calling lead-specific REST actions.
Spreadsheet → campaign leads
- Schedule a sheet read and select unprocessed rows.
- POST to
https://api.sendpilot.ai/v1/leadsusing the stored Header Auth credential. - Add
Content-Type: application/jsonand a stableIdempotency-Keyderived from the source row/batch identity. - Supply the body below, mapping your row fields rather than sending the placeholders.
- Inspect added/duplicate/invalid counts before marking rows processed.
Daily campaign report
Use a scheduled GET to/v1/campaigns, iterate page and limit within the documented bounds, then summarize the returned counts. First check /v1/me to confirm the workspace and scopes.