Integrations
How-toConnect Zoho CRM
Create a Lead in Zoho CRM for every booking and choose which Zoho fields each detail goes to.
Updated Sep 30, 2026
The Zoho CRM integration creates a Lead in your Zoho CRM for every new booking. You choose the lead owner, the lead source, and where each booking detail lands.
Connect Zoho CRM
- 1
Turn on Zoho CRM
In the sidebar, under Integrations, click Browse (or Manage). Switch Zoho CRM on, then click Zoho CRM to open its setup page.
- 2
Click Connect
In the Connection card, click Connect. Zoho's sign-in page opens.
- 3
Approve access
Sign in and accept. Zoho sends you back to the setup page, which now says "Connected to Zoho CRM." and shows a Field mapping card.
- 4
Review the field mapping
The defaults work for most Zoho accounts. See Field mapping below. Click Save mapping when you change anything.
- 5
Send a test lead
Click Send test lead. When you see "Test lead pushed. Check the Recent deliveries table for the Zoho id.", the new Lead's id shows in the Recent activity table. Click it to open the Lead in Zoho.
The test lead is a real Lead named "Test Customer" with the email
[email protected]. Delete it in Zoho when you're done.
Field mapping
The Field mapping card loads your Zoho users and Lead fields.
- Target module — Leads or Contacts. New bookings are created in the Leads module.
- Default Lead Owner — the Zoho user every new lead is assigned to. Leave it on "Use Zoho's default owner" to let Zoho decide.
- Lead Source value — a value from your Zoho Lead Source list. If you leave it empty, ServiceReserve uses the booking's source, or "ServiceReserve".
- External ID field — a Zoho custom field that stores the ServiceReserve request id on each lead. Pick "None" to skip it.
Contact fields
Each contact detail has a Zoho field. These are the defaults:
| ServiceReserve field | Zoho field |
|---|---|
| First name | First_Name |
| Last name | Last_Name |
| Phone | Phone |
| Company | Company |
| Street | Street |
| City | City |
| State | State |
| Zip / Postal code | Zip_Code |
| Country | Country |
Zoho requires a last name and a company on every Lead. If the booking has none, ServiceReserve sends "(Unknown)" as the last name and "(Individual)" as the company.
Booking details
These rows are optional. Pick a Zoho field, ideally a long-text one, to write the detail there as text:
- Selected services (bullet list)
- Intake answers (Q&A text)
- Marketing attribution (key=value) — UTM values, referrer, and landing page.
- ServiceReserve request URL — a link back to the request.
Every lead also gets a Description. It starts with "Submitted via ServiceReserve." and lists the request id, submission time, and source. Selected services, intake answers, and attribution are added there too, unless you mapped them to their own field.
Check deliveries
The Recent activity card lists the last 50 bookings sent to Zoho. Successful rows link to the Lead in Zoho. Failed rows show Zoho's error.
Stop sending leads
Switch the toggle in the page header to Disabled. No leads are created while it's off. Your connection and mapping stay saved.
Troubleshooting
- "We couldn't reach your Zoho account." The mapping card couldn't load your users or fields. Click Reconnect, then reload the page.
- "No fields available. Try Reconnect." Zoho returned no Lead fields. Click Reconnect.
- "Last push failed: Zoho rejected lead: … — …" Zoho refused the lead. The code and message after the colon come from Zoho. A mapped field that doesn't accept the value is a common cause. Change or clear that row in Field mapping.
- "Zoho api_domain missing on credentials — reconnect the integration" Click Reconnect.
- Access expired. ServiceReserve refreshes Zoho access automatically. If the refresh fails, click Reconnect.
- "Re-enable the Zoho integration first." The integration is paused. Switch the page-header toggle on.
Related
Which apps ServiceReserve connects to, how to turn an integration on, and how to check what it sent.
Create a GoHighLevel Contact for every booking, plus an optional Opportunity and Appointment, and filter booking times by your team's GoHighLevel calendars.
Add a row to a Google spreadsheet for every booking, with one tab per form.