Connectors · CRM & sales
Zoho CRM MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Zoho CRM and the rest of your systems. It gives your agent 227 Zoho CRM actions (107 reads, 92 writes and 28 that wait for a confirmation) and holds the Zoho CRM credential itself, so the agent never does. It paces Zoho CRM's limits and records every call. Connecting Zoho CRM needs your own Zoho CRM OAuth app and one admin sign-in.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "zoho_crm.org.get", intent: "check which Zoho CRM account is connected"}# Get the Zoho CRM organisation · read · 1 upstream call- 227actionsin one signed file
- 107readlook, never change
- 92writecreate and update
- 28wait for a yesdestructive, confirmed first
Set up
Connect Zoho CRM in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Zoho CRM.
OAuth 2.0, authorization code with PKCE. You register your own OAuth app with Zoho CRM, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
Before the first sign-in, Zoho CRM needs an OAuth app of your own, registered in its developer portal. actionlake has no Zoho CRM app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idZoho client idclient_secretZoho client secretapi_domainWhere your Zoho CRM lives: your api domain
Found for you at connect: api base.
account { op: "connections.requirements", service: "zoho_crm" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "zoho_crm.org.get" }# get the zoho crm organisation · read · 1 upstream callcheck { action: "zoho_crm.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Zoho CRM at a glance
- Sign-in
- OAuth 2.0, authorization code with PKCE. You register your own OAuth app with Zoho CRM, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
- You provide
access_tokenrefresh_tokenclient_idclient_secret- Setup fields
api_domain- Found for you
- api base
- Limits we pace to
- 100 calls a minute, per connection
- API covered
- Zoho CRM API 7, at your Zoho CRM instance's API base URL, which you enter when connecting (path /crm)
- Built from
- Zoho CRM's documentation, read 15 September 2026zoho.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 107 of 107 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 9 in the store
- Shared entities
- 16, so ask can line Zoho CRM up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Zoho CRM.
227 actions in 1 area. Every one carries its effect, so a key can allow the reads and hold the rest.
- 107readlook, never change
- 92writecreate and update
- 28destructivewait for a confirmation
CRM
227107 read · 92 write · 28 destructive
List Zoho CRM contacts · List Zoho CRM accounts · List Zoho CRM deals · List Zoho CRM users
Top actions
The Zoho CRM API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 170 of Zoho CRM's 174 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
zoho_crm.contacts.listList Zoho CRM contacts | List contact records from the Contacts module. | read | crm.contact.list177 connectors |
zoho_crm.accounts.listList Zoho CRM accounts | List account records from the Accounts module. | read | crm.company.list162 connectors |
zoho_crm.deals.listList Zoho CRM deals | List deal records from the Deals module. | read | crm.deal.list43 connectors |
zoho_crm.users.listList Zoho CRM users | List the org's CRM users, optionally narrowed to active, admin or deactivated. | read | identity.user.list474 connectors |
zoho_crm.notes.listList Zoho CRM notes | List notes across every module, newest first. | read | crm.contact_note.list29 connectors |
zoho_crm.leads.listList Zoho CRM leads | List lead records from the Leads module. | read | crm.lead.list28 connectors |
zoho_crm.vendors.listList Zoho CRM vendors | List vendor records from the Vendors module. | read | crm.company.list162 connectors |
zoho_crm.contacts.createCreate a Zoho CRM contact | Insert one contact into the Contacts module with its named fields. | write | crm.contact.create161 connectors |
zoho_crm.invoices.listList Zoho CRM invoices | List invoice records from the Invoices module. | read | finance.invoice.list101 connectors |
zoho_crm.vendors.createCreate a Zoho CRM vendor | Insert one vendor into the Vendors module with its named fields. | write | crm.company.create142 connectors |
zoho_crm.accounts.createCreate a Zoho CRM account | Insert one account into the Accounts module with its named fields. | write | crm.company.create142 connectors |
zoho_crm.contacts.deleteDelete a Zoho CRM contact | Move one Contacts record to the recycle bin. | destructive | crm.contact.delete147 connectors |
Try it
Prompts to paste into Claude.
Each one names the Zoho CRM actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Zoho CRM invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
zoho_crm.invoices.list - Planread
Audit the org's CRM configuration in Zoho CRM.
calls
zoho_crm.org.getzoho_crm.modules.listzoho_crm.users.listzoho_crm.profiles.listzoho_crm.roles.list+3 more - Planwrite
Escalate a support case and record why in Zoho CRM. Ask me before anything is sent or changed.
calls
zoho_crm.cases.getzoho_crm.record_notes.listzoho_crm.users.getzoho_crm.cases.updatezoho_crm.record_notes.create+1 more - Writewrite
Create a Zoho CRM contact in Zoho CRM. Show me exactly what you will send before you save it.
calls
zoho_crm.contacts.create - Across systemsread
For each customer, how many invoices are in Zoho CRM and how many tickets in ConnectWise PSA?
calls
zoho_crm.invoices.listconnectwise_manage.tickets.list
Across your systems
Zoho CRM, joined to the rest of your business.
One ask fetches from Zoho CRM and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many invoices are in Zoho CRM and how many tickets in ConnectWise PSA?
zoho_crm.invoices.list+connectwise_manage.tickets.list, oncrm.company· ConnectWise PSAFor each customer, how many invoices are in Zoho CRM and how many tickets in ServiceNow?
zoho_crm.invoices.list+servicenow_table.incidents.list, oncrm.company· ServiceNow
identity.user 517crm.company 227crm.contact 192commerce.product 109work.task 105finance.invoice 91commerce.order 86service.ticket 62ask { intent: "for each customer, how many invoices are in Zoho CRM and how many tickets in ConnectWise PSA", steps: [ { action: "zoho_crm.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { join: { left: "inv", right: "tix", on: "crm.company", group_by: "inv.company_name", select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"] } } ]}The plan store
Ready-made plans for Zoho CRM.
9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Build a dossier for one account
Use it when Someone needs a complete picture of one account before a call, renewal or escalation.
Audit the org's CRM configuration
Use it when Someone needs to understand how this Zoho tenant is configured before building on it or changing it.
Review open deals in a stage and note the stale ones
Use it when Someone wants a stage of the pipeline reviewed and each deal stamped with a review note.
Export a module with a bulk read job and wait for it
Use it when A full module needs exporting out of Zoho rather than paging through it record by record.
Triage new leads and tag them for follow up
Use it when A batch of leads needs to be reviewed and marked with a routing tag before anyone works them.
Convert a qualified lead into an account, contact and deal
Use it when A lead has been qualified and should become an account, contact and deal.
A person decides
Convert lead lead id for company name — duplicate count existing account(s) match that name.
Escalate a support case and record why
Use it when A support case needs to be handed to someone more senior with the reason recorded.
A person decides
Escalate case case id to owner user id: reason
Turn an accepted quote into a sales order
Use it when A customer has accepted a quote and the matching sales order should be raised.
A person decides
Raise a sales order 'subject' for account account id from quote quote id.
Find duplicate contacts on an email and delete the extras
Use it when The same person exists twice in Contacts and one of the records must be removed.
A person decides
Delete contact remove contact id as a duplicate of email (match count records share that address).
account { op: "plans.install", slug: "zoho_crm-account-contact-dossier" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Zoho CRM
Destructive actions wait for a yes.
28 Zoho CRM actions are destructive. These are all of them:
- Delete a Zoho CRM contact
zoho_crm.contacts.delete - Delete a Zoho CRM vendor
zoho_crm.vendors.delete - Delete a Zoho CRM account
zoho_crm.accounts.delete - Delete a Zoho CRM deal
zoho_crm.deals.delete - Delete a Zoho CRM note
zoho_crm.notes.delete - Delete a Zoho CRM lead
zoho_crm.leads.delete - Delete a Zoho CRM invoice
zoho_crm.invoices.delete - Delete a Zoho CRM quote
zoho_crm.quotes.delete - Delete a Zoho CRM task
zoho_crm.tasks.delete - Delete a Zoho CRM purchase order
zoho_crm.purchase_orders.delete - Delete a Zoho CRM product
zoho_crm.products.delete - Delete a Zoho CRM event
zoho_crm.events.delete - Delete a Zoho CRM case
zoho_crm.cases.delete - Delete a Zoho CRM user
zoho_crm.users.delete - Delete a Zoho CRM sales order
zoho_crm.sales_orders.delete - Delete a Zoho CRM solution
zoho_crm.solutions.delete - Delete a Zoho CRM call
zoho_crm.calls.delete - Unlink a Zoho CRM related record
zoho_crm.related_records.delete - Delete a Zoho CRM tag
zoho_crm.tags.delete - Delete a Zoho CRM campaign
zoho_crm.campaigns.delete - Delete a Zoho CRM price book
zoho_crm.price_books.delete - Unsubscribe from Zoho CRM notifications
zoho_crm.notification_channels.delete - Delete a Zoho CRM attachment
zoho_crm.attachments.delete - Delete a record from any Zoho CRM module
zoho_crm.records.delete - Merge two Zoho CRM tags
zoho_crm.tags.merge - Mass delete Zoho CRM records
zoho_crm.records.mass_delete - Untag Zoho CRM records
zoho_crm.tags.remove_from_records - Unlock a Zoho CRM record
zoho_crm.record_locks.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a Zoho CRM contact?
intent: the user asked me to delete a Zoho CRM contact
account { op: "keys.create", name: "zoho-crm-agent", allowed_actions: ["zoho_crm.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "zoho_crm.contacts.delete", approver: "[email protected]" }, { match: "zoho_crm.vendors.delete", approver: "[email protected]" }, { match: "zoho_crm.accounts.delete", approver: "[email protected]" } ]}Cost
What Zoho CRM costs on actionlake.
Every Zoho CRM action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Zoho CRM refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 227 Zoho CRM actions
- 227actions pageeach page of a long list is one call
- 107reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Zoho CRM action.
227 actions by area: the id your agent calls, what it does, and its effect.
CRM227
zoho_crm.accounts.createCreate a Zoho CRM accountwritezoho_crm.accounts.create_rawCreate a Zoho CRM account with arbitrary fieldswritezoho_crm.accounts.deleteDelete a Zoho CRM accountdestructivezoho_crm.accounts.getGet a Zoho CRM accountreadzoho_crm.accounts.listList Zoho CRM accountsreadzoho_crm.accounts.searchSearch Zoho CRM accountsreadzoho_crm.accounts.updateUpdate a Zoho CRM accountwritezoho_crm.accounts.update_rawUpdate a Zoho CRM account with arbitrary fieldswritezoho_crm.assignment_rules.getGet a Zoho CRM assignment rulereadzoho_crm.assignment_rules.listList Zoho CRM assignment rulesreadzoho_crm.attachments.createAttach a link to a Zoho CRM recordwritezoho_crm.attachments.deleteDelete a Zoho CRM attachmentdestructivezoho_crm.attachments.downloadDownload a Zoho CRM attachmentreadzoho_crm.attachments.listList a Zoho CRM record's attachmentsreadzoho_crm.blueprint.getGet a Zoho CRM record's blueprintreadzoho_crm.blueprint.updateAdvance a Zoho CRM record's blueprintwritezoho_crm.bulk_read.createCreate a Zoho CRM bulk read jobwritezoho_crm.bulk_read.downloadDownload a Zoho CRM bulk read resultreadzoho_crm.bulk_read.getGet a Zoho CRM bulk read job's statusreadzoho_crm.bulk_write.createCreate a Zoho CRM bulk write jobwritezoho_crm.bulk_write.getGet a Zoho CRM bulk write job's statusreadzoho_crm.bulk_write.upload_fileUpload a CSV for a Zoho CRM bulk writewritezoho_crm.calls.createCreate a Zoho CRM callwritezoho_crm.calls.create_rawCreate a Zoho CRM call with arbitrary fieldswritezoho_crm.calls.deleteDelete a Zoho CRM calldestructivezoho_crm.calls.getGet a Zoho CRM callreadzoho_crm.calls.listList Zoho CRM callsreadzoho_crm.calls.searchSearch Zoho CRM callsreadzoho_crm.calls.updateUpdate a Zoho CRM callwritezoho_crm.calls.update_rawUpdate a Zoho CRM call with arbitrary fieldswritezoho_crm.campaigns.createCreate a Zoho CRM campaignwritezoho_crm.campaigns.create_rawCreate a Zoho CRM campaign with arbitrary fieldswritezoho_crm.campaigns.deleteDelete a Zoho CRM campaigndestructivezoho_crm.campaigns.getGet a Zoho CRM campaignreadzoho_crm.campaigns.listList Zoho CRM campaignsreadzoho_crm.campaigns.searchSearch Zoho CRM campaignsreadzoho_crm.campaigns.updateUpdate a Zoho CRM campaignwritezoho_crm.campaigns.update_rawUpdate a Zoho CRM campaign with arbitrary fieldswritezoho_crm.cases.createCreate a Zoho CRM casewritezoho_crm.cases.create_rawCreate a Zoho CRM case with arbitrary fieldswritezoho_crm.cases.deleteDelete a Zoho CRM casedestructivezoho_crm.cases.getGet a Zoho CRM casereadzoho_crm.cases.listList Zoho CRM casesreadzoho_crm.cases.searchSearch Zoho CRM casesreadzoho_crm.cases.updateUpdate a Zoho CRM casewritezoho_crm.cases.update_rawUpdate a Zoho CRM case with arbitrary fieldswritezoho_crm.contacts.createCreate a Zoho CRM contactwritezoho_crm.contacts.create_rawCreate a Zoho CRM contact with arbitrary fieldswritezoho_crm.contacts.deleteDelete a Zoho CRM contactdestructivezoho_crm.contacts.getGet a Zoho CRM contactreadzoho_crm.contacts.listList Zoho CRM contactsreadzoho_crm.contacts.searchSearch Zoho CRM contactsreadzoho_crm.contacts.updateUpdate a Zoho CRM contactwritezoho_crm.contacts.update_rawUpdate a Zoho CRM contact with arbitrary fieldswritezoho_crm.coql.queryRun a Zoho CRM COQL queryreadzoho_crm.currencies.getGet a Zoho CRM currencyreadzoho_crm.currencies.listList Zoho CRM currenciesreadzoho_crm.custom_views.getGet a Zoho CRM custom viewreadzoho_crm.custom_views.listList a Zoho CRM module's custom viewsreadzoho_crm.deals.createCreate a Zoho CRM dealwritezoho_crm.deals.create_rawCreate a Zoho CRM deal with arbitrary fieldswritezoho_crm.deals.deleteDelete a Zoho CRM dealdestructivezoho_crm.deals.getGet a Zoho CRM dealreadzoho_crm.deals.listList Zoho CRM dealsreadzoho_crm.deals.searchSearch Zoho CRM dealsreadzoho_crm.deals.updateUpdate a Zoho CRM dealwritezoho_crm.deals.update_rawUpdate a Zoho CRM deal with arbitrary fieldswritezoho_crm.events.createCreate a Zoho CRM eventwritezoho_crm.events.create_rawCreate a Zoho CRM event with arbitrary fieldswritezoho_crm.events.deleteDelete a Zoho CRM eventdestructivezoho_crm.events.getGet a Zoho CRM eventreadzoho_crm.events.listList Zoho CRM eventsreadzoho_crm.events.searchSearch Zoho CRM eventsreadzoho_crm.events.updateUpdate a Zoho CRM eventwritezoho_crm.events.update_rawUpdate a Zoho CRM event with arbitrary fieldswritezoho_crm.features.listList Zoho CRM featuresreadzoho_crm.fields.getGet a Zoho CRM field's metadatareadzoho_crm.fields.listList a Zoho CRM module's fieldsreadzoho_crm.files.downloadDownload a Zoho CRM filereadzoho_crm.files.uploadUpload a file to Zoho CRMwritezoho_crm.invoices.createCreate a Zoho CRM invoicewritezoho_crm.invoices.create_rawCreate a Zoho CRM invoice with arbitrary fieldswritezoho_crm.invoices.deleteDelete a Zoho CRM invoicedestructivezoho_crm.invoices.getGet a Zoho CRM invoicereadzoho_crm.invoices.listList Zoho CRM invoicesreadzoho_crm.invoices.searchSearch Zoho CRM invoicesreadzoho_crm.invoices.updateUpdate a Zoho CRM invoicewritezoho_crm.invoices.update_rawUpdate a Zoho CRM invoice with arbitrary fieldswritezoho_crm.layouts.getGet a Zoho CRM layoutreadzoho_crm.layouts.listList a Zoho CRM module's layoutsreadzoho_crm.leads.createCreate a Zoho CRM leadwritezoho_crm.leads.create_rawCreate a Zoho CRM lead with arbitrary fieldswritezoho_crm.leads.deleteDelete a Zoho CRM leaddestructivezoho_crm.leads.getGet a Zoho CRM leadreadzoho_crm.leads.listList Zoho CRM leadsreadzoho_crm.leads.searchSearch Zoho CRM leadsreadzoho_crm.leads.updateUpdate a Zoho CRM leadwritezoho_crm.leads.update_rawUpdate a Zoho CRM lead with arbitrary fieldswritezoho_crm.modules.getGet a Zoho CRM module's metadatareadzoho_crm.modules.listList Zoho CRM modulesreadzoho_crm.notes.createCreate a Zoho CRM notewritezoho_crm.notes.deleteDelete a Zoho CRM notedestructivezoho_crm.notes.getGet a Zoho CRM notereadzoho_crm.notes.listList Zoho CRM notesreadzoho_crm.notes.updateUpdate a Zoho CRM notewritezoho_crm.notification_channels.createSubscribe to Zoho CRM change notificationswritezoho_crm.notification_channels.deleteUnsubscribe from Zoho CRM notificationsdestructivezoho_crm.notification_channels.listList Zoho CRM notification subscriptionsreadzoho_crm.notification_channels.updateUpdate a Zoho CRM notification subscriptionwritezoho_crm.org.getGet the Zoho CRM organisationreadzoho_crm.pipelines.getGet a Zoho CRM pipelinereadzoho_crm.pipelines.listList Zoho CRM deal pipelinesreadzoho_crm.price_books.createCreate a Zoho CRM price bookwritezoho_crm.price_books.create_rawCreate a Zoho CRM price book with arbitrary fieldswritezoho_crm.price_books.deleteDelete a Zoho CRM price bookdestructivezoho_crm.price_books.getGet a Zoho CRM price bookreadzoho_crm.price_books.listList Zoho CRM price booksreadzoho_crm.price_books.searchSearch Zoho CRM price booksreadzoho_crm.price_books.updateUpdate a Zoho CRM price bookwritezoho_crm.price_books.update_rawUpdate a Zoho CRM price book with arbitrary fieldswritezoho_crm.products.createCreate a Zoho CRM productwritezoho_crm.products.create_rawCreate a Zoho CRM product with arbitrary fieldswritezoho_crm.products.deleteDelete a Zoho CRM productdestructivezoho_crm.products.getGet a Zoho CRM productreadzoho_crm.products.listList Zoho CRM productsreadzoho_crm.products.searchSearch Zoho CRM productsreadzoho_crm.products.updateUpdate a Zoho CRM productwritezoho_crm.products.update_rawUpdate a Zoho CRM product with arbitrary fieldswritezoho_crm.profiles.getGet a Zoho CRM profilereadzoho_crm.profiles.listList Zoho CRM profilesreadzoho_crm.purchase_orders.createCreate a Zoho CRM purchase orderwritezoho_crm.purchase_orders.create_rawCreate a Zoho CRM purchase order with arbitrary fieldswritezoho_crm.purchase_orders.deleteDelete a Zoho CRM purchase orderdestructivezoho_crm.purchase_orders.getGet a Zoho CRM purchase orderreadzoho_crm.purchase_orders.listList Zoho CRM purchase ordersreadzoho_crm.purchase_orders.searchSearch Zoho CRM purchase ordersreadzoho_crm.purchase_orders.updateUpdate a Zoho CRM purchase orderwritezoho_crm.purchase_orders.update_rawUpdate a Zoho CRM purchase order with arbitrary fieldswritezoho_crm.quotes.createCreate a Zoho CRM quotewritezoho_crm.quotes.create_rawCreate a Zoho CRM quote with arbitrary fieldswritezoho_crm.quotes.deleteDelete a Zoho CRM quotedestructivezoho_crm.quotes.getGet a Zoho CRM quotereadzoho_crm.quotes.listList Zoho CRM quotesreadzoho_crm.quotes.searchSearch Zoho CRM quotesreadzoho_crm.quotes.updateUpdate a Zoho CRM quotewritezoho_crm.quotes.update_rawUpdate a Zoho CRM quote with arbitrary fieldswritezoho_crm.record_locks.createLock a Zoho CRM recordwritezoho_crm.record_locks.deleteUnlock a Zoho CRM recorddestructivezoho_crm.record_locks.getGet a Zoho CRM record's lock statereadzoho_crm.record_notes.createAdd a note to a Zoho CRM recordwritezoho_crm.record_notes.listList a Zoho CRM record's notesreadzoho_crm.records.convert_leadConvert a Zoho CRM leadwritezoho_crm.records.countCount records in a Zoho CRM modulereadzoho_crm.records.createCreate records in any Zoho CRM modulewritezoho_crm.records.deleteDelete a record from any Zoho CRM moduledestructivezoho_crm.records.getGet one record from any Zoho CRM modulereadzoho_crm.records.get_mass_convert_statusGet a Zoho CRM mass-convert job's statusreadzoho_crm.records.get_mass_delete_statusGet a Zoho CRM mass-delete job's statusreadzoho_crm.records.get_mass_update_statusGet a Zoho CRM mass-update job's statusreadzoho_crm.records.get_rich_textGet a Zoho CRM record's rich-text fieldsreadzoho_crm.records.get_timelineList a Zoho CRM record's timelinereadzoho_crm.records.listList records in any Zoho CRM modulereadzoho_crm.records.list_deletedList deleted Zoho CRM recordsreadzoho_crm.records.mass_convert_leadsMass convert Zoho CRM leadswritezoho_crm.records.mass_deleteMass delete Zoho CRM recordsdestructivezoho_crm.records.mass_updateMass update a Zoho CRM fieldwritezoho_crm.records.searchSearch records in any Zoho CRM modulereadzoho_crm.records.updateUpdate records in any Zoho CRM modulewritezoho_crm.records.upsertUpsert records in any Zoho CRM modulewritezoho_crm.related_lists.listList a Zoho CRM module's related listsreadzoho_crm.related_records.deleteUnlink a Zoho CRM related recorddestructivezoho_crm.related_records.listList a Zoho CRM record's related recordsreadzoho_crm.related_records.updateLink Zoho CRM records through a related listwritezoho_crm.roles.getGet a Zoho CRM rolereadzoho_crm.roles.listList Zoho CRM rolesreadzoho_crm.sales_orders.createCreate a Zoho CRM sales orderwritezoho_crm.sales_orders.create_rawCreate a Zoho CRM sales order with arbitrary fieldswritezoho_crm.sales_orders.deleteDelete a Zoho CRM sales orderdestructivezoho_crm.sales_orders.getGet a Zoho CRM sales orderreadzoho_crm.sales_orders.listList Zoho CRM sales ordersreadzoho_crm.sales_orders.searchSearch Zoho CRM sales ordersreadzoho_crm.sales_orders.updateUpdate a Zoho CRM sales orderwritezoho_crm.sales_orders.update_rawUpdate a Zoho CRM sales order with arbitrary fieldswritezoho_crm.solutions.createCreate a Zoho CRM solutionwritezoho_crm.solutions.create_rawCreate a Zoho CRM solution with arbitrary fieldswritezoho_crm.solutions.deleteDelete a Zoho CRM solutiondestructivezoho_crm.solutions.getGet a Zoho CRM solutionreadzoho_crm.solutions.listList Zoho CRM solutionsreadzoho_crm.solutions.searchSearch Zoho CRM solutionsreadzoho_crm.solutions.updateUpdate a Zoho CRM solutionwritezoho_crm.solutions.update_rawUpdate a Zoho CRM solution with arbitrary fieldswritezoho_crm.tags.add_to_recordsTag Zoho CRM recordswritezoho_crm.tags.createCreate Zoho CRM tagswritezoho_crm.tags.deleteDelete a Zoho CRM tagdestructivezoho_crm.tags.listList Zoho CRM tagsreadzoho_crm.tags.mergeMerge two Zoho CRM tagsdestructivezoho_crm.tags.record_countCount records carrying a Zoho CRM tagreadzoho_crm.tags.remove_from_recordsUntag Zoho CRM recordsdestructivezoho_crm.tags.updateRename a Zoho CRM tagwritezoho_crm.tasks.createCreate a Zoho CRM taskwritezoho_crm.tasks.create_rawCreate a Zoho CRM task with arbitrary fieldswritezoho_crm.tasks.deleteDelete a Zoho CRM taskdestructivezoho_crm.tasks.getGet a Zoho CRM taskreadzoho_crm.tasks.listList Zoho CRM tasksreadzoho_crm.tasks.searchSearch Zoho CRM tasksreadzoho_crm.tasks.updateUpdate a Zoho CRM taskwritezoho_crm.tasks.update_rawUpdate a Zoho CRM task with arbitrary fieldswritezoho_crm.taxes.getGet a Zoho CRM taxreadzoho_crm.taxes.listList Zoho CRM taxesreadzoho_crm.territories.getGet a Zoho CRM territoryreadzoho_crm.territories.listList Zoho CRM territoriesreadzoho_crm.users.createCreate a Zoho CRM userwritezoho_crm.users.deleteDelete a Zoho CRM userdestructivezoho_crm.users.getGet a Zoho CRM userreadzoho_crm.users.listList Zoho CRM usersreadzoho_crm.users.updateUpdate a Zoho CRM userwritezoho_crm.variable_groups.listList Zoho CRM variable groupsreadzoho_crm.variables.getGet a Zoho CRM variablereadzoho_crm.variables.listList Zoho CRM variablesreadzoho_crm.vendors.createCreate a Zoho CRM vendorwritezoho_crm.vendors.create_rawCreate a Zoho CRM vendor with arbitrary fieldswritezoho_crm.vendors.deleteDelete a Zoho CRM vendordestructivezoho_crm.vendors.getGet a Zoho CRM vendorreadzoho_crm.vendors.listList Zoho CRM vendorsreadzoho_crm.vendors.searchSearch Zoho CRM vendorsreadzoho_crm.vendors.updateUpdate a Zoho CRM vendorwritezoho_crm.vendors.update_rawUpdate a Zoho CRM vendor with arbitrary fieldswrite
Questions
The Zoho CRM MCP server, answered.
Is there a Zoho CRM MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 227 Zoho CRM actions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Zoho CRM.
What do I need to connect Zoho CRM?
Your own Zoho CRM OAuth app, registered with Zoho CRM (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Zoho CRM app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your api domain. actionlake finds api base for you when you connect. The free call account { op: "connections.requirements", service: "zoho_crm" } lists exactly what to paste.
Can an AI agent delete or change things in Zoho CRM?
Only if its key allows it, and only with an explicit confirmation. 28 Zoho CRM actions are destructive, including delete a Zoho CRM contact, delete a Zoho CRM vendor and delete a Zoho CRM account. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Zoho CRM API limit?
actionlake paces every call to the limits in the Zoho CRM service file: 100 calls a minute per connection. Repeated reads are answered from cache (107 Zoho CRM actions can be), which never reaches Zoho CRM.
What does a Zoho CRM action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (227 Zoho CRM actions page). Cache hits, searches, dry runs and calls Zoho CRM refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Zoho CRM API does it cover?
The Zoho CRM API 7 at your Zoho CRM instance's API base URL, which you enter when connecting (path /crm). It is built from Zoho CRM's documentation as read on 15 September 2026. 227 actions in 1 area, each one in the signed service file (version 1.0.0).
Can I combine Zoho CRM with my other systems?
Yes. ask joins Zoho CRM to ConnectWise PSA or ServiceNow on the same customer and returns the answer rather than every row. Zoho CRM maps crm.company, which 227 other connectors also map.
Does actionlake keep my Zoho CRM data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Zoho CRM credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Zoho CRM today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.