The Zoho CRM integration connects your Newo.ai AI Employee with Zoho CRM to automate appointment scheduling, contact management, and deal tracking. Once connected, the AI Employee can check availability, book and cancel appointments, create deals and leads, and attach conversation notes β all in real time.
Requirements
Before setting up the integration, make sure you have:
An active Zoho CRM account with admin rights
Your Zoho account's datacenter region (
.com,.eu,.in, or.au)
Authorize Zoho CRM
In the Newo.ai Builder, go to Attributes and set
zoho_regionto your Zoho datacenter region (e.g.,eufor Europe,comfor US).Click the Zoho authorization link provided by the platform.
In Zoho CRM, authorize the Newo app and grant the requested scopes (CRM org, settings, users, modules, etc.).
After authorizing, copy the authorization code from the redirect URL.
In the Builder, paste the code into the
zoho_oauth_codeattribute.Click Save, then Publish All.
On publish, the platform automatically:
Exchanges the OAuth code for access and refresh tokens
Fetches Zoho CRM users and auto-selects the owner
Fetches deal field definitions and pipeline stages
Injects booking and availability schemas for the AI Employee
ποΈ NOTE
OAuth authorization codes are single-use and expire quickly. If the code expires before you publish, repeat the authorization flow to generate a new one.
Configure attributes
Set these attributes in the Builder under Attributes to customize the integration's behavior.
Required attributes
Attribute | Description |
| One-time OAuth authorization code obtained from the authorization flow. |
| Your Zoho datacenter: |
Optional attributes
Attribute | Description | Default |
| Timezone for appointments. | Project timezone |
| Slot duration in minutes. |
|
| Number of days ahead to search for available slots. | β |
| Enable availability checking. |
|
| Enable appointment booking. |
|
| Enable appointment cancellation. |
|
| Enable automatic deal stage updates after conversations. |
|
| Custom business rules for AI-powered deal stage selection. | β |
| Verify whether a contact exists before booking. |
|
| Automatically check available slots when a conversation begins. |
|
What the integration does
The integration handles scheduling and CRM tasks through an event-driven system. When the AI Employee detects certain conversation signals, it triggers the corresponding Zoho CRM action automatically.
Appointment scheduling
Check availability: The AI Employee queries the Zoho Events calendar and returns open time slots when a client asks about availability.
Book appointment: The AI Employee finds or creates a contact in Zoho CRM, then creates a calendar event with the client as a participant.
Cancel appointment: The AI Employee deletes the event from Zoho CRM when a client requests cancellation.
ποΈ NOTE
Rescheduling is not directly supported. To reschedule, cancel the existing appointment and book a new one.
CRM management
Contact lookup: The integration searches Zoho CRM contacts by phone number before each booking. If no match is found, a new contact is created automatically.
Deal creation and pipeline updates: When a conversation ends, the integration can create or update a CRM deal. If
zoho_update_pipelineis enabled, an AI model analyzes the conversation outcome and selects the appropriate pipeline stage based on yourzoho_pipeline_criteriarules.Lead creation: For new callers not found in Zoho CRM, the integration creates a lead record at the end of the session.
Conversation notes: For returning contacts, the integration attaches a conversation summary and transcript to the contact record in Zoho CRM.
Test the integration
Check availability
In the conversation interface (chat or voice), ask: "What slots are available this week?"
Verify that the AI Employee returns open time slots calculated from the Zoho Events calendar.
Book an appointment
Complete a booking conversation and verify in Zoho CRM under Activities > Events that:
A contact was created or matched by phone number.
A calendar event was created with the correct subject, start/end time, owner, and participant.
Cancel an appointment
Ask the AI Employee to cancel an existing appointment and verify the event is removed from Zoho CRM under Activities > Events.
Post-conversation CRM records
After a conversation ends, verify:
A deal was created or its stage updated (requires
zoho_update_pipelineenabled).A note with the conversation summary and transcript was added to the contact record (returning contacts).
A lead record was created in Zoho CRM (new callers only).
Troubleshooting
If the integration isn't working as expected:
OAuth tokens: Confirm
zoho_access_tokenis not empty β this indicates a successful token exchange.Region mismatch: Verify
zoho_regionmatches your actual Zoho datacenter.Expired authorization code: OAuth codes are single-use. If the code expired before publishing, generate a new one and re-publish.
Feature flags disabled: Confirm
zoho_enable_booking,zoho_enable_slot_check, andzoho_enable_cancellationare set toTrue.Missing user ID: Verify
zoho_user_idwas populated automatically during setup.Credential changes: Re-publish the project if any credentials were updated.
π¨ WARNING
This integration performs real operations in Zoho CRM. Contacts, events, deals, leads, and notes created through the AI Employee are reflected in the live CRM system.
FAQ
Q: Does the integration import historical CRM data?
No. Only records created after the integration is activated are managed. The client history flow attaches notes only for new conversations.
Q: Can I connect multiple Zoho CRM accounts?
Each integration instance supports one Zoho account and user. To connect multiple accounts, set up separate integration instances.
Q: How does the AI select the deal pipeline stage?
After each conversation, an AI model analyzes the summary, outcome, and transcript. It applies the business rules in zoho_pipeline_criteria to select the most appropriate deal stage and includes an explanation for the choice.
Q: What happens if a contact already exists in Zoho CRM?
The integration searches contacts by phone number. If a match is found, the existing contact is used and notes are appended. If no match is found, a new contact is created automatically.
Q: What happens if the OAuth token expires during use?
The integration automatically detects HTTP 401 responses and refreshes the token using the stored refresh token. The new access token is saved and the original request is retried.
Q: What CRM records can be created during a conversation?
Depending on configuration: a Contact (during booking), an Event (appointment), a Deal (with pipeline stage), a Lead (for new callers), and a Note (conversation summary). Not all records are created every time β it depends on which flows are enabled.
