
How to Integrate Zoho CRM with Your Website — Complete Guide 2026
Every form submission on your website that doesn't land in your CRM is a lead you're manually chasing — or losing. This guide covers all the methods to connect your website to Zoho CRM, from the no-code Web-to-Lead form to a full custom API integration, along with field mapping, lead assignment rules, and spam filtering for each approach.
There are six distinct methods, and the right one depends on your website platform, your technical capability, and how much control you need over the data flowing into CRM. Start with the method that fits your current setup — you can always upgrade later.
Method 1 — Zoho CRM Web-to-Lead Form (Native, No-Code)
This is the fastest way to get leads from your website into Zoho CRM. Zoho generates an HTML form snippet you paste into your site.
How to generate the form:
- In Zoho CRM, go to Setup → Developer Space → Webforms
- Click Create New Form
- Select the module: Leads (or Contacts, if you want to capture contacts directly)
- Drag the fields you want to collect onto the form canvas — First Name, Last Name, Email, Phone, Company, and a custom field like "Source" or "Service Interest"
- Under Form Details, set the Lead Owner — you can assign to a specific user, round-robin across a team, or use territory-based assignment
- Under Spam Control, enable Captcha (Google reCAPTCHA v2 or v3 supported)
- Click Get Code — Zoho generates an HTML
<form>snippet with a hidden token
Paste this into your site. On WordPress, use a custom HTML block or your theme's custom code section. On Webflow, use an embed block. On plain HTML sites, paste it directly.
What the hidden token does: The form submission goes to crm.zoho.com/crm/WebToLeadForm with your org's unique token. Zoho validates the token and creates the lead. If the token is missing or tampered with, the submission is rejected.
Limitations:
- The form's visual styling is minimal out of the box — you'll need custom CSS to match your site design
- No conditional logic (show/hide fields based on previous answers)
- Limited to creating records in one module per form
Method 2 — Zoho Forms Embed
Zoho Forms is a dedicated form builder with more design control and logic than Web-to-Lead. Every form connects natively to Zoho CRM — no code required for the CRM integration part.
When to use Zoho Forms over Web-to-Lead:
- You need multi-page forms
- You need conditional fields (show "Budget" field only if "Company Size" > 10)
- You want a polished, mobile-responsive form design
- You need file upload fields (e.g., upload a project brief)
Setup:
- Go to
forms.zoho.com→ New Form - Build your form with the drag-and-drop builder
- Go to Integrations → Zoho CRM
- Authenticate with your CRM account
- Map each Zoho Forms field to the corresponding Zoho CRM field — this is explicit, one-to-one mapping
- Set the module (Leads, Contacts, or Deals), and configure the lead owner assignment
- In Embed, copy the iframe embed code or the JavaScript embed snippet
Field mapping example:
| Zoho Forms Field | Zoho CRM Field | Module | |---|---|---| | First Name | First Name | Leads | | Last Name | Last Name | Leads | | Email | Email | Leads | | Phone | Mobile | Leads | | Company | Company | Leads | | Message | Description | Leads | | Service Interest (dropdown) | Lead Source (picklist) | Leads |
Duplicate handling: In the Zoho Forms → CRM integration settings, enable Check for Duplicates. Set the duplicate check field to Email. If a lead with the same email exists, Zoho CRM will update the existing record instead of creating a duplicate.
Method 3 — Zoho SalesIQ Live Chat
SalesIQ is Zoho's live chat and visitor intelligence tool. When a visitor starts a chat or submits a chat form, SalesIQ can automatically create a Lead or Contact in Zoho CRM.
What SalesIQ captures without any form fill:
- Page the visitor is on when they initiate chat
- Referring URL (UTM parameters if present)
- Approximate location (country, city from IP)
- Return visitor status
Setup:
- In Zoho SalesIQ, go to Settings → Integrations → Zoho CRM
- Enable the integration and authenticate
- Configure Visitor Tracking — decide whether all website visitors create a CRM Lead (not recommended — too noisy) or only chat initiators
- Set Lead Creation Trigger to: "When a visitor initiates a chat"
- Map the chat data fields to CRM fields: Visitor Name → First Name + Last Name, Email → Email, Phone → Phone
- Under Chat Assignment, configure which CRM user owns leads from SalesIQ chats
Chat-to-Lead automation (Zoho CRM workflow):
After a chat ends, you can trigger a Zoho CRM workflow to:
- Send an automated follow-up email to the lead
- Create a task for the assigned rep to call back within 24 hours
- Tag the lead with "SalesIQ Chat" for segmentation
SalesIQ also shows you which CRM leads are currently on your website — this is visible in the SalesIQ Visitor Tracking dashboard. If a known lead is browsing your pricing page, the assigned rep gets a notification.
Method 4 — WordPress Plugin (Zoho CRM for WordPress)
If your site runs WordPress, Zoho publishes a first-party WordPress plugin: Zoho CRM for WordPress (available in the WordPress plugin directory).
Plugin capabilities:
- Connects any WordPress form plugin (Contact Form 7, WPForms, Gravity Forms, Elementor Forms) to Zoho CRM
- Creates Leads, Contacts, or any custom module record on form submission
- Supports custom field mapping per form
- Handles duplicate record checking
Setup:
- Install and activate the Zoho CRM for WordPress plugin
- Go to WordPress Admin → Zoho CRM → Authentication — authenticate with your Zoho account
- Go to Zoho CRM → Settings → Form Integration
- Select your form plugin from the dropdown (e.g., Contact Form 7)
- Select the specific form to integrate
- Map form fields to CRM fields
- Set the CRM module and lead owner
For Contact Form 7 specifically: The plugin adds a new settings tab called "Zoho CRM" on each CF7 form's edit screen. Configure the mapping there.
Limitation: The plugin creates new records only — it does not update existing CRM records when a known contact submits a form again. For update logic, use Method 6 (API).
Method 5 — Webhook from Website to Zoho CRM
If your website already has a form with a webhook/HTTP POST capability (common in Webflow, Squarespace, and custom-built sites), you can POST directly to Zoho CRM's API or to a Zoho Flow webhook.
Option A — Post to Zoho Flow Webhook (Easier)
- In Zoho Flow, create a new flow with trigger: Webhook
- Copy the webhook URL (looks like
https://flow.zoho.in/YOUR_ORG/flow/webhook/incoming?zapikey=...) - In your form's POST action, send a JSON body with your form fields to this URL
- In Zoho Flow, add an action: Zoho CRM → Create Lead and map the incoming webhook fields to CRM fields
Sample JSON body your form should send:
{
"first_name": "Priya",
"last_name": "Sharma",
"email": "priya@company.com",
"phone": "+91-9876543210",
"company": "Sharma Exports",
"message": "Interested in Zoho Books implementation"
}
Option B — Post directly to Zoho CRM API
This requires OAuth authentication (access tokens). Suitable for server-side form handlers.
Endpoint: POST https://www.zohoapis.in/crm/v6/Leads
Headers:
Authorization: Zoho-oauthtoken {access_token}Content-Type: application/json
Body:
{
"data": [
{
"First_Name": "Priya",
"Last_Name": "Sharma",
"Email": "priya@company.com",
"Phone": "+91-9876543210",
"Company": "Sharma Exports",
"Lead_Source": "Website",
"Description": "Interested in Zoho Books implementation"
}
]
}
Use the India datacenter API endpoint (zohoapis.in) if your Zoho org is registered in India. Use zohoapis.com for US-based orgs, zohoapis.eu for EU.
Method 6 — Full Custom API Integration
For complex websites — e-commerce, SaaS products, custom-built portals — a full API integration gives the most control.
Authentication: OAuth 2.0
- Go to
api-console.zoho.com→ Add Client → Web-Based Application - Set the Redirect URI to your server's callback URL
- Note the Client ID and Client Secret
- Implement the OAuth flow on your server:
- Redirect user to
https://accounts.zoho.in/oauth/v2/auth?scope=ZohoCRM.modules.ALL&client_id={CLIENT_ID}&response_type=code&redirect_uri={REDIRECT_URI} - Exchange the returned
codefor an access token and refresh token - Store the refresh token securely — it doesn't expire (unless revoked)
- Use the access token (valid 1 hour) for API calls; refresh it using the refresh token endpoint
- Redirect user to
Upsert logic (create or update):
Use the CRM's upsert endpoint to avoid duplicates:
POST https://www.zohoapis.in/crm/v6/Leads/upsert
Body:
{
"data": [
{
"First_Name": "Priya",
"Last_Name": "Sharma",
"Email": "priya@company.com",
"Company": "Sharma Exports"
}
],
"duplicate_check_fields": ["Email"]
}
If a Lead with that email exists, CRM updates it. If not, it creates a new one.
Lead Assignment Rules
Regardless of which integration method you use, configure Lead Assignment Rules in Zoho CRM to route incoming leads automatically.
Setup:
- Go to CRM → Setup → Automation → Assignment Rules
- Select the Leads module
- Click New Rule
- Define conditions — e.g., if
Lead Source = WebsiteANDCountry = India, assign to the India sales team - Set the assignment type: Specific User, Round Robin (cycle through a list of users), or Territory-based
Example rules for a multi-region business:
| Condition | Assigned To | |---|---| | Country = India | India Sales Team (Round Robin) | | Country = UAE | UAE Account Manager | | Country = UK or USA | International Sales Rep | | Annual Revenue > ₹10 Crore | Enterprise Sales Lead |
Spam Filtering
Without spam filtering, your Zoho CRM fills with bot submissions within weeks. Here's how to handle it at each method:
Web-to-Lead / Zoho Forms: Enable reCAPTCHA in the form settings. Zoho Forms supports both reCAPTCHA v2 (checkbox) and v3 (invisible score-based).
WordPress Plugin: Add a honeypot field to your form (Contact Form 7 has a built-in honeypot feature). Bots fill all fields including the honeypot; the plugin checks for honeypot values and discards those submissions before they reach CRM.
Webhook/API: Validate submissions server-side before calling the Zoho API. Check for:
- Valid email format (regex)
- Phone number format (country code + digit count)
- Honeypot field is empty
- Submission rate limiting per IP (max 5 submissions per hour from same IP)
After the fact — Zoho CRM Validation Rules: Go to CRM → Setup → Modules and Fields → Leads → Validation Rules. Add a rule: if Email does not match @ — mark the record as invalid (or block creation with an error). This is a backstop, not a replacement for front-end filtering.
Choosing the Right Method
| Website Platform | Technical Level | Recommended Method | |---|---|---| | WordPress | Non-technical | WordPress Plugin + CF7/WPForms | | Webflow / Squarespace | Non-technical | Web-to-Lead or Zoho Forms embed | | Any website | Non-technical | Zoho Forms embed | | Any website with webhooks | Semi-technical | Webhook → Zoho Flow | | Custom/SaaS product | Technical | Zoho CRM API (OAuth) | | Need live chat + lead capture | Any | Zoho SalesIQ |
If you're setting up lead capture from your website and want it done right the first time — proper field mapping, assignment rules, spam filtering, and CRM workflow automation on top — VoltVave implements this as part of Zoho CRM onboarding. We work with businesses in India, UAE, the UK, and the USA.
// Related Services
// Authorized Zoho Partner
Need help with Zoho?
VoltVave handles Zoho implementation, migration, and long-term support for businesses across India. Free initial consultation.
