# Zoho CRM Connector

## Links

- Product page URL: https://www.agentpmt.com/marketplace/zoho-crm-connector
- Product markdown URL: https://www.agentpmt.com/marketplace/zoho-crm-connector?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/zoho-crm-connector?format=agent-json

## Overview

- Product ID: 6970eda4e496d843bd06cc2a
- Vendor: Apoth3osis
- Type: connector
- Unit type: request
- Price: 500 credits
- Categories: Project Management, Data Processing, Marketing, Sales, Sales Engagement & Outreach, Revenue & Commission Tracking, Marketing Automation, Task & Workflow Automation
- Generated at: 2026-04-15T18:29:26.328Z

### Page Description

The Zoho CRM Connector enables AI agents to seamlessly interact with Zoho CRM data, allowing businesses to automate customer relationship workflows without manual intervention. Agents can retrieve and search leads, contacts, accounts, and deals using flexible query options including COQL queries, email lookups, and criteria-based searches, while also accessing module schemas and field metadata to understand the CRM structure. The connector features a secure permission-gating system that explicitly controls write operations—agents can only create, update, or delete records when specifically authorized with add, edit, or delete permissions—ensuring that automated workflows respect data governance policies. This makes it ideal for building intelligent sales assistants that can look up customer information on demand, automated lead qualification systems that query and analyze prospect data, reporting agents that aggregate CRM metrics, and customer service bots that retrieve account history to provide personalized support.

### Agent Description

Zoho CRM: search and retrieve leads, contacts, accounts, deals. Permission-gated write operations (create, update, delete).

## Details Tab

### Details

The Zoho CRM Connector enables AI agents to seamlessly interact with Zoho CRM data, allowing businesses to automate customer relationship workflows without manual intervention. Agents can retrieve and search leads, contacts, accounts, and deals using flexible query options including COQL queries, email lookups, and criteria-based searches, while also accessing module schemas and field metadata to understand the CRM structure. The connector features a secure permission-gating system that explicitly controls write operations—agents can only create, update, or delete records when specifically authorized with add, edit, or delete permissions—ensuring that automated workflows respect data governance policies. This makes it ideal for building intelligent sales assistants that can look up customer information on demand, automated lead qualification systems that query and analyze prospect data, reporting agents that aggregate CRM metrics, and customer service bots that retrieve account history to provide personalized support.

### Actions

- `list_records` (5 credits): Retrieve records from a CRM module with optional filtering, sorting, and pagination. Maximum 50 fields per request. Use page_token for records beyond page 2000.
- `get_record` (5 credits): Fetch a single CRM record by its ID.
- `search_records` (5 credits): Search for CRM records using exactly one search method: criteria, email, phone, or word.
- `query_records` (5 credits): Run a COQL (CRM Object Query Language) query for advanced record retrieval. Follows SQL-like syntax: select Field1, Field2 from Module where condition limit N.
- `create_records` (5 credits): Create one or more records in a CRM module. Provide either record (single) or records (batch, max 100). Requires 'add' permission.
- `update_records` (5 credits): Update one or more existing CRM records. Provide record or records (max 100). Use record_id for single-record updates. Requires 'edit' permission.
- `delete_records` (5 credits): Delete one or more CRM records. Provide exactly one of record_id (single) or record_ids (bulk, max 100). Requires 'delete' permission.
- `list_modules` (5 credits): List all available modules in the Zoho CRM account.
- `fields_metadata` (5 credits): Retrieve field definitions for a CRM module, or a single field by ID.
- `describe_action` (5 credits): Get the parameter schema for any action. Useful for discovering required and optional fields before calling an action.

### Use Cases

Automated lead qualification and scoring based on CRM data, Customer support agents retrieving account history and contact details, Sales pipeline reporting and deal stage analysis, Lead enrichment workflows that query and update prospect information, Customer onboarding automation with record creation and status updates, Duplicate contact detection and data cleanup operations, Intelligent meeting prep assistants that pull relevant customer context before calls

### Workflows Using This Tool

No public workflows currently reference this product.

### Related Content

No related content is currently linked to this product.

## Advanced Tab

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to `https://api.agentpmt.com/mcp`. All tool execution happens in the cloud and the server cannot edit any files on your computer.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "6970eda4e496d843bd06cc2a",
    "parameters": {
      "action": "list_records",
      "module_api_name": "example_module_api_name"
    }
  }'
```

### Autonomous Agents

Do not use the abbreviated instructions in this product markdown for wallet-based invocation. Retrieve the full External Agent API markdown document instead.

- External Agent API page URL: https://www.agentpmt.com/external-agent-api
- External Agent API markdown URL: https://www.agentpmt.com/external-agent-api?format=agent-md

### Schema

#### Credentials

These runtime credentials should be provided under `parameters._credentials` when required.

- Zoho OAuth (`zoho_oauth`, oauth_token, required)
  Connection ID: 6987b6f3da401d1af03b6f61
- CRUD permission scopes (`permissions`, other, required)
  Connection ID: 697170063617ba439ceedf25

#### Parameters

- Schema type: actions

```json
{
  "actions": {
    "list_records": {
      "description": "Retrieve records from a CRM module with optional filtering, sorting, and pagination. Maximum 50 fields per request. Use page_token for records beyond page 2000.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name (e.g., Leads, Contacts, Deals)",
          "required": true
        },
        "fields": {
          "type": "array",
          "description": "Fields to retrieve (max 50). Required unless ids is provided.",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "ids": {
          "type": "array",
          "description": "Specific record IDs to fetch",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "per_page": {
          "type": "integer",
          "description": "Records per page (1-200)",
          "required": false,
          "minimum": 1,
          "maximum": 200
        },
        "page": {
          "type": "integer",
          "description": "Page number (1-based). Cannot be used with page_token.",
          "required": false,
          "minimum": 1
        },
        "page_token": {
          "type": "string",
          "description": "Page token for records beyond page 2000. Cannot be used with page.",
          "required": false
        },
        "sort_by": {
          "type": "string",
          "description": "Field API name to sort by. Cannot be used with cvid.",
          "required": false
        },
        "sort_order": {
          "type": "string",
          "description": "Sort direction",
          "required": false,
          "enum": [
            "asc",
            "desc"
          ]
        },
        "cvid": {
          "type": "string",
          "description": "Custom view ID. Cannot be used with sort_by.",
          "required": false
        },
        "converted": {
          "type": "string",
          "description": "Filter by converted status",
          "required": false,
          "enum": [
            "true",
            "false",
            "both"
          ]
        },
        "territory_id": {
          "type": "string",
          "description": "Territory ID filter",
          "required": false
        },
        "include_child": {
          "type": "boolean",
          "description": "Include child territory records when territory_id is set",
          "required": false
        },
        "options": {
          "type": "object",
          "description": "Additional query parameters to pass through",
          "required": false
        }
      }
    },
    "get_record": {
      "description": "Fetch a single CRM record by its ID.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name",
          "required": true
        },
        "record_id": {
          "type": "string",
          "description": "The record ID to fetch",
          "required": true
        },
        "fields": {
          "type": "array",
          "description": "Specific fields to retrieve",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "options": {
          "type": "object",
          "description": "Additional query parameters to pass through",
          "required": false
        }
      }
    },
    "search_records": {
      "description": "Search for CRM records using exactly one search method: criteria, email, phone, or word.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name",
          "required": true
        },
        "criteria": {
          "type": "string",
          "description": "Search criteria string (e.g., ((Stage:equals:Closed Won)and(Amount:greater_than:10000)))",
          "required": false
        },
        "email": {
          "type": "string",
          "description": "Search by email address",
          "required": false
        },
        "phone": {
          "type": "string",
          "description": "Search by phone number",
          "required": false
        },
        "word": {
          "type": "string",
          "description": "Search by keyword across fields",
          "required": false
        },
        "fields": {
          "type": "array",
          "description": "Fields to retrieve (max 50)",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "per_page": {
          "type": "integer",
          "description": "Records per page (1-200)",
          "required": false,
          "minimum": 1,
          "maximum": 200
        },
        "page": {
          "type": "integer",
          "description": "Page number (1-based)",
          "required": false,
          "minimum": 1
        },
        "converted": {
          "type": "string",
          "description": "Filter by converted status",
          "required": false,
          "enum": [
            "true",
            "false",
            "both"
          ]
        },
        "approved": {
          "type": "string",
          "description": "Filter by approved status",
          "required": false,
          "enum": [
            "true",
            "false",
            "both"
          ]
        },
        "record_type": {
          "type": "string",
          "description": "Users module type filter (e.g., AllUsers, ActiveUsers)",
          "required": false
        },
        "options": {
          "type": "object",
          "description": "Additional query parameters to pass through",
          "required": false
        }
      }
    },
    "query_records": {
      "description": "Run a COQL (CRM Object Query Language) query for advanced record retrieval. Follows SQL-like syntax: select Field1, Field2 from Module where condition limit N.",
      "properties": {
        "select_query": {
          "type": "string",
          "description": "COQL select query string",
          "required": true
        },
        "options": {
          "type": "object",
          "description": "Additional body parameters to pass through",
          "required": false
        }
      }
    },
    "create_records": {
      "description": "Create one or more records in a CRM module. Provide either record (single) or records (batch, max 100). Requires 'add' permission.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name",
          "required": true
        },
        "record": {
          "type": "object",
          "description": "Single record payload with field name/value pairs",
          "required": false
        },
        "records": {
          "type": "array",
          "description": "List of record payloads (max 100)",
          "required": false,
          "items": {
            "type": "object"
          }
        },
        "trigger": {
          "type": "array",
          "description": "Workflow/automation triggers to fire (e.g., workflow, approval)",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "lar_id": {
          "type": "string",
          "description": "Assignment rule ID",
          "required": false
        },
        "apply_feature_execution": {
          "type": "array",
          "description": "Feature execution keys to apply (e.g., layout_rules)",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "options": {
          "type": "object",
          "description": "Additional body parameters to pass through",
          "required": false
        }
      }
    },
    "update_records": {
      "description": "Update one or more existing CRM records. Provide record or records (max 100). Use record_id for single-record updates. Requires 'edit' permission.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name",
          "required": true
        },
        "record_id": {
          "type": "string",
          "description": "Record ID for single-record update. When provided, only one record is allowed.",
          "required": false
        },
        "record": {
          "type": "object",
          "description": "Single record payload with field name/value pairs",
          "required": false
        },
        "records": {
          "type": "array",
          "description": "List of record payloads (max 100). Each must include its 'id' for batch updates.",
          "required": false,
          "items": {
            "type": "object"
          }
        },
        "trigger": {
          "type": "array",
          "description": "Workflow/automation triggers to fire",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "lar_id": {
          "type": "string",
          "description": "Assignment rule ID",
          "required": false
        },
        "apply_feature_execution": {
          "type": "array",
          "description": "Feature execution keys to apply (e.g., layout_rules)",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "append_values": {
          "type": "object",
          "description": "Append values for multi-select picklist fields. Keys are field names, values are boolean true.",
          "required": false
        },
        "options": {
          "type": "object",
          "description": "Additional body parameters to pass through",
          "required": false
        }
      }
    },
    "delete_records": {
      "description": "Delete one or more CRM records. Provide exactly one of record_id (single) or record_ids (bulk, max 100). Requires 'delete' permission.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name",
          "required": true
        },
        "record_id": {
          "type": "string",
          "description": "Single record ID to delete",
          "required": false
        },
        "record_ids": {
          "type": "array",
          "description": "List of record IDs for bulk delete (max 100)",
          "required": false,
          "items": {
            "type": "string"
          }
        },
        "wf_trigger": {
          "type": "boolean",
          "description": "Whether to trigger workflows on delete (defaults to true in Zoho)",
          "required": false
        },
        "options": {
          "type": "object",
          "description": "Additional query parameters to pass through",
          "required": false
        }
      }
    },
    "list_modules": {
      "description": "List all available modules in the Zoho CRM account.",
      "properties": {
        "options": {
          "type": "object",
          "description": "Additional query parameters to pass through",
          "required": false
        }
      }
    },
    "fields_metadata": {
      "description": "Retrieve field definitions for a CRM module, or a single field by ID.",
      "properties": {
        "module_api_name": {
          "type": "string",
          "description": "Zoho CRM module API name",
          "required": true
        },
        "field_id": {
          "type": "string",
          "description": "Specific field ID for metadata lookup. Omit to get all fields.",
          "required": false
        },
        "options": {
          "type": "object",
          "description": "Additional query parameters to pass through",
          "required": false
        }
      }
    },
    "describe_action": {
      "description": "Get the parameter schema for any action. Useful for discovering required and optional fields before calling an action.",
      "properties": {
        "action_to_describe": {
          "type": "string",
          "description": "The action name to describe. Omit to get schemas for all actions.",
          "required": false,
          "enum": [
            "list_records",
            "get_record",
            "search_records",
            "query_records",
            "create_records",
            "update_records",
            "delete_records",
            "list_modules",
            "fields_metadata"
          ]
        }
      }
    }
  },
  "properties": {
    "action": {
      "type": "string",
      "description": "Action to perform",
      "required": true,
      "default": "get_instructions",
      "enum": [
        "get_instructions",
        "list_records",
        "get_record",
        "search_records",
        "query_records",
        "create_records",
        "update_records",
        "delete_records",
        "list_modules",
        "fields_metadata"
      ]
    },
    "criteria": {
      "type": "string",
      "description": "Search criteria",
      "required": false
    },
    "cvid": {
      "type": "string",
      "description": "Custom view ID for list_records",
      "required": false
    },
    "email": {
      "type": "string",
      "description": "Search by email",
      "required": false
    },
    "field_id": {
      "type": "string",
      "description": "Field ID for metadata lookup",
      "required": false
    },
    "fields": {
      "type": "array",
      "description": "Fields to retrieve",
      "required": false,
      "items": {
        "type": "string"
      }
    },
    "module_api_name": {
      "type": "string",
      "description": "Zoho CRM module API name",
      "required": false
    },
    "options": {
      "type": "object",
      "description": "Additional query/body parameters to pass through",
      "required": false
    },
    "page": {
      "type": "integer",
      "description": "Page number",
      "required": false,
      "minimum": 1
    },
    "page_token": {
      "type": "string",
      "description": "Page token for records beyond 2000",
      "required": false
    },
    "per_page": {
      "type": "integer",
      "description": "Records per page",
      "required": false,
      "minimum": 1,
      "maximum": 200
    },
    "phone": {
      "type": "string",
      "description": "Search by phone",
      "required": false
    },
    "record": {
      "type": "object",
      "description": "Single record payload",
      "required": false
    },
    "record_id": {
      "type": "string",
      "description": "Record ID for single-record operations",
      "required": false
    },
    "record_ids": {
      "type": "array",
      "description": "Record IDs for bulk delete",
      "required": false,
      "items": {
        "type": "string"
      }
    },
    "records": {
      "type": "array",
      "description": "List of record payloads",
      "required": false,
      "items": {
        "type": "object"
      }
    },
    "select_query": {
      "type": "string",
      "description": "COQL select query",
      "required": false
    },
    "sort_by": {
      "type": "string",
      "description": "Field API name to sort by",
      "required": false
    },
    "sort_order": {
      "type": "string",
      "description": "Sort order: asc or desc",
      "required": false
    },
    "word": {
      "type": "string",
      "description": "Search by word",
      "required": false
    }
  }
}
```

### Usage Instructions

# Zoho CRM Connector

Manage records, search, query, and explore metadata in Zoho CRM.

## Permissions

- `permissions` is a multi-select array of exact scopes: `read`, `add`, `edit`, `delete`.
- Include every scope the agent is allowed to use.
- `list_records`, `get_record`, `search_records`, `query_records`, `list_modules`, and `fields_metadata` require `read`.
- `create_records` requires `add`.
- `update_records` requires `edit`.
- `delete_records` requires `delete`.
- If `permissions` is omitted, the tool allows read-only actions.

## Actions

### list_records
Retrieve records from a module with optional filtering, sorting, and pagination.

**Required:** `module_api_name`, `fields` (unless `ids` is provided)
**Optional:** `ids`, `per_page` (1-200), `page`, `page_token`, `sort_by`, `sort_order` (asc/desc), `cvid`, `converted` (true/false/both), `territory_id`, `include_child`

### get_record
Fetch a single record by its ID.

**Required:** `module_api_name`, `record_id`
**Optional:** `fields`

### search_records
Search for records using exactly one search method: `criteria`, `email`, `phone`, or `word`.

**Required:** `module_api_name`, and exactly one of: `criteria`, `email`, `phone`, `word`
**Optional:** `fields` (max 50), `per_page` (1-200), `page`, `converted` (true/false/both), `approved` (true/false/both), `type`

### query_records
Run a COQL query for advanced record retrieval.

**Required:** `select_query`

### create_records
Create one or more records in a module.

**Required:** `module_api_name`, and one of: `record`, `records`

### update_records
Update one or more existing records.

**Required:** `module_api_name`, and one of: `record`, `records`

### delete_records
Delete one or more records.

**Required:** `module_api_name`, and exactly one of: `record_id`, `record_ids`

### list_modules
List all available modules in the Zoho CRM account.

### fields_metadata
Retrieve field definitions for a module, or a single field by ID.

**Required:** `module_api_name`

### describe_action
Get the parameter schema for any action.

```json
{
  "action": "describe_action",
  "action_to_describe": "search_records"
}
```

### About The Developer

- Vendor name: Apoth3osis
- Website: apoth3osis.io

We build tools that enable AI agents to excel in the mathematical realm.

Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.

### Frequently Asked Questions

No linked FAQs are currently available.

### Dependencies

This product has no public dependency products.