How to connect Zoho Books to Hermes Agent
Connect Zoho Books to Hermes Agent with ClawLink: 265 tools from chat via hosted OAuth. No API keys to manage, no Zoho MCP console to configure.


Organize finances, invoices, bills, and accounting. Once connected, Hermes Agent can read and act on Zoho Books from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Zoho Books access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Zoho Books setup: pair once in the browser and your always-on Hermes agent can act on Zoho Books for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to Zoho Books.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect Zoho Books
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Zoho Books?"
The whole pairing handshake. Run these once, then approve Zoho Books in the dashboard:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # approve the link in your browser
hermes clawlink finish
hermes clawlink testThis is the same install the Google AI Overview quotes on this query. hermes clawlink test is the command that confirms pairing actually worked; if it fails, run hermes clawlink begin again for a fresh link, approval links expire.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Zoho Books is connected in the dashboard, that agent calls the same 265 Zoho Books tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Zoho Books MCP for Hermes
Looking for a Zoho Books MCP server for Hermes Agent? ClawLink connects Zoho Books to Hermes Agent and exposes 265 Zoho Books tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Zoho Books integration works the same way.
Zoho now advertises its own 'no API keys' story: Zia agents inside your Zoho account, and the Zoho MCP Console for connecting MCP clients. Both are real, and neither is your Hermes Agent. Zia answers from inside Zoho's ecosystem, and the console has you build or pick an MCP server and enable tools in Zoho's site. This page is the other direction: your own Hermes Agent, already living in your chat, calls 265 Zoho Books tools through a hosted OAuth connection. You authorize once in the browser, no key is pasted anywhere, and nothing is declared in a client config file.
What the Hermes Agent Zoho Books integration can do
265 Zoho Books tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 265.
30 of 265 Zoho Books tools for Hermes
| Tool | What it does |
|---|---|
Create bank account zoho_books_create_bank_account | Create a bank or credit card account in Zoho Books |
Create chart of account zoho_books_create_chart_of_account | Create a chart of account in Zoho Books |
Create contact zoho_books_create_contact | Create a contact in Zoho Books |
Create expense zoho_books_create_expense | Create an expense in Zoho Books |
Create recurring invoice zoho_books_create_recurring_invoice | Create a recurring invoice in Zoho Books |
Email invoice zoho_books_email_invoice | Email an invoice to a contact in Zoho Books |
Get bill zoho_books_get_bill | Get details of a specific bill in Zoho Books |
Get contact zoho_books_get_contact | Get details of a specific contact in Zoho Books |
Get invoice zoho_books_get_invoice | Get details of a specific invoice in Zoho Books |
List bills zoho_books_list_bills | List all bills in Zoho Books |
List chart of accounts zoho_books_list_chart_of_accounts | List the chart of accounts in Zoho Books |
List contacts zoho_books_list_contacts | List all contacts in Zoho Books |
List invoices zoho_books_list_invoices | List all invoices in Zoho Books |
Bulk export invoices PDF zoho_books_bulk_export_invoices_pdf | Export multiple invoices to a single PDF |
Bulk print invoices zoho_books_bulk_print_invoices | Bulk print up to 25 invoices as a single PDF |
Convert purchase order to bill zoho_books_convert_purchase_order_to_bill | Retrieve bill data from purchase orders for conversion |
Export bulk estimates PDF zoho_books_export_bulk_estimates_pdf | Export multiple estimates to a single PDF |
Export sales orders PDF zoho_books_export_sales_orders_pdf | Export multiple sales orders to a single PDF |
Get all tag options zoho_books_get_all_tag_options | Retrieve all options for a reporting tag |
Get bank account zoho_books_get_bank_account | Fetch details of a specific bank account |
Get base currency adjustment zoho_books_get_base_currency_adjustment | Fetch details of a specific base currency adjustment |
Get bill attachment zoho_books_get_bill_attachment | Fetch an attachment from a specific bill |
Get chart of account zoho_books_get_chart_of_account | Fetch details of a specific chart of account |
Get contact address zoho_books_get_contact_address | Retrieve all addresses associated with a contact |
Get contact person zoho_books_get_contact_person | Retrieve details of a specific contact person |
Get contact statement mail zoho_books_get_contact_statement_mail | Retrieve the pre-populated email content for a contact statement |
Get credit note zoho_books_get_credit_note | Fetch details of a specific credit note by ID |
Get currency zoho_books_get_currency | Retrieve details of a specific currency |
Get estimate zoho_books_get_estimate | Fetch details of a specific estimate |
Get estimate email zoho_books_get_estimate_email | Retrieve the pre-populated email content for an estimate |
Try it: find the Zoho Books tool you need
Browse the 30 Zoho Books tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Call zoho_books_list_invoices and split paid from unpaid. Summarise unpaid totals by contact, oldest first, and tell me which are past due.
Get invoice <id> with zoho_books_get_invoice, check the contact with zoho_books_get_contact, then use zoho_books_email_invoice. Show me the recipient before sending.
List invoices, bills, and the chart of accounts. Tell me what is unpaid, what is due this month, and which expenses have no category.
Use zoho_books_convert_purchase_order_to_bill for <po id> and show me the bill before it is saved.
How the Zoho Books tools behave
Details that decide whether a Zoho Books prompt is a quick answer or a rate-limited crawl.
- One connection, one organisation. The token is tied to the Zoho account that authorized it, and organisation-scoped calls use that org. Get the org wrong and the API answers 403, not 404.
- Ids, not names. Invoices, bills, contacts, and chart-of-account entries are addressed by id, and the list tools are where ids come from.
- Bulk is a tool category. Bulk PDF export and bulk printing exist as dedicated tools: one call for many invoices instead of one call per invoice, which is kinder to the rate limit.
- Emailing is a tool.
zoho_books_email_invoicesends a real email to a customer; confirm the recipient and content before approving. - Statements are readable. Contact statement mail and estimate email content are retrievable, so the agent can answer 'what did we send them' without opening Zoho.
- Writes change real books. Creating expenses, contacts, and recurring invoices lands in records other people rely on; state the confirmation step in the prompt.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Zoho Books working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Zoho Books app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Zoho Books through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Zoho Books. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Zoho Books actions to the runtime in a format your agent can reliably use. | 265 tools for Zoho Books are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Zoho Books to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Zoho Books in the browser, and the 265 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use Zoho Books
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect Zoho Books from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Zoho Books tools
Zoho Books tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Zoho Books call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Zoho Books returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
Zoho Books returns 403 or "insufficient permissions"
The engines teach scopes, user roles, and regenerating tokens, but a hosted OAuth flow has no token file to regenerate, so the real causes are narrower. First, the connection was authorized under a user whose role lacks module access: Zoho grants Books modules by role, with admins unrestricted by default, so a custom role that never granted the module fails exactly like a bad token. Second, the agent passed the wrong organisation or a placeholder value copied from documentation, like YOUR_ID or YOUR_ORG_ID, which the API answers with 403 rather than a helpful message. Third, if the OAuth scopes changed since you approved the connection, reauthorize from the dashboard.
Ask the agent to diagnose it:
Call zoho_books_list_invoices and quote the exact error code. If it is a permissions error, tell me which organisation this connection acts on and which Zoho user authorized it. Do not retry the failed call yet.Zoho Books starts returning 429 or rate-limit errors during bulk work
Zoho rate-limits the Books API by requests per minute and a daily allowance that depends on your plan, and the 429 response carries the details. The traffic shape that meets the limit is exactly what the bulk tools encourage: zoho_books_bulk_export_invoices_pdf or zoho_books_bulk_print_invoices on a large set, or an agent enumerating every invoice one call at a time. The fix is not to retry harder but to stage the work: one month at a time, fewer records per call, and have the agent tell you what it intends to enumerate before it starts.
Ask the agent to diagnose it:
Tell me how many Zoho Books calls you made in the last minute and which bulk tool you were running. Quote the error verbatim. Do not call Zoho Books again until I reply.'Tool not found' or Zoho Books tools missing
Two different failures. If Hermes shows no Zoho Books tools at all, the connection or the pairing is incomplete: confirm both hermes clawlink begin and hermes clawlink finish ran and that Zoho Books shows as connected in the dashboard. If most tools work and a single name fails, the name is wrong and the error lists the closest real ones. There is also the first-call timing case unique to this setup: schemas load on demand, so the opening Zoho Books call in a fresh session can arrive before the catalog and needs one retry. What does not apply is the usual advice for this symptom, which assumes a local MCP server with tools enabled per-tool in a console.
Ask the agent to diagnose it:
List the Zoho Books tools you actually have access to. If there are none, say so plainly. If there are, tell me which one lists invoices and use that exact name.OAuth finished in the browser but the account is still missing
Try reconnecting Zoho Books and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a Hermes Agent Zoho Books integration?
Yes. ClawLink is the fastest way to connect Hermes to Zoho Books: link your Zoho Books account once in the browser and Hermes Agent can call the Zoho Books API through 265 ready-made tools — no custom code or token handling.
How do I connect Zoho Books to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Zoho Books in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.
How long does it take to connect Zoho Books to Hermes Agent?
About two minutes. Sign in, click Connect next to Zoho Books in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Zoho Books up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Zoho Books working from chat.
What is the difference between this and Zoho's Zia agents or MCP Console?
Zia is an assistant that lives inside Zoho and answers from Zoho's apps; it is not your Hermes Agent. The MCP Console works too, but you create an MCP server at mcp.zoho.com, paste its URL into your client, and enable tools per-tool inside Zoho's site. Here the 265 tools come pre-wired on a hosted OAuth connection: pairing is two Hermes commands, there is no console to configure, and one dashboard action revokes the whole connection. Same Zoho data either way; the difference is whose agent drives it and who runs the plumbing.
Doesn't exposing 265 tools overwhelm the agent?
The objection comes from MCP servers that register every tool with the client at once. This connection does not do that: the catalog loads on demand, so a session starts with the tools the agent is actually calling and the rest hydrate as needed. 265 is the ceiling, not the working set, which is why an agent here does not choke where one pointed at a fully-registered server would.
What can the agent do in Zoho Books?
Invoices, bills, contacts, the chart of accounts, expenses, recurring invoices, estimates, credit notes, bank accounts, tags, purchase-order-to-bill conversion, and bulk PDF export and printing. Emailing an invoice is its own tool. The writes are the ones to be deliberate about, because they land in real books: creating expenses, contacts, recurring invoices, and bank accounts, converting purchase orders, and emailing customers.
Where does the OAuth token live, and how do I revoke it?
The OAuth grant is held server-side on the hosted connection. There is no token file on your machine to lose or leak, which is the difference from the self-hosted flows the search results teach. Revoking is one action: disconnect Zoho Books in the ClawLink dashboard, or revoke the app in your Zoho account, and the agent loses access from that moment.
Which Zoho organisation does the agent act as?
The connection acts as the Zoho account you authorized, and organisation-scoped calls carry that organisation. A mismatch between the organisation a tool expects and the organisation of the connection is one of the classic 403 causes on this provider, so if a call fails with a permissions error, check the organisation before anything else.
Hermes paired but still can't use Zoho Books
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.