Platform
Features
Agent Studio
Build and customize your agent rapidly
Autonomous Engine
Use LLMs to guide conversations and tasks
Knowledge Bases
Train your bot with custom knowledge sources
Human Handoff
Manage conversations with human involvement
Tables
Store and manage conversation data
Channels
Whatsapp Emblem
WhatsApp
Instagram Emblem
Instagram
Facebook Messenger logo
Messenger
Slack logo
Slack
All channels
Integrations
Hubspot Logo
HubSpot
Notion logo
Notion
Jira logo
Jira
Calendly logo
Calendly
All integrations
LLM Providers
OpenAI logo
OpenAI
Anthropic logo
Anthropic
Groq logo
Groq
HuggingFace logo
Hugging Face
All LLMs
Solutions
For
Enterprise
Automate mission-critical production workflows
Agencies
Provide sophisticated agent services
Developers
Explore a robust API for agent development
Customer Stories
Discover from successful customers how Botpress is transforming business worldwide.
By Industry
Ecommerce
Education
Hospitality
Legal Services
All industries
By Department
Sales
Engineering
Product
ITSM
All departments
By Use Case
Workflow Automation
Ticket Management
Shopping Assistant
Product Copilot
All use cases
Resources
Essential
Academy
Learn to build through curated courses
Library
Resources to enhance your AI workflows
Blog
Insights and updates on Botpress and AI agents
building
Discord
Join thousands of peers and share ideas
Docs
Comprehensive guides and references
API
Reference material for use with external systems
LLM Ranking
Compare performance and cost for model providers
Videos
Tutorials, demos, and product walkthroughs
Changelog
Stay up-to-date on the latest Botpress updates
Partners
Become a Partner
Join our network of certified experts
Hire an Expert
Connect with partners and consultants
Docs
Enterprise
Pricing
Log in
ContactSign up
back to Hub

HubSpot Inbox HITL

v5.0.1
Install on your Workspace
Maintained by Botpress Growth Team
  
# HubSpot Custom Channels HITL (Human-in-the-Loop) Integration

This integration enables Botpress to escalate conversations from a chatbot to a live agent in a HubSpot Inbox via Custom Channels. It uses the HubSpot Custom Channels API to create, send, and manage HITL (Human-in-the-Loop) conversations and agent interactions.

## Note: This integration requires one of the following products or higher.
HubSpot Sales Hub - Enterprise

HubSpot Service Hub - Enterprise

### Escalate to Human - Phone Number Requirement

To successfully trigger HITL's **"Escalate to a Human"** card, you must pass a **valid phone number including the country code** into the **"User Email"** field.

> ⚠️ This phone number **must match** the number of an existing contact in HubSpot. If there’s no match, the escalation will not work.

## How It Works

### Conversation Start

- When a user requests live agent support, the bot:
  - Calls HubSpot’s Custom Channels API to start a new conversation thread.
  - Registers the custom channel and sends the initial "Name, title, description" message.

### Message Handling

- All subsequent user messages are:
  - Sent to HubSpot as INCOMING messages through the Custom Channels API.
  - Routed to the appropriate inbox and agent in the HubSpot Conversations UI.

### Operator Events Tracking

The integration listens for HubSpot webhook events, including:
- `operatorAssignedUpdate`: Fires when an agent joins the thread.
- `operatorSendMessage`: Captures replies sent by the agent.
- `operatorConversationCompleted`: Fires when the conversation is closed by the agent.

These events are handled in the `src/events/` directory and forwarded to Botpress via custom events like `hitlAssigned` and `hitlStopped`.

### Closing Conversations

- When an agent marks a conversation as complete, Botpress:
  - Recognizes the event via webhook.
  - Terminates the HITL session and notifies the bot.

## HubSpot Inbox HITL Integration Setup Guide

This guide walks you through connecting your HubSpot Inbox with Botpress using OAuth for Human-in-the-Loop functionality.

### **[Loom video walk through setting up the OAuth configuration.](https://www.loom.com/share/4f1671cfd4fd4063b5e8570830100a44?sid=a22987f8-858b-4ef2-a879-ccac762fb6aa)** ###


### 1. Create a HubSpot Developer Account
- Go to [HubSpot Developer](https://developers.hubspot.com/) and sign up or log in.

### 2. Create a Public App
- Navigate to **Apps** > **Create app**
- Set the **Redirect URL** to your Botpress webhook URL  
  Example: `https://your-botpress-url.com/api/v1/webhooks/hubspot`

### 3. Generate Your Developer API Key
- In your developer portal, go to **Keys**
- Generate a `developer_api_key`

### 4. Configure Your App Credentials in Botpress
In your Botpress integration config, paste the following values:
- `developer_api_key`
- `app ID`
- `client ID`
- `client secret`

### 5. Retrieve Your Inbox ID
- In HubSpot, go to:  
  **CRM** → **Inbox** → **Inbox Settings**
- Copy your Inbox ID from the URL:  
  Example:  
  `https://app-na3.hubspot.com/live-messages-settings/341662569/inboxes/1263703960/channels`  
  Here, the **Inbox ID** is: `1263703960`
- Paste this Inbox ID into your Botpress integration config.

### 6. Set App Scopes and Webhook
- In your public app settings, set the **Scopes** to:
  ```
  conversations.custom_channels.read
  conversations.custom_channels.write
  conversations.read
  conversations.visitor_identification.tokens.create
  conversations.write
  crm.objects.contacts.read
  ```
- Under **Webhooks**, set the **Target URL** to your Botpress webhook URL.

### 7. Subscribe to Webhook Events
Create webhook subscriptions for the following events:
- `conversations.newMessage`
- `conversation.propertyChange` (AssignedTo, Status)

---

## Get Your OAuth Refresh Token

### 1. Get the Authorization Code
Open the following URL in your browser (replace values accordingly):
```bash
https://app.hubspot.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=conversations.custom_channels.read%20conversations.custom_channels.write%20conversations.read%20conversations.visitor_identification.tokens.create%20conversations.write%20crm.objects.contacts.read&response_type=code
```

### 2. Exchange the Code for Tokens
Use the following cURL request to get your tokens:
```bash
curl -X POST https://api.hubapi.com/oauth/v1/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "redirect_uri=YOUR_BOTPRESS_WEBHOOK_URL" \
  -d "code=YOUR_AUTHORIZATION_CODE"
```

You’ll receive:
- `access_token`
- `refresh_token`
- `expires_in`

Save your `refresh_token` in your Botpress integration settings.

> ⚠️ **Note:** After saving your final integration configuration in Botpress, it may take **over a minute** for the HubSpot channel to connect. **Do not refresh or close the page** during this time.

---

## You're All Set!
Your HubSpot inbox is now connected to Botpress HITL via OAuth. You should now be able to receive and respond to conversations within Botpress.

Build Better with Botpress

Craft amazing AI agent experiences.

Get started - it's free
Learn more at Botpress Academy

Build AI agents better and faster with our curated collection of courses, guides, and tutorials.

Hire an Expert

Connect with our certified developers to find an expert builder that suits your needs.

All Systems Operational
SOC 2
Certified
GDPR
Compliant
© 2025
Platform
Pricing
Agent Studio
Autonomous Engine
Knowledge Bases
Human Handoff
Tables
Hub
Integrations
Channels
LLMs
Resources
Talk to Sales
Documentation
Hire an Expert
Videos
Customer Stories
API Reference
Blog
Status
v12 Resources
Community
Community Support
Become a Partner
Become an Ambassador
Become an Affiliate
Company
About
Careers
News & Press
Legal
Privacy