n8n + FirstFiveMin
Self-hosted automation: three ready-made workflows, importable in one click.
n8n runs your automations on your own terms. Three ready-made FirstFiveMin workflows ship with your account: lead intake, a new-lead spreadsheet log, and opt-out mirroring into your CRM. Import, paste your key, done.
Endpoint
POST https://firstfivemin.com/api/speed-to-lead/channel-inbound.php
Steps
- In FirstFiveMin, open Integrations → Connections and click "Create connection key". Tick "Send leads in" for the intake workflow (and "Receive events" for the other two); copy the key — it is shown once.
- Download the workflow files from your FirstFiveMin host: /assets/n8n/ffm-lead-intake.json, /assets/n8n/ffm-lead-created-to-sheet.json, /assets/n8n/ffm-optout-sync.json.
- In n8n, choose Import from File and pick a template. Each one carries its own setup notes on the canvas.
- In the intake workflow, replace YOUR-FIRSTFIVEMIN-HOST in the HTTP node URL and paste your key into the Authorization header.
- The intake template already maps idempotency_key to the n8n execution id — a per-run value, unique to each submission. Keep it that way: a key that stays the same for a person would silently swallow their next inquiry.
- Only keep the consent block if your trigger genuinely records consent to be contacted — the template carries the same warning on its canvas; read the consent note below.
- Test it: a successful send returns 201 with a lead_id, and the lead appears on your FirstFiveMin dashboard.
About the consent block
Only fill in the consent block if the person actually agreed to be contacted, and you can produce the record that proves it. Leave it out and we still capture the lead — we just will not have the AI call them.
Sample payload
{
"source": "n8n",
"first_name": "Noa",
"last_name": "Sample",
"phone": "+15550170006",
"email": "noa.sample@example.invalid",
"property_ref": "Asked for a callback from the website",
"language": "en",
"source_event_at": "2026-08-27T15:04:05Z",
"idempotency_key": "n8n-recipe-example",
"consent": {
"source": "Website callback form",
"reference": "submission #5678",
"captured_at": "2026-08-27T15:04:05Z"
}
}