Webhook Automations
How to Send a Webhook When a Contact Form 7 Form Is Submitted
Plenty of tools accept a webhook — Zapier, Make, a CRM, a script of your own. Zapify can send each form submission to one the moment it arrives, using the A form is submitted trigger and the Send a webhook action. Both are free.
What this automation does
The automation is one trigger plus one action:
- Trigger: A form is submitted (
CF7_FORM_SUBMITTED, Contact Form 7) - Action: Send a webhook (
WEBHOOK_SEND, Webhooks)
Each time the form is submitted, Zapify sends the details you chose to the URL you give it.
Before you start
- Contact Form 7 installed and active, with a published form.
- The destination URL, and its expected body format and authentication, from the receiving service.
- Both the trigger and the action are free.
Internal addresses are blocked
Zapify refuses to call loopback, link-local and private network addresses, and checks again after redirects. Use a public URL. See Webhooks for details.
How to build the automation
Step 1: Create a new automation
- In the WordPress admin, go to Zapify → Automations.
- Click Add New to open the builder.
- Name it clearly, such as Send form submissions to my CRM.

Step 2: Add the "A form is submitted" trigger
- Click Add Trigger.

- Choose Contact Form 7 as the app.

- Select A form is submitted.

- In the Form field, pick the specific form. Choosing a form gives you one token per field on it.
Step 3: Add the "Send a webhook" action
- Click Add Action.

- Choose Webhooks as the app.

- Select Send a webhook.

Step 4: Configure the action
| Field | Required | What it does |
|---|---|---|
| URL | Yes | The endpoint to call. |
| Method | Yes | POST is the usual choice. |
| Headers | No | Extra headers. Values may contain tokens. |
| Body | Yes | JSON fields is the safe choice. Zapify builds the JSON, so a value containing a quote cannot break it. |
| Fields | Depends | The key and value pairs of the body. |
| Authentication | No | None, Bearer token, or Username and password; or pick a saved auth profile. |
For example, add a field email set to the form's email token, and message set to its message token. A key such as customer.email nests the value inside a customer object.
Step 5: Set the steps Live and save
Each trigger and action has its own Live / Off / Draft switch. A new automation starts as a Draft and does nothing until its steps are Live.
- Set the trigger and every action to Live.
- Click Save.

Step 6: Test it
Submit the form. Check that the receiving service got the request, or open Zapify → Logs to see the response it returned.
Tokens you can use
Once you select a specific Contact Form 7 form, the trigger exposes these tokens. Insert them anywhere in the email with the {} button.
| Token | What it holds |
|---|---|
| Form ID | The numeric ID of the submitted form. |
| Form title | The form's name. |
| Submitted at | The date and time of the submission. |
| All fields | Every submitted field rendered as one labelled block — handy when you just want the whole submission in the email. |
| One token per field | The value the visitor entered in that field, named after the field's tag (for example a your-email tag becomes a your-email token). |
Multi-value fields such as checkbox groups are joined into a readable, comma-separated list.
Conclusion
With the A form is submitted trigger and the Send a webhook action, a form can feed almost any service. To send new users instead, see sending a webhook when a user registers.
FAQs
Is this free in Zapify?
Yes. Both the trigger and the action are free.
Why did the request fail with a blocked-address message?
Zapify will not call internal network addresses. Use a public URL.
Do I need to write any code?
No. Everything is set up visually.