Resume Demo
Digits CRM
Choose your language
Choose your presenter
Choose your language
English
Arabic
Malayalam
Tamil
Hindi
Urdu
Pashto
French
Chinese
English (UK)
English (US)
Add Client Go →
Create a new client with full details including company name, contact info, and assignment.
📋
View Details Go →
Click any client row to view complete profile, documents, invoices, and projects.
📄
Documents Tab Go →
Manage client documents with expiry tracking and compliance alerts.
📊
Pipeline View Go →
Track leads through stages: New → Qualified → Proposal → Won/Lost.
💰
Lead Value Go →
Each lead shows potential deal value for revenue forecasting.
👤
Lead Assignment Go →
Assign leads to team members for clear ownership and tracking.
📅
Document Expiry Go →
See all client documents with upcoming expirations and compliance deadlines.
🎨
Custom Reports Go →
Build reports by drag-and-dropping fields from any module — no coding needed.
📈
Export & Schedule Go →
Export reports to Excel or schedule them to email automatically.
Zoho Books Integration
Marketplace
Digits — Demo
Company
Finish setting up your CRM — 5 of 11 steps done Continue setup
Back to Dashboard
How the Zoho Books Sync Works
1. What the integration syncs
CRMZoho BooksDirection
Clients (with their Contacts & Companies)Customers (with a primary contact person)Both ways
Services catalogueItemsCRM → Zoho only
Estimates (with line items & VAT)Estimates / QuotesBoth ways
Invoices (with line items & VAT)InvoicesBoth ways
Invoice paymentsPayments Received (applied to the invoice)Both ways
Credit notesCredit Notes (applied to the original invoice)Both ways
Expenses (approved)Bills (vendor documents)Both ways
The direction is configurable in Settings: Bi-directional (default), Push only (CRM → Zoho) or Pull only (Zoho → CRM). You can also tick which entities sync at all.
2. One-time setup & connection
  1. Pick your Zoho Region in Settings — it must match your Zoho account's data-center. Check the domain your Zoho Books opens on (e.g. books.zoho.com = Global/US, books.zoho.sa = Middle East). Even if you pick wrong, the connection self-corrects: Zoho tells the app your real data-center during login and the app remembers it.
  2. Create the API app in the API console of the same region (Server-based Application) and set the Redirect URI exactly to https://crm.digitsonline.com/integrations/zoho-books/oauth/callback. If your app was created in another region's console, enable Settings → Multi-DC on it and toggle your data-center ON.
  3. Paste the Client ID + Client Secret in Settings, Save, then click Connect to Zoho Books and Allow. The app captures your organisation automatically.
  4. Optional — real-time sync: set a Webhook Secret in Settings and configure the same secret + this URL in Zoho Books → Developer Space → Webhooks: https://crm.digitsonline.com/api/integrations/zoho-books/webhook. For security, webhook events are rejected until a secret is set.
3. Clients → Zoho Customers — exactly what maps where

In the CRM, a client can have multiple contact persons (Client → Contacts tab, one marked Primary) and multiple companies (Client → Companies tab, one marked Primary). The sync always uses the primary of each:

Field in Zoho BooksTaken from (CRM)If missing
NAME (customer display name) The primary contact person's name client's Contact Name field, else the company name
COMPANY NAME The primary company's name (first company marked primary — even when the client owns several) the client record's Company Name field
EMAIL / WORK PHONE / MOBILE The primary contact person's email, phone and mobile — sent as Zoho's primary contact person, which is where Zoho displays them the client record's own email/phone/mobile
Tax Registration Number (TRN) The primary company's VAT number — customer is marked VAT registered the client record's VAT Number; skipped entirely unless it is a valid 15-digit TRN (an invalid TRN never blocks the rest of the profile)
Billing address & Website The primary company's address / city / state / zip / country and website the client record's address fields
Phone format Every phone/mobile is pushed in international format (e.g. +971503855165) — the country code is inferred from the contact person's country, then the primary company's, then the client's, then the Zoho organisation's own country a number with no usable country hint is sent exactly as typed
Editing later: change the primary contact person or primary company in the CRM and the next sync updates the Zoho customer automatically — including refreshing the primary contact person's email/phone through Zoho's Contact Persons API.

Pull direction (Zoho → CRM): customers created in Zoho arrive as new CRM clients (company name, email, phone, website, address). Vendors are excluded — suppliers created for expense bills never appear in your client list.

4. Invoices
  • Customer link: Zoho requires every invoice to belong to a customer. If the invoice's client was never synced, the sync creates the Zoho customer first, automatically.
  • One continuous numbering (CRM is the numbering authority): your CRM numbers (INV-2026-0001, …) are kept in Zoho via the "keep my number" flag — and an invoice created inside Zoho Books is assigned the CRM's next sequential number on pull and immediately renamed in Zoho to match, so both systems always share one sequence. Existing CRM invoice numbers are never overwritten by pulls.
  • Invoices dated before your Zoho VAT period: Zoho refuses any tax rate on them, so the sync automatically pushes those invoices without VAT on the lines (how Zoho expects pre-period records) — current-period invoices keep their 5% VAT.
  • Line items: description, quantity, rate and discount % are carried over.
  • UAE VAT: each line's VAT % is matched against your Zoho organisation's tax list (e.g. the standard 5% VAT) and applied as a real Zoho tax, so totals and VAT reports are correct. If the org has no matching tax the line is pushed without tax.
  • Status mapping (pull): Zoho void → CRM cancelled; partially paidpartial; draft/sent/paid/overdue map one-to-one.
  • Batching: pushes are capped at 50 new invoices per click so the request can't time out — the completion popup tells you to click again for the rest.
