Zoho CRM


The Zoho CRM add-on needs to be installed and activated to see the features mentioned in this this documentation.

Introduction to Features

The Zoho CRM extension for Ninja Forms enables you to send your form submission data directly into your Zoho CRM account. Supported modules are:

  • Contacts
  • Leads
  • Accounts
  • Potentials
  • Notes
  • Tasks

In addition to this impressive list of modules, your contacts will automatically be linked with the Account, Potential, Task, and Note. If you create a Lead, it will be linked to the Note and Task.

Custom Fields you create in Zoho are also available for use.

Connecting Ninja Forms to Zoho

To connect Ninja Forms to Zoho, you’ll need to retrieve your Authorization Token from your Zoho Account. It will look something like this:


Enter this Authorization Token on the Ninja Forms settings page in the “Zoho CRM Settings” section in the text box named “Zoho CRM Auth Token”.After entering, click the “Save Settings” button. Once you have saved your Authorization Token to the Ninja Forms settings, you will be able to set up your forms to connect to Zoho.

(Please note, you will need to create a form to test that your connection is successful; we are planning an update that has a quick test to validate your connection. Watch for it in an upcoming release!)

Mapping Form Fields to Zoho

Field mapping is the process of connecting specific fields on your Ninja Form to the CRM field where you’d like the submitted field data to go. It is best for you to have your Ninja Form already built prior to starting this step. Of course, as you add or modify fields on your form, you always have the opportunity to modify your field maps.

To map fields, go to the Emails & Actions section of your form design, click the “+” to add a new action, and select the “Add to Zoho CRM” action. You will then see the Add to Zoho Field Mapper, as shown in the image. For each field to map:

  1. In the “Zoho Field Map” box, click the “+ ADD NEW” button to add a new field map. Use the “Form Field” drop down icon to bring up a list of all the available fields on your form and click to select the form field you wish to use. If you want to set a specific value instead of one entered by the site visitor, type in the value you wish to use in this field (see “Setting Constant Values” for more detail).
  2. Click in the “Zoho  Field” text box to bring up a list of all the Zoho fields available for receiving the form data. Click on the field you wish the form data to be sent to. If you are mapping to a custom field, skip this box and move on to the next.
  3. The “Custom Field” box is used when you want to map to a custom field. Type in the name of the custom field exactly as you have it created in Zoho.

Add to Zoho field mapper.

Setting Constant Values

Some values you wish to send to your CRM will always be the same, as opposed to information that the site visitor types into the form. Perhaps the most used example of this would be the Contact Owner – the person in your sales organization who is assigned to the newly created entry.

In this situation, you don’t need to create or select a field from your form, you can simply type in the value you want to send into the Form Field box and then map it to the CRM field where you want that value to go.  


Ninja Forms 2.9 does not have the Actions functionality. To set a constant value, create a hidden field. Set the “Default Value” to “Custom” and type in the desired value in the custom box that appears. Go to the advanced settings for the field and map to your desired CRM field. The following example uses “Lead Owner” to demonstrate how to this is accomplished.

Zoho Triggers

If you need to trigger workflow rules, or require approval, you can turn these on by mapping the value true to the Trigger Workflow or Requires Approval field map values as shown in the following image:

About Field Types

When mapping your Ninja Forms’ fields to your CRM account, ensure that your form field is the same type of field that you have in the CRM.  For instance, if your CRM requires a number, you want to ensure that your form field only allows numbers, otherwise it will reject your form submission and the form information won’t make it into your CRM account.  

To check your field types in Zoho, go to Setup / Modules / {select your module} as shown in the following screen shots

SetupModulesSelect your Module to View

Field Type Rules

The Data Type dictates what type of data can be sent to any given field in your CRM.  When designing your form, ensure that the field you are sending matches the data type you need.  Here are some types that require special care:


Lookup fields have an entry in some other module that must match.  For example, if you map to Campaign Source, ensure that the value you enter matches exactly a Campaign Source that you have created.


Dates should be in the format d/m/Y (ex: 01/01/1970).  For Task Due Date and Potential Closing Date, you have a great feature – the date interval.  Since it may be difficult to set a specific date when you don’t know when a site visitor will submit the form, you can enter an interval ( ex: 2 days , 3 weeks ) and the extension will automatically calculate the future date based on when the form is submitted.

Pick List

A pick list is a specific list of allowed options created inside your CRM.  Ensure that any option or options that you choose match exactly an option in the pick list.  Avoid the use of special characters, like “&” ‘-” “/” wherever possible as Zoho may not recognize the transfer properly.


Zoho requires ‘true’ or ‘false’ for boolean fields.  A Ninja Forms checkbox will automatically be converted to the correct values.  If you are creating a different field to send data to a boolean, ensure that the answers are either ‘true’ or ‘false.’

Optional Modules

In addition to creating your Lead or Contact and Account, you have the ability to attach various other modules to your newly created person.  

About Potentials

The Opportunity module has the following fields available:

  • Name
  • Type
  • Lead Source
  • Campaign Source
  • Amount
  • Closing Date
  • Next Step
  • Stage
  • Probability
  • Expected Revenue
  • Description

About Notes

The Note module has two fields available:

  • Note Title
  • Note Content

About Tasks

The Tasks module has the following fields available:

  • Task Subject
  • Task Due Date (how many days/weeks from when form is submitted (e.g. “2 days”)
  • Task Description
  • Task Status(must match a state in your account, e.g., “Not Started”)
  • Task Priority (one of the following integer values: 1 , 2 , 3 )

NOTE: The due date is set relative to the time of the form submission date/time, for example  “2 days” or “3 weeks”. The date interval does not calculate “business days” – it counts every day.

Advanced Commands

The advanced commands textbox gives you an easy way to change the extension’s functionality without needing any programming experience. You can add as many of these commands as you want by putting a comma in between them as shown here:

After adding the commands you want, click “Save Options” and then REFRESH your browser page for your changes to take effect.

Here is a list of the current available advanced commands available:

(Used to display advanced communication diagnostics that we at Ninja Forms can use with any support requests you have.) 


In Ninja Forms 3, text area boxes may have html tags that are removed with code.  If you do not wish to remove html tags before sending, add this command.


If your Zoho account is on the EU server ( zoho.eu, instead of zoho.com), use this command to connect to the correct location.  

Developer Filters


Display advanced communication diagnostics that we at Ninja Forms can use to troubleshoot  any support requests you have.

add_filter(‘nfzohocrm_display_support’,function(){return true;});


In Ninja Forms 3, text area boxes may have html tags that are removed with code.  If you do not wish to remove html tags before sending,  this will stop the code that strips them setting the filter to true.

add_filter(‘nfzohocrm_keep_html_tags’,function(){return true;});


If your Zoho account is on a different server, as is the case with EU customers, use this filter to return the endpoint you need.  Here is an example:

add_filter(nfzohocrm_alt_endpoint,function(){return ‘crm.zoho.eu’;});

Helpful Hints

Setting Fixed Values

In certain cases, you may want to send a fixed value into your CRM.  For example, you may have a field for lead source and you want it always to say “Web Form Submission”.  To do this, add a row to your Field Map action and, instead of selecting a form field, simply type in the value you want sent, and then map the value to the CRM field you wish.  

In this screenshot example, we want to assign user “bobsmith727” to be in charge of a new opportunity, which we have in our CRM as Opportunity Owner:

Requesting Help

Should you need help and submit a support ticket, do the following to help us find an answer faster for you:

  1. Type in the word “support” in the Advance Commands box
  2. Save your settings
  3. Refresh the page
  4. Take a screen shot including Communication Status, Advanced Commands, and Status

This information can get us working on a solution for you faster.


Account and Contact not Linked:

Ask if Contacts Module in Zoho has been customized.  The Account Name must still be used by Contacts as this is the field that links the two together.

Invalid Ticket ID – 4834:

The auth token value for this is incorrect. The customer needs to go into the CRM account and get a correct auth token.

Unable to Process your Request – 4600:

A space at the end of the auth token will cause this error. Go to settings and remove the trailing space.