A form webhook sends each entry to another system the moment it is submitted, as a small package of JSON. It is how a form talks to a CRM you built yourself, an internal tool or an automation app, without waiting for an export. This guide is for teams and developers who want to send form data to an API. We explain what a webhook is, how to shape the JSON, how to send only some entries, and how to test it in WordPress in about 20 minutes.
The short version
- A webhook posts each entry to a web address you choose, as JSON.
- Leave the body blank to send every field as flat JSON.
- Write a custom body with {field:ID} tokens to match another system’s shape.
- Use Only send when to send just the entries that match a rule.
What is a form webhook?
It is a message your site sends when something happens, in this case a new entry. Instead of the other system asking every 5 minutes whether anything is new, your site tells it straight away. The message goes to a webhook URL, and the body is JSON, a plain text format almost every system reads. MDN’s introduction to JSON explains the format if it is new to you.
What does the JSON look like?
Left blank, the body sends every field as flat JSON, one key per question. To match another system, write your own body with tokens in quotes:
| Token | What it becomes |
|---|---|
{field:name} | The answer to the field with the ID name |
{field:email} | The email they gave |
| Your own text | Sent exactly as you wrote it |
A field’s ID is next to its label on the Build tab. A custom body such as {"contact": {"email": "{field:email}"}, "source": "website"} lets the form fit an API that expects nested data, so you rarely need to write a small adapter in between.
How to set up a form webhook, step by step
- Get the webhook URL from the system that will receive entries.
- In Echo Forms with Signature, open the form’s Marketing tab and tick Send to a webhook.
- Paste the address into Webhook URL.
- Leave Custom JSON body blank, or write your own with
{field:ID}tokens. - Leave Only send when on Always, or pick a field and a value.
- Send a test entry and check that the other system received it.
For a quick test, a free request bin shows exactly what arrives in Echo Forms’ JSON, and we check it before pointing the webhook at a real system. The send entries to your other tools guide covers each setting, and the automation apps guide covers two-way links with Zapier, Make and n8n.
Can you send only some entries?
Yes. Only send when picks a field and a value, so a form can send only the entries where Department is Sales, for example. It saves the other system from filtering, and it means one form can feed 2 or 3 tools, each getting only its share. A request usually arrives in under 2 minutes, often within 5 seconds. We often pair it with conditional emails, so the right team hears by email too.
Are webhooks secure?
Use an https address, so the data is encrypted on the way, and treat the URL like a password, because anyone with it can post to it. Many receiving systems let you add a secret to the address or check where requests come from. Keep personal data in the body to what the other system needs, and nothing more; a body with 4 fields is easier to secure than one with 40. If the receiving system is down for 24 hours, every entry is still safe in Echo Forms, so you can export the missing ones and send them on.
A form webhook takes about 20 minutes to set up and test, and then every entry reaches your other system within seconds, every day. See form workflows for the other ways entries can move on.
Your entries, in any system
Webhooks come with Echo Forms Signature, from $49.99 a year, with a custom JSON body and send conditions.


