=== Integration for Zoho CRM and Zoho Bigin - Contact Form 7, WPForms, Elementor, Gravity Forms and More ===
Contributors: plugcrux, padmadev, integrazo
Tags: zoho crm, zoho bigin, contact form 7 zoho, gravity forms zoho, wpforms zoho
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.0
Stable tag: 1.0.18
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Connect Zoho CRM and Zoho Bigin. Create Leads, Contacts, Accounts, Deals, and Pipelines from any form submission.

== Description ==

This plugin sends form submissions from Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and Formidable Forms to Zoho CRM and Zoho Bigin.

When a user submits a form, the plugin can create or update records—such as leads, contacts, or deals—in your Zoho CRM or Zoho Bigin account. This helps reduce manual data entry and keeps your CRM data consistent with your website forms.

---

**Why Use This Plugin?**

- Stop copying form data manually into Zoho
- Instantly create Leads, Contacts, Deals, or Pipeline records from form submissions
- Works with the most popular WordPress form plugins
- Supports all major Zoho CRM modules and all Zoho Bigin modules including Pipelines
- No coding or API knowledge required

---

**Supported WordPress Form Plugins**

- [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) — most popular free form plugin
- [WPForms](https://wordpress.org/plugins/wpforms-lite/) — beginner-friendly drag and drop forms
- [Elementor Forms](https://wordpress.org/plugins/elementor/) — forms built inside Elementor page builder
- [Gravity Forms](https://www.gravityforms.com/) — advanced WordPress forms
- [Formidable Forms](https://wordpress.org/plugins/formidable/) — powerful form builder with calculations

---

**Supported Zoho CRM Modules**

Send form data to any Zoho CRM module:

- Leads — capture website leads directly into Zoho CRM
- Contacts — create or update contact records
- Accounts — sync company or organization data
- Deals/Pipelines — push deal information from forms
- Vendors, Campaigns, Price Books, Products
- Cases, Solutions
- Quotes, Sales Orders, Purchase Orders, Invoices
- Activities, Tasks, Events, Calls
- Projects, Notes, Attachments
- Custom Modules — sync data to any custom module you have created in Zoho CRM

---

**Supported Zoho Bigin Modules**

Send form data to any Zoho Bigin module:

- Pipelines — create new pipeline records (deals) in Zoho Bigin directly from form submissions
- Contacts — add or update contact records in Bigin
- Companies — sync company data from forms
- Products — push product information
- Activities, Tasks, Events, Calls, Notes

> **Zoho Bigin Pipelines:** If you use Zoho Bigin to manage your sales pipeline, this plugin lets you automatically add new pipeline entries whenever a form is submitted — perfect for lead capture forms, quote request forms, or any form that starts a sales process.

---

**How It Works**

1. A visitor submits a form on your WordPress site
2. The plugin receives the submission instantly
3. It maps each form field to the corresponding Zoho CRM or Bigin field
4. It creates or updates the record in Zoho via the API
5. The result is logged — success or failure — so you always know what happened

---

**Key Features**

- **Real-time sync** — form submissions are sent to Zoho immediately
- **All major modules** — Leads, Contacts, Deals, Pipelines, and more
- **Flexible field mapping** — map any form field to any Zoho field
- **Custom values** — send fixed text or dynamic values to Zoho fields
- **System field mapping** — automatically send page URL, submission time, and more
- **Duplicate handling** — choose to add, skip, or update existing records
- **Primary key support** — match records by email, phone, or any unique field
- **Conditional logic (filter criteria)** — only sync when specific conditions are met
- **Picklist helper** — see allowed values for Zoho picklist fields and copy them with one click
- **Notes field** — attach a note to every record created in Zoho
- **File attachments** — upload form file fields to Zoho record attachments
- **Tag support** — add tags to Zoho records from form submissions
- **Detailed logs** — view every submission with status, request data, and Zoho response
- **Resync** — manually resync failed records from the Logs page
- **Email notifications** — get notified when a record fails to sync
- **Multiple accounts** — connect more than one Zoho account
- **Enable or disable integrations** — pause any integration without deleting it

---

**Picklist Allowed Values Helper**

When mapping a Zoho picklist field (such as Lead Source, Salutation, Status, or any dropdown field), an info icon appears next to the field. Click or hover to see all allowed values. Click any value to copy it — then paste it as a custom value in your field mapping. This prevents errors caused by sending values that Zoho does not accept.

---

**Duplicate Record Handling**

Choose what happens when a matching record already exists in Zoho:

- **Add (ignore if exists)** — always create a new record
- **Skip if exists** — do not create if a matching record is found (Pro)
- **Add or update** — create if new, update if exists (Pro)
- **Update only** — only update existing records, never create (Pro)

---

**Filter Criteria (Conditional Logic)**

Control when form submissions are sent to Zoho. For example:

- Only sync if the user selects "Yes" to a question
- Only send to Zoho if the form includes a valid email
- Filter by dropdown selection, checkbox value, or any field

---

https://www.youtube.com/watch?v=ZWZcZjgKJ-Q

---

== Authentication ==

To connect your Zoho account:

1. Go to the **Accounts** page in the plugin.
2. Click **Add Account**.
3. Enter an identifiable account name (for example, "Main Zoho CRM Account").
4. Select the appropriate data center (for example, `zoho.com`, `zoho.eu`, `zoho.in`).
5. Click **Authenticate** to open the Zoho authorization page.
6. Log in to Zoho and approve the requested permissions.
7. After approval, you will be redirected back to WordPress and the account will appear on the Accounts page.

== Add Integration ==

To create a new integration:

1. Go to the **Setup** page.
2. Click **Add Integration**.
3. Enter an integration name (for example, "Contact Form 7 to Zoho Leads").
4. Select the form plugin (Contact Form 7, WPForms, Elementor, Gravity Forms, or Formidable).
5. Choose the connected Zoho account.
6. Select the Zoho module (for example, Leads, Contacts, Pipelines, Deals).
7. Map your form fields to the corresponding Zoho fields.
8. Optionally set a duplicate handling rule and primary key field.
9. Optionally add filter criteria to control when records are created.
10. Click **Save Mapping**.

== Logs ==

The plugin provides a Logs section to monitor every form submission:

- View all submissions with their status (SUCCESS or RECORD_FAILED)
- See the full request sent to Zoho and the response received
- Filter logs by integration, status, and date range
- Resync failed records individually or in bulk
- Delete log entries when no longer needed

== Settings ==

Global settings available on the Settings page:

- **Delete data on uninstall** — remove all plugin data when the plugin is deleted
- **Error email notification** — receive an email when a record fails to sync
- **Notification emails** — comma-separated list of email addresses for error alerts
- **Email subject** — customize the subject line for error notification emails
- **Deactivation alert** — send a notification email when the plugin is deactivated

== Privacy and Data Handling ==

- Form submission data is sent from your WordPress site to Zoho CRM or Zoho Bigin via their official API.
- The plugin does not send data to any third-party service other than the Zoho services you configure.
- All communication with Zoho uses HTTPS.

== Free and Paid Features ==

**Free version includes:**

- Connect up to 2 Zoho accounts
- Connect up to 2 forms
- Standard field mapping (General Fields)
- Custom value support
- System field mapping (page URL, submission time, and more)
- Note field support
- Add record action (ignore duplicates)
- Error log view
- Email notifications for failed records

**Pro version adds:**

- Unlimited Zoho account connections
- Unlimited form integrations
- Premium field mapping (Lead Source, Country, State, Phone, Industry, and more)
- Custom field mapping (map to any custom field in Zoho CRM)
- Custom module support (sync to custom modules in Zoho CRM)
- Advanced duplicate handling (skip, add or update, update only)
- Advanced log management and bulk resync

Upgrade now: https://integrazo.com/products/integrate-any-form-with-zoho-crm

== Installation ==

**Automatic installation**

1. Go to **Plugins > Add New** in your WordPress dashboard.
2. Search for **Integrazo** or **Zoho CRM Contact Form 7**.
3. Click **Install Now** and then **Activate**.
4. Go to the plugin settings to connect your Zoho account.

**Manual installation**

1. Download the plugin ZIP file.
2. Go to **Plugins > Add New > Upload Plugin**.
3. Upload the ZIP and click **Activate**.
4. Go to the plugin settings and complete the setup.

== Screenshots ==

1. Connect your Zoho CRM or Zoho Bigin account
2. Map form fields to Zoho module fields
3. Detailed error logs with request and response data
4. Settings page

== Frequently Asked Questions ==

= Which WordPress form plugins are supported? =

This plugin supports:

- Contact Form 7
- WPForms (free and paid)
- Elementor Forms
- Gravity Forms
- Formidable Forms

= Which Zoho products does this plugin support? =

This plugin supports both **Zoho CRM** and **Zoho Bigin**.

= Which Zoho CRM modules are supported? =

All major Zoho CRM modules are supported: Leads, Contacts, Accounts, Deals, Vendors, Campaigns, Price Books, Products, Cases, Solutions, Quotes, Sales Orders, Purchase Orders, Invoices, Activities, Tasks, Events, Calls, Projects, Notes, Attachments, and custom modules (Pro).

= Which Zoho Bigin modules are supported? =

All Zoho Bigin modules are supported: Pipelines, Contacts, Companies, Products, Activities, Tasks, Events, Calls, and Notes.

= Can I send form submissions to Zoho Bigin Pipelines? =

Yes. Select Zoho Bigin as the service and choose Pipelines as the module. The plugin will create a new pipeline record in Zoho Bigin every time a form is submitted.

= How do I integrate Contact Form 7 with Zoho CRM? =

1. Go to the plugin Setup tab.
2. Choose Contact Form 7 as the form type.
3. Select Zoho CRM and authenticate your account.
4. Choose the module (Leads, Contacts, Deals, and so on).
5. Map Contact Form 7 fields to Zoho CRM fields.
6. Save the integration.

= How do I integrate Contact Form 7 with Zoho Bigin? =

1. Go to the plugin Setup tab.
2. Choose Contact Form 7 as the form type.
3. Select Zoho Bigin and authenticate your account.
4. Choose the module (Pipelines, Contacts, and so on).
5. Map Contact Form 7 fields to Zoho Bigin fields.
6. Save the integration.

= How do I integrate WPForms with Zoho CRM or Zoho Bigin? =

1. Go to the plugin Setup section.
2. Select WPForms as the form type.
3. Choose Zoho CRM or Zoho Bigin and select a module.
4. Map WPForms fields to Zoho fields.
5. Save the integration.

= How do I integrate Gravity Forms with Zoho CRM? =

1. Go to the plugin Setup section.
2. Select Gravity Forms as the form type.
3. Choose Zoho CRM and select a module such as Leads or Deals.
4. Map Gravity Forms fields to Zoho CRM fields.
5. Save the integration.

= How do I integrate Elementor Forms with Zoho CRM or Zoho Bigin? =

1. Go to the plugin Setup section.
2. Select Elementor Forms as the form type.
3. Choose Zoho CRM or Zoho Bigin and select a module.
4. Map Elementor form fields to Zoho fields.
5. Save the integration.

= What happens if a record fails to sync? =

Failed records are saved in the Logs section with the full error message from Zoho. You can review the error, fix your field mapping if needed, and resync the record manually.

= Does this plugin support custom fields in Zoho CRM? =

Yes. Custom fields in Zoho CRM are available for field mapping in the Pro version.

= Can I send file attachments to Zoho? =

Yes. For supported form plugins, file upload fields can be mapped to the Attachment field in Zoho. The file will be uploaded and attached to the corresponding record in Zoho.

= Can I temporarily disable an integration? =

Yes. Each integration has an enable or disable toggle on the Setup page. Disabling an integration stops new submissions from being sent but keeps all configuration intact.

= Is this plugin an alternative to Uncanny Automator or Bit Integrations for Zoho CRM? =

Yes. If you are looking for a dedicated Zoho CRM and Zoho Bigin integration for WordPress forms — as an alternative to general automation plugins like Uncanny Automator, Bit Integrations, Zapier, Zoho Flow, WP Fusion, or Bit Flows — this plugin is built specifically for Zoho CRM and Zoho Bigin. It connects Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and Formidable Forms directly to Zoho CRM and Zoho Bigin without needing a third-party automation service.

= Can I use this instead of Zapier or Zoho Flow to send WordPress form data to Zoho CRM? =

Yes. Instead of using Zapier, Zoho Flow, or Make (Integromat) to connect your WordPress forms to Zoho CRM or Zoho Bigin, this plugin handles the integration directly on your WordPress site — no external automation service or monthly subscription needed.

== Changelog ==

= 1.0.18 =
* Fixed: Missing spacing between the add (+) and remove (−) buttons in the field mapping table.

= 1.0.17 =
* Security: Hardened admin AJAX endpoints with proper capability checks across all handlers.
* Security: Fixed path traversal vulnerability in admin tab routing with strict allowlist validation.
* Security: Added nonce verification to OAuth callback handler.
* Security: Replaced innerHTML assignment with DOM-safe escaping to prevent XSS.
* Security: Improved input sanitization and output escaping across admin views.
* Added: Help dropdown in admin header for quick support access.
* Added: Deactivation feedback popup.
* Improved: Minor UI and code quality improvements.
* Checked: Tested and confirmed compatible with WordPress 7.0.

= 1.0.16 =
* Security: Added ABSPATH check to prevent direct file access across missing files.
* Fixed: License expiry notice now displays correctly for all expired licenses,
  regardless of how long ago the license expired.

= 1.0.15 =
* Added: Extended module support for Zoho CRM — all available modules are now supported including Contacts, Accounts, Leads, Deals, Vendors, Campaigns, Price Books, Products, Cases, Solutions, Quotes, Sales Orders, Purchase Orders, Invoices, Activities, Tasks, Events, Calls, Projects, Notes, and Attachments.
* Added: Extended module support for Zoho Bigin — all available modules are now supported including Pipelines (Deals), Contacts, Companies, Products, Activities, Events, Tasks, Calls, and Notes.
* Added: Custom modules support — custom modules created in Zoho CRM are now listed and available for field mapping (requires Pro).
* Added: Picklist allowed values helper — when a Zoho picklist field is selected in field mapping, an info icon appears showing all allowed values with click-to-copy support for easy custom value entry.

= 1.0.14 =
* Improved: Readme content clarity and wording for better understanding of supported forms and Zoho integrations.
* Updated: Short description to clearly mention support for other form submissions.
* Improved: Minor UI text refinements across admin pages.

= 1.0.13 =
* Changed: Replaced transient-based account authentication storage with WordPress options for improved reliability.
* Improved: Account authentication flow stability during Zoho OAuth redirects.
* Improved: Better handling of authentication errors and session recovery.
* Improved: Data sanitization and validation in the Accounts and Setup pages.
* Fixed: Edge cases where account data could be lost during browser refresh or delayed redirects.
* Checked: Fully tested with WordPress 6.9 and PHP 8.x.

= 1.0.12 =
* Checked: Plugin tested and confirmed compatible with WordPress 6.9.
* Updated: "Tested up to" value updated to 6.9 in readme.txt.

= 1.0.11 =
* Added: Deactivation Alert Email feature with automatic email notification when the plugin is deactivated.
* Added: Settings option to enable or disable deactivation alert and specify notification email addresses.
* Added: Professional email template informing users that Zoho CRM and Zoho Bigin integrations will stop working after deactivation.
* Improved: User experience by providing warnings for licensed users to reactivate plugin, re-enable integrations, and validate license key after reactivation.
* Fixed: Minor UI spacing improvements in the Settings sections.

= 1.0.10 =
* Fixed: Elementor free version form submissions not working.
* Changed: Removed cache-based account loading for more reliable performance.

= 1.0.9 =
* Changed: Updated Elementor Forms integration flow.
* Improved: Field mapping experience for Elementor Forms.
* Added: Dismissible admin notice reminding users to reconfigure Elementor Forms after update.

= 1.0.8 =
* Added: FAQ entry about disabling individual integrations.
* Fixed: All known error notices reported by WordPress debug logs.
* Checked: Tested with WordPress 6.8.

= 1.0.7 =
* Fixed: Elementor Forms field-loading issue.

= 1.0.6 =
* Added: Improved validation and sanitization.
* Fixed: Issue causing a blank page when selecting a list.

= 1.0.5 =
* Added: Compatibility with WordPress 6.8.
* Fixed: Removed unnecessary use of `$wpdb->prepare()` for static table names.
* Fixed: i18n issue by removing an empty `__()` string in `get_columns()`.

= 1.0.4 =
* Verified: Compatibility with WordPress 6.7.2.
* Updated: Applied recent Zoho API changes.
* Improved: User interface refinements.

= 1.0.3 =
* Added: Additional documentation screenshots.

= 1.0.2 =
* Improved: Security by validating plugin page URLs in the account section.
* Expanded: FAQ section with more detailed answers.
* Updated: Documentation for clarity.

= 1.0.1 =
* Added: Basic review and feedback section in the plugin.

= 1.0.0 =
* Initial release with:
  - Support for Contact Form 7, Gravity Forms, WPForms, Elementor Forms, and Formidable Forms.
  - Error logging and resync options for failed submissions.
  - Email notifications for integration failures.

== Support ==

If you need help or want to request a feature:

- https://integrazo.com/pages/contact
- https://integrazo.com/pages/request-feature

Website: https://integrazo.com/
Email: support@integrazo.com

== Additional Notes ==

This plugin supports WordPress multisite installations and has been tested for compatibility with recent WordPress versions. It works with both Zoho CRM free and paid plans, and with all Zoho Bigin plans.