Spelo + n8n
n8n is a self-hostable automation platform. Use it when you want full control of where the data lands and how it’s transformed, without paying per-task fees.
Workflow
Webhook node → Function node (HMAC verify) → Switch node → CRM/Slack/etc.1. Webhook node
- Method: POST
- Path: anything you want (e.g.
/spelo) - Response: “Immediately” with a 200 — Spelo retries on non-2xx, so don’t hold the connection.
n8n shows you a Test URL — paste that into Spelo’s webhook config. After it fires once, switch to the Production URL.
2. HMAC verify (Function node)
const crypto = require('crypto');const SECRET = 'env-spelo-webhook-secret';
const sig = $input.headers['x-spelo-signature']?.replace(/^sha256=/, '');const expected = crypto .createHmac('sha256', SECRET) .update(JSON.stringify($input.body)) .digest('hex');
if (sig !== expected) { throw new Error('invalid signature');}return $input;(In n8n, store SECRET in the workflow’s environment variables, not
inline.)
3. Switch node — by event type
Branch on {{ $json.event }}:
lead.captured→ create CRM contactconversation.recording_ready→ kick off a transcription archive joblead.updated→ update CRM status
4. Destinations
n8n has 400+ integration nodes. The common ones:
- HubSpot, Salesforce, Pipedrive, Zoho — direct CRM nodes
- Google Calendar — book a follow-up if
data.preferred_dateis set - Slack — alert your sales channel
- Postgres / MySQL — also store the lead in your own DB
Self-hosting tip
Run n8n behind nginx/Traefik with HTTPS. Spelo will refuse to deliver to
plain http:// URLs in production.