Skip to content

Guide

Send form submissions to Make

Make thinks in scenarios. Give it a dependable first module: a form that never loses input.

Last updated

Or skip the reading entirely.

Everything below is agent-work. Paste this to yours, then come back to a working form — you show up at the end to say "keep it."

Paste to your agent
Install the Postbag skill with `npx skills add faahim/postbag --skill postbag`, then use it to connect my Postbag form to a Make webhook and prove a test delivery arrived.

Create the webhook in Make

Start a new scenario whose first module is Webhooks → Custom webhook. Add a hook, name it after the form, and copy the URL Make generates. Leave the scenario open — in a moment it will want to learn the data's shape.

Give the hook to Postbag

Create a webhook Destination pointing at Make's URL. Honest description: Postbag posts JSON to any URL that will have it, and Make's custom webhook is exactly such a URL — no connector app, nothing version-locked.

Create the Destination
form_id="fm_YOUR_FORM_ID" # Copy yours from: npx postbag forms list
destination_json="$(curl --fail --silent --show-error -X POST https://postbag.dev/v1/destinations \
  -H "Authorization: Bearer pb_live_…" \
  -H "content-type: application/json" \
  -d '{
    "type": "webhook",
    "name": "Make",
    "config": { "url": "https://hook.eu2.make.com/…" }
  }')"
destination_id="$(printf '%s\n' "$destination_json" | jq -er '.id')"

printf 'Destination ID: %s\n' "$destination_id"

Let Make learn the shape

Click Redetermine data structure (or Run once) so the webhook listens, then send a test through the Destination. Make catches it and maps the fields for its visual editor — your visitor's answers are the ones inside data.

Send a test delivery while Make listens
curl --fail --silent --show-error -X POST https://postbag.dev/v1/destinations/"$destination_id"/test \
  -H "Authorization: Bearer pb_live_…"
What Postbag posts (your message rides in data)
{
  "id": "dl_a91x02",
  "type": "submission.received",
  "schema_version": 1,
  "form": { "id": "fm_8f3kq2", "name": "Contact" },
  "data": { "email": "[email protected]", "message": "hello" },
  "extras": {},
  "meta": { "received_at": "2026-09-09T12:00:00Z" }
}

Route your Form to it

Tie the Form to the Destination, then build the rest of the scenario — a sheet, a CRM, an email chain, whatever Make is for in your house. Every new submission is stored before it's posted, and a failed post is retried up to ten times before it's left clearly marked for you.

Route Form → Make
route_body="$(jq -n --arg form_id "$form_id" --arg destination_id "$destination_id" \
  '{ form_id: $form_id, destination_id: $destination_id }')"

curl --fail --silent --show-error -X POST https://postbag.dev/v1/routes \
  -H "Authorization: Bearer pb_live_…" \
  -H "content-type: application/json" \
  -d "$route_body"

The parts that bite

Determine structure with a real test
Make maps fields from the first payload it sees. Send the Destination test while the webhook listens, or the visual editor will have nothing to offer when you build the next module.
Your fields live under data
Map from data.email and data.message, not from the envelope around them. The envelope tells you which Form and which delivery; data is what the visitor wrote.
Scheduling is Make's half
A scenario set to run every 15 minutes batches whatever arrived in between. The messages wait in Make's queue happily — and the originals are in Postbag either way.

Questions, answered

Free tier friendly?
Yes on both sides — Make's custom webhooks and Postbag's free plan cover this whole guide.
Can two scenarios hear the same form?
Yes. Create two webhook Destinations and two Routes; each delivery is tracked separately.
What about spam?
Routes exclude spam and quarantined messages by default, so scenarios only run for messages you'd actually want automated.
Make or Zapier?
Whichever you already think in. Postbag posts the same JSON to both; the guides differ only in where you click.

Give the form job to your agent.

It can build, wire and test the form before you even sign up. Claim it when it's worth keeping.