5. Expenses → Zoho Bills
  • Approval gate: only APPROVED expenses are pushed to Zoho Books — pending or rejected expenses stay out of the books; once approved they sync on the next run.
  • Approval rights: Approve / Reject is available to admins and managers (other roles see the expense but cannot approve it).
  • "Purchased From" vendor list: the field is a dropdown backed by a managed vendor list — use the + button beside it to add a new vendor on the spot. The list was auto-seeded from vendor names already typed on your existing expenses.
  • Vendor in Zoho: Zoho bills must belong to a vendor. The sync finds — or creates — a Zoho vendor contact from the expense's "Purchased From" value (falls back to a generic "CRM Expenses" vendor when empty).
  • Client on the bill: when the expense has a client that is already synced, the bill line in Zoho carries that customer, so the client shows on the bill.
  • Expense account: bill lines post to the first expense-type account in your Zoho chart of accounts. If your org has none, the sync tells you exactly that in the results.
  • Fields: purchase date → bill date, item name → line description, price → amount, description → notes.
  • Status mapping (pull): Zoho paid → CRM approved; voidrejected; everything else arrives as pending.
5b. Payments, Credit Notes, Estimates & Items
  • Payments Received: a payment recorded on a CRM invoice is pushed to Zoho as a Customer Payment applied to that invoice (amount, date, method, reference) — so the invoice balance and receivables in Zoho always match the CRM. Payments recorded inside Zoho flow back, and the CRM invoice's paid/due amounts and status (partial / paid) update automatically. The invoice must be synced first — the sync orders this for you automatically.
  • Credit Notes: non-draft CRM credit notes push to Zoho (with VAT lines) and are applied against the original invoice when it is synced. Zoho-created credit notes pull back — with the same numbering-authority rule as invoices (they get the CRM's next CN number and Zoho is renamed to match). Status map: Zoho closed → CRM applied, voidvoided.
  • Estimates / Quotes: CRM estimates push with line items, VAT, validity date and status (sent / accepted / declined); Zoho-created estimates pull back with the CRM numbering-authority rule. Zoho invoiced arrives as CRM accepted. New pushes are capped at 50 per run.
  • Items (one-way): the active services in your CRM catalogue push to Zoho as service Items (name, rate, SKU/code, description, VAT) so Zoho's sales-by-item reports match the CRM. An existing Zoho item with the same name is adopted, never duplicated. Zoho items are not pulled — the CRM catalogue is the source of truth.
6. Change detection & conflicts
  • Every synced record keeps a fingerprint of both sides. On each run the sync only touches records that actually changed — unchanged records are skipped (fast + no duplicates).
  • Changed in CRM only → pushed to Zoho. Changed in Zoho only → pulled into the CRM.
  • Changed on both sides since the last sync → the CRM version wins and the record is flagged conflict in the sync map for review.
  • Deleting a synced record in the CRM does not delete it in Zoho; a later pull re-creates it in the CRM.
7. Ways the sync runs
  • Sync Now (dashboard) — runs all enabled entities in order: contacts → invoices → expenses.
  • Sync by Entity buttons — run just one entity; results show in a styled popup, and any failures open the full Results & Fix Guide page.
  • Automatic (hourly) — enable "automatic sync" in Settings; requires the server scheduler (cron) to be running.
  • Real-time (webhooks) — with the webhook configured, changes made inside Zoho Books (contact/invoice/bill created or updated) flow into the CRM within seconds.
8. When something fails
  • Every failed record's reason is recorded. In Recent Sync Activity click Details on the run, or open the Results & Fix Guide page — it recognises the common Zoho configuration problems and shows step-by-step fixes.
MessageMeaning / fix
Invalid value passed for tax_reg_noThe client/company VAT number is not a valid 15-digit TRN — correct it in the CRM; the contact itself still syncs without the TRN.
This user is not associated with any organizationRegion/data-center mismatch — check the domain your Zoho Books opens on, set the matching Region in Settings, Disconnect + Connect.
Number entered does not match the auto-generated numberHandled automatically by the sync ("keep my number" flag) — seeing it means the current update isn't applied yet.
…only if it falls within the tax periodThe invoice is dated before your Zoho org's VAT period — handled automatically (pushed without VAT). Alternative: set "VAT Registered On" earlier in Zoho Books → Settings → Taxes → VAT Settings.
This action is unauthorized (expense approve)Only admins and managers can approve/reject expenses — check the user's role.
Customer cannot be empty / Invoice has no clientAttach a client to the invoice in the CRM, then sync again.
No expense account foundCreate an expense account in Zoho Books → Accountant → Chart of Accounts.
Zoho rejected the token refreshThe authorisation was revoked/expired — open Settings and Connect again.
Help Center
Loading...
Guide
Example
Videos
Search
AI

Click a section to read the guide.

Chat
Loading...
Abu is guiding you — click any element and Abu will explain it  ·  Esc to exit