=== Integration for Zoho Desk - Contact Form 7, WPForms, Elementor, Gravity Forms and More === Contributors: plugcrux, integrazo, padmadev Tags: zoho desk, contact form 7, wpforms, elementor forms, gravity forms Requires at least: 6.0 Tested up to: 7.1 Requires PHP: 7.4 Stable tag: 2.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Connect Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and more form submissions with Zoho Desk. == Description == This plugin sends form submissions from Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and Formidable Forms to Zoho Desk. When a user submits a form, the plugin can create support tickets in your Zoho Desk account. This helps reduce manual ticket creation and keeps your support system synchronized with your website forms. Supported form plugins: - [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) - [WPForms](https://wordpress.org/plugins/wpforms-lite/) - [Elementor Forms](https://wordpress.org/plugins/elementor/) - [Gravity Forms](https://www.gravityforms.com/) - [Formidable Forms](https://wordpress.org/plugins/formidable/) https://www.youtube.com/watch?v=M15Mvdj2M2E == Authentication == To connect your Zoho Desk account: 1. Go to the Accounts page in the plugin. 2. Click Add Account. 3. Enter an identifiable account name (for example, “Main Zoho Desk Account”). 4. Select the appropriate data center (for example, `zoho.com`, `zoho.eu`). 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 be listed 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, “Support Ticket Form”). 4. Select the form type (Contact Form 7, WPForms, Elementor, Gravity Forms, or Formidable). 5. Choose the connected Zoho Desk account. 6. Select the Zoho Desk department where tickets should be created. 7. Map form fields to Zoho Desk fields in the field mapping section. If a connection is missing, use "Add new connection" in the connection list. 8. Optionally use "Additional details" for file attachments, the ticket status and the channel, and map premium fields (priority, due date, phone and more) or custom fields (Pro). 9. Use the filter criteria section to apply conditions (for example, create tickets only when specific conditions are met). 10. Optionally use Test run to create a test ticket from sample values, then click Save Integration. == Logs == The plugin provides a logs section to review how data is being sent to Zoho Desk. - Open the Logs page to see a list of submissions and their statuses. - Typical statuses include: - SUCCESS – ticket created successfully. - RECORD_FAILED – ticket not created due to an error. Additional options: - Filter logs by integration, status, or date range. - Open the log details view to see the full request, response, and error messages. - Resync or delete individual records, or use bulk actions where available. == Settings == Global settings can be managed from the Settings page: - Delete data on uninstall – when enabled, plugin data will be removed when the plugin is deleted from WordPress. - Error email notification – enable or disable email notifications when a record fails. - Notification emails – specify one or more email addresses (comma-separated) to receive error notifications. - Email subject – set the subject line for error notification emails. - Deactivation alert – get an email when the plugin is deactivated, so you know right away if form entries stop reaching Zoho Desk. == External services == This plugin connects to the services below. Nothing is sent until you connect a Zoho Desk account; each service is used only for the purpose given. = 1. Zoho Desk and Zoho Accounts (Zoho Corporation) = What it is: the help desk the tickets are created in, and the Zoho sign-in (OAuth) service that authorizes the connection. Where: the Zoho Accounts and Zoho Desk hosts of the data center you choose when you add a connection: accounts.zoho.com / desk.zoho.com (US), .in (India), .eu (Europe), .uk (United Kingdom), .com.au (Australia), .jp (Japan), .sa (Saudi Arabia), .ae (United Arab Emirates), .sg (Singapore), .com.cn (China), and accounts.zohocloud.ca / desk.zohocloud.ca (Canada, with accounts.zoho.ca / desk.zoho.ca as a fallback). What is sent, and when: - When you connect or reconnect an account: the OAuth authorization code, and later the refresh token, to obtain and renew access tokens. - While you set up an integration: requests for your Zoho Desk departments and ticket fields. - When a form is submitted (and when you resync a log entry): the form values you mapped to ticket fields, a search for an existing contact by the email address in the form, the ticket itself and, in Pro, files uploaded in the form as attachments. Zoho Terms of Service: https://www.zoho.com/terms.html Zoho Privacy Policy: https://www.zoho.com/privacy.html = 2. Integrazo OAuth relay (integrazo.com) = What it is: the fixed redirect address registered for this plugin's Zoho OAuth client (https://integrazo.com/zoho_callback). Zoho only allows pre-registered redirect addresses, so after you approve access, Zoho sends your browser to this address, which hands it straight back to your own WordPress admin. What is sent, and when: only while connecting or reconnecting an account, your browser sends the one-time authorization code from Zoho and the address of your site's admin page (the OAuth "state" value) to integrazo.com. Your site then exchanges the code for tokens directly with Zoho. Tokens, form data and ticket data do not go through integrazo.com. Service provider: Integrazo, https://integrazo.com Terms of Service: https://integrazo.com/policies/terms-of-service Privacy Policy: https://integrazo.com/policies/privacy-policy = 3. Integrazo license service (Pro license key) = What it is: the service that issues and checks Pro license keys. It is a custom API hosted on Zoho Creator (www.zohoapis.in). It is contacted only if you enter a license key: - When you activate a key, and when you deactivate it (Settings > License). - When you deactivate the plugin, to release the license from this site. - Periodically (validate_key): to confirm that the saved key is still valid. The check runs only when it is due – the first time 1 to 5 days after the plugin update or activation, then about every 10 days (a failed attempt is retried after 1 day) – and only when the plugin's admin page is opened or a form is submitted; it never delays a visitor's page. It is read-only and does not change the license. It can be switched off with the filter iafwzdesk_license_recheck_enabled. What is sent: the license key, the product code, your site address, the plugin name and version, and the PHP and WordPress versions. Service provider: Integrazo, https://integrazo.com Terms of Service: https://integrazo.com/policies/terms-of-service Privacy Policy: https://integrazo.com/policies/privacy-policy = 4. ip-api.com (visitor location, optional) = What it is: a geolocation service. It is used only if an integration maps the "City", "State" or "Country" system fields to a ticket field (and no other plugin provides the location through the iafwzdesk_get_user_location_data filter). What is sent, and when: the IP address of the visitor who submits that form, at the time of the submission. The city, region and country that come back are put in the ticket. Terms of Service: https://ip-api.com/docs/legal Privacy Policy: https://ip-api.com/docs/legal = 5. Deactivation feedback form (Zoho Creator) = What it is: a short feedback form shown in a pop-up when you click Deactivate on the Plugins screen. It is a Zoho Creator form (creatorapp.zohopublic.in) loaded in a frame, and only after you click Deactivate. Nothing is sent unless you fill in and submit the form; you can skip it with the Deactivate button. What is sent, if you submit the form: your answers, and the plugin name (integrate-with-zoho-desk). Terms of Service: https://www.zoho.com/terms.html Privacy Policy: https://www.zoho.com/privacy.html == Privacy and Data Handling == - Form submission data is sent from your WordPress site to your Zoho Desk account, as described above. It is not stored by the plugin except in the activity log (Logs page) of your own site. - The plugin sends data to the services listed under External services and to no others. Tokens are kept in your site's database and are removed when you delete the plugin with "Delete data on uninstall" switched on. - The plugin does not use cookies on the front end and adds nothing to your visitors' pages. == Free and Paid Features == Free version includes: - Unlimited Zoho Desk connections and unlimited form integrations, for all supported form plugins - The standard Zoho Desk ticket fields, fixed (custom) values and system values such as the page address - Conditional filters (send a submission only when it matches your conditions) - Logs with filters and details, and email alerts for failed records - Duplicate, rename, pause and delete integrations Pro version adds: - Premium fields (priority, due date, phone, classification and more) - Additional details in the wizard: file attachments, ticket status and channel - Mapping to your Zoho Desk custom fields - Resync of failed entries from the logs, one by one or in bulk On a Free site, saving an integration that uses a Pro feature is blocked until you remove that feature or upgrade. If a license ends, integrations that use Pro features are paused (not deleted) and switched back on when a valid license is activated again. A duplicated integration always starts paused. Upgrade now: https://integrazo.com/products/integrate-with-zoho-desk == Features Overview == - Connect Zoho Desk to supported form plugins - Configure multiple Zoho Desk accounts and departments - Map form fields to Zoho Desk fields, including custom fields (Pro) - Real-time ticket creation - Optional conditional logic - Activity logs with status and error details - Optional email notifications - Settings to control data removal on uninstall == Installation == Automatic installation 1. Go to Plugins > Add New in your WordPress dashboard. 2. Search for Integrazo and locate this plugin. 3. Click Install and then Activate. 4. Go to plugin settings to connect your Zoho Desk account and start syncing. Manual installation 1. Upload the plugin ZIP file via Plugins > Add New > Upload Plugin. 2. Activate the plugin. 3. Go to the plugin settings and complete the setup. == Screenshots == 1. Connect Zoho Desk 2. Set up integration 3. Map form fields 4. Add details and filters 5. Notification settings 6. Submission logs == Frequently Asked Questions == = Which WordPress form plugins does this support? = This plugin currently supports: - Contact Form 7 - WPForms - Elementor Forms - Gravity Forms - Formidable Forms = How do I integrate Contact Form 7 with Zoho Desk? = 1. Open the plugin and go to the Setup tab. 2. Choose Contact Form 7 as the form type. 3. Select the Zoho Desk department. 4. Map the Contact Form 7 fields to Zoho Desk fields. 5. Save the integration. = How do I integrate WPForms with Zoho Desk? = 1. Go to the plugin’s Setup section. 2. Select WPForms as the form type. 3. Choose the Zoho Desk department. 4. Map WPForms fields to Zoho Desk fields. 5. Save the integration. The same steps apply for Elementor Forms, Gravity Forms, and Formidable Forms. = Can I map custom fields? = Yes. Mapping custom fields is a Pro feature; standard fields, custom values and system fields are free. = What happens if a ticket fails to create? = Failed submissions are: - Recorded in the Logs section - Shown with error messages returned by Zoho Desk - Available for manual or bulk resync = Is real-time ticket creation supported? = Yes. Form entries are sent to Zoho Desk immediately after submission. = Is a Zoho Desk account required? = Yes. You need an active Zoho Desk account to send data from your WordPress site to Zoho Desk. = Is data transfer secure? = The plugin uses OAuth 2.0 for authentication and communicates over HTTPS. = Is this plugin an alternative to Uncanny Automator or Bit Integrations for Zoho Desk? = Yes. If you are looking for a dedicated Zoho Desk 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 Desk. It connects Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and Formidable Forms directly to Zoho Desk without needing a third-party automation service. = Can I use this instead of Zapier or Zoho Flow to send WordPress form data to Zoho Desk? = Yes. Instead of using Zapier, Zoho Flow, or Make (Integromat) to connect your WordPress forms to Zoho Desk, this plugin handles the integration directly on your WordPress site — no external automation service or monthly subscription needed. == Changelog == = 2.0.0 = * Removed: The Form Filters sub-tab under Settings. * New: Redesigned admin with Setup, Logs, Settings and Go Premium screens. * New: Faster admin – screens, filters and actions update without reloading the page. * New: Full-page wizard to add and edit integrations. * New: Zoho Desk data centers for the United Arab Emirates and Singapore, and improved Canada support. * New: Choose the organization when your Zoho Desk account has more than one. * New: Departments and fields are saved for faster screens, with a Refresh from Zoho button. * New: Reconnect alerts and detailed connection logs. * New: Connections table with service, organization, status, "Used by" and last-modified columns, Test connection, Reconnect and paging. * New: Add a connection straight from the integration wizard, and Test run to create a test ticket before saving. * New: "Additional details" in the wizard for file attachments (several upload fields), the ticket status and the channel. Premium. Integrations that already map a status keep working on the free version: their tickets are created as Open. * New: Optional email alert when the plugin is deactivated. * New: Entries skipped by a filter are now recorded in the logs. * New: Rename, duplicate (the copy starts paused) and bulk actions for integrations and connections. * Improved: File attachments for all supported form plugins. * Improved: No limits on the number of connections and integrations. * Improved: PHP 7.4 compatibility, security, performance and translation support. = 1.0.15 = * Checked: Tested and confirmed compatible with WordPress 7.1. = 1.0.14 = * Fixed: Missing spacing between the add (+) and remove (−) buttons in the field mapping table. = 1.0.13 = * Security: Hardened admin AJAX endpoints with proper capability checks. * Security: Improved data sanitization and output escaping across admin views. * Fixed: Case label syntax bug in setup action handler. * Fixed: base64_decode strict mode added for safer token handling. * Added: Help dropdown in admin header for quick support access. * Added: Deactivation feedback popup. * Added: Form Filters sub-tab under Settings (moved from AI Settings tab). * Improved: Minor UI and translation improvements. * Checked: Tested and confirmed compatible with WordPress 7.0. = 1.0.12 = * 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.11 = * Fixed: Settings link in Plugins page now uses admin_url() for improved compatibility. * Improved: Code hardening with stricter output escaping in admin views. * Checked: Tested and confirmed compatible with WordPress 6.9.1. = 1.0.10 = * 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.9 = * 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. = 1.0.8 = * Checked: Plugin tested and confirmed compatible with WordPress 6.9 * Updated: "Tested up to" value updated to 6.9 in readme.txt = 1.0.7 = * Updated: Readme file revised to follow WordPress.org guidelines. * Updated: Description, tags, and sections rewritten for clarity and compliance. = 1.0.6 = * Changed: Elementor Forms integration flow updated for smoother setup. * Improved: Better results and reliability when mapping Elementor form fields. = 1.0.5 = * Fixed: PHP 7.4 compatibility adjustments. * Fixed: Parse error during plugin activation. * Improved: Security checks and sanitization in OAuth flow. = 1.0.4 = * Added: New FAQ about disabling specific integrations. * Fixed: All error notices shown by WP error log or debug mode. * Checked: Plugin tested with latest WordPress 6.8 and works fine. = 1.0.3 = * Fixed: “Invalid_Data” API response issue. * Added: Description field mapping. = 1.0.2 = * Fixed: Elementor Forms field-loading issue. = 1.0.1 = * Added: Improved validation and sanitization. * Fixed: Issue causing a blank page when selecting a department. = 1.0.0 = * Initial release with: - Support for Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and Formidable Forms. - OAuth authentication. - AI validation options. - Error logging and resync. == 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 works on each site of a WordPress multisite network (activate it per site) and has been tested for compatibility with recent WordPress versions.