プラットフォーム
特徴
エージェント・スタジオ
エージェントの迅速な構築とカスタマイズ
自律走行エンジン
LLMs を使って会話やタスクを誘導する
知識ベース
カスタムナレッジソースでボットをトレーニング
ヒューマン・ハンドオフ
人を巻き込んで会話を管理する
テーブル
会話データの保存と管理
チャネル
Whatsapp エンブレム
WhatsApp
Instagram エンブレム
Instagram
FacebookMessenger ロゴ
Messenger
Slackのロゴ
Slack
全チャンネル
統合
ハブスポットのロゴ
HubSpot
Notion ロゴ
Notion
Jiraロゴ
Jira
Calendly ロゴ
Calendly
すべての統合
LLM プロバイダー
OpenAI ロゴ
OpenAI
Anthropic ロゴ
Anthropic
Groq ロゴ
Groq
HuggingFaceロゴ
Hugging Face
すべてLLMs
ソリューション
について
エンタープライズ
ミッションクリティカルな生産ワークフローの自動化
代理店
洗練されたエージェント・サービスの提供
開発者
エージェント開発のための堅牢なAPIを探る
お客様の声
Botpress がどのように世界中のビジネスを変革しているか、成功したお客様からご覧ください。
産業別
電子商取引
教育
ファイナンス
ホスピタリティ
全産業
部門別
売上高
エンジニアリング
製品
ITSM
全部門
ユースケース別
ワークフローの自動化
チケット管理
ショッピングアシスタント
製品コパイロット
すべてのユースケース
リソース
エッセンシャル
Academy
キュレーションコースで建築を学ぶ
図書館
AIワークフローを強化するためのリソース
ブログ
Botpress とAIエージェントに関する洞察と最新情報
建物
Discord
何千人もの仲間に加わり、アイデアを共有する
資料
包括的なガイドと参考文献
API
外部システム用参考資料
動画
チュートリアル、デモ、製品ウォークスルー
変更履歴
Botpress 最新アップデート情報
パートナー
パートナーになる
認定エキスパートのネットワークに参加
専門家を雇う
パートナーやコンサルタントとつながる
資料
エンタープライズ
価格
ログイン
連絡先登録する
戻るHub

ゾーホー

v3.1.1
ワークスペースにインストールする
メンテナンス:Botpress チーム
  # Botpress Integration: Zoho CRM

## **Zoho CRM Integration Guide**

For further details, refer to the [**Zoho CRM API documentation**](https://www.zoho.com/crm/developer/docs/api/v7/).

## **Overview**

This Botpress integration allows seamless interaction with **Zoho CRM**. It enables users to manage contacts, deals, appointments, and files directly through their chatbot.

## **Features**

- **Record Management:** Create, retrieve, update, delete, and search records.
- **Appointments Management:** Create, update, retrieve, and delete appointments.
- **File Management:** Upload and retrieve files.
- **Emails:** Send emails and associate them with records.
- **Organization & User Management:** Retrieve organization details and user information.

## Register Your Application

Before making any API calls using the Zoho Botpress Integration, you must register your application with **Zoho CRM**.

### **[Loom video walk through setting up the OAuth configuration.](https://www.loom.com/share/41c2811c047a48cbb08a2d1b0dc98f69?sid=8cb4d496-2cca-415d-be1d-536a87c73a3a)**

### Steps to Register

1. **Go to the [Zoho Developer Console](https://accounts.zoho.com/developerconsole).**
2. Click **Add Client**.
3. Choose the client type: **Self Client**.
4. Click the **Generate Code** tab and enter the following scopes:

   ```
   ZohoCRM.modules.ALL,ZohoCRM.org.ALL,ZohoCRM.users.ALL,ZohoCRM.settings.ALL,ZohoCRM.send_mail.all.CREATE,ZohoCRM.files.CREATE,ZohoCRM.files.READ
   ```

5. Set the **time duration** to **10 minutes**.
6. Provide a scope description (This is not vital to the registration).
7. Click **Create**, select your CRM, and click **Create** again.
8. Download your **credentials file**.

### Generate Refresh Token

Now, execute the following **cURL** command to obtain a refresh token. Ensure you use the **correct region URL** for OAuth authentication.

#### **Zoho Accounts Domains:**

| Region            | Accounts URL                    |
| ----------------- | ------------------------------- |
| US                | `https://accounts.zoho.com`     |
| AU                | `https://accounts.zoho.com.au`  |
| EU                | `https://accounts.zoho.eu`      |
| IN                | `https://accounts.zoho.in`      |
| CN                | `https://accounts.zoho.com.cn`  |
| JP                | `https://accounts.zoho.jp`      |
| SA (Saudi Arabia) | `https://accounts.zoho.sa`      |
| CA (Canada)       | `https://accounts.zohocloud.ca` |

### Execute cURL Request

Replace the placeholders (`CLIENT_ID`, `CLIENT_SECRET`, and `AUTHORIZATION_CODE`) with your actual values before executing the request.

```sh
curl --request POST \
  --url 'https://YOUR_REGION_ACCOUNT_URL/oauth/v2/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data 'grant_type=authorization_code' \
  --data 'client_id=YOUR_CLIENT_ID' \
  --data 'client_secret=YOUR_CLIENT_SECRET' \
  --data 'redirect_uri=YOUR_REDIRECT_URI' \
  --data 'code=AUTHORIZATION_CODE'
```

### Expected Response

If the request is successful, you should receive a response similar to the following:

```json
{
  "access_token": "{access_token}",
  "refresh_token": "{refresh_token}",
  "api_domain": "https://www.zohoapis.com",
  "token_type": "Bearer",
  "expires_in": 3600
}
```

# Define the Zoho OAuth token endpoint based on your region

$uri = "https://YOUR_REGION_ACCOUNT_URL/oauth/v2/token"

# Define the request body with required parameters

$body = @{
grant_type = "authorization_code"
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
redirect_uri = "YOUR_REDIRECT_URI"
code = "AUTHORIZATION_CODE"
}

### Generate Refresh Token using PowerShell (Windows Users)

⚠️ Use this PowerShell command if you're on Windows. Do NOT use cURL—this is for PowerShell only! ⚠️

#### Define the Zoho OAuth token endpoint based on your region

$uri = "https://YOUR_REGION_ACCOUNT_URL/oauth/v2/token"

# Define the request body with required parameters

$body = @{
grant_type = "authorization_code"
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
redirect_uri = "YOUR_REDIRECT_URI"
code = "AUTHORIZATION_CODE"
}

##### Convert body to URL-encoded form data

```
$body = $body | ForEach-Object { "$( $_.Key )=$( $_.Value )" } -join "&"
```

#### Send the POST request using Invoke-RestMethod

```
$response = Invoke-RestMethod -Uri $uri -Method Post -ContentType "application/x-www-form-urlencoded" -Body $body
```

#### Output the response

```
$response
```

## Configure Zoho Botpress Integration

Once you have the necessary credentials, navigate to the **Zoho Botpress Integration** configuration page and enter the following details:

- **Client ID**
- **Client Secret**
- **Refresh Token**
- **Region**

This completes the registration and integration process for **Zoho Botpress**. You are now ready to start making authorized API calls.

---

For more details, refer to the [Zoho API Documentation](https://www.zoho.com/crm/developer/docs/).

---

## API Functions & Usage

Below are the available actions in this integration:

### 1️⃣ **Record Management**

#### **Insert Record**

- **Method:** `POST /crm/v7/{module}`
- **Input:**
  ```json
  {
    "module": "Leads",
    "data": [{ "Last_Name": "Daly", "First_name": "Paul", "Email": "[email protected]" }]
  }
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Request successful",
    "data": {
      "code": "SUCCESS",
      "message": "Record added",
      "status": "success",
      "details": {
        "id": "27234000000176001",
        "Created_By": "Matea Vasileski",
        "Modified_By": "Matea Vasileski",
        "Created_Time": "2025-02-26T18:39:39-05:00",
        "Modified_Time": "2025-02-26T18:39:39-05:00"
      }
    }
  }
  ```

#### **Get Records**

- **Method:** `GET /crm/v7/{module}`
- **Input:**
  ```json
  {
    "module": "Leads",
    "params": { "fields": "Email" }
  }
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Request successful",
    "data": {
      "id": "27234000000157008",
      "Full_Name": "Jim Mulani",
      "First_Name": "Jim",
      "Last_Name": "Mulani",
      "Email": "[email protected]",
      "Company": "envy",
      "Owner": {
        "name": "Matea Vasileski",
        "id": "27234000000095001",
        "email": "[email protected]"
      },
      "Created_By": {
        "name": "Matea Vasileski",
        "id": "27234000000095001",
        "email": "[email protected]"
      },
      "Modified_By": {
        "name": "Matea Vasileski",
        "id": "27234000000095001",
        "email": "[email protected]"
      },
      "Created_Time": "2025-02-23T21:51:21-05:00",
      "Modified_Time": "2025-02-26T18:19:10-05:00",
      "Lead_Status": null,
      "Lead_Source": null,
      "Record_Status": "Available"
    }
  }
  ```

#### **Get Record By ID**

- **Method:** `GET /crm/v7/{module}/{recordId}`
- **Input:**
  ```json
  {
    "module": "Leads",
    "recordId": "27234000000157008"
  }
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Request successful",
    "data": {
      "id": "27234000000157008",
      "Full_Name": "Jim Mulani",
      "First_Name": "Jim",
      "Last_Name": "Mulani",
      "Email": "[email protected]",
      "Company": "envy",
      "Owner": {
        "name": "Matea Vasileski",
        "id": "27234000000095001",
        "email": "[email protected]"
      },
      "Created_By": {
        "name": "Matea Vasileski",
        "id": "27234000000095001",
        "email": "[email protected]"
      },
      "Modified_By": {
        "name": "Matea Vasileski",
        "id": "27234000000095001",
        "email": "[email protected]"
      },
      "Created_Time": "2025-02-23T21:51:21-05:00",
      "Modified_Time": "2025-02-26T18:19:10-05:00",
      "Lead_Status": null,
      "Lead_Source": null,
      "Record_Status": "Available"
    }
  }
  ```

#### **Update Record**

- **Method:** `PUT /crm/v7/{module}/{recordId}`
- **Input:**
  ```json
  {
    "module": "Leads",
    "recordId": "27234000000162001",
    "data": [{ "Email": "[email protected]" }]
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "code": "SUCCESS",
    "message": "Record updated",
    "status": "success",
    "details": {
      "id": "27234000000157008",
      "Created_By": "Matea Vasileski",
      "Modified_By": "Matea Vasileski",
      "Created_Time": "2025-02-23T21:51:21-05:00",
      "Modified_Time": "2025-02-26T18:55:37-05:00"
    }
  }
}
```

#### **Delete Record**

- **Method:** `DELETE /crm/v7/{module}/{recordId}`
- **Input:**
  ```json
  {
    "module": "Leads",
    "recordId": "27234000000162008"
  }
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Request successful",
    "data": {
      "code": "SUCCESS",
      "message": "Record deleted",
      "status": "success",
      "details": {
        "id": "27234000000157008"
      }
    }
  }
  ```

#### **Search Records**

- **Method:** `GET /crm/v7/{module}/search`
- **Input:**
  ```json
  {
    "module": "Leads",
    "criteria": "(First_Name:equals:John)"
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "records": [
      {
        "id": "27234000000176001",
        "Full_Name": "Daly",
        "Email": "[email protected]",
        "Created_Time": "2025-02-26T18:39:39-05:00",
        "Modified_Time": "2025-02-26T18:39:39-05:00",
        "Owner": {
          "name": "Matea Vasileski",
          "email": "[email protected]"
        },
        "Record_Status": "Available"
      },
      {
        "id": "27234000000174002",
        "Full_Name": "Daly",
        "Email": "[email protected]",
        "Created_Time": "2025-02-26T18:17:10-05:00",
        "Modified_Time": "2025-02-26T18:17:10-05:00",
        "Owner": {
          "name": "Matea Vasileski",
          "email": "[email protected]"
        },
        "Record_Status": "Available"
      }
    ],
    "pagination": {
      "per_page": 200,
      "count": 2,
      "page": 1,
      "sort_by": "id",
      "sort_order": "desc",
      "more_records": false
    }
  }
}
```

---

### 2️⃣ **Appointments Management**

#### **Create Appointment**

- **Method:** `POST /crm/v7/Appointments__s`
- **Input:**
  ```json
  [
    {
      "Appointment_Name": "Matea - Mowing Service",
      "Appointment_For": {
        "module": {
          "api_name": "Contacts"
        },
        "name": "k m",
        "id": "27234000000163029"
      },
      "Service_Name": {
        "name": "mow",
        "id": "27234000000168178"
      },
      "Appointment_Start_Time": "2025-02-24T19:33:00Z",
      "Owner": "27234000000095001",
      "Location": "Business Address",
      "Address": "Business Address",
      "Additional_Information": "",
      "Remind_At": [
        {
          "unit": 30,
          "period": "minutes"
        }
      ],
      "Price": "$1.00"
    }
  ]
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "code": "SUCCESS",
    "message": "Record added",
    "status": "success",
    "details": {
      "id": "27234000000175008",
      "Created_By": "Matea Vasileski",
      "Modified_By": "Matea Vasileski",
      "Created_Time": "2025-02-26T19:21:59-05:00",
      "Modified_Time": "2025-02-26T19:21:59-05:00"
    }
  }
}
```

#### **Get Appointments**

- **Method:** `GET /crm/v7/Appointments__s`
- **Input:**
  ```json
  {
    "params": { "fields": "Service_Name" }
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "records": [
      {
        "id": "27234000000159008",
        "Service_Name": {
          "name": "mow",
          "id": "27234000000168178"
        }
      }
    ],
    "pagination": {
      "per_page": 200,
      "count": 1,
      "page": 1,
      "sort_by": "id",
      "sort_order": "desc",
      "more_records": false
    }
  }
}
```

#### **Get Appointment By ID**

- **Method:** `GET /crm/v7/Appointments__s/{appointmentId}`
- **Input:**
  ```json
  {
    "appointmentId": "123456"
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "appointment": {
      "id": "27234000000175008",
      "Appointment_Name": "Matea - Mowing Service",
      "Service_Name": {
        "name": "mow",
        "id": "27234000000168178"
      },
      "Appointment_For": {
        "name": "k m",
        "id": "27234000000163029",
        "module": "Contacts"
      },
      "Owner": {
        "name": "Matea Vasileski",
        "email": "[email protected]"
      },
      "Created_By": {
        "name": "Matea Vasileski",
        "email": "[email protected]"
      },
      "Modified_By": {
        "name": "Matea Vasileski",
        "email": "[email protected]"
      },
      "Appointment_Start_Time": "2025-02-24T14:33:00-05:00",
      "Appointment_End_Time": "2025-02-24T15:03:00-05:00",
      "Duration": 30,
      "Status": "Overdue",
      "Location": "Business Address",
      "Remind_At": [
        {
          "unit": 30,
          "period": "minutes"
        }
      ],
      "Created_Time": "2025-02-26T19:21:59-05:00",
      "Modified_Time": "2025-02-26T19:21:59-05:00",
      "Record_Status": "Available"
    }
  }
}
```

#### **Update Appointment**

- **Method:** `PUT /crm/v7/Appointments__s/{appointmentId}`
- **Input:**
  ```json
  {
    "appointmentId": "27234000000159008",
    "data": {
      "appointments": [
        {
          "Appointment_Name": "Update appt",
          "Appointment_For": {
            "module": "Contacts",
            "name": "k m",
            "id": "27234000000163029"
          },
          "Service_Name": {
            "name": "mow",
            "id": "27234000000168178"
          },
          "Appointment_Start_Time": "2025-02-24T19:33:00Z",
          "Owner": "27234000000095001",
          "Location": "Business Address",
          "Address": "Business Address",
          "Additional_Information": "",
          "Remind_At": [
            {
              "unit": 30,
              "period": "minutes"
            }
          ],
          "Price": "$1.00"
        }
      ]
    }
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "code": "SUCCESS",
    "message": "Record updated",
    "status": "success",
    "details": {
      "id": "27234000000159008",
      "Created_By": "Matea Vasileski",
      "Modified_By": "Matea Vasileski",
      "Created_Time": "2025-02-24T19:44:23-05:00",
      "Modified_Time": "2025-02-26T19:48:20-05:00"
    }
  }
}
```

#### **Delete Appointment**

- **Method:** `DELETE /crm/v7/Appointments__s/{appointmentId}`
- **Input:**
  ```json
  {
    "appointmentId": "123456"
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "code": "SUCCESS",
    "message": "Record deleted",
    "status": "success",
    "details": {
      "id": "27234000000159008"
    }
  }
}
```

---

### 3️⃣ **File Management**

#### **Upload File**

- **Method:** `POST /crm/v7/files`
- **Input:**

```json
{
  "fileUrl": "https://example.com/file.pdf"
}
```

- **Output:**

```json
{
  "success": true,
  "message": "File uploaded successfully",
  "data": {
    "code": "SUCCESS",
    "message": "File uploaded successfully",
    "status": "success",
    "details": {
      "name": "20250226050635-LO9N1PT0.webp",
      "id": "36c38a1979b316686084c58303b1b6cb654eb04f0f1038ed0a8fdf8a6ff28598dceae7f8711509bfd80b56bf8cd4dbba"
    }
  }
}
```

#### **Get File**

- **Method:** `GET /crm/v7/files/{fileId}`
- **Input:**

```json
{
  "fileId": "dcc53e79cfef0810414e8335b0e11d8882a51116f390194f400828673ca4a59492a22be84db32aa8425d0859862491f9"
}
```

- **Output:**

```json
{
    "success":true,
    "message":"Request successful",
    "data": BinaryFileData
}
```

---

### 4️⃣ **Organization & User Management**

#### **Get Organization Details**

- **Method:** `GET /crm/v7/org`
- **Input:**
  No input is required.

- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "organization": {
      "id": "27234000000000684",
      "company_name": "Envyro",
      "domain_name": "org110000680144",
      "primary_email": "[email protected]",
      "currency": "Canadian Dollar - CAD",
      "currency_symbol": "$",
      "time_zone": "America/Toronto",
      "country_code": "US",
      "license_details": {
        "paid": true,
        "paid_type": "professional",
        "paid_expiry": "2025-03-23T20:00:00-04:00",
        "users_license_purchased": 1
      },
      "created_time": "2024-09-11T11:04:19-04:00"
    }
  }
}
```

#### **Get Users**

- **Method:** `GET /crm/v7/users`
- **Input:**
  ```json
  {
    "params": { "status": "active" }
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "users": [
      {
        "id": "27234000000095001",
        "full_name": "Matea Vasileski",
        "email": "[email protected]",
        "role": "CEO",
        "profile": "Administrator",
        "status": "active",
        "country": "Canada",
        "state": "Ontario",
        "time_zone": "America/Toronto",
        "created_time": "2024-09-11T11:04:19-04:00",
        "modified_time": "2024-09-11T11:04:19-04:00"
      },
      {
        "id": "27234000000103062",
        "full_name": "Milos Arsik",
        "email": "[email protected]",
        "role": "CEO",
        "profile": "Administrator",
        "status": "closed",
        "time_zone": "America/Toronto",
        "created_time": "2024-09-16T00:36:14-04:00",
        "modified_time": "2024-11-01T12:18:54-04:00"
      }
    ],
    "pagination": {
      "per_page": 200,
      "count": 2,
      "page": 1,
      "more_records": false
    }
  }
}
```

---

### 5️⃣ **Emails**

#### **Send Email**

- **Method:** `POST /crm/v7/emails`
- **Input:**
  ```json
  {
    "module": "Leads",
    "recordId": "123456",
    "data": [
      {
        "from": {
          "user_name": "Matea Vasileski",
          "email": "[email protected]"
        },
        "to": [
          {
            "user_name": "user1",
            "email": "[email protected]"
          }
        ],
        "cc": [],
        "bcc": [],
        "subject": "Important Update",
        "content": "Here is an important update for you.",
        "mail_format": "html"
      }
    ]
  }
  ```
- **Output:**

```json
{
  "success": true,
  "message": "Request successful",
  "data": {
    "code": "SUCCESS",
    "message": "Your mail has been sent successfully.",
    "status": "success",
    "details": {
      "message_id": "2e660cab6382a85766b68e77778eadf168f923354a69b362ace2e52ce0b934ba"
    }
  }
}
```

---

より良いものを作るBotpress

素晴らしいAIエージェント体験を作り上げよう。

まずはお試しください - 無料です
詳細はこちらBotpress Academy

コース、ガイド、チュートリアルの厳選されたコレクションで、AIエージェントをより良く、より速く構築しましょう。

専門家を雇う

当社の認定デベロッパーと連携して、お客様のニーズに合った専門家ビルダーをお探しください。

全システム稼動
SOC 2
公認
GDPR
準拠
© 2025
プラットフォーム
価格
エージェント・スタジオ
自律走行エンジン
知識ベース
ヒューマン・ハンドオフ
テーブル
Hub
統合
チャネル
LLMs
リソース
営業担当者に相談する
ドキュメンテーション
専門家を雇う
動画
お客様の声
APIリファレンス
ブログ
ステータス
v12リソース
コミュニティ
地域支援
パートナーになる
アンバサダーになる
アフィリエイトになる
会社概要
会社概要
採用情報
ニュース&プレス
法律情報
プライバシー