ml-connector
Zoho BooksZoho CRM

Zoho Books and Zoho CRM integration

Zoho Books handles your accounting. Zoho CRM manages your sales pipeline. Connecting them keeps customer records, invoices, and contact information synchronized across both systems. New customers in Zoho CRM flow into Zoho Books, invoice records sync back to CRM, and contact updates in either system reach the other without manual intervention. ml-connector bridges the different regional APIs and OAuth2 implementations, ensuring both systems stay in agreement.

How Zoho Books works

Zoho Books exposes invoices, bills, purchase orders, contacts, customer payments, items, chart of accounts, journals, and expenses through a REST API with region-specific base URLs (US, EU, India, Australia, Japan, Canada, China, Saudi Arabia). Authentication uses OAuth2 with a user-delegated refresh token and requires the organization ID as a query parameter on every call. Access tokens expire after 1 hour and cannot exceed 10 new tokens per 10-minute window. Zoho Books supports webhooks configured via API for events on invoices, bills, purchase orders, contacts, and payments, and also supports polling via offset-based pagination for bulk syncs.

How Zoho CRM works

Zoho CRM stores accounts, contacts, vendors, deals, invoices, purchase orders, sales orders, quotes, leads, and products through a region-specific REST API. Authentication uses OAuth2 with offline_access for long-lived refresh tokens or client credentials for headless flows. Access tokens valid for 1 hour with a mandatory refresh cycle. Zoho CRM delivers change notifications via webhooks on a channel that expires and must be renewed before lapse. Invoices, purchase orders, sales orders, quotes, vendors, and products are available only in Professional and above editions. Notification payloads contain record IDs only; full data must be fetched separately.

What moves between them

Customer and contact records sync bidirectionally. When a new contact is created in Zoho Books, ml-connector pushes it to Zoho CRM as a contact record. When a contact is updated in Zoho CRM, the change flows back to Zoho Books. Invoice and customer payment records flow from Zoho Books into Zoho CRM to maintain a complete view of sales and payment history. The sync operates through webhooks where available and falls back to scheduled polling for reliable delivery across region boundaries.

How ml-connector handles it

ml-connector stores OAuth2 credentials for both systems and automatically refreshes access tokens before expiry, every 55 minutes. Both Zoho Books and Zoho CRM are region-specific; the connector determines the correct region from the token response api_domain field and routes all subsequent calls to the matching regional base URL. For Zoho Books, the organization_id is resolved once after authentication and included as a required query parameter on all endpoints. Webhooks are registered on both sides; Zoho Books webhooks are verified using HMAC signature validation against the configured secret, while Zoho CRM notifications require channel renewal every 24 hours and payload fetching via a separate GET call to retrieve full entity details. Rate limits are 100 requests per minute on both systems; ml-connector backs off on HTTP 429 and retries with exponential jitter. Contact and invoice records are matched by external ID or email to prevent duplicates across syncs.

A real-world example

A mid-sized B2B services company runs Zoho Books for invoicing and accounts payable, and Zoho CRM for sales pipeline and customer relationships. Before the integration, the finance team manually entered new customer records from Zoho CRM into Zoho Books each month, and sales reps pulled completed invoices from Zoho Books back into CRM deal records by hand. This created duplicate data, missed updates, and month-end reconciliation friction. With Zoho Books and Zoho CRM connected, every new customer created in Zoho CRM automatically flows to Zoho Books, invoices created in Zoho Books appear in the CRM within seconds, and contact updates in either system immediately sync to the other. The finance team no longer re-enters customer data, and sales reps always see current invoice status against each deal.

What you can do

  • Sync contacts and customers bidirectionally between Zoho Books and Zoho CRM, eliminating duplicate data entry.
  • Push new invoices and payments from Zoho Books into Zoho CRM to track financial history on deals.
  • Manage OAuth2 token refresh for both systems, with region-aware routing to the correct Zoho API endpoint.
  • Verify webhook signatures from Zoho Books and handle Zoho CRM notification channel renewal before expiry.
  • Deliver updates via webhooks and fall back to scheduled polling when webhooks are unavailable or disabled.

Questions

Do contact and customer records need to be matched manually, or does ml-connector find them automatically?
ml-connector matches contacts by email address or external ID when available. If a contact exists in both systems with the same email, the connection is established automatically. For new contacts created in one system, ml-connector creates a corresponding record in the other. Manual mapping is required only for historical records without email or ID overlap.
What happens when a Zoho Books webhook expires or fails to deliver?
ml-connector monitors webhook delivery and falls back to scheduled polling on the Zoho Books list endpoints if webhooks fail or are not configured. This ensures no contact or invoice updates are missed, even if the webhook channel becomes unavailable. The polling schedule can be tuned to your business cycle.
Are Zoho Books and Zoho CRM in different regions? How does ml-connector handle that?
Yes, both Zoho Books and Zoho CRM support different regional deployments (US, EU, India, Australia, etc.). ml-connector automatically detects the region from the OAuth2 token response and routes all API calls to the correct regional base URL for each system, so customers can use different regions on each side without configuration overhead.

Related integrations

Connect Zoho Books and Zoho CRM

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started