---
title: "Botpress Integration"
description: "Connect AI agents to Botpress, the chatbot and agent platform. Agents converse with deployed bots through the Chat API, manage runtime conversations, users, and events, and read and write structured data in Botpress Tables and Files."
url: https://flowrunner.ai/integrations/botpress
date_modified: 2026-08-01T02:40:32-07:00
---

# Botpress

[AI](https://flowrunner.ai/integrations/category/ai-llms)

Connect AI agents to Botpress, the chatbot and agent platform. Agents converse with deployed bots through the Chat API, manage runtime conversations, users, and events, and read and write structured data in Botpress Tables and Files.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 40 actions · API key · available

[Botpress website](https://botpress.com/) · [Platform Documentation](https://botpress.com/docs) · Capability data verified 2026-07-27

1.  New customer question lands in the intake queue
2.  Agent opens a Botpress conversation with Create Chat User and Send Chat Message
3.  Agent reads the bot's reply with List Chat Messages
4.  Agent judges whether the reply actually resolves the question
5.  Unresolved conversations become a Zendesk ticket with the full transcript
6.  Resolution summary posts to the support channel in Slack
7.  Support lead works the escalated ticket with the bot's attempt attached

## What This Integration Enables

Botpress builds the bot. FlowRunner decides what happens when the bot reaches its limit. A deployed chatbot is a front door, not a workflow, and this connector puts the bot inside one: agents converse with deployed bots through the Chat API, inject messages and custom events into a bot's runtime, and read and write the Botpress Tables that back the bot's answers. That last part matters more than it sounds. Most chatbot failures are data failures, and an agent that keeps Tables synced with your CRM and order systems fixes the answers before anyone notices they were wrong.

The [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) layer is the difference between a chatbot and a support system. The bot handles the conversations it can. FlowRunner catches the ones it cannot, and a person finishes them.

### Without FlowRunner

**Bot is an island**: The chatbot answers what it can and silently drops what it cannot

**Stale bot knowledge**: Table data behind the bot's answers lags whatever changed in the source system

**Invisible failures**: Nobody knows which questions the bot fumbled until a customer complains

### With FlowRunner

**Bot-first triage with a floor**: Every conversation the bot cannot resolve becomes a ticket with the transcript attached

**Live data behind answers**: Agents keep Botpress Tables synced with the systems the answers depend on

**Reviewed conversations**: Resolved and escalated conversations both land where the team can see them

## Use Case Scenarios

### Bot-first support triage with a human floor

Inbound customer questions from a web form or shared inbox run through the deployed Botpress bot before any person sees them. The agent creates a chat user, opens a conversation, sends the question with Send Chat Message, and reads the reply with List Chat Messages. When the bot resolves the issue, the agent posts a summary to [Slack](https://flowrunner.ai/integrations/slack) for visibility. When it does not, the agent opens a ticket in [Zendesk](https://flowrunner.ai/integrations/zendesk) with the full conversation attached, so the support rep starts from what the bot already tried instead of from zero.

### Botpress Tables as a live data layer

A bot that answers order status questions is only as good as the order data it can reach. An agent syncs records from the commerce and CRM stack into Botpress Tables with Upsert Table Rows on a schedule, keyed to avoid duplicates, so bot flows read current data instead of last week's export. Going the other direction, Find Table Rows pulls the leads and feedback the bot collected, and the agent appends each record to a reporting sheet in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) for the team that never logs into Botpress.

### Table maintenance that never wipes data unattended

Schemas drift. When a product catalog restructure makes a bot table's rows stale, a maintenance agent stages the fix: it queries the affected rows with Find Table Rows, counts what a cleanup would remove, and stops. A person confirms the scope before Delete Table Rows runs, because a table wipe under a live bot changes what the bot tells customers in the next conversation. After approval, the agent clears the rows, re-seeds with Create Table Rows, and posts the row counts to the team channel.

## Human-in-Loop Highlight

Delete Table Rows can clear an entire table in one call when delete all is enabled, and the bot reading that table does not pause while it happens. So the maintenance agent never runs it cold. It posts to the data owner in Slack: "The product\_faq table has 412 rows matching the retired SKU filter. Deleting them removes the bot's answers for those products until the re-seed completes. Approve the wipe, or narrow the filter?" The owner approves, narrows, or cancels. The bot's knowledge changes only after a person has seen exactly what is about to disappear.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via Slack

Human decides

Agent resumes with decision

## Agent Capabilities

40 actions

### Chat API

7

-   **Create Chat User** Creates an end-user for the Chat API and returns the signed user key that authenticates their requests. Reusing a stable user ID makes this idempotent, so workflows can call it safely on every run.
-   **Get Chat User** Retrieves the profile of the Chat user behind a user key. Used to confirm identity before resuming a conversation.
-   **Create Chat Conversation** Opens a new conversation between a Chat user and the deployed bot. Supplying a conversation ID makes creation idempotent for retry-safe workflows.
-   **Get Chat Conversation** Retrieves a single Chat conversation with its tags and timestamps. Used to check conversation state before sending.
-   **List Chat Conversations** Lists a user's conversations, newest first. Used to find the active thread for a returning customer.
-   **Send Chat Message** Sends a message from the user into a conversation and delivers it to the bot. This is the step that puts a customer question in front of the deployed bot.
-   **List Chat Messages** Retrieves the messages in a conversation, including the bot's replies. Used to capture the bot's answer and judge whether it resolved the question.

### Bots

2

-   **List Bots** Lists the bots in the workspace with their deployment status. Used to route conversations to the right bot.
-   **Get Bot** Retrieves a bot's full configuration, channels, and current version. Used before runtime operations that depend on how the bot is deployed.

### Runtime Conversations and Messages

8

-   **Create Conversation** Creates a conversation directly against the bot's runtime for a given channel. Used when an external system needs to start a bot conversation programmatically.
-   **Get Conversation** Retrieves a runtime conversation with its integration, tags, and timestamps.
-   **List Conversations** Lists runtime conversations, optionally filtered by channel. Used for conversation audits and reporting sweeps.
-   **Delete Conversation** Permanently deletes a runtime conversation and its messages. Used in retention cleanup, and worth gating since there is no undo.
-   **Create Message** Injects a message into a runtime conversation on behalf of a user. Used to feed external context into an active bot conversation.
-   **Get Message** Retrieves a single runtime message with its payload and author.
-   **List Messages** Lists messages within a runtime conversation, both user and bot sides. Used to reconstruct transcripts for escalations.
-   **Delete Message** Permanently deletes a runtime message. Used for targeted cleanup.

### Runtime Users

5

-   **Create User** Creates a runtime user record with an optional display name, picture, and tags.
-   **Get User** Retrieves a runtime user record by ID.
-   **List Users** Lists runtime users for the bot, newest first. Used to reconcile bot users against the CRM.
-   **Update User** Updates a runtime user's display name, picture, or tags. Used to enrich bot users with CRM context.
-   **Delete User** Permanently deletes a runtime user record. Used in data-removal workflows.

### Events

3

-   **Create Event** Emits a custom event into the bot's runtime that flow logic can react to. Used to nudge bot behavior from outside, like flagging a VIP customer mid-conversation.
-   **Get Event** Retrieves a runtime event with its type, payload, and status.
-   **List Events** Lists runtime events, filterable by conversation, user, or type. Used to audit what external systems have injected.

### Tables

10

-   **Create Table** Creates a data table with a name and column schema. Used to provision the structured data a bot flow reads.
-   **List Tables** Lists the bot's data tables.
-   **Get Table** Retrieves a table's column schema and metadata. Used before writes to confirm the schema still matches.
-   **Update Table** Renames a table or updates its column schema.
-   **Delete Table** Permanently deletes a table and all of its rows. A gated operation in any workflow that touches live bot data.
-   **Create Table Rows** Inserts rows into a table. Used to seed and refresh the data behind bot answers.
-   **Find Table Rows** Queries rows with filters, free-text search, sorting, and pagination. Used to pull bot-collected data out for reporting.
-   **Update Table Rows** Updates existing rows. Used to correct records the bot serves without a full re-seed.
-   **Upsert Table Rows** Inserts or updates rows in one call, matched on a key column. The workhorse for keeping bot data synced with source systems.
-   **Delete Table Rows** Deletes rows by ID or filter, or clears the whole table when delete all is enabled. The operation this page's human gate exists for.

### Files

5

-   **Upload File** Uploads a file from a URL into Botpress file storage. Used to supply documents and media the bot references.
-   **List Files** Lists stored files, filterable by tags.
-   **Get File** Retrieves a stored file's metadata and access URL.
-   **Download File to Storage** Downloads a Botpress file into FlowRunner file storage and returns a URL for later steps. Used to move bot-collected uploads into downstream workflows.
-   **Delete File** Permanently deletes a stored file from Botpress file storage.

## Frequently Asked Questions

### What can FlowRunner do with Botpress?

FlowRunner agents can run Create Chat User, Get Chat User, and Create Chat Conversation in Botpress, plus 37 more actions.

### Does connecting Botpress to FlowRunner require OAuth?

No. Botpress connects to FlowRunner with an API key, no OAuth flow required.

### Can Botpress trigger a FlowRunner workflow automatically?

Botpress doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at Botpress?** This integration exposes Botpress to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/botpress. Site index: https://flowrunner.ai/llms.txt
