Table of Contents
- Why use WP Zapier instead of Zapier’s WordPress app
- What you need
- How the data moves
- Create the Catch Hook first
- Create the WP Zapier outbound event
- Test the webhook before Zoho
- Send the record to Zoho CRM
- Map the WordPress fields
- Test the Zoho action and publish
- Common mistakes
- Other useful triggers
- Conclusion
A WordPress Zoho CRM integration should start when something real happens on your site: a user registers, a form is submitted, or an order is paid. Zapier’s native WordPress app only covers a few core events and often polls. WP Zapier & Webhooks Integration sends those events as a webhook, and Zapier writes the record into Zoho CRM.
This is the current walkthrough. The earlier how-to stays live at How to Connect WordPress to Zoho CRM and Automate Your Business. The Catch Hook setup order, the Zapier plan requirement, and the field names WP Zapier actually sends are current as of 15 September 2026.
Why use WP Zapier instead of Zapier’s WordPress app
Zapier’s WordPress app can watch a handful of core events. It does not expose WP Zapier’s plugin triggers, so WooCommerce orders, Paid Memberships Pro level changes, and form submissions never reach it.
WP Zapier 2.4.1 creates an Outbound Event, posts the payload to a Catch Hook URL, and lets Zapier map that payload into Zoho. That is the supported path for this WordPress Zoho CRM integration.
Related webhook notes live in Getting Started: WP Zapier.
What you need
- A self-hosted WordPress site.
- WP Zapier & Webhooks Integration 2.4.1 or later, installed and licensed.
- A Zapier account on a paid plan, or a Pro trial. Zoho CRM is a premium Zapier app. Webhooks by Zapier is also listed as Premium. A free Zapier account can help you draft the Zap, but you cannot publish this workflow on the free plan.
- A Zoho CRM account with API access enabled. Admin rights are needed to create or update records.
Do not use Zapier’s WordPress trigger for this walkthrough.
How the data moves
Three pieces have to line up:
- WordPress fires an Outbound Event.
- Zapier catches it on a unique Catch Hook URL.
- Zoho CRM creates or updates a module entry.
Start with User Register. It is the cleanest first lead. Do not start with User Login; that floods Zoho with repeat visits.
Create the Catch Hook first
The webhook URL does not exist until Zapier has a Catch Hook trigger. Create the Zap before you finish the WordPress event.
- In Zapier, click Create, then Zap. The older Make a Zap label is gone.
- For the trigger app, search Webhooks by Zapier.
- Set the event to Catch Hook.
- Click Continue.
- Leave Pick Off A Child Key blank.
- Open the Test tab and copy the webhook URL.
Zapier’s current Catch Hook documentation places that URL on the Test tab, after the event is selected. Do not expect the URL before Catch Hook is chosen.
Leave this Zap editor tab open.
Create the WP Zapier outbound event
- In WordPress, go to WP Zapier → Outbound Events → Add New.
- Title it clearly, for example
New User to Zoho CRM. - Set Trigger to User Register.
- Paste the Catch Hook URL into Webhook URL.
- Set Webhook Status to Enabled.
- Publish the event.
The core triggers in 2.4.1 are User Login, User Register, Update Profile, Save Post, and Save Page. WooCommerce and Paid Memberships Pro add their own triggers when those plugins are active. You can also add a Conditional Dispatch rule if you only want certain roles or emails to send.
If you collect leads from a form instead of a WordPress user account, use Gravity Forms – After form submission or Ninja Forms – After form submission as the trigger instead.
Test the webhook before Zoho
Zapier can only map fields it has already received.
- Register a test user on the WordPress site, or submit the chosen form.
- Return to Zapier and click Test trigger.
- Confirm you see fields such as
user_email,first_name,last_name,display_name, anduser_id.
If the test is empty, the event is disabled, the URL is wrong, or the WordPress action has not run yet. Trigger it again, then retest. Zapier only shows recent hooks from the past hour.
WP Zapier does not send the user’s password. Version 2.4.1 removed that from the register payload.
Send the record to Zoho CRM
- Add an action step.
- Choose Zoho CRM.
- Choose Create/Update Module Entry. That action creates a lead if none exists and updates it if Zoho finds a match on a unique field.
- Connect the Zoho account. Select the correct Zoho domain (
zoho.com,zoho.eu,zoho.in, and so on) before you sign in. - Choose the module. Leads is the usual first choice. Use Contacts only if these people are already customers.
A plain Create Module Entry action will insert duplicates every time the same email registers again. Use Create/Update unless you have a reason not to.
Map the WordPress fields
WP Zapier names user fields like this:
first_namemaps to Zoho First Name.last_namemaps to Zoho Last Name.user_emailmaps to Zoho Email.display_nameis the fallback for Last Name iflast_nameis empty.user_urlcan map to Website.rolescan map to a custom field or description.
Most standard Lead layouts still require Last Name. If your test user has no last name, map display_name into Last Name so the test does not fail with a missing-field error. If your layout also requires Company, map a fixed value such as your site name.
Mark Email as unique in Zoho if you want Create/Update to match on email. That is Zoho’s usual duplicate key for Leads and Contacts.
For a WooCommerce order trigger, map billing first name, last name, and email from the order payload instead of the WordPress user object.
Pro Tip: If
last_nameis empty at registration, mapdisplay_nameinto Zoho Last Name so the test does not fail.
Test the Zoho action and publish
- Click Test action.
- Open Zoho CRM and confirm the test lead exists, with the mapped email.
- Name the Zap.
- Click Publish.
If Zapier asks you to upgrade, that is expected: this Zap uses premium apps.
Common mistakes
Using Zapier’s WordPress app as the trigger
That skips WP Zapier’s outbound events. The Catch Hook URL never receives the plugin payload.
Copying the webhook URL before Catch Hook is selected
The URL is generated after you choose Catch Hook and continue to the Test tab.
Testing Zapier before WordPress has fired
Register the user first, then click Test trigger.
Publishing a Zap that cannot run on the free plan
Zoho CRM and Webhooks by Zapier are premium. Finish the mapping, then publish on a paid plan or trial.
Creating a new lead on every profile update
Use Create/Update Module Entry and a unique Email field, or you will stack duplicates.
Starting with User Login
Login events repeat. Use User Register, a form submission, or WooCommerce New Order for CRM records.
Other useful triggers
Once the first Zap is live, the same Catch Hook pattern works for:
- WooCommerce – New Order: create a Contact from billing details.
- WooCommerce – Order Status Changed: update a Deal stage after payment.
- PMPro – After Change Level: keep membership status on the Contact. The plugin sends the user plus
membership_level_id. See How to Use pmpro_changeMembershipLevel() Safely if you also change levels in code. - PMPro – Order Added: send membership order data, including invoice workflows such as How to Automate WordPress Invoices with Zapier.
Two-way sync is a separate setup. WP Zapier can receive data to create, update, or delete WordPress users. That inbound webhook is not required for this WordPress-to-Zoho lead flow.
Conclusion
A reliable WordPress Zoho CRM integration is a Catch Hook, an enabled WP Zapier outbound event, and a Create/Update Module Entry action with Last Name and Email mapped.
Start with one User Register Zap, confirm a test lead in Zoho, then add store or membership triggers only after that path is clean.
If you get stuck on the webhook or the Zoho mapping, Yoohoo support can check the outbound event.
What would you send first: new users, paid orders, or membership level changes?