> ## Documentation Index
> Fetch the complete documentation index at: https://docs.salesask.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zoho CRM

> Connect Zoho CRM to add Notes to Deals and pull Contacts and Meetings.

Sales Ask adds a Note to the Deal linked to the matched Meeting, or to the Contact when there's no Deal, and pulls Contacts and Meetings.

## What Sales Ask uses in Zoho CRM

| Object | How Sales Ask uses it |
| - | - |
| Meetings | Reads the rep's Meetings to show their appointments |
| Contacts | Reads and searches Contacts to match calls |
| Notes | Adds a Note to the Deal linked to the Meeting, or to the Contact if there's no Deal |
| Deal stages | Reads your Deal stages so you can map them to open, won, or lost |

## What you need

* **Client ID**
* **Client Secret**
* **Refresh Token**

<Note>
  Sales Ask connects to Zoho's US data center. Refresh tokens don't expire unless you revoke them.
</Note>

## Create a Self Client

1. Go to the [Zoho API Console](https://api-console.zoho.com) and log in as a Zoho CRM admin.
2. Click **Add Client**, choose **Self Client**, and click **Create**. Confirm with **OK**.
3. On the **Client Secret** tab, copy the **Client ID** and **Client Secret**.

## Generate a refresh token

1. Open the **Generate Code** tab.

2. In **Scope**, paste these scopes exactly, as one comma-separated line:

   ```text theme={null}
   ZohoCRM.modules.contacts.ALL,ZohoCRM.modules.events.ALL,ZohoCRM.modules.notes.ALL,ZohoCRM.modules.deals.READ,ZohoCRM.settings.fields.READ,ZohoCRM.users.READ
   ```

   | Scope | What Sales Ask uses it for |
   | - | - |
   | `ZohoCRM.modules.contacts.ALL` | Read and search Contacts |
   | `ZohoCRM.modules.events.ALL` | Read Meetings (the Events module in the API) |
   | `ZohoCRM.modules.notes.ALL` | Add Notes to Deals and Contacts |
   | `ZohoCRM.modules.deals.READ` | Link Notes to the Deal behind a meeting |
   | `ZohoCRM.settings.fields.READ` | Read your Deal stages for status mapping |
   | `ZohoCRM.users.READ` | Read Zoho users |

3. Set **Time Duration** to **10 minutes**, enter `Sales Ask` as the **Scope Description**, and click **Create**.

4. Choose your Zoho CRM organization and copy the generated code.

5. Before the code expires, exchange it for a refresh token. Replace the three values and run:

   ```bash theme={null}
   curl -X POST "https://accounts.zoho.com/oauth/v2/token" \
     -d "grant_type=authorization_code" \
     -d "client_id=YOUR_CLIENT_ID" \
     -d "client_secret=YOUR_CLIENT_SECRET" \
     -d "code=YOUR_GENERATED_CODE"
   ```

6. Copy the `refresh_token` from the response.

<Tip>
  If the response has no `refresh_token` or says `invalid_code`, the code expired. Generate a new code and run the command again straight away.
</Tip>

## Connect in Sales Ask

1. Go to **Settings → Integrations** and search for **Zoho**.
2. Paste the Client ID, Client Secret, and Refresh Token.
3. Choose a [matching method](/integrations/overview#matching-method) and click **Save**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.