Zoho Sales IQ HITL

v2.0.0
Maintained by Botpress Growth Team

# Zoho SalesIQ HITL (Human-in-the-Loop) Integration

This integration allows Botpress to seamlessly escalate conversations from a chatbot to a live agent in Zoho SalesIQ. When a user requests human assistance, the bot initiates a new conversation in Zoho SalesIQ and enables real-time communication between the user and a human agent.

How It Works

  1. Conversation Start:
  • When a user requests live agent support, the bot calls Zoho SalesIQ's Open Conversation API to create a new session.
  • The Botpress HITL interface keeps track of the conversation ID.
  1. Message Handling:
  • User messages are forwarded to the Zoho SalesIQ Send Message API, allowing the visitor to communicate with the assigned agent.
  1. Operator Events Tracking:
  • The integration listens for Zoho SalesIQ webhook events, such as:
    • Agent Assignment (operatorAssignedUpdate)
    • Conversation Resolved (operatorConversationComplete)
    • Missed Conversations (operatorConversationMissed)
    • Agent Messages (operatorSendMessage)
  1. Closing Conversations:
  • Once an agent resolves the conversation, Botpress will update the session and notify the chatbot.

Zoho SalesIQ Integration Setup Guide

Loom video walk through setting up the OAuth configuration.

Step 1: Create a Zoho Developer Account

  1. Open the Zoho API Console:
    https://api-console.zohocloud.ca/add?client_type=ORG
  2. Sign in or create a Zoho Developer account if needed.
  3. Create a new OAuth client.
  4. Set the Redirect URI to your Botpress webhook URL.

Step 2: Generate an Authorization Code

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

Construct the following authorization URL, replacing placeholders with your actual values:

https://accounts.zohocloud.ca/oauth/v2/org/auth?response_type=code
&client_id=YOUR_CLIENT_ID
&scope=SalesIQ.Conversations.ALL,SalesIQ.apps.read
&redirect_uri=YOUR_REDIRECT_URI
&access_type=offline
&state=123
  • Replace YOUR_CLIENT_ID with your Zoho Client ID.
  • Replace YOUR_REDIRECT_URL with your Botpress webhook URL.
  • Ensure the scope is set to SalesIQ.Conversations.ALL.

Get Authorization Code

  1. Open the modified URL in a browser.
  2. Click Accept when prompted.
  3. Copy the authorization code from the redirected URL, which will look something like:
   https://webhook.botpress.cloud/2fca97ae-3078-4287-87a2-957e7f68157a?state=123&code=1005.4e8ee2431c3713671170956c8f8ed585.8ac5720917a810e6d447df63d2b63aef&location=ca&accounts-server=https%3A%2F%2Faccounts.zohocloud.ca
  1. The code parameter (1005.4e8ee2431c...) is your authorization code.

Step 3: Exchange Authorization Code for Access Token

Run the following cURL command, replacing placeholders with your actual credentials:

curl -X POST "ACCOUNTS_URL_REGION/oauth/v2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "code=YOUR_CODE" \
     -d "grant_type=authorization_code" \
     -d "client_id=YOUR_CLIENT_ID" \
     -d "client_secret=YOUR_CLIENT_SECRET" \
     -d "redirect_uri=YOUR_REDIRECT_URI" \
     -d "scope=SalesIQ.Conversations.ALL,SalesIQ.apps.read"
  • Replace YOUR_CODE with the authorization code from Step 2.
  • Replace YOUR_CLIENT_ID, YOUR_CLIENT_SECRET, and YOUR_REDIRECT_URL with your actual values.

Step 4: Store Credentials in Your Integration

After making the request, you will receive a response containing an access token and a refresh token. Store the following credentials in your integration configuration:

  • Client ID
  • Client Secret
  • Access Token
  • Refresh Token

Step 5: Retrieve Required Zoho IDs

To fully integrate with Zoho SalesIQ, you need to gather the following details:

1. Get Your Screen Name

  • Visit your Zoho SalesIQ Home Page. https://salesiq.zohocloud.ca/
  • Your Screen Name is displayed on this page in the URL at the top of your browser, for example, envyroinc is the screen name here https://salesiq.zohocloud.ca/envyroinc/mychats.

2. Get Your Department ID

  1. Go to Settings > Departments in Zoho SalesIQ.
  2. Click on the correct department.
  3. The Department ID is in the URL:
   https://salesiq.zohocloud.ca/envyroinc/settings/departments/edit/6338000000002024
  • Example Department ID: 6338000000002024

3. Get Your App ID

  1. Go to Settings > Brands in Zoho SalesIQ.
  2. Click on the correct brand.
  3. The App ID is in the URL:
   https://salesiq.zohocloud.ca/envyroinc/settings/brands/6338000000002238
  • Example App ID: 6338000000002238

Step 6: Final Integration Configuration Setup

Enter the following details into your integration configuration:

Screen Name
App ID
Department ID

How to Set Up a Webhook in SalesIQ for Botpress

Follow these steps to integrate your SalesIQ account with Botpress using webhooks.

Step 1: Navigate to Webhooks in SalesIQ

  1. Log in to your SalesIQ account.
  2. Click on Settings in the sidebar.
  3. Scroll down and select Webhooks.

Step 2: Add a New Webhook

  1. Click Add a New Data Modifications Webhook.
  2. Select the correct brand/organization for which you want to configure the webhook.

Step 3: Configure the Webhook

  1. In the URL to be invoked field, copy and paste your Botpress webhook URL.

Step 4: Select Webhook Events

  1. Check the following events to be associated with the webhook:
  • conversation.attender.updated
  • conversation.missed
  • conversation.operator.replied
  • conversation.completed

Step 5: Save Your Webhook

  1. Click the Create Webhook button to finalize your webhook setup.

That's it! Your webhook is now configured to send SalesIQ events to Botpress.