# Zoho on boxd

> Zoho is a suite of cloud applications including CRM, email marketing, and collaboration tools, enabling businesses to automate and scale operations.

- Page: https://boxd.sh/integrations/zoho/
- CLI: `run zoho` (57 commands, 45 marked common)
- SDK: `import { zoho } from "@boxd/run"`; every parameter and response type is at `@boxd/run/zoho`
- Triggers: none
- Connect: `run auth zoho` (Sign in with Zoho), or https://app.boxd.sh/integrations/detail/zoho
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth zoho      # once: prints a link to connect your account
run zoho           # list its commands
run zoho get-users
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, zoho } from "@boxd/run";

every("1 hour", async () => {
  const result = await zoho.getUsers({});
  console.log(result);
});
```

Run it with `run zoho.run.ts`. Zoho has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run zoho <command> --help` lists the optional ones. "common" marks what `run zoho` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `convert-lead` | `zoho.convertLead()` | `--lead-id` | 6 | Converts a lead into a contact, account, and optionally a deal in Zoho CRM |
| `create-contact` ·common | `zoho.createContact()` | `--last-name` | 31 | Creates a new contact record in Zoho CRM |
| `create-deal` ·common | `zoho.createDeal()` | `--Deal-Name` `--Stage` | 11 | Creates a new deal in Zoho CRM representing a sales opportunity with deal name, stage, amount, and closing date |
| `create-email-draft` ·common | `zoho.createEmailDraft()` | `----email-drafts` `--module-api-name` `--record-id` | 0 | Creates email drafts for a specific record in Zoho CRM |
| `create-event` ·common | `zoho.createEvent()` | `--End-DateTime` `--Event-Title` `--Start-DateTime` | 11 | Creates a new Event record in Zoho CRM |
| `create-lead` ·common | `zoho.createLead()` | `--Last-Name` | 26 | Creates a new lead record in Zoho CRM with the specified details |
| `create-note` ·common | `zoho.createNote()` | `--Note-Content` `--module-api-name` `--record-id` | 1 | Creates a new note attached to a specific record in Zoho CRM |
| `create-record` | `zoho.createRecord()` | `--data` `--module-api-name` | 2 | Creates new records in a specified module in Zoho CRM |
| `create-tag` | `zoho.createTag()` | `--module-api-name` `--name` | 1 | Creates a new tag in Zoho CRM for a specific module |
| `delete-account` ·common | `zoho.deleteAccount()` | `--account-id` | 1 | Deletes an existing account record from Zoho CRM |
| `delete-contact` ·common | `zoho.deleteContact()` | `--contact-id` | 1 | Deletes a contact from Zoho CRM |
| `delete-deal` | `zoho.deleteDeal()` | `--deal-id` | 1 | Deletes a deal record from Zoho CRM |
| `get-account` ·common | `zoho.getAccount()` | `--account-id` | 1 | Retrieves a specific Account record from Zoho CRM by its unique identifier |
| `get-call` | `zoho.getCall()` | `--record-id` | 1 | Retrieves a specific Call record by its unique identifier from Zoho CRM |
| `get-contact` ·common | `zoho.getContact()` | `--record-id` | 0 | Retrieves a single contact record by ID from Zoho CRM |
| `get-email-drafts` | `zoho.getEmailDrafts()` | `--module` `--record` | 0 | Retrieves email drafts associated with a specific record in Zoho CRM |
| `get-event` ·common | `zoho.getEvent()` | `--record-id` | 0 | Retrieves a specific event record from Zoho CRM by its unique identifier |
| `get-from-addresses` ·common | `zoho.getFromAddresses()` | — | 0 | Retrieves the list of from addresses configured for email operations in Zoho CRM |
| `get-module-fields` | `zoho.getModuleFields()` | `--module-api-name` | 3 | Retrieves field metadata for a Zoho CRM module including API names, data types, permissions, and configuration details |
| `get-note` ·common | `zoho.getNote()` | `--note-id` | 1 | Retrieves a single note by its unique identifier from Zoho CRM |
| `get-record-emails` ·common | `zoho.getRecordEmails()` | `--module-api-name` `--record-id` | 3 | Retrieves all emails associated with a specific record in Zoho CRM |
| `get-records` | `zoho.getRecords()` | `--module-api-name` | 8 | Retrieves records from a specified module in Zoho CRM |
| `get-related-lists` ·common | `zoho.getRelatedLists()` | `--module-api-name` | 1 | Retrieves related list metadata for a Zoho CRM module to discover correct api_name values |
| `get-related-records` ·common | `zoho.getRelatedRecords()` | `--fields` `--module-api-name` `--record-id` `--related-list-api-name` | 7 | Fetch related-list records (e.g., Notes, Attachments, Emails) for a Zoho CRM parent record using related_list_api_name |
| `get-task` ·common | `zoho.getTask()` | `--record-id` | 1 | Retrieves a specific task record by its ID from Zoho CRM |
| `get-user` ·common | `zoho.getUser()` | `--user-id` | 0 | Retrieves a specific user from Zoho CRM by their user ID |
| `get-users` ·common | `zoho.getUsers()` | — | 5 | Retrieve users from Zoho CRM |
| `list-accounts` ·common | `zoho.listAccounts()` | `--fields` | 9 | Retrieves a list of account records from Zoho CRM with pagination and filtering support |
| `list-calls` ·common | `zoho.listCalls()` | `--fields` | 7 | Retrieves Call activity records from Zoho CRM with pagination support |
| `list-contacts` ·common | `zoho.listContacts()` | — | 8 | Retrieves contact records from Zoho CRM with support for pagination, filtering, and sorting |
| `list-deals` ·common | `zoho.listDeals()` | — | 11 | Retrieves a list of deals from Zoho CRM with support for filtering, sorting, and pagination |
| `list-events` ·common | `zoho.listEvents()` | `--fields` | 7 | Lists events (meetings) from Zoho CRM with pagination and filtering support |
| `list-leads` ·common | `zoho.listLeads()` | — | 9 | Retrieves lead records from Zoho CRM's Leads module with pagination support |
| `list-modules` ·common | `zoho.listModules()` | — | 0 | Lists all available Zoho CRM modules (standard + custom) to reliably select module API names/IDs for operations |
| `list-notes` ·common | `zoho.listNotes()` | `--fields` | 2 | Retrieves a list of notes from Zoho CRM across all modules |
| `list-record-attachments` ·common | `zoho.listRecordAttachments()` | `--module-api-name` `--record-id` | 3 | List attachment metadata (id, File_Name, Size, Created_Time, etc.) for a specific Zoho CRM record |
| `list-tasks` ·common | `zoho.listTasks()` | — | 8 | Retrieves tasks from the Tasks module in Zoho CRM with support for filtering, pagination, and sorting |
| `search-accounts` ·common | `zoho.searchAccounts()` | — | 7 | Search for Account records within Zoho CRM using server-side queries |
| `search-calls` ·common | `zoho.searchCalls()` | — | 7 | Search for Call records in Zoho CRM using server-side queries |
| `search-contacts` ·common | `zoho.searchContacts()` | — | 7 | Search for contacts in Zoho CRM using server-side queries by criteria, email, phone, or keyword |
| `search-deals` ·common | `zoho.searchDeals()` | — | 7 | Search for Deal records in Zoho CRM using server-side queries |
| `search-events` ·common | `zoho.searchEvents()` | — | 7 | Search for Events in Zoho CRM using server-side queries |
| `search-leads` ·common | `zoho.searchLeads()` | — | 9 | Search for lead records in Zoho CRM using server-side queries |
| `search-notes` ·common | `zoho.searchNotes()` | — | 7 | Search for notes in Zoho CRM using server-side queries |
| `search-records` ·common | `zoho.searchRecords()` | `--module-api-name` | 7 | Search for records within a Zoho CRM module using server-side queries |
| `search-tasks` ·common | `zoho.searchTasks()` | — | 7 | Search for tasks in Zoho CRM using flexible criteria including subject, status, priority, or due date |
| `update-account` ·common | `zoho.updateAccount()` | `--record-id` | 27 | Updates an existing Account record in Zoho CRM with the specified field values |
| `update-call` | `zoho.updateCall()` | `--data` | 3 | Updates existing call records in the Calls module in Zoho CRM |
| `update-deal` ·common | `zoho.updateDeal()` | `--data` `--deal-id` | 3 | Updates an existing deal in Zoho CRM |
| `update-email-draft` ·common | `zoho.updateEmailDraft()` | `--from` `--id` `--module-api-name` `--record-id` `--rich-text` | 8 | Updates an existing email draft associated with a record in Zoho CRM |
| `update-event` ·common | `zoho.updateEvent()` | `--data` | 1 | Updates existing events in Zoho CRM |
| `update-lead` ·common | `zoho.updateLead()` | `--data` | 4 | Updates existing lead records in Zoho CRM |
| `update-note` | `zoho.updateNote()` | `--id` | 3 | Updates an existing note in Zoho CRM |
| `update-record` | `zoho.updateRecord()` | `--data` `--module-api-name` | 4 | Updates existing records in a specified module in Zoho CRM |
| `update-related-records` | `zoho.updateRelatedRecords()` | `--data` `--module-api-name` `--record-id` `--related-list-api-name` | 0 | Associates or updates relationships between records across different modules in Zoho CRM |
| `upload-attachment` ·common | `zoho.uploadAttachment()` | `--module-api-name` `--record-id` | 3 | Upload a file as an Attachment to a specific Zoho CRM record |
| `validate-credential` ·common | `zoho.validateCredential()` | — | 0 | Validates Zoho CRM credentials by retrieving current user information |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
