Zapier recipe
Zapier is the path of least resistance when you want submissions in HubSpot, Mailchimp, Notion, Trello, Airtable, or any of the long tail. No code, mostly point-and-click.
Setup
1. Create the Zap trigger
In Zapier: Create Zap → Trigger → Webhooks by Zapier → Catch Hook. Zapier gives you a unique webhook URL. Copy it.
(If you have a paid Zapier plan, Catch Raw Hook lets you verify the HMAC signature in a Code step. On the free plan, you skip verification — fine for low-stakes forms, not great for production.)
2. Wire Formspring
In Formspring: Webhooks → Add webhook → Generic. Paste the Zapier URL.
Send a test from the Send test button. Zapier will catch it and surface the payload structure for use in subsequent steps.
3. Build the action
Add an action step. Common ones:
- HubSpot → Create or Update Contact: map
payload.email→ email,payload.name→ name. - Mailchimp → Add/Update Subscriber: map
payload.email→ email, tag withform_name. - Google Sheets → Create Spreadsheet Row: map each
payload.*to a column. - Slack → Send Channel Message: format using the form name + key fields.
- Airtable → Create Record: map fields, include
submission_idfor idempotency.
Test the action with the captured sample. Turn the Zap on.
Verifying the signature in a Zapier Code step
If you're on a plan that supports Code by Zapier, slot a step before your action:
// Code by Zapier (Node)
const crypto = require('crypto');
const raw = inputData.rawBody; // pass via Catch Raw Hook
const sig = inputData.signature; // X-Formspring-Signature
const secret = inputData.secret; // store in step config
const expected = crypto.createHmac('sha256', secret).update(raw).digest('hex');
if (expected !== sig) {
throw new Error('Invalid signature');
}
return JSON.parse(raw);
The downstream steps consume the parsed body.
Pricing reality check
Zapier counts every triggered submission as a task. High-volume forms eat your Zapier quota fast. At ~1,000 submissions/month per form, you're outgrowing the free tier. Two ways out:
- Filter early: add a Filter step right after the trigger so cheap rejects (e.g. flagged submissions, internal test domains) don't consume tasks downstream.
- Move off Zapier: if you only need one or two destinations, a 30-line handler on Cloudflare Workers or Lambda costs cents per million calls.
Common Zaps that pay off
- New submission → CRM contact + Slack alert (one Zap, two actions).
- Flagged submission → moderation Trello card.
- Submission with attachment → upload file to Drive, then row in Sheets with link.