# Zoho CRM

Create, find, update and delete Zoho CRM leads, contacts, accounts, deals, quotes, orders, invoices, products, vendors and records of any module, add notes, and query with COQL.

## Connect Zoho CRM

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `zoho crm` and choose **Zoho CRM**.
3. Press **Sign in with Zoho CRM**, then choose your account in Zoho CRM’s window and allow access.

Sign in with Zoho; the account’s data centre comes with the sign-in. Zoho has no long-lived personal token, so a sign-in is the only way to connect.

**What if it says “Zoho CRM sign-in isn’t set up here”?**

Signing in with Zoho CRM needs a Zoho CRM app on this installation, and it has none yet.

**On Cloud:** The sheet says “It’s set up once for everyone who uses this service, not by an organization.”

**Self-hosted:** An admin of the installation sees **Set up Zoho CRM sign-in** instead, and sets it up once for everyone. Everyone else sees who to ask.

1. Create an app in Zoho CRM’s developer settings ([Zoho CRM’s guide](https://api-console.zoho.com)).
2. In GoRunner, copy the **Redirect address to add in Zoho CRM’s developer settings**, and add it to the app.
3. Paste the **Client ID** and **Client secret**, then press **Save and sign in**.

[Set up a sign-in app](https://docs.gorunner.io/self-host/oauth-apps#other-providers)

**Can I use my own Zoho CRM app?**

Yes. In the sheet, open **Use your own Zoho CRM app** and paste its **Client ID** and **Client secret**. Add the redirect address it shows to your app first. The connection then signs in through your app instead of the installation’s.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Do things in Zoho CRM

Add a **Zoho CRM** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Account](https://docs.gorunner.io/apps/zoho-crm#fields-f-account): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Contact](https://docs.gorunner.io/apps/zoho-crm#fields-f-contact): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Deal](https://docs.gorunner.io/apps/zoho-crm#fields-f-deal): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Invoice](https://docs.gorunner.io/apps/zoho-crm#fields-f-invoice): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Lead](https://docs.gorunner.io/apps/zoho-crm#fields-f-lead): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete · Get Fields
- [Product](https://docs.gorunner.io/apps/zoho-crm#fields-f-product): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Purchase Order](https://docs.gorunner.io/apps/zoho-crm#fields-f-purchaseorder): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Quote](https://docs.gorunner.io/apps/zoho-crm#fields-f-quote): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Sales Order](https://docs.gorunner.io/apps/zoho-crm#fields-f-salesorder): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Vendor](https://docs.gorunner.io/apps/zoho-crm#fields-f-vendor): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete
- [Any Module](https://docs.gorunner.io/apps/zoho-crm#fields-f-record): Create · Create or Update (Upsert) · Get · Get Many · Search · Update · Delete · Get Fields
- [Note](https://docs.gorunner.io/apps/zoho-crm#fields-f-note): Create · Get Many
- [User](https://docs.gorunner.io/apps/zoho-crm#fields-f-user): Get · Get Many
- [COQL Query](https://docs.gorunner.io/apps/zoho-crm#fields-f-query): Query

To start a workflow from Zoho CRM, use a [Schedule](https://docs.gorunner.io/apps/schedule), [Webhook](https://docs.gorunner.io/apps/webhook) or [Form](https://docs.gorunner.io/apps/form) trigger.

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from Zoho CRM can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Zoho CRM says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, Zoho CRM is `pieceId: "zohocrm"` with `actionId: "zohocrm"`, set by `resource` and an `operation_…` field, such as `operation_account`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### Zoho CRM › Account

### Create

- **Account Name · Required**: The account name (Account_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Account Name · Required**: The account name (Account_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Account ID · Required**: The account's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every account, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many accounts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every account, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many accounts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Account ID · Required**: The account's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Contact

### Create

- **Last Name · Required**: The last name (Last_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Last Name · Required**: The last name (Last_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Contact ID · Required**: The contact's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every contact, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many contacts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every contact, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many contacts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Contact ID · Required**: The contact's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Deal

### Create

- **Deal Name · Required**: The deal name (Deal_Name).
- **Stage · Required**: The stage (Stage).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Deal Name · Required**: The deal name (Deal_Name).
- **Stage · Required**: The stage (Stage).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Deal ID · Required**: The deal's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every deal, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many deals to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every deal, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many deals to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Deal ID · Required**: The deal's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Invoice

### Create

- **Subject · Required**: The subject (Subject).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new invoice needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Subject · Required**: The subject (Subject).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new invoice needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Invoice ID · Required**: The invoice's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every invoice, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many invoices to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every invoice, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many invoices to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Invoice ID · Required**: The invoice's id, or its link in Zoho CRM.
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new invoice needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Lead

### Create

- **Last Name · Required**: The last name (Last_Name).
- **Company · Optional**: The company (Company).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Last Name · Required**: The last name (Last_Name).
- **Company · Optional**: The company (Company).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Lead ID · Required**: The lead's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every lead, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many leads to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every lead, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many leads to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Lead ID · Required**: The lead's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Get Fields

Nothing to fill in.

### Zoho CRM › Product

### Create

- **Product Name · Required**: The product name (Product_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Product Name · Required**: The product name (Product_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Product ID · Required**: The product's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every product, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many products to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every product, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many products to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Product ID · Required**: The product's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Purchase Order

### Create

- **Subject · Required**: The subject (Subject).
- **Vendor ID · Optional**: The id of the vendor (Vendor_Name).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new purchase order needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Subject · Required**: The subject (Subject).
- **Vendor ID · Optional**: The id of the vendor (Vendor_Name).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new purchase order needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Purchase order ID · Required**: The purchase order's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every purchase order, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many purchase orders to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every purchase order, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many purchase orders to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Purchase order ID · Required**: The purchase order's id, or its link in Zoho CRM.
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new purchase order needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Quote

### Create

- **Subject · Required**: The subject (Subject).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new quote needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Subject · Required**: The subject (Subject).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new quote needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Quote ID · Required**: The quote's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every quote, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many quotes to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every quote, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many quotes to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Quote ID · Required**: The quote's id, or its link in Zoho CRM.
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new quote needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Sales Order

### Create

- **Subject · Required**: The subject (Subject).
- **Account ID · Optional**: The id of the account (Account_Name).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new sales order needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Subject · Required**: The subject (Subject).
- **Account ID · Optional**: The id of the account (Account_Name).
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new sales order needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Sales order ID · Required**: The sales order's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every sales order, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many sales orders to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every sales order, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many sales orders to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Sales order ID · Required**: The sales order's id, or its link in Zoho CRM.
- **Line Items · Optional**: The products, such as [{"Product_Name": {"id": "4876876000000624001"}, "Quantity": 2, "List_Price": 49.5}]. A new sales order needs at least one.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Vendor

### Create

- **Vendor Name · Required**: The vendor name (Vendor_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Vendor Name · Required**: The vendor name (Vendor_Name).
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Vendor ID · Required**: The vendor's id, or its link in Zoho CRM.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every vendor, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many vendors to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every vendor, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many vendors to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Vendor ID · Required**: The vendor's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Zoho CRM › Any Module

### Create

- **Module · Required**: The module, standard or custom.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Create or Update (Upsert)

- **Module · Required**: The module, standard or custom.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.
- **Match On · Optional**: Unique fields to find an existing record by, comma-separated, in order (such as Email, Phone). Empty uses the module's default (Email for leads and contacts, the name for most others).

### Get and Delete

- **Module · Required**: The module, standard or custom.
- **Record ID · Required**: The record's id, or its link in Zoho CRM.

### Get Many

- **Module · Required**: The module, standard or custom.
- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Sort By · Optional**: What to order the records by. Options: Record ID, Created time, Modified time. Default: Record ID.
- **Sort Order · Optional**: Newest (largest) first, or oldest first. Options: Descending, Ascending. Default: Descending.
- **Custom View ID · Optional**: Only the records of this list view (its id). Sorting does not apply to a view.
- **Return All · Optional**: Read every record, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–2000). Default: 50. Shows when **Return All** is off.

### Search

- **Module · Required**: The module, standard or custom.
- **Fields to Return · Optional**: Field API names, comma-separated (at most 50). Empty returns the module's first 50 fields.
- **Search By · Optional**: Match fields with conditions, or look a word, email address or phone number up across the module's fields. Options: Conditions, Email address, Phone number, Word. Default: Conditions.
- **Conditions · Optional**: Records matching these, such as {"Email": "ada@example.com"} or [{"field": "Annual_Revenue", "operator": "greater_than", "value": 100000}]. Shows when **Search By** is **Conditions**.
- **Search For · Required**: The word, email address or phone number to look up. Shows when **Search By** is **Email address**, **Phone number** or **Word**.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions. Shows when **Search By** is **Conditions**.
- **Return All · Optional**: Read every record, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Module · Required**: The module, standard or custom.
- **Record ID · Required**: The record's id, or its link in Zoho CRM.
- **Fields · Optional**: Field values by API name, such as {"Email": "ada@example.com", "Lead_Source": "Web", "Annual_Revenue": 250000}.

### Get Fields

- **Module · Required**: The module, standard or custom.

### Zoho CRM › Note

### Create

- **Module · Required**: The module, standard or custom.
- **Record ID · Required**: The record the note belongs to, by id or link.
- **Title · Optional**: The note's title.
- **Note · Required**: The note's text.

### Get Many

- **Module · Required**: The module, standard or custom.
- **Record ID · Required**: The record the note belongs to, by id or link.
- **Return All · Optional**: Read every note, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many notes to return (1–2000). Default: 50. Shows when **Return All** is off.

### Zoho CRM › User

### Get

- **User ID · Required**: The user's id.

### Get Many

- **Which Users · Optional**: Which users to list. Options: All, Active, Deactivated, Confirmed, Not confirmed, Deleted, Active and confirmed, Administrators, Active administrators, The signed-in user. Default: All.
- **Return All · Optional**: Read every user, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many users to return (1–2000). Default: 50. Shows when **Return All** is off.

### Zoho CRM › COQL Query

### Query

- **Query · Required**: A COQL select. Put each value from earlier steps under Values and write :name where it goes; it is written into the query safely.
- **Values · Optional**: The values for the query's :names, such as {"source": "{{steps.form.source}}"}.

Source: https://docs.gorunner.io/apps/zoho-crm
