{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m57vgth1vprvapenpy9d1qjr",
 "ids": {
  "org": "org_01m57vgth1s5sar8901qhf8a8n",
  "surfaces": {
   "web": "srf_01m60j02qehttzmyvx6hczr2p4",
   "api": "srf_01m60j02qea9jbgm4sdkq6jm71",
   "mcp": "srf_01m60j02qe0ybv3zecndrj3cmr",
   "sdk": "srf_01m60j02qezwgshc7ht3n4ww58"
  },
  "slugs": [
   "zoho"
  ],
  "domain": "zoho.com",
  "wikidata": "Q1139115"
 },
 "slug": "zoho",
 "name": "Zoho CRM",
 "url": "https://www.zoho.com/crm/",
 "domain": "zoho.com",
 "category": "crm",
 "category_name": "CRM",
 "tested_at": "2026-10-28",
 "run": "20261028T000503Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261027T091320Z",
   "date": "2026-10-27",
   "level": 1,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.10.27",
    "commit": "748d09555cd7cb6999a578b9d907294c4d02d0ba",
    "prompts": {
     "version": "2026.10.27",
     "commit": "4a18f5abc48d9338c8c7c67f8820899e9dec5a45"
    },
    "rules": {
     "version": "2026.10.27",
     "commit": "748d09555cd7cb6999a578b9d907294c4d02d0ba"
    }
   },
   "stop": "signup",
   "paid": false,
   "agent_paid": null
  },
  {
   "run": "20261028T000503Z",
   "date": "2026-10-28",
   "level": 1,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.10.27",
    "commit": "132c4d41a411d7acee60092fedfe2af74cee1ec3",
    "prompts": {
     "version": "2026.10.27",
     "commit": "845036a5a40ff8a1d6d9ed752a31210bed0cbc93"
    },
    "rules": {
     "version": "2026.10.27",
     "commit": "fe3b689b94a4f5fc8abd3c7adc454960326b9514"
    }
   },
   "stop": "signup",
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "portal"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "part",
   "text": "Docs with gaps: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "gaps"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "portal",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [
  {
   "capability": "Create a lead",
   "probe": "bad credential (no account: a made-up token)",
   "outcome": "401 application/json {\"code\":\"INVALID_TOKEN\",\"details\":{},\"message\":\"invalid oauth token\",\"status\":\"error\"}; without a header: 401 {\"code\":\"AUTHENTICATION_FAILURE\",\"message\":\"Authentication failed\"}; ",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": {
  "totals": {
   "items": 471,
   "documented": 471,
   "safe": 403,
   "exercised": 0,
   "passed": 0,
   "skipped": 68,
   "blocked": 403,
   "not_run": 0,
   "match": 0,
   "drift": 0,
   "broken_doc": 0,
   "docs_complete": 11,
   "docs_partial": 460,
   "docs_missing": 0,
   "errors_clear": 0,
   "errors_vague": 0,
   "errors_silent": 0
  }
 },
 "coverage_core": null,
 "coverage_own": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.10.27",
  "commit": "132c4d41a411d7acee60092fedfe2af74cee1ec3",
  "prompts": {
   "version": "2026.10.27",
   "commit": "845036a5a40ff8a1d6d9ed752a31210bed0cbc93"
  },
  "rules": {
   "version": "2026.10.27",
   "commit": "fe3b689b94a4f5fc8abd3c7adc454960326b9514"
  }
 },
 "same_level_drives": 2,
 "drives": 2,
 "same_stop_drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "closed"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-28"
  },
  "browser": {
   "state": "unknown",
   "measured": false
  },
  "our_key": "verified",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "CRM API v8 docs, OAuth guides and an official OpenAPI 3.1.0 spec set (GitHub zoho/crm-oas, 452 operations) read without a browser; llms.txt at www.zoho.com/llms.txt."
  },
  "signup": {
   "status": "blocked",
   "cause": "phone",
   "note": "Every sign-up form (CRM 15-day trial, Zoho Accounts register on .eu and .com, Zoho MCP) requires a mobile number: 'Please enter a valid mobile number'. Our agent has no phone number. No CAPTCHA was shown."
  },
  "verify": {
   "status": "",
   "note": "Not reached: sign-up needs a mobile number.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Not reached. Documented routes need an account: a Self Client made in the API console (browser), then client_credentials or a grant code; device flow (POST /oauth/v3/device/code) needs a console client_id.",
   "reached": false
  },
  "first_call": {
   "status": "",
   "route": "account",
   "note": "Not reached. Without a token the API answers 401 AUTHENTICATION_FAILURE; there is no documented no-account route.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no account.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "card checkout in the Zoho Store"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": true,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "route": "portal",
   "checkout": {
    "reached": "no",
    "processor": "own",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": true,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "",
    "currency": "",
    "period": "month",
    "plan": "Standard",
    "last_button": "Make Payment"
   },
   "person": "none",
   "ours": "account",
   "note": "No 402, x402 or MPP challenge was found anywhere, and no payment went through. The help page 'Manage Subscriptions' says a plan is bought in the signed-in app: UPGRADE, then the Zoho Store, pay period, billing address, 'Make Payment' (card). The 15-day trial form asks for no card. The checkout was not reached because no account could be made (mobile number required at sign-up); the checkout details above come from that help page.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "Nothing to cancel: no account or plan was started. Docs: downgrade in the web app with 'Move to Free Edition'.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was made, so nothing was left behind. Docs link a web 'Delete Zoho CRM Account' page.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "phone",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 9,
   "browser": null
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": false,
   "not_tried": "no_kit",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": false,
   "not_tried": "no_kit",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "sso_enterprise",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none",
  "period": "month",
  "plan": "Standard"
 },
 "docs": {
  "at": "2026-10-28",
  "read": 150,
  "listed": 164,
  "sampled": false,
  "overall": "gaps",
  "getting_started": "found",
  "auth": "found",
  "errors": "partial",
  "examples": "none",
  "freshness": "fresh",
  "newest": "2026-10-22",
  "core_pages": "4 of 8",
  "capabilities": "gaps",
  "label": "Some gaps"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-28",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "cli": false,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "urls": {
  "docs": "https://docs.zoho.com/",
  "llms_txt": "https://www.zoho.com/llms.txt",
  "mcp": null
 },
 "surface_notes": {
  "api": "REST v8, 452 operations in the official OpenAPI files",
  "sdk": "Node.js @zohocrm/nodejs-sdk-8.0 5.0.0.",
  "mcp": "official Zoho MCP, CRM servers set up after sign-in",
  "llms_txt": "www.zoho.com/llms.txt, not linked from docs pages"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 452,
   "tested": 0
  },
  {
   "kind": "mcp",
   "listed": 4,
   "tested": 0
  },
  {
   "kind": "sdk",
   "listed": 8,
   "tested": 0
  }
 ],
 "can_do": [
  "Read the full CRM API reference and its OpenAPI 3.1 files without an account",
  "Read docs pages as Markdown by swapping .html for .md"
 ],
 "cannot_do": [
  {
   "what": "Create a Zoho account",
   "why": "Every sign-up form requires a mobile number."
  },
  {
   "what": "Get an API token or MCP server URL",
   "why": "Both need a signed-in account; OAuth clients are made in the API console."
  },
  {
   "what": "Create, update or read any CRM record",
   "why": "No account, so no token."
  }
 ],
 "blockers": [
  "Mobile number required on every sign-up form"
 ],
 "tips_for_agents": [
  "Read the API from the OpenAPI 3.1.0 files in github.com/zoho/crm-oas (v8.0/) rather than the HTML pages.",
  "Any docs page under /crm/developer/docs/api/v8/ is available as Markdown at the same path with .md instead of .html.",
  "Once an account exists, a Self Client with the client_credentials grant gives tokens without a browser consent step.",
  "Pick the API host for the account's data center; the OpenAPI servers list zohoapis.{dc} with dc com, eu, in, cn, au, and a sign-up from Germany is placed in the EUROPE data center."
 ],
 "selfhost": null,
 "edge_case": "none",
 "summary": "Our agent couldn't get into Zoho CRM on its own: every sign-up form (the CRM trial, Zoho Accounts and Zoho MCP) requires a mobile number, and our agent has none. Without an account there is no token and no MCP server URL, so no CRM capability could be driven. The documented surface is large and public: 452 API operations in official OpenAPI 3.1.0 files, a Node.js SDK and an official MCP service.",
 "wall": "Mobile number required at sign-up",
 "plan_scope": "",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-28",
  "held": false
 },
 "terms": null,
 "terms_read": null,
 "email_gate": null,
 "plain": {
  "summary": "Zoho CRM is a customer-relationship tool with a big public API. Our agent could read all the documentation but could not open an account, because every sign-up form asks for a mobile number. So it never got a key and could not use any CRM feature.",
  "can_do": [
   "Read the full CRM API reference and its OpenAPI files without an account",
   "Read documentation pages as Markdown by changing the page ending to .md"
  ],
  "cannot_do": [
   {
    "what": "Create a Zoho account",
    "why": "Every sign-up form requires a mobile number."
   },
   {
    "what": "Get an API token or MCP server address",
    "why": "Both need a signed-in account."
   },
   {
    "what": "Create, update or read any CRM record",
    "why": "No account, so no token."
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Create a lead",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/v8/Leads",
    "mcp": "Data Operations server create record tool",
    "cli": null,
    "ui": "Leads module"
   },
   "check": "GET /crm/v8/Leads/{id} returns the created record",
   "capability_id": "cap_0504r89v",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html; https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-02",
   "capability": "Create a contact",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/Contacts",
    "mcp": "Data Operations server create record tool",
    "cli": null,
    "ui": "Contacts module"
   },
   "check": "GET /crm/v8/Contacts/{id} returns the created record",
   "capability_id": "cap_w95e954c",
   "source": "https://www.zoho.com/crm/contact-management.html; https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-03",
   "capability": "Create a company",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/Accounts",
    "mcp": "Data Operations server create record tool",
    "cli": null,
    "ui": "Accounts module"
   },
   "check": "GET /crm/v8/Accounts/{id} returns the created record",
   "capability_id": "cap_shxrg99w",
   "source": "https://www.zoho.com/crm/sales-force-automation/pipeline.html; https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-04",
   "capability": "Create a deal",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/Deals",
    "mcp": "Data Operations server create record tool",
    "cli": null,
    "ui": "Deals module"
   },
   "check": "GET /crm/v8/Deals/{id} returns the created record",
   "capability_id": "cap_ety0meew",
   "source": "https://www.zoho.com/crm/deal-management.html; https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-05",
   "capability": "Update a deal or move its stage",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "PUT /crm/v8/Deals/{id}",
    "mcp": "Data Operations server update record tool",
    "cli": null,
    "ui": "Deals pipeline view"
   },
   "check": "GET /crm/v8/Deals/{id} shows the new Stage value",
   "capability_id": "cap_m8f5a2vy",
   "source": "https://www.zoho.com/crm/deal-management.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-06",
   "capability": "Set up pipeline stages",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "Module Customization server layout tools",
    "cli": null,
    "ui": "Setup > Pipelines"
   },
   "check": "Deals module metadata lists the configured stage set",
   "capability_id": "cap_pw8afps2",
   "source": "https://www.zoho.com/crm/sales-force-automation/pipeline.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-07",
   "capability": "Build a CRM workflow automation",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "Workflow & Process Automation server create workflow rule tool",
    "cli": null,
    "ui": "Setup > Automation > Workflow Rules"
   },
   "check": "Workflow rule list shows the new rule active",
   "capability_id": "cap_74zkjgr2",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html; https://www.zoho.com/crm/workflow-rules.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-08",
   "capability": "Assign a lead to a sales rep",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "PUT /crm/v8/Leads/{id}",
    "mcp": "Data Operations server update record tool",
    "cli": null,
    "ui": "Setup > Automation > Assignment Rules"
   },
   "check": "GET /crm/v8/Leads/{id} shows the assigned Owner",
   "capability_id": "cap_q7g99tz1",
   "source": "https://www.zoho.com/crm/features.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-09",
   "capability": "Log a note or activity on a record",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/{module}/{id}/Notes",
    "mcp": "Data Operations server",
    "cli": null,
    "ui": "record detail page"
   },
   "check": "GET /crm/v8/{module}/{id}/Notes returns the note",
   "capability_id": "cap_105mz0vz",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-10",
   "capability": "Create a follow-up task on a record",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/Tasks",
    "mcp": "Data Operations server",
    "cli": null,
    "ui": "record detail page"
   },
   "check": "GET /crm/v8/Tasks/{id} returns the task linked to the record",
   "capability_id": "cap_76387ph3",
   "source": "https://www.zoho.com/crm/lead-management.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-11",
   "capability": "Send an email from the CRM",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/{module}/{id}/actions/send_mail",
    "mcp": null,
    "cli": null,
    "ui": "record Email tab"
   },
   "check": "Email tab shows the sent message and status",
   "capability_id": "cap_rfj89t0b",
   "source": "https://www.zoho.com/crm/email.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-12",
   "capability": "Call a contact from the CRM",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "record Calls tab (telephony integration)"
   },
   "check": "Call log entry appears on the record",
   "capability_id": "cap_68rwkkz4",
   "source": "https://www.zoho.com/crm/telephony.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-13",
   "capability": "Create and send a quote",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/Quotes",
    "mcp": "Data Operations server",
    "cli": null,
    "ui": "Quotes module (CPQ)"
   },
   "check": "GET /crm/v8/Quotes/{id} shows the quote and its status",
   "capability_id": "cap_bgs1hwdj",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html; https://www.zoho.com/crm/sales-force-automation/cpq.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-14",
   "capability": "Add a custom field to a record type",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/settings/fields",
    "mcp": "Module Customization server field tools",
    "cli": null,
    "ui": "Setup > Customization > Fields"
   },
   "check": "Module metadata lists the new field",
   "capability_id": "cap_pd8aa77r",
   "source": "https://www.zoho.com/crm/customization.html; https://www.zoho.com/crm/developer/docs/api/v8/module-meta.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-15",
   "capability": "Create a custom object",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/settings/modules",
    "mcp": "Module Customization server create module tool",
    "cli": null,
    "ui": "Setup > Customization > Modules"
   },
   "check": "GET /crm/v8/settings/modules lists the new module",
   "capability_id": "cap_ghgkx80v",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/module-meta.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-16",
   "capability": "Create a list, segment or saved view",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /crm/v8/{module}/custom_views",
    "mcp": null,
    "cli": null,
    "ui": "module list view"
   },
   "check": "Custom view appears in the module's view selector",
   "capability_id": "cap_hkwr9742",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/module-meta.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-17",
   "capability": "Read CRM reports and forecasts",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "Data Insights server COQL query tool",
    "cli": null,
    "ui": "Reports / Forecasts module"
   },
   "check": "Report or forecast page renders computed figures",
   "capability_id": "cap_t84377te",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html; https://www.zoho.com/crm/analytics.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-18",
   "capability": "Run a SQL-style query over CRM records",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/coql",
    "mcp": "Data Insights server query_coql tool",
    "cli": null,
    "ui": null
   },
   "check": "COQL response returns matching records",
   "capability_id": "cap_x359j116",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/COQL-Overview.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-19",
   "capability": "Merge duplicate contacts",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/Contacts/actions/merge",
    "mcp": null,
    "cli": null,
    "ui": "record Deduplicate action"
   },
   "check": "Merged record id resolves to the surviving record",
   "capability_id": "cap_t2vrrwh1",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-20",
   "capability": "Link related records",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "PUT /crm/v8/{module}/{id}/{related_list_api_name}/{related_id}",
    "mcp": "Data Operations server related record tools",
    "cli": null,
    "ui": "record related list"
   },
   "check": "GET related list shows the linked record",
   "capability_id": "cap_za211vgw",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/get-records.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-21",
   "capability": "Enrol a contact in an email sequence",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Cadences"
   },
   "check": "Record's Cadence tab shows the active sequence step",
   "capability_id": "cap_xza7d929",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-22",
   "capability": "Send a bulk sales email",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/{module}/actions/mass_send_mail",
    "mcp": null,
    "cli": null,
    "ui": "module mass email action"
   },
   "check": "Mass email job status shows sent count",
   "capability_id": "cap_6w8nc717",
   "source": "https://www.zoho.com/crm/email.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-23",
   "capability": "Sync a mailbox or calendar to the CRM",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Setup > Channels > Email / Calendar"
   },
   "check": "Synced calendar events appear in the CRM Calendar module",
   "capability_id": "cap_tqb3ws49",
   "source": "https://www.zoho.com/crm/google-workspace-office-365-integration.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-24",
   "capability": "View a contact or company profile",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /crm/v8/Contacts/{id}",
    "mcp": "Data Operations / Data Insights server get record tool",
    "cli": null,
    "ui": "record detail page"
   },
   "check": "GET returns the record's full field set",
   "capability_id": "cap_ejde63qk",
   "source": "https://www.zoho.com/crm/contact-management.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-25",
   "capability": "Enrich a contact with outside data",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Zia Agents Marketplace > enrichment agent"
   },
   "check": "Record shows enrichment fields added by the agent",
   "capability_id": "cap_rp7bxy1f",
   "source": "https://www.zoho.com/crm/zia/agents.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-26",
   "capability": "Ask the built-in AI assistant a question",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Ask Zia panel"
   },
   "check": "Zia panel returns a generated answer to the question",
   "capability_id": "cap_9qpyn3bj",
   "source": "https://www.zoho.com/crm/zia.html; https://www.zoho.com/crm/zia-voice.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-27",
   "capability": "Delegate a task to the built-in AI agent",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Zia Agents / Agent Studio"
   },
   "check": "Agent's action log shows the completed task",
   "capability_id": "cap_4ew83zqz",
   "source": "https://www.zoho.com/crm/zia/agents.html; https://www.zoho.com/crm/zohocrm-pricing.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-28",
   "capability": "Get an AI summary or recommendation",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "record Zia insights panel"
   },
   "check": "Record shows a Zia-generated prediction or recommendation",
   "capability_id": "cap_86eg48k6",
   "source": "https://www.zoho.com/crm/prediction.html; https://www.zoho.com/crm/zohocrm-pricing.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-29",
   "capability": "Connect a third-party integration",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Zoho Marketplace"
   },
   "check": "Installed extension appears under Setup > Marketplace > Installed",
   "capability_id": "cap_x4n6bnwy",
   "source": "https://www.zoho.com/crm/ (FAQ: integrates with 1,000+ apps)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-30",
   "capability": "Register a webhook",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/actions/watch",
    "mcp": null,
    "cli": null,
    "ui": "Setup > Automation > Notifications"
   },
   "check": "Webhook delivers a payload on the subscribed record event",
   "capability_id": "cap_977hxacb",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/notifications/overview.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-31",
   "capability": "Create an API key",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "API Console / OAuth client setup"
   },
   "check": "New client id can obtain an access token",
   "capability_id": "cap_wbg916v9",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-32",
   "capability": "Set a member's role or permissions",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/settings/roles",
    "mcp": null,
    "cli": null,
    "ui": "Setup > Users and Control > Roles/Profiles"
   },
   "check": "GET /crm/v8/settings/roles shows the configured permission set",
   "capability_id": "cap_bs3hvrpm",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-33",
   "capability": "Import data from a file or another tool",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/v8/upload",
    "mcp": null,
    "cli": null,
    "ui": "Setup > Data Administration > Import"
   },
   "check": "Import job status shows imported record count",
   "capability_id": "cap_a8damn1w",
   "source": "https://www.zoho.com/crm/ (FAQ: migrate from any CRM, even spreadsheets)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-34",
   "capability": "Export data to a file",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Setup > Data Administration > Export"
   },
   "check": "Downloaded export file contains the module's records",
   "capability_id": "cap_8zwmj5wn",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/bulk-read/overview.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-35",
   "capability": "Work from the mobile or desktop app",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Zoho CRM mobile app"
   },
   "check": "Record created in the mobile app appears via GET on the web API",
   "capability_id": "cap_p675qb2x",
   "source": "https://www.zoho.com/crm/zohocrm-pricing.html",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-36",
   "capability": "Change account settings",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "PUT /crm/v8/org",
    "mcp": null,
    "cli": null,
    "ui": "Setup > General > Company Details"
   },
   "check": "GET /crm/v8/org reflects the updated setting",
   "capability_id": "cap_q235vpxt",
   "source": "https://www.zoho.com/crm/developer/docs/api/v8/",
   "result": "blocked",
   "via": null
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/zoho.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a phone number",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a phone number."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a phone number",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a phone number."
  }
 },
 "sdk": null,
 "surface_reach": null,
 "connect": {
  "docs": {
   "url": "https://docs.zoho.com/",
   "state": "tested"
  }
 },
 "surface_sources": {
  "docs": "https://docs.zoho.com/",
  "llms_txt": "https://www.zoho.com/llms.txt",
  "api": "https://github.com/zoho/crm-oas/tree/main/v8.0/apis",
  "mcp": "https://help.zoho.com/portal/en/community/topic/zoho-crm-with-built-in-mcp-support",
  "sdk": "https://www.zoho.com/crm/developer/docs/sdk/"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": {
  "at": "signup",
  "date": "2026-10-28",
  "line": "Every sign-up form (CRM 15-day trial, Zoho Accounts register on .eu and .com, Zoho MCP) requires a mobile number: 'Please enter a valid mobile number'. Our agent has no phone number. No CAPTCHA was shown."
 },
 "wall_vendor": null,
 "mcp_sign_in": null,
 "safety_issues": 0,
 "fix_counts": {
  "small": 4,
  "medium": 1,
  "large": 1,
  "total": 6
 },
 "evidence_sha256": "e0833d60f0595a169bd42de910056072bbe23a392db04aadeab3aac0faaf6953",
 "first_seen": "2026-10-27",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": null,
 "confirmation": {
  "state": "confirmed",
  "drives": 2,
  "agree": 2,
  "review": null,
  "text": "2 drives agree"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 88,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Zoho CRM is a customer-relationship tool with a big public API.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": {
  "DOCS-08": {
   "basis": "category",
   "n": 10,
   "below": 0,
   "above": 4,
   "quartile": 2
  },
  "DOCS-10": {
   "basis": "category",
   "n": 10,
   "below": 0,
   "above": 6,
   "quartile": 1
  },
  "DOCS-11": {
   "basis": "category",
   "n": 10,
   "below": 0,
   "above": 9,
   "quartile": 1
  },
  "ERR-01": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 0
  },
  "ERR-02": {
   "basis": "category",
   "n": 7,
   "below": 3,
   "above": 0
  },
  "ERR-03": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 5
  },
  "ERR-07": {
   "basis": "category",
   "n": 6,
   "below": 0,
   "above": 2
  },
  "IN-08": {
   "basis": "category",
   "n": 11,
   "below": 7,
   "above": 0,
   "quartile": 4
  },
  "IN-11": {
   "basis": "category",
   "n": 11,
   "below": 0,
   "above": 4,
   "quartile": 2
  },
  "IN-12": {
   "basis": "category",
   "n": 11,
   "below": 0,
   "above": 4,
   "quartile": 2
  },
  "LEAVE-03": {
   "basis": "category",
   "n": 10,
   "below": 5,
   "above": 0,
   "quartile": 4
  },
  "PROTO-02": {
   "basis": "category",
   "n": 8,
   "below": 0,
   "above": 1
  }
 },
 "probe": {
  "checked": "2026-11-01",
  "status": "ok",
  "sign_up_page": "page",
  "wall": "none",
  "llms_txt": true,
  "mcp": "none",
  "openapi": false,
  "payment_402": null,
  "payment_rails": [],
  "files": {
   "openapi": {
    "url": null,
    "found": false
   },
   "llms_txt": {
    "url": "https://www.zoho.com/llms.txt",
    "found": true
   },
   "llms_full": {
    "url": null,
    "found": false
   }
  }
 },
 "probe_history": [
  {
   "checked": "2026-11-01",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-30",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-29",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  }
 ],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": "L1 · Needs a person: our agent did not get in on its own at Zoho CRM. It stopped at sign-up. The CRM trial form, the Zoho Accounts register page and the Zoho MCP form all asked for a mobile number, and no CAPTCHA was shown. Verification, the key, the API call and the CRM work were not reached; without a token the API answers 401 AUTHENTICATION_FAILURE. Zoho publishes an official OpenAPI spec, an llms.txt and an official MCP service. Checkout was not reached: the help page says a plan is bought in the signed-in app, and the trial form asks for no card.",
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261027T091320Z",
    "date": "2026-10-27",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   },
   {
    "run": "20261028T000503Z",
    "date": "2026-10-28",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/zoho/changes.json"
 },
 "agreement": {
  "drives": 2,
  "agree": 2
 },
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 1,
  "surface_issues": 0
 },
 "agent_surfaces": {
  "api": {
   "state": "documented",
   "reachable": null,
   "documented": 452,
   "tested": 0,
   "source": "https://github.com/zoho/crm-oas/tree/main/v8.0/apis"
  },
  "mcp": {
   "state": "documented",
   "reachable": null,
   "documented": 4,
   "tested": 0,
   "source": "https://help.zoho.com/portal/en/community/topic/zoho-crm-with-built-in-mcp-support"
  },
  "cli": {
   "state": "none_found",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": null
  },
  "sdk": {
   "state": "documented",
   "documented": 8,
   "tested": 0,
   "source": "https://www.zoho.com/crm/developer/docs/sdk/"
  },
  "docs": {
   "state": "tested",
   "documented": 164,
   "tested": 150,
   "source": "https://docs.zoho.com/"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  }
 },
 "issues_found": 1,
 "rank": null,
 "rank_of": 4,
 "rank_change": null,
 "rank_since": null,
 "links": {
  "category": [
   {
    "label": "Sales and customers",
    "href": "https://agentdrives.com/categories/sales"
   },
   {
    "label": "CRM",
    "href": "https://agentdrives.com/categories/crm"
   }
  ],
  "tasks": [],
  "walls": [
   {
    "label": "Let AI agents sign up and get an API key",
    "href": "https://agentdrives.com/guides/let-agents-sign-up-and-get-a-key",
    "note": "fix guide"
   }
  ],
  "vendors": [],
  "standards": [
   {
    "label": "MCP",
    "href": "https://agentdrives.com/standards/mcp",
    "note": "tools an agent can call"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in",
    "note": "stopped here"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [
   {
    "label": "Close",
    "href": "https://agentdrives.com/tools/close",
    "slug": "close",
    "level": 1
   },
   {
    "label": "Copper",
    "href": "https://agentdrives.com/tools/copper",
    "slug": "copper",
    "level": 1
   },
   {
    "label": "folk",
    "href": "https://agentdrives.com/tools/folk",
    "slug": "folk",
    "level": 1
   }
  ],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Create a lead",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Create a contact",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Create a company",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "Create a deal",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Update a deal or move its stage",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Set up pipeline stages",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-07",
   "name": "Build a CRM workflow automation",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-08",
   "name": "Assign a lead to a sales rep",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Log a note or activity on a record",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-10",
   "name": "Create a follow-up task on a record",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Send an email from the CRM",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-12",
   "name": "Call a contact from the CRM",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Create and send a quote",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Add a custom field to a record type",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-15",
   "name": "Create a custom object",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "Create a list, segment or saved view",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-17",
   "name": "Read CRM reports and forecasts",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Run a SQL-style query over CRM records",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-19",
   "name": "Merge duplicate contacts",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-20",
   "name": "Link related records",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-21",
   "name": "Enrol a contact in an email sequence",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Send a bulk sales email",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-23",
   "name": "Sync a mailbox or calendar to the CRM",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-24",
   "name": "View a contact or company profile",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-25",
   "name": "Enrich a contact with outside data",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-26",
   "name": "Ask the built-in AI assistant a question",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-27",
   "name": "Delegate a task to the built-in AI agent",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-28",
   "name": "Get an AI summary or recommendation",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-29",
   "name": "Connect a third-party integration",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-30",
   "name": "Register a webhook",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-31",
   "name": "Create an API key",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-32",
   "name": "Set a member's role or permissions",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-33",
   "name": "Import data from a file or another tool",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-34",
   "name": "Export data to a file",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-35",
   "name": "Work from the mobile or desktop app",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-36",
   "name": "Change account settings",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "crm",
  "products": 13,
  "higher": 4,
  "same_level": 8,
  "as_of": "2026-10-31",
  "stop": "signup",
  "rivals_by": "stop",
  "rivals": [
   "close",
   "copper",
   "hubspot",
   "insightly",
   "nutshell",
   "salesforce",
   "streak"
  ]
 },
 "page": "https://agentdrives.com/tools/zoho?via=api"
}