Input: {"body":{"messages":[{"content":"Extract the following information from the input:\n{ \n/** The name of the feature */\nfeature?: string\n; \n/** The parent feature */\nparent?: string | null\n; \n/** The description of the feature */\ndescription?: string\n }\n====\n\n• Extract all things that looks like a Botpress feature in the provided input. You must extract a minimum of one element.\n• You may have multiple elements, or zero elements in the input.\n• You must extract each element separately.\n• Each element must be a JSON object with exactly the format: ■json_start■{ \"feature\": ..., \"parent\": ..., \"description\": ... }■json_end■\n• If there are no elements to extract, respond with ■ZERO_ELEMENTS■.\n• When you are done extracting all elements, type \"■NO_MORE_ELEMENT■\" to finish.\n• For example, if you have zero elements, the output should look like this: ■ZERO_ELEMENTS■■NO_MORE_ELEMENT■\n• For example, if you have two elements, the output should look like this: ■json_start■{ ... }■json_end■■json_start■{ ... }■json_end■■NO_MORE_ELEMENT■\n• You may ignore any fields that are not present in the input. All keys are optional.","role":"system"},{"content":"Here's an example to help you understand the format:\n\n<|start_schema|>\nArray<{ name: string, age: number }>\n<|end_schema|>\n\n<|start_instructions|>\nExtract all people\n<|end_instructions|>\n\n<|start_input|>\nThe story goes as follow.\nOnce upon a time, there was a person named Alice who was 30 years old.\nThen, there was a person named Bob who was 25 years old.\nThe end.\n<|end_input|>","role":"user","type":"text"},{"content":"■json_start■\n{\n  \"name\": \"Alice\",\n  \"age\": 30\n}\n■json_end■\n■json_start■\n{\n  \"name\": \"Bob\",\n  \"age\": 25\n}\n■json_end■■NO_MORE_ELEMENT■","role":"assistant","type":"text"},{"content":"Here's an example to help you understand the format:\n\n<|start_schema|>\n{ \n/** The name of the feature */\nfeature?: string\n; \n/** The parent feature */\nparent?: string | null\n; \n/** The description of the feature */\ndescription?: string\n }\n<|end_schema|>\n\n<|start_instructions|>\nExtract all things that looks like a Botpress feature in the provided input. You must extract a minimum of one element.\n<|end_instructions|>\n\n<|start_input|>\n* [Integration Events](/docs/integration-events)  \n         * [Handler](/docs/handler)  \n         * [Logging](/docs/logging)  \n         * [Building a Custom Integration](/docs/building-a-custom-integration)\n## Webchat\n* [Webchat](/docs/webchat)  \n   * [Webflow](/docs/webflow)  \n   * [Wix](/docs/wix)  \n   * [Wordpress](/docs/wordpress)\n* [Webchat v1 (deprecated)](/docs/web-chat-v1old)  \n   * [Controlling Web Chat using JavaScript](/docs/controlling-web-chat-using-javascript)  \n   * [Styling your webchat](/docs/chatbot-button)  \n         * [Chatbot Button](/docs/chatbot-button)  \n         * [Chat Header](/docs/chat-header)  \n         * [User Input Area](/docs/user-input-area)  \n         * [Show Bot Info](/docs/show-bot-info)  \n   * [Embedding Webchat](/docs/react-app)  \n         * [React App](/docs/react-app)  \n         * [React Native App](/docs/react-native-app)  \n         * [Web Chat Iframe](/docs/web-chat-iframe)  \n         * [Full Screen Chatbot](/docs/full-screen-chatbot)\n* [Webchat v2](/docs/embedded-webchat)  \n   * [Embedded Webchat](/docs/embedded-webchat)  \n         * [Custom CSS Reference](/docs/custom-css-reference)  \n   * [React Components](/docs/react-js)  \n   * [Webchat Client](/docs/webchat-client)\n## Botpress APIs\n* [Files API](/docs/files-api)\n* [Chat API](/docs/chat-api)\n## Appendix\n* [Safety](/docs/safety)  \n   * [Preventing Abuse](/docs/preventing-abuse)  \n   * [Brand Safety Framework](/docs/brand-safety-framework)\n* [Exporting Data](/docs/exporting-data)  \n   * [Raw Conversations](/docs/exporting-raw-conversations-with-the-botpress-api)  \n   * [Conversation History](/docs/getting-the-conversation-history-from-within-your-bot)  \n   * [Streaming Analytics](/docs/streaming-analytics-from-within-your-bot-with-hooks)  \n   * [Compiled Bot Analytics](/docs/exporting-compiled-bot-analytics-with-the-botpress-api)\nPowered by\n# Streaming Analytics\n[ Suggest Edits](/edit/streaming-analytics-from-within-your-bot-with-hooks)\nThe Botpress Cloud dashboard provides you with an Analytics page with counters for the total number of users, new users, returning users, sessions and messages. It also shows a chart with the data and allows you to filter by date range.\nWhile this interface is great for understanding reach and engagement in a glance, you may need more in-depth data about user behavior and the paths they take when interacting with the bot, and you may need to have this data streamed to a third-party service like Hotjar, Segment or Amplitude. Luckily, you can use the Hooks feature to do just that!.\nIn this tutorial we are going to use Mixpanel as an example, but you can use any service that has a REST API and an endpoint to receive events.\nSetting up Mixpanel\n[](#setting-up-mixpanel)\n1. Create an account and a project in [Mixpanel](https://mixpanel.com/).\n2. Go to your project settings and copy the Project Token.\nSetting up the Hooks\n[](#setting-up-the-hooks)\n1. Open Botpress Studio, go to the Hooks tab and click on the `+` button next to **Before Incoming Message** to create a new hook.\n2. Name it `send-user-analytics` for example\n3. Add the following Javascript code:\nJavaScript\n`` const userAnalyticsData = {\ntime: event.createdOn.getTime(), // Mixpanel event datetime\n$insert_id: event.id, // Mixpanel unique event\ndistinct_id: event.userId, // Mixpanel preventing duplicates\nbot_id: event.botId,\nconversation_id: event.conversationId,\npayload: event.payload,\ntext: event.preview,\ncurrent_flow: event.state.context.currentFlow,\ncurrent_node: event.state.context.currentNode,\ncurrent_card: event.state.context.currentCard,\n}\nconst projectToken = '<your token>'\nawait axios.post(\n'https://api.mixpanel.com/import',\n[\n{\nevent: 'Inbound Message',\nproperties: userAnalyticsData,\n},\n],\n{\nheaders: {\nAuthorization: `Basic ${btoa(projectToken + ':')}`,\n},\n}\n)\n``\n1. Click on the `+` button next to **Before Outgoing Message** to create a new hook.\n2. Name it `send-bot-analytics` for example\n3. Add the following Javascript code:\nJavaScript\n`` const botAnalyticsData = {\ntime: outgoingEvent.createdOn.getTime(), // Mixpanel event datetime\n$insert_id: outgoingEvent.id, // Mixpanel unique event\ndistinct_id: outgoingEvent.userId, // Mixpanel preventing duplicates\nbot_id: outgoingEvent.botId,\nconversation_id: outgoingEvent.conversationId,\npayload: outgoingEvent.payload,\ntext: outgoingEvent.preview,\ncurrent_flow: outgoingEvent.state.context.currentFlow,\ncurrent_node: outgoingEvent.state.context.currentNode,\ncurrent_card: outgoingEvent.state.context.currentCard,\n}\nconst projectToken = '<your token>'\nawait axios.post(\n'https://api.mixpanel.com/import',\n[\n{\nevent: 'Outbound Message',\nproperties: botAnalyticsData,\n},\n],\n{\nheaders: {\nAuthorization: `Basic ${btoa(projectToken + ':')}`,\n},\n}\n)\n``\n> ## ���\n>\n> Note\n>\n> Now every time a user or the bot sends a message, Mixpanel will be notified with the event data. You can use this data to create funnels, analyze user behavior and understand the paths they take when interacting with the bot.\nUpdated 24 days ago\n---\n* [Table of Contents](#)\n* * [Setting up Mixpanel](#setting-up-mixpanel)  \n   * [Setting up the Hooks](#setting-up-the-hooks)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nTrello\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](/docs/conversations-1)  \n         * [Messages](/docs/messages)  \n         * [Event](/docs/event)  \n         * [States](/docs/states-1)  \n         * [Actions](/docs/actions)  \n         * [Definitions](/docs/definitions)  \n         * [Secrets](/docs/secrets)  \n         * [ZUI - Zod schema UI components in Botpress \\[BETA\\]](/docs/zui-zod-schema-ui-components-in-botpress)  \n   * [How to](/docs/states)  \n         * [States](/docs/states)  \n         * [Register & Unregister](/docs/register-unregister)  \n         * [Integrations Actions](/docs/integrations)  \n         * [Integration Events](/docs/integration-events)  \n         * [Handler](/docs/handler)  \n         * [Logging](/docs/logging)  \n         * [Building a Custom Integration](/docs/building-a-custom-integration)\n## Webchat\n* [Webchat](/docs/webchat)  \n   * [Webflow](/docs/webflow)  \n   * [Wix](/docs/wix)  \n   * [Wordpress](/docs/wordpress)\n* [Webchat v1 (deprecated)](/docs/web-chat-v1old)  \n   * [Controlling Web Chat using JavaScript](/docs/controlling-web-chat-using-javascript)  \n   * [Styling your webchat](/docs/chatbot-button)  \n         * [Chatbot Button](/docs/chatbot-button)  \n         * [Chat Header](/docs/chat-header)  \n         * [User Input Area](/docs/user-input-area)  \n         * [Show Bot Info](/docs/show-bot-info)  \n   * [Embedding Webchat](/docs/react-app)  \n         * [React App](/docs/react-app)  \n         * [React Native App](/docs/react-native-app)  \n         * [Web Chat Iframe](/docs/web-chat-iframe)  \n         * [Full Screen Chatbot](/docs/full-screen-chatbot)\n* [Webchat v2](/docs/embedded-webchat)  \n   * [Embedded Webchat](/docs/embedded-webchat)  \n         * [Custom CSS Reference](/docs/custom-css-reference)  \n   * [React Components](/docs/react-js)  \n   * [Webchat Client](/docs/webchat-client)\n## Botpress APIs\n* [Files API](/docs/files-api)\n* [Chat API](/docs/chat-api)\n## Appendix\n* [Safety](/docs/safety)  \n   * [Preventing Abuse](/docs/preventing-abuse)  \n   * [Brand Safety Framework](/docs/brand-safety-framework)\n* [Exporting Data](/docs/exporting-data)  \n   * [Raw Conversations](/docs/exporting-raw-conversations-with-the-botpress-api)  \n   * [Conversation History](/docs/getting-the-conversation-history-from-within-your-bot)  \n   * [Streaming Analytics](/docs/streaming-analytics-from-within-your-bot-with-hooks)  \n   * [Compiled Bot Analytics](/docs/exporting-compiled-bot-analytics-with-the-botpress-api)\nPowered by\n# Trello\nTrello Integration\n[ Suggest Edits](/edit/trello)\n![](https://files.readme.io/0a91107-image.png)\nThis integration allows you to connect your Botpress chatbot with Trello, a leading project management platform. With this integration, you can easily manage your boards, lists and cards directly from your chatbot.\nPrerequisites\n[](#prerequisites)\n* A [Trello account](https://trello.com/)\n* A board in Trello, with at least one list\n* The ID of the list where cards will be created. Refer to [this article](https://community.atlassian.com/t5/Trello-questions/How-do-I-find-the-LIST-ID/qaq-p/2272862) to locate it.\n* A [Botpress Cloud account](https://sso.botpress.cloud) and a [Botpress Bot](https://botpress.com/docs/cloud/getting-started/create-and-publish-your-chatbot/)\nSetting up the Trello integration in Botpress\n[](#setting-up-the-trello-integration-in-botpress)\n1. Go to the [Integration Hub](https://app.botpress.cloud/hub) in Botpress Cloud (if you don't have the integration installed yet).\n2. Find and open the Trello integration then click on the \"Install to Bot\" button, now go back to your bot settings.\nThe Trello integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Trello\n* **Webhook URL**: The URL for receiving data in Botpress\n* **API Key**: The API key for the Trello Power-Up\n* **Token**: The token for the Trello Power-Up\nSetting up Trello\n[](#setting-up-trello)\n1. Visit the [Power-Ups Admin Page](https://trello.com/power-ups/admin) and click the **New** button to obtain the API key. Name the Power-Up as \"Botpress Connector\", fill in the email and author fields, then click **Create**.\n2. Once the Power-Up is created, you will be redirected to API Key settings page, displayed below. Generate a new API key, then copy and paste this key into the **API Key** field in Botpress.\n![](https://files.readme.io/5243a12-image.png)\n3. Click on the \"Token\" link (marked in the image below) and authorize the Power-Up access to your Trello account by selecting **Allow**.\n![](https://files.readme.io/25fec25-image.png)\n4. After authorization, copy the displayed token and paste it into the **Token** field in Botpress.\n5. Make sure the integration is enabled then press the button \"Save configuration\".\nThat's it! Now the Trello integration is operational and ready for use within your bot.\nFunctionality\n[](#functionality)\nCards\n[](#cards)\nCreate Card\n[](#create-card)\nThis operation allows you to create cards programmatically in Trello. For example, this can be useful to register user feedback, add support tickets or create tasks.\n* **Card Name**: The title of the card (e.g., \"My Test Card\").\n* **List ID**: The ID of the list to which the card will be added.\n* **Description** (Optional): Details or description of the card.\n* **Due Date** (Optional): The due date of the card in ISO format.\n* **Member IDs** (Optional): The IDs of the members, represented as strings separated by commas.\n* **Label IDs** (Optional): The IDs of the labels, represented as strings separated by commas.\nYou can save the new card information by selecting a variable to store the output in. The output will be an object with the following keys: `id` and `url`.\nUpdate Card\n[](#update-card)\nThis operation allows you to update cards programmatically in Trello. For example, this can be useful to update the status of a support ticket or a task.\n* **Card ID**: The ID of the card to be updated.\n* **Card Name** (Optional): The updated name of the card.\n* **List ID** (Optional): The ID of the list to which the card is added.\n* **Closed** (Optional): Specify \"true\" to close the card and \"false\" to keep it open.\n* **Due Complete** (Optional): Specify \"true\" if the card is due complete and \"false\" if not.\nGet Member\n[](#get-member)\n* **Username or ID**: The Trello username or Trello ID to retrieve member data\nYou can save the member information by selecting a variable to store the output in. The output will be an object with several keys like: `avatarUrl`, `bioData`, `fullName`, `email` and more. Check out this [documentation page](https://developer.atlassian.com/cloud/trello/rest/api-group-members/) to learn more about the Member object.\nGet Board Members\n[](#get-board-members)\nThis operation allows you to get all the members of a board. For example, this can be useful to get the list of members of a project.\n* **Board ID**: The ID of the board to retrieve all its members.\nYou can save the members information by selecting a variable to store the output in. The output will be an object with the key: `members`. The members property is an array of objects with the keys: `id`, `fullName`, and `username`.\nAdd Comment\n[](#add-comment)\nThis operation allows you to add a comment to an existing card. For example, this can be useful to add a comment to a support ticket or a task.\n* **Card ID**: The ID of the card to which the comment will be added.\n* **Comment**: The content of the comment to be added.\nYou can save the new comment information by selecting a variable to store the output in. The output will be an object with the key: `text`.\n> ## ���\n>\n> Note\n>\n> This Trello Integration aims to extend the capabilities of your Botpress chatbot by aligning it with Trello's functionalities, providing a harmonized and interactive user experience. Explore, interact, and get creative with how you utilize this amalgamation to optimize task and project management.\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Prerequisites](#prerequisites)  \n   * [Setting up the Trello integration in Botpress](#setting-up-the-trello-integration-in-botpress)  \n   * [Setting up Trello](#setting-up-trello)  \n   * [Functionality](#functionality)  \n         * [Cards](#cards)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nSlack\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](/docs/conversations-1)  \n         * [Messages](/docs/messages)  \n         * [Event](/docs/event)  \n         * [States](/docs/states-1)  \n         * [Actions](/docs/actions)  \n         * [Definitions](/docs/definitions)  \n         * [Secrets](/docs/secrets)  \n         * [ZUI - Zod schema UI components in Botpress \\[BETA\\]](/docs/zui-zod-schema-ui-components-in-botpress)  \n   * [How to](/docs/states)  \n         * [States](/docs/states)  \n         * [Register & Unregister](/docs/register-unregister)  \n         * [Integrations Actions](/docs/integrations)  \n         * [Integration Events](/docs/integration-events)  \n         * [Handler](/docs/handler)  \n         * [Logging](/docs/logging)  \n         * [Building a Custom Integration](/docs/building-a-custom-integration)\n## Webchat\n* [Webchat](/docs/webchat)  \n   * [Webflow](/docs/webflow)  \n   * [Wix](/docs/wix)  \n   * [Wordpress](/docs/wordpress)\n* [Webchat v1 (deprecated)](/docs/web-chat-v1old)  \n   * [Controlling Web Chat using JavaScript](/docs/controlling-web-chat-using-javascript)  \n   * [Styling your webchat](/docs/chatbot-button)  \n         * [Chatbot Button](/docs/chatbot-button)  \n         * [Chat Header](/docs/chat-header)  \n         * [User Input Area](/docs/user-input-area)  \n         * [Show Bot Info](/docs/show-bot-info)  \n   * [Embedding Webchat](/docs/react-app)  \n         * [React App](/docs/react-app)  \n         * [React Native App](/docs/react-native-app)  \n         * [Web Chat Iframe](/docs/web-chat-iframe)  \n         * [Full Screen Chatbot](/docs/full-screen-chatbot)\n* [Webchat v2](/docs/embedded-webchat)  \n   * [Embedded Webchat](/docs/embedded-webchat)  \n         * [Custom CSS Reference](/docs/custom-css-reference)  \n   * [React Components](/docs/react-js)  \n   * [Webchat Client](/docs/webchat-client)\n## Botpress APIs\n* [Files API](/docs/files-api)\n* [Chat API](/docs/chat-api)\n## Appendix\n* [Safety](/docs/safety)  \n   * [Preventing Abuse](/docs/preventing-abuse)  \n   * [Brand Safety Framework](/docs/brand-safety-framework)\n* [Exporting Data](/docs/exporting-data)  \n   * [Raw Conversations](/docs/exporting-raw-conversations-with-the-botpress-api)  \n   * [Conversation History](/docs/getting-the-conversation-history-from-within-your-bot)  \n   * [Streaming Analytics](/docs/streaming-analytics-from-within-your-bot-with-hooks)  \n   * [Compiled Bot Analytics](/docs/exporting-compiled-bot-analytics-with-the-botpress-api)\nPowered by\n# Slack\n[ Suggest Edits](/edit/slack)\n![](https://files.readme.io/94da470-image.png)\nPrerequisites\n[](#prerequisites)\n* A [Slack App](https://api.slack.com/apps) to connect your bot to Slack.\n* A [Botpress Cloud account](https://sso.botpress.cloud) and a [Botpress Bot](https://botpress.com/docs/cloud/getting-started/create-and-publish-your-chatbot/)\nCreate a Slack App\n[](#create-a-slack-app)\nIf you don't have a Slack app already, follow the steps below to create one:\n1. Go to [this link](https://api.slack.com/apps?new%5Fapp=1).\n2. Select **from scratch**.\n3. Enter a name for your app.\n4. Select the workspace you want to connect your bot to.\n5. Click **Create App**.\nEt voilà! You have created a Slack app.\nSetting up the Slack integration in Botpress\n[](#setting-up-the-slack-integration-in-botpress)\n1. Go to the [Integration Hub](https://app.botpress.cloud/hub) in Botpress Cloud (if you don't have the integration installed yet).\n2. Find and open the Slack integration then click on the \"Install to Bot\" button, now go back to your bot.\nThe Slack integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Slack\n* **Webhook URL**: The URL for receiving data in Botpress\n* **Bot Token**: The token used to authenticate requests made to Slack\n* **Signing Secret**: The secret used to verify the requests\n* **Bot Name**: The name of the bot that will be displayed in Slack\n* **Bot Avatar URL**: The URL to the bot's avatar that will be displayed in Slack\nSetting up Slack\n[](#setting-up-slack)\nBot Token\n[](#bot-token)\n1. In the left sidebar, click on **Features** \\> **OAuth & Permissions**\n2. Scroll down to the **Scope** \\> **Bot Token Scopes** section, click **Add an OAuth Scope**. Select both `chat:write` and `chat:write.customize` options from the list.\n3. Scroll up and click the **Install to Workspace** button in the **OAuth Tokens for Your Workspace** section\n4. In the next screen, your app will request access to your Slack workspace. Click **Allow**.\n5. In the **OAuth & Permissions > OAuth Tokens for Your Workspace** section, copy the **Bot User OAuth Token**.\n6. Copy the token and paste it in the **Bot Token** input in Botpress.\nSigning Secret\n[](#signing-secret)\nThe signing secret is used to verify webhook requests\n1. In the left sidebar of the app details page, click on **Settings** \\> **Basic Information**\n2. Scroll down to **App Credentials** section. Next to **Signing Secret**, click **Show** to reveal the secret.\n3. Copy the secret to the **Signing Secret** input in Botpress.\nSave Configuration\n[](#save-configuration)\nChannel configuration is complete, you can now click **Save**. It is important you save your configuration before configuring the webhooks, otherwise Slack will be unable to validate the webhook url\nImportant: Do not activate the toggle or authorize Slack before saving. After saving, the toggle can be activated, but do not synchronize yet.\nWebhook Configuration\n[](#webhook-configuration)\nEvents Webhook\n[](#events-webhook)\nSlack sends regular events such as messages to the event webhook\n1. In the left sidebar, click on **Features** \\> **Event Subscriptions**\n2. Turn on events by click the On/Off button\n3. Copy paste the webhook url provided in the channel configuration UI to the **Request URL** field\n4. Under **Subscribe to bot event**, add `message.im` and `message.channels`\n5. Click the **Save Changes** button. Make sure your Slack channel configuration is saved before doing this step, otherwise webhook validation will fail\n6. A yellow banner will be displayed at the top of the screen. Click the **reinstall your app** link\n7. In the next screen, your app will request access to your Slack workspace. Click **Allow**.\nInteractivity Webhook\n[](#interactivity-webhook)\nSlack sends \"interactive\" events such as reactions to message to the interactivity webhook\n1. In the left sidebar, click on **Features** \\> **Interactivity & Shortcuts**\n2. Turn on interactivity by click the On/Off button\n3. Copy paste the webhook url provided in the channel configuration UI to the **Request URL** field\n4. Click the **Save Changes** button\nInstall App\n[](#install-app)\nAdd App to Workspace\n[](#add-app-to-workspace)\nYour Slack app needs to be added to your workspace to allow Slack users to communicate with it:\n1. In the left sidebar, click on **Features** \\> **App Home**\n2. Scroll down and in the **Show Tabs > Messages Tab** section, tick **Allow users to send Slash commands and messages from the messages tab**\n3. In Slack, under the **Apps** section of the sidebar, click the **\\+ Add apps** button. In the search bar, type the name of your Slack app. Click on your Slack app in the search results.\nThat's it, you may now start chatting with your bot on Slack!\nTips\n[](#tips)\n* To get the Slack conversation ID, you can read the following variable:\n`{{ event.tags.conversation[\"slack:id\"] }}`.\n* To get the Slack conversation thread ID (if it is a thread), you can read the following variable:\n`{{ event.tags.conversation[\"slack:thread\"] }}`.\n* To get the Slack user ID, you can read the following variable:\n`{{ event.tags.user[\"slack:id\"] }}`.\n* To get the Slack message ID, you can read the following variable:\n`{{ event.tags.message[\"slack:id\"] }}`.\nSlack actions in Botpress Studio\n[](#slack-actions-in-botpress-studio)\nStarting a Conversation Proactively\n[](#starting-a-conversation-proactively)\nTo start a conversation with a user proactively, you need to know the user's Slack ID.\n1. In Studio, add the **Start DM Conversation** card to your flow.\n2. Pass the user's Slack ID in the `Slack User Id` input.\n3. You can store the result of the action in a variable.\nRetrieve a Message\n[](#retrieve-a-message)\nTo retrieve a message from Slack, you need to know the `timestamp` and the `channel` of the message.\n1. In Studio, add the **Retrieve Message** card to your flow.\n2. Pass the timestamp of the message in the `Timestamp` input.\n3. Pass the channel of the message in the `Channel` input.\n4. You can store the result of the action in a variable.\nAdd Reaction to message\n[](#add-reaction-to-message)\nTo add a reaction on a Slack message, you need to know the `message Id` and the `reaction name`.\n1. In Studio, add the **Add Reaction** card to your flow.\n2. Pass the message Id in the `Message Id` input.\n3. Pass the reaction name in the `Reaction Name` input. (see [Slack documentation](https://slack.com/help/articles/202931348-Use-emoji-and-reactions) for more informations on emojis/reactions)\nSynchronize Members\n[](#synchronize-members)\nThis action will synchronize the members of a Slack workspace with Botpress users.\nIn Studio, add the **Sync Members** card to your flow.\nReaction Added trigger\n[](#reaction-added-trigger)\nYou can use the **Reaction Added** trigger to make actions when a reaction is added to a Slack message.\nGet Slack Profile\n[](#get-slack-profile)\nYou can add the below code in an Execute Code card to allow the bot to retrieve the sender's Display Name or E-mail. You can add other properties as per your needs, all you need is to pass your bot's token in the first line. This can add more personalization and customization to your bot.\nJavaScript\n`` const botToken = ''\nconst userInfoUrl = 'https://slack.com/api/users.profile.get?user=' + event.tags.user['slack:id']\n// Query Slack API\nawait axios({ method: 'get', url: userInfoUrl, headers: { Authorization: 'Bearer ' + botToken } })\n.then((response) => {\nconsole.log(response.data)\nuser.userFullName = response.data.profile.display_name\nuser.email = response.data.profile.email\n})\n.catch(function (error) {\nif (error.response) {\n// The request was made and the server responded with a status code\n// that falls out of the range of 2xx\nconsole.log(error.response.data)\nconsole.log(error.response.status)\nconsole.log(error.response.headers)\n} else if (error.request) {\n// The request was made but no response was received\n// `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n// http.ClientRequest in node.js\nconsole.log(error.request)\n} else {\n// Something happened in setting up the request that triggered an Error\nconsole.log('Error', error.message)\n}\nconsole.log(error.config)\n})\n``\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Prerequisites](#prerequisites)  \n   * [Create a Slack App](#create-a-slack-app)  \n   * [Setting up the Slack integration in Botpress](#setting-up-the-slack-integration-in-botpress)  \n   * [Setting up Slack](#setting-up-slack)  \n         * [Bot Token](#bot-token)  \n         * [Signing Secret](#signing-secret)  \n         * [Save Configuration](#save-configuration)  \n   * [Webhook Configuration](#webhook-configuration)  \n         * [Events Webhook](#events-webhook)  \n         * [Interactivity Webhook](#interactivity-webhook)  \n   * [Install App](#install-app)  \n         * [Add App to Workspace](#add-app-to-workspace)  \n   * [Tips](#tips)  \n   * [Slack actions in Botpress Studio](#slack-actions-in-botpress-studio)  \n         * [Starting a Conversation Proactively](#starting-a-conversation-proactively)  \n         * [Retrieve a Message](#retrieve-a-message)  \n         * [Add Reaction to message](#add-reaction-to-message)  \n         * [Synchronize Members](#synchronize-members)  \n         * [Reaction Added trigger](#reaction-added-trigger)  \n         * [Get Slack Profile](#get-slack-profile)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nFlows\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](/docs/conversations-1)  \n         * [Messages](/docs/messages)  \n         * [Event](/docs/event)  \n         * [States](/docs/states-1)  \n         * [Actions](/docs/actions)  \n         * [Definitions](/docs/definitions)  \n         * [Secrets](/docs/secrets)  \n         * [ZUI - Zod schema UI components in Botpress \\[BETA\\]](/docs/zui-zod-schema-ui-components-in-botpress)  \n   * [How to](/docs/states)  \n         * [States](/docs/states)  \n         * [Register & Unregister](/docs/register-unregister)  \n         * [Integrations Actions](/docs/integrations)  \n         * [Integration Events](/docs/integration-events)  \n         * [Handler](/docs/handler)  \n         * [Logging](/docs/logging)  \n         * [Building a Custom Integration](/docs/building-a-custom-integration)\n## Webchat\n* [Webchat](/docs/webchat)  \n   * [Webflow](/docs/webflow)  \n   * [Wix](/docs/wix)  \n   * [Wordpress](/docs/wordpress)\n* [Webchat v1 (deprecated)](/docs/web-chat-v1old)  \n   * [Controlling Web Chat using JavaScript](/docs/controlling-web-chat-using-javascript)  \n   * [Styling your webchat](/docs/chatbot-button)  \n         * [Chatbot Button](/docs/chatbot-button)  \n         * [Chat Header](/docs/chat-header)  \n         * [User Input Area](/docs/user-input-area)  \n         * [Show Bot Info](/docs/show-bot-info)  \n   * [Embedding Webchat](/docs/react-app)  \n         * [React App](/docs/react-app)  \n         * [React Native App](/docs/react-native-app)  \n         * [Web Chat Iframe](/docs/web-chat-iframe)  \n         * [Full Screen Chatbot](/docs/full-screen-chatbot)\n* [Webchat v2](/docs/embedded-webchat)  \n   * [Embedded Webchat](/docs/embedded-webchat)  \n         * [Custom CSS Reference](/docs/custom-css-reference)  \n   * [React Components](/docs/react-js)  \n   * [Webchat Client](/docs/webchat-client)\n## Botpress APIs\n* [Files API](/docs/files-api)\n* [Chat API](/docs/chat-api)\n## Appendix\n* [Safety](/docs/safety)  \n   * [Preventing Abuse](/docs/preventing-abuse)  \n   * [Brand Safety Framework](/docs/brand-safety-framework)\n* [Exporting Data](/docs/exporting-data)  \n   * [Raw Conversations](/docs/exporting-raw-conversations-with-the-botpress-api)  \n   * [Conversation History](/docs/getting-the-conversation-history-from-within-your-bot)  \n   * [Streaming Analytics](/docs/streaming-analytics-from-within-your-bot-with-hooks)  \n   * [Compiled Bot Analytics](/docs/exporting-compiled-bot-analytics-with-the-botpress-api)\nPowered by\n# Flows\nMenu to manage different conversational flows that dictate how your bot interacts with users.\n[ Suggest Edits](/edit/studio-interface-flows)\nIn the Flows panel, each flow represents a specific part of the conversation logic or interaction path the bot will follow when handling a conversation or performing a task. Each flow represents a unique interaction pathway, determining how the bot responds to specific user inputs and scenarios. By configuring these flows, you can control the bot's behaviour, ensuring it provides a consistent and user-friendly experience across various situations.\nFlows in the menu\n[](#flows-in-the-menu)\nMain\n[](#main)\nThe \"Main\" flow is the primary conversation flow that your bot follows during standard interactions. It is the default pathway that guides the user through the core functionalities of the bot. This flow should be configured to handle general queries, initial greetings, intent recognition, and primary navigation through the bot's features. Set up the main flow to start when the bot is initiated and guide the user through typical use cases or services provided by the bot.\nError\n[](#error)\nThe \"Error\" flow is triggered when the bot encounters a problem, such as an unrecognized command, invalid input, or a processing failure. Configure this flow to manage unexpected situations gracefully. The bot should inform the user of the error and offer options for recovery, such as retrying the action or redirecting to the main flow. Include helpful error messages and potential solutions to guide the user back to a valid conversation path.\nTimeout\n[](#timeout)\nThe \"Timeout\" flow is activated when there is a prolonged period of inactivity from the user. This flow handles idle sessions by either prompting the user or ending the conversation. Use this flow to re-engage the user after a period of silence or to gracefully conclude the conversation if the user is unresponsive. Set a timeout duration and specify actions such as sending a reminder message, asking if the user needs more help, or automatically closing the session.\nConversation End\n[](#conversation-end)\nThe \"Conversation End\" flow manages how the bot concludes interactions. This includes wrapping up the conversation, providing summaries, or offering follow-up actions. Configure this flow to ensure the conversation ends positively. The bot might thank the user, provide a summary of the conversation, or suggest next steps. Include a polite closing message, potential follow-up options like a survey or re-engagement link, and any necessary final actions.\n---\nManaging flows\n[](#managing-flows)\nYou can manage your bot's flows from this menu. Here's a breakdown of the configuration and management options available to you.\nAdd Workflow\n[](#add-workflow)\nThis adds a new workflow to your bot.\nAdd Folder\n[](#add-folder)\nThis creates a new folder in this menu. You can store flows, tables, and knowledge bases in a folder.\nAdd Knowledge Base\n[](#add-knowledge-base)\nThis creates a new Knowledge Base.\nAdd Table\n[](#add-table)\nThis creates a new Table.\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Flows in the menu](#flows-in-the-menu)  \n         * [Main](#main)  \n         * [Error](#error)  \n         * [Timeout](#timeout)  \n         * [Conversation End](#conversation-end)  \n   * [Managing flows](#managing-flows)  \n         * [Add Workflow](#add-workflow)  \n         * [Add Folder](#add-folder)  \n         * [Add Knowledge Base](#add-knowledge-base)  \n         * [Add Table](#add-table)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nTelegram\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](\n<|end_input|>","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.extract","promptSource":"zai:zai.extract:default"},"model":"fast","signal":{},"stopSequences":["■NO_MORE_ELEMENT■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■json_start■{ "feature": "Webchat", "parent": null, "description": "Webchat interface for Botpress" }■json_end■
■json_start■{ "feature": "AI", "parent": "Webchat", "description": "Artificial Intelligence capabilities within Webchat" }■json_end■
■json_start■{ "feature": "AI Task", "parent": "AI", "description": "Specific AI task functionality" }■json_end■
■json_start■{ "feature": "Integrations", "parent": null, "description": "Integrations with external services" }■json_end■
■json_start■{ "feature": "Asana", "parent": "Integrations", "description": "Asana integration" }■json_end■
■json_start■{ "feature": "Telegram", "parent": "Integrations", "description": "Telegram messaging integration" }■json_end■
■