Skip to content
GitHub
Get started →

Spelo + Zapier

A Zap takes one trigger (“lead captured in Spelo”) and runs one or more actions (“create HubSpot contact”, “post to Slack”). No code.

Trigger: webhook from Spelo

  1. Create a new Zap. Pick Webhooks by Zapier as the trigger.
  2. Choose Catch Hook. Zapier shows you a unique URL like:
    https://hooks.zapier.com/hooks/catch/12345/abcde/
  3. In Spelo: Site → Settings → Webhooks → Add endpoint.
    • URL: paste the Zapier hook
    • Events: pick lead.captured (and lead.updated if you want status sync)
    • Save the endpoint. Spelo shows the webhook secret once — copy it.
  4. Send a test event from the Spelo dashboard (“Test” button on the webhook row). Zapier should pick it up.

Action: create the contact

The most common pattern is one of:

  • HubSpot → Create Contact: map email → Email, name → First Name + Last Name, phone → Phone.
  • Salesforce → Create Lead: map email, name, phone to standard fields. data.company if your site captures it.
  • Pipedrive → Create Person + Deal: Person uses email/phone/name; Deal uses data.use_case as the title.

Zapier’s “Code by Zapier” step can split name into first/last if needed:

const [first, ...rest] = (inputData.name || '').trim().split(/\s+/);
return { first_name: first, last_name: rest.join(' ') || '' };

Zapier’s Catch Hook does NOT verify HMAC by default. Anyone who guesses your hook URL can forge events.

Add a “Code by Zapier” step right after the trigger:

const crypto = require('crypto');
const SECRET = 'paste-your-spelo-webhook-secret-here'; // store in a Storage by Zapier var
const sig = inputData.headers['x-spelo-signature']?.replace(/^sha256=/, '');
const expected = crypto
.createHmac('sha256', SECRET)
.update(inputData.rawBody)
.digest('hex');
if (sig !== expected) {
throw new Error('invalid signature — refusing to process');
}
return inputData;

(inputData.rawBody is the un-parsed body — it’s the bytes Spelo signed.)

Failure handling

Zaps fail silently when the destination’s API is down. Add a fallback step:

  • Slack: Send Channel Message with the lead details, conditional on the CRM step’s failure.
  • Or Email by Zapier if Slack is overkill.

Both are paid-tier features. On the free tier, expect some lost leads when your CRM has an outage.