Skip to main content
Question

Best way to send Contact Form 7 submissions to Zapier using Webhooks?

  • February 18, 2026
  • 2 replies
  • 16 views

Hi everyone,

I’m trying to trigger a Zap when someone submits a Contact Form 7 form on a WordPress site, using a webhook. Just sharing what worked for me in case it helps someone else (and also open to better approaches).

What I did was first create a new Zap and choose “Webhooks by Zapier” as the trigger. Then I selected the “Catch Hook” option and copied the webhook URL Zapier generated.

Since Contact Form 7 doesn’t support webhooks out of the box, I had to either use a plugin that lets CF7 send data to an external API, or handle it with custom PHP. Using a webhook/API plugin was the simpler route. I just pasted the Zapier webhook URL, set the method to POST, changed the content type to application/json, mapped the form fields to JSON keys, and tested it. After submitting the form while Zapier was waiting for data, it picked up the payload correctly.

The other option is adding custom code using the wpcf7_mail_sent hook and sending the data with wp_remote_post(), but that obviously requires some development work.

A couple of things that caused issues initially were accidentally using GET instead of POST and incorrect JSON formatting. Also, it helps to test while Zapier is actively listening for the hook.

If anyone has tips on handling retries or making webhook delivery more reliable from WordPress to Zapier, I’d love to hear how you’re doing it.

Thanks

2 replies

Troy Tessalone
Zapier Orchestrator & Solution Partner
Forum|alt.badge.img+14
  • Zapier Orchestrator & Solution Partner
  • February 18, 2026

Hi ​@kevinmiller 

Existing Zapier Community guide for connecting CF7 to Zaps via Webhooks: 

 


drtanvisachar
Forum|alt.badge.img+5
  • Zapier Solution Partner
  • February 20, 2026

Hello ​@kevinmiller 
Webhooks by Zapier → Catch Hook is a great workaround since Contact Form 7 does not support webhooks natively.

For reliability, retries usually depend on the WordPress plugin sending the webhook. If you are using wp_remote_post(), you can check for a 2xx response and queue retries with WP Cron if it fails. You might also add a Filter or use Storage by Zapier to dedupe submissions in case a retry sends the same payload twice.

Thanks for outlining both the no code and custom code options. Super helpful for the community 

Dr. Tanvi Sachar
Monday Certified Partner, Tuesday Wizard