Skip to main content
Cookbook Marketing Webhook Actions

Send Contact Form 7 Submissions to Zapier, Make or n8n with Webhook Actions and AI

Every submission of one Contact Form 7 form sent to your Zapier, Make or n8n webhook, with only the fields you choose.

Difficulty Intermediate
Time ~15 min

Prerequisites

A site connected to WPVibe running Webhook Actions 3.3.4 or newer (tested on 3.3.4, free) on WordPress 6.9 or newer and PHP 8.0 or newer, with an administrator account. Contact Form 7, a form on a page you can fill in, and the webhook URL from Zapier, Make, n8n or your own service.

The prompt
My WordPress site uses Webhook Actions and Contact Form 7. Send every submission of [the form's title] to [the service, for example my Make scenario] at [the webhook URL]. Send [the fields, for example name, email and message, or every field on the form] and the form's title.

1. Run discover_abilities with category webhook-actions. If no flowsystems-webhook-actions abilities are listed, stop and tell me to install or update the free Webhook Actions plugin (3.3.4 or newer; its abilities need WordPress 6.9 or newer). If list-webhooks is there but an ability this needs is missing, tell me AI write access is off (Webhook Actions, Settings, Let connected AI tools build webhooks) and stop.
2. Run rest_api GET /contact-form-7/v1/contact-forms and find the form I named. If several match, show me their titles and ask which one. Note its id.
3. Run flowsystems-webhook-actions/list-webhooks. If one already sends to this URL, show it to me and ask whether to change that one instead. If I say yes, skip create-webhook and use its id from here on. If it is on, tell me each mapping or rule change applies to live deliveries at once, and ask before each one.
4. If my URL does not start with https://, or names a port other than 443 or 8080, stop and tell me Webhook Actions will not deliver to it (it sends only to https addresses on public hosts and standard ports), and ask me for an https URL. Run flowsystems-webhook-actions/create-webhook with a clear name, my URL, http_method POST and triggers set to a list holding wpcf7_mail_sent. Leave delivery mode, retries and backoff at their defaults. It is created switched off. Tell me wpcf7_mail_sent fires only after Contact Form 7 has sent its notification email, so if my site cannot send email, nothing is sent.
5. Run flowsystems-webhook-actions/get-trigger-schema with wpcf7_mail_sent and the new webhook's id. If there is no captured payload, stop and ask me to fill in the form once on my site with test details. The webhook is off, so nothing is sent, but it records the submission. When I say done, run it again. If there is still no capture, stop and tell me Contact Form 7 probably could not send its notification email (the form shows an error after you submit it), so this hook never fired, and fixing the site's email comes first. If the result has borrowed_from_webhook_id or example_source library, or args.0.id is not the form's id, the capture is not from this form, and a test would send it: run rest_api_write POST /fswa/v1/schemas/webhook/WEBHOOK_ID/trigger/wpcf7_mail_sent/capture with fields set to reset (the full answer can hold an unscrubbed copy of another capture) to clear this webhook's capture, ask me to fill in the right form again, then read it again. Never map from it. Otherwise show me the submitted values and ask me to confirm it is my test before mapping. Do not guess field paths.
6. In the capture, the form is args.0 (args.0.id and args.0.title), the answers are under args.0.submission.fields by the form's own field names (such as your-name), and args.0.submission.meta holds the page URL, the visitor's IP address and browser. Map the fields I asked for and args.0.title with flowsystems-webhook-actions/set-mapping and includeUnmapped false, all paths taken from the capture. Leave out the IP address and browser unless I asked for them. Show me the mapping.
7. Run flowsystems-webhook-actions/set-conditions with conditions_evaluate_on original and the rule args.0.id equals the form's id with cast number, so other forms on my site are not sent.
8. Do not probe the endpoint: a probe is a real empty POST that runs my workflow once with no data, and n8n's test URL, Make's data structure listener and Zapier's test step can take it as their sample. The test delivery in the next step shows what my service answers. If I use an n8n test URL or Make is waiting to determine the data structure, remind me to start listening before I say yes.
9. Tell me a test delivery sends the captured submission's mapped fields to my service now, for real, and wait for my yes. Then run flowsystems-webhook-actions/test-dispatch with the webhook_id, the trigger and confirmed true, run flowsystems-webhook-actions/get-logs with the webhook_id and limit 1, and show me the request_payload it sent and the response. Tell me the test ignores the rule, so it sends even if the captured record does not match it. If the code is not 2xx, stop and explain why; a 404 or 410 usually means the URL is wrong or the service is not listening on it.
10. Ask me before turning it on. Only on my yes, run flowsystems-webhook-actions/enable-webhook with the id, enabled true and confirmed true, and tell me new submissions are queued and sent in the background, usually within a minute or two.
Already connected?

Skip pasting the full prompt. Drop this into your AI on a site that already has WPVibe:

Run the “Send Contact Form 7 Submissions to Zapier, Make or n8n with Webhook Actions and AI” recipe from the WPVibe cookbook on my connected site.

Contact Form 7 emails you each submission and stops there. Getting leads into a CRM, a sheet or a Slack channel usually means copying them by hand, or an add-on for each service you use.

The AI builds a webhook in Webhook Actions for the form you name, switched off. It reads a real submission, sends only the fields you want plus the form’s name, limits it to that one form and sends one test delivery after your yes, showing you what your service answered. It turns the webhook on only when you say so.

The AI needs one real submission to map against, so it asks you to fill in the form once. This webhook fires only after Contact Form 7 has sent its notification email: if your site cannot send email, nothing is sent here either, so fix that first. The capture also holds the visitor’s IP address and browser, which the prompt leaves out unless you ask for them.

Outcome

New submissions of that form reach your service with the fields you named, after a test delivery you saw arrive.