Webhooks
Send every Instagram lead to a webhook you control
Your automation already turns a comment into a DM and a DM into a filled in form. The webhook destination takes it the last step: the moment someone hits submit, that answer is posted to a URL you own, as JSON, signed, in under a second. Whatever you have built on the other end gets the lead while the person is still on their phone.
Short answer
Add a webhook destination to any form, paste a public https URL, and optionally a secret. Each submission is sent as a JSON POST with an HMAC SHA-256 signature and a signed timestamp, so your endpoint can verify it before trusting it.
Three steps, one text field
Paste your URL
Any public https endpoint. A route in your app, a Zapier catch hook, a Make webhook trigger, an n8n workflow, a serverless function you wrote in ten minutes.
Add a secret
Optional but worth the thirty seconds. We sign every request with it so your endpoint can prove the payload came from us and not from someone who guessed your URL.
Press test, then forget it
The test button sends a real request and shows you the exact status your endpoint returned. After that it runs on every submission on its own.
What arrives on your end
A single POST with a JSON body. Answers sit under data, keyed by field id rather than by label, so renaming a question in the builder never breaks the code reading it.
When the person came through a DM link, the payload also carries their Instagram participant id. That is the thread they are already talking to you in, which is what makes a follow up from your own system possible.
Built for people who ship
JSON you can read at a glance
One flat object. The form it came from, the submission id, the timestamp, the answers keyed by field id, and the Instagram participant id when the person arrived through a DM.
Signed with HMAC SHA-256
The timestamp is signed alongside the body, so a captured request cannot be replayed against you forever. Reject anything older than a few minutes and you are done.
Custom headers
Add the header your API already expects, such as a tenant id or an api key header. The envelope headers stay ours so nobody can rewrite the request shape.
It never blocks a lead
Delivery fires after the submission is saved. If your endpoint is down at midnight, the lead is still recorded and you still see the answer in the app.
Honest failure reporting
The connector shows the last delivery status, the time, and the error text. A silent integration is worse than no integration, so we show you when it stops.
Blocked destinations stay blocked
URLs are checked when you save them and again when they fire, so internal and loopback addresses cannot be used to poke at things they should not reach.
Where people point it
Zapier
Catch Hook trigger. Paste the URL it gives you and map the fields from the first submission.
Make
Custom webhook module. Run it once, send a test, and Make learns the payload shape.
n8n
Webhook node in production mode. From there, branch into your CRM, Slack, or database.
Your own API
A single POST route. Verify the signature, insert the row, return 200 and you are live.
If you are testing before your real endpoint exists, point it at a throwaway inspector first, watch one submission arrive, then swap the URL. Nothing else in your setup changes.
Questions people ask first
Which events fire a webhook?
Form submissions. Every time someone completes a form attached to one of your DM automations, that submission is posted to your endpoint.
How do I verify the signature?
Take the X-Requex-Timestamp header, join it to the raw request body with a dot, compute an HMAC SHA-256 with your secret, and compare it to the hex digest in X-Requex-Signature. Compare with a timing safe function and reject stale timestamps.
What counts as a successful delivery?
Any 2xx response inside ten seconds. Anything else is recorded as an error on the connector with the status code your endpoint returned.
Are failed deliveries retried?
Not today. That is why the last delivery status is shown on the connector rather than buried in a log. Treat an error there as something to look at rather than something that will quietly resolve itself.
Can I send to a spreadsheet and a webhook at once?
Yes. A form can carry both destinations, and they run independently, so one failing has no effect on the other.
Run both destinations
Most people keep Google Sheets on for the version a human reads, and a webhook on for the version their software reads. Start with a form attached to one automation and add destinations from there.
Connect your accountAsk for it
Need something that is not here yet?
Tell us what you were hoping to find. Requests from people who are still deciding are the ones that shape what gets built next, and they go straight to the person who writes the code. Leave an email and you get an answer, not a silent roadmap.
Bigger idea, or a build of your own? The full request page has more room.