Input: {"body":{"messages":[{"content":"You need to tag the input with the following labels based on the question asked:\nABSOLUTELY_NOT: You are absolutely sure that the answer is \"NO\" to the question.\nPROBABLY_NOT: You are leaning towards \"NO\" to the question.\nAMBIGUOUS: You are unsure about the answer to the question.\nPROBABLY_YES: You are leaning towards \"YES\" to the question.\nABSOLUTELY_YES: You are absolutely sure that the answer is \"YES\" to the question.\n\nYou need to return a mapping of the labels, an explanation and the answer for each label following the format below:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nundefined\n\n===\nYou should consider the Expert Examples below to help you make your decision.\nIn your \"Analysis\", please refer to the Expert Examples # to justify your decision.","role":"system"},{"content":"Input to tag:\n<|start_input|>\n](/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](/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# Telegram\n[ Suggest Edits](/edit/telegram)\n![](https://files.readme.io/f0b7533-image.png)\nPrerequisites\n[](#prerequisites)\n* A Telegram account and a Telegram bot\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 Bot\n[](#create-a-bot)\nTo create a bot on Telegram, use Telegram's BotFather. The BotFather will ask you for a name and username, then generate an authorization token for your new bot\nThe name of your bot is displayed in contact details and elsewhere\nThe Username is a short name to be used in mentions and t.me links. Usernames are 5-32 characters long and are case insensitive but may only include Latin characters, numbers, and underscores. Your bot's username must end in `bot`, such as `tetris_bot` or `TetrisBot`\nSetting up the Telegram integration in Botpress\n[](#setting-up-the-telegram-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 Telegram integration then click on the \"Install to Bot\" button, now go back to your bot settings.\nThe Telegram integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Telegram\n* **Webhook URL**: The URL for receiving data in Botpress\n* **Bot Token**: The token of your Telegram bot\nSetting up Telegram\n[](#setting-up-telegram)\nGenerate an Authorization Token\n[](#generate-an-authorization-token)\nWhen you create a Telegram bot, BotFather will automatically generate a token. The token is a string that is required to authorize the bot and send requests to the Bot API. Keep your token secure and store it safely; anyone can use it to control your bot\nIf your existing token is compromised or you lost it for some reason, use the `/token` command to generate a new one\nBot Token\n[](#bot-token)\nCopy your Telegram bot token and paste it into the **Bot Token** channel configuration and click **Save**.\nThat's it, you may now start chatting with your bot on Telegram!\nTips\n[](#tips)\n* To get the Telegram conversation ID, you can read the following variable:\n`{{ event.tags.conversation[\"telegram:id\"] }}`.\n* To get the Telegram user ID, you can read the following variable:\n`{{ event.tags.user[\"telegram:id\"] }}`.\n* To get the Telegram message ID, you can read the following variable:\n`{{ event.tags.message[\"telegram:id\"] }}`.\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Prerequisites](#prerequisites)  \n         * [Create a Bot](#create-a-bot)  \n   * [Setting up the Telegram integration in Botpress](#setting-up-the-telegram-integration-in-botpress)  \n   * [Setting up Telegram](#setting-up-telegram)  \n         * [Generate an Authorization Token](#generate-an-authorization-token)  \n         * [Bot Token](#bot-token)  \n   * [Tips](#tips)[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)\nTwilio\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# Twilio\n[ Suggest Edits](/edit/twilio)\n![](https://files.readme.io/44272e9-image.png)\nPrerequisites\n[](#prerequisites)\n* A [Twilio](https://www.twilio.com/) account\n* A Twilio phone number. Check out [this article](https://support.twilio.com/hc/en-us/articles/223135247-How-to-Search-for-and-Buy-a-Twilio-Phone-Number-from-Console) to learn how to get one.\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 Twilio integration in Botpress\n[](#setting-up-the-twilio-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 Twilio integration then click on the \"Install to Bot\" button, now go back to your bot.\nThe Twilio integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Twilio\n* **Webhook URL**: The URL for receiving data in Botpress\n* **Account SID**: Your Twilio Account SID\n* **Auth Token**: Your Twilio Auth Token\nSetting up Twilio\n[](#setting-up-twilio)\nAccount SID and Auth Token\n[](#account-sid-and-auth-token)\n1. Go to you Twilio [console dashboard](https://console.twilio.com/?frameUrl=/console)\n2. Scroll down and copy your Account SID and Auth Token from the **Project Info** section and paste them in the **Account SID** and **Auth Token** channel configurations\nSave Configuration\n[](#save-configuration)\nChannel configuration is complete, you can now click **Save**\nWebhook Configuration\n[](#webhook-configuration)\nTo receive messages from Twilio, you will need to setup a webhook\n1. Click on **Explore Products** in the left pannel\n2. Click on **Messaging**\n3. Click on **Services** in the left pannel\n4. Click on your service (if you haven't already created your service, create a messaging service and add your phone as a sender)\n5. Click on **Sender Pool** in the left pannel\n6. Click on your phone number\n7. Scroll down the phone number settings page\n8. Copy paste the webhook url provided in the channel configuration UI to the **A Message Comes In** field\nThat's it! Now the Twilio integration is operational and ready for use within your bot.\nUpdated 3 months ago\n---\n* [Table of Contents](#\n<|end_input|>\n\nAnswer with this following format:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nFormat cheatsheet:\n```\n■label:【explanation】:x■\n```\n\nWhere `x` is one of the following: ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES\n\nRemember: In your `explanation`, please refer to the Expert Examples # (and quote them) that are relevant to ground your decision-making process.\nThe Expert Examples are there to help you make your decision. They have been provided by experts in the field and their answers (and reasoning) are considered the ground truth and should be used as a reference to make your decision when applicable.\nFor example, you can say: \"According to Expert Example #1, ...\"","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.label","promptSource":"zai:zai.label:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■is_about_animals:【The text consists entirely of Botpress documentation, integration guides, and interface descriptions with no mention of animals or animal-related content. According to Expert Example #1, a text lacking any animal references should be classified as ABSOLUTELY_NOT.】:ABSOLUTELY_NOT■

■contains_lua_code:【No Lua syntax or code snippets appear in the document; it only contains markdown links and descriptive text. Following Expert Example #2, absence of Lua code leads to an ABSOLUTELY_NOT label.】:ABSOLUTELY_NOT■

■contains_python_code:【Similarly, there is no Python code present—only documentation links and plain text. Expert Example #2 indicates such cases are ABSOLUTELY_NOT.】:ABSOLUTELY_NOT■

■contains_js_code:【The text mentions “Controlling Web Chat using JavaScript” but does not include any actual JavaScript code blocks. Expert Example #3 advises that mere mention without code is not enough for a positive classification, thus PROBABLY_NOT.】:PROBABLY_NOT■

■is_botpress:【The entire content is about Botpress – its docs, features, integrations, APIs, Webchat, flows, etc. Expert Example #4 states that explicit focus on Botpress warrants an ABSOLUTELY_YES classification.】:ABSOLUTELY_YES■

■is_rasa:【There is no reference to Rasa anywhere in the text. According to Expert Example #1, lack of any Rasa mention results in ABSOLUTELY_NOT.】:ABSOLUTELY_NOT■

■has_flows:【Multiple sections discuss “Flows”, “Managing flows”, and a “Flows panel”. Expert Example #5 indicates that such explicit mentions merit ABSOLUTELY_YES.】:ABSOLUTELY_YES■

■has_api:【The document lists “Botpress APIs”, “Files API”, and “Chat API”. Per Expert Example #5, presence of API references leads to ABSOLUTELY_YES.】:ABSOLUTELY_YES■

■has_enterprise:【The term “Enterprise” does not appear; only general Botpress features are discussed. Expert Example #6 suggests that without a clear mention, the correct label is PROBABLY_NOT.】:PROBABLY_NOT■

■has_workspaces:【Sections such as “Workspace”, “Your integrations”, and dashboard items reference workspaces explicitly. According to Expert Example #5, this qualifies as ABSOLUTELY_YES.】:ABSOLUTELY_YES■

■has_webchat:【The word “Webchat” appears numerous times throughout the text, including dedicated sections. Expert Example #5 confirms this as ABSOLUTELY_YES.】:ABSOLUTELY_YES■

■has_hitl:【“HITL” (Human In The Loop) is mentioned several times in integrations and agent listings. Expert Example #5 dictates an ABSOLUTELY_YES label.】:ABSOLUTELY_YES■


Input: {"body":{"messages":[{"content":"You need to tag the input with the following labels based on the question asked:\nABSOLUTELY_NOT: You are absolutely sure that the answer is \"NO\" to the question.\nPROBABLY_NOT: You are leaning towards \"NO\" to the question.\nAMBIGUOUS: You are unsure about the answer to the question.\nPROBABLY_YES: You are leaning towards \"YES\" to the question.\nABSOLUTELY_YES: You are absolutely sure that the answer is \"YES\" to the question.\n\nYou need to return a mapping of the labels, an explanation and the answer for each label following the format below:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nundefined\n\n===\nYou should consider the Expert Examples below to help you make your decision.\nIn your \"Analysis\", please refer to the Expert Examples # to justify your decision.","role":"system"},{"content":"Input to tag:\n<|start_input|>\ned/create-and-publish-your-chatbot/)\nInstalling the integration\n[](#installing-the-integration)\n1. Navigate to the [Integration Hub](https://app.botpress.cloud/hub) in Botpress Cloud\n2. Install the WhatsApp integration\n3. Click \"Enable Integration\" and then \"Save Configuration\"\n4. Click \"Sign in to link your account\"\n5. Follow the steps of the wizard to connect your bot to WhatsApp\nContent Type Mapping\n[](#content-type-mapping)\nFrom Botpress to WhatsApp\n[](#from-botpress-to-whatsapp)\n* Text is mapped to [Text Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#text-object)\n* Text with Markdown is mapped to [Text Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#text-object)\n* Image is mapped to [Media Image Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#media-object)\n* Audio is mapped to [Media Audio Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#media-object)\n* Video is mapped to [Media Video Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#media-object)\n* File is mapped to [Media File Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#media-object)\n* Location is mapped to [Location Object](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#location-object)\nSpecial behaviors to consider\n[](#special-behaviors-to-consider)\nChoices (buttons), dropdowns, cards, and carousels are all mapped to [Interactive List Objects.](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#interactive-object)\nThis comes with a few restrictions and behaviors specific to WhatsApp:\nChoices (buttons) and Dropdowns\n[](#choices-buttons-and-dropdowns)\n* When there are 3 or fewer choices as buttons or in a dropdown, they will be rendered as buttons.\n* When there are more than 3 choices as buttons or in a dropdown, they will be rendered as a dropdown.\n* If there are more than 10 choices in a dropdown, the multiple dropdown messages will be sent with up to 10 choices in each messsage.  \n   * For example, if your bot has a dropdown with 10 choices, the user will receive two messages: the first message will have a dropdown with 10 choices, and the second messge will have a dropdown with two choices.\n* Each dropdown requires a label but the Studio currently doesn’t support specifying one, so the label _“Choose…”_ is used for all dropdowns by default.\n* Button labels are limited to 20 characters, and dropdown labels are limited to 24 characters.  \n   * Labels exceeding these limits are automatically truncated. For example, the label \"This button label is very long\" would become \"This button label i…\" on a button and \"This button label is ve…\" on a dropdown.\nCards and Carousels\n[](#cards-and-carousels)\n* WhatsApp only supports one link (label and URL) on a card, so multiple links will be split into separate empty cards.\n* WhatsApp imposes a limit of 3 \"reply\" action buttons on a card, so if a card has more than these, the buttons will be split into multiple cards.\n* WhatsApp doesn't natively support carousels, so each card in a carousel will be sent individually.\nFiles\n[](#files)\n* When files are sent over Whatsapp, the Studio doesn't store the original filename (for security reasons) but only the file extension, so the file will be sent with a generic filename (\"file\") followed by the extension of the file. For example, if you send a PNG file, it will be sent as \"file.png\".\nFrom WhatsApp to Botpress\n[](#from-whatsapp-to-botpress)\nText\n[](#text)\nText messages are directly mapped to Botpress text messages, and readable through `event.preview`.\nLocation\n[](#location)\nUse a “Wait for User Input” card on your bot, check that `event.type` equals `\"location\"`, and then read `event.payload` which will contain the following properties:\n* `latitude`\n* `longitude`\n* `address` (not always provided)\n* `title` (not always provided)\nMedia (images, audio, documents)\n[](#media-images-audio-documents)\nUse a “Wait for User Input” card on your bot, check that `event.type` equals `\"image\"`, `\"audio\"` or `\"document\"`, and then read `event.payload` which will have the following structure depending on the event type:\n* For an image: `{\"imageUrl\": \"https://lookaside.fbsbx.com/....\"}`\n* For audio: `{\"audioUrl\": \"https://lookaside.fbsbx.com/....\"}`\n* For a document: `{\"documentUrl\": \"https://lookaside.fbsbx.com/....\", \"filename\": \"the-filename.pdf\"}`\nThen, you can retrieve the raw file content from WhatsApp by making a `GET` HTTP request to the URL provided in the payload while passing your WhatsApp access token as a `Bearer` token in the `Authorization` HTTP header.\nFor example:\nJavaScript\n`` /* INSTRUCTIONS:\n1. Create a Configuration Variable named \"WHATSAPP_ACCESS_TOKEN\" in the Bot Settings section of Botpress Studio.\n2. Go to the \"Configuration Variables\" section of your bot in Botpress Cloud and set its value to your WhatsApp access token.\n*/\nconst whatsappAccessToken = env.WHATSAPP_ACCESS_TOKEN\nconst res = await axios.get(event.payload.imageUrl, {\nheaders: {\nAuthorization: `Bearer ${whatsappAccessToken}`,\n},\n})\n// This will be a JavaScript Buffer (https://nodejs.org/api/buffer.html) containing the raw binary content of the media file.\nconst rawFileContent = res.data\n// This will indicate the file type, see:\n// https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media/#supported-media-types\nconst mimeType = res.headers['content-type']\n``\nFor further information, please check the [WhatsApp documentation](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media/#download-media) on downloading media files and the [Botpress documentation](../docs/configuration-variables) on using Configuration Variables.\nOther message types\n[](#other-message-types)\n* Buttons and interactive replies from a list or button are mapped to a plain text response from the user, so you can use `event.preview` to get the value.\n* Botpress does not currently support other Whatsapp message types.\nTips\n[](#tips)\n* To get the phone number of the user you can read the following variable:\n`{{ event.tags.conversation['whatsapp:userPhone'] }}`.\nThis number also contains the country code and has no spaces, dashes or signs.\n* To get the Whatsapp Phone Number ID of your bot that the user is interacting with _(useful when pointing multiple Phone Number IDs to the same bot)_:\n`{{ event.tags.conversation['whatsapp:phoneNumberId'] }}`\nExample:\n[](#example)\n* \\[Text card\\]: `Where are you? Please use Whatsapp's \"Send Location\" feature.`\n* \\[Wait for Message card\\]\n* \\[Text card\\]: `Thank you! You are located at {{event.payload.title}}, {{event.payload.address}} with longitude {{event.payload.longitude}} and latitude {{event.payload.latitude}}.`\nStarting a Conversation Proactively\n[](#starting-a-conversation-proactively)\nAs required by WhatsApp, a conversation with a user can be proactively initiated only by using [Message Templates](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/), which need to be created in your [WhatsApp Manager](https://business.facebook.com/wa/manage/message-templates/) dashboard first and then reviewed and approved by WhatsApp in order to use them.\nOnce you have a message template approved by WhatsApp, it's very easy to have your bot start a conversation with a user by just using the Whatsapp \"**Start Conversation**\" card:\n![](https://files.readme.io/f7109ed-image.png)\nThen you just need to pass the following fields to proactively start a Whatsapp conversation with a user:\n1. **User Phone**: The phone number of the user, including the country code (e.g. `+1 123 456 7890`).\n2. **Template Name**: The name of your WhatsApp message template to use for the first message of the conversation. The template should be already approved by WhatsApp in order to use it.\n3. **Template Language** _(optional)_: The language code of your WhatsApp message template ([see below](../docs/whatsapp#template-language) for more details).\n4. **Template Variables JSON** _(optional)_: The values of the variables for your WhatsApp message template, specified as a JSON array representing the list of values ([see below](../docs/whatsapp#template-variables) for more details).\n5. **Sender Phone Number ID** _(optional)_: The Whatsapp Phone Number ID you want to use as sender of the message if you have multiple phone numbers available in your Meta Developers dashboard. If you don't specify this field, the Default Phone Number ID specified in the Whatsapp configuration of your bot in your Botpress Cloud dashboard will be used by default.\n![](https://files.readme.io/5f52ceb-image.png)\nOnce the conversation is created, if the user replies back it will be processed by your bot as a normal incoming message, so nothing else needs to be done.\nTemplate Language\n[](#template-language)\nIf the language you selected for your template in the Whatsapp Manager dashboard has a country qualifier, then the value for \"Template Language\" needs to be specified in the `language_COUNTRY` format where `language` is the 2-letter lowercase [ISO code for the language](https://en.wikipedia.org/wiki/List%5Fof%5FISO%5F639-1%5Fcodes), and `COUNTRY` is the 2-letter uppercase [ISO code for the country](https://en.wikipedia.org/wiki/ISO%5F3166-1%5Falpha-2). On the other hand, if the language in Whatsapp Manager doesn't specify a country then you can enter just the 2-letter lowercase ISO code for the language.\nFor example:\n* If you selected the \"English (US)\" option for the language of your Message Template in Whatsapp Manager, then the value you need to enter for \"Template Language\" in Botpress is `en_US`.\n* If you selected the \"English (UK)\" option, then the value you need to enter is `en_GB`.\n* If you selected the \"French\" option, which doesn't have a country qualifier, then the value you need to enter is just `fr`.\nTemplate Variables\n[](#template-variables)\nTemplate variables need to be passed as a JSON array of string or numeric values representing the list of variable values, as Whatsapp only allows referring to them by their position in your message template (e.g. `{{1}}` for the first variable, `{{2}}` for the second variable, and so on).\nFor example, if your Message Template expects a first variable (_referred to as `{{1}}` in the template_) with the person's first name and then a second variable (_`{{2}}` in the template_) with an account number, then you would pass the following JSON array as the value for the \"Template Variables\" field:\nJSON\n`[\"John\", \"12345\"]\n`\nAccessing the Botpress Conversation ID\n[](#accessing-the-botpress-conversation-id)\nIf you need to access the ID of the conversation created in Botpress Cloud by this action, you can choose to store the output value of this action in a variable. The output value of this action will be an object with the following structure:\nJavaScript\n`{\nconversationId: 'ffa09762-6c37-4ebd-a82f-307048929c97'\n}\n`\nSo for example, if you choose to store the output value of this action in a variable named `bpWhatsappAction`, you can use `{{ workflow.bpWhatsappAction.conversationId }}` in input fields of the Studio (where supported) to insert the conversation ID, or use `workflow.bpWhatsappAction.conversationId` to access it in code.\nCreating the conversation using the Botpress Client\n[](#creating-the-conversation-using-the-botpress-client)\nNote: This only works for bots created from code only.\nIf you're building a bot as code (instead of using Botpress Studio), you can use the Botpress Client instance provided to your bot's handlers to call this action programmatically as shown in the following example:\nts\n`` const result = await client.callAction({\ntype: 'whatsapp:startConversation',\ninput: {\nuserPhone: '+1 123 456 7890', // The full phone number of the Whatsapp user you want to initiate the conversation with.\ntemplateName: 'test_message', // This is the name (identifier) of your WhatsApp message template.\ntemplateLanguage: 'en_US', // Optional (defaults to `en_US`)\ntemplateVariablesJson: JSON.stringify(['John', '12345']), // Optional (only needed if your message template uses variables)\n},\n})\nconsole.log('Botpress conversation ID: ' + result.conversationId)\n``\nUpdated about 2 months ago\n---\n* [Table of Contents](#)\n* * [Setup](#setup)  \n         * [Prerequisites](#prerequisites)  \n         * [Installing the integration](#installing-the-integration)  \n   * [Content Type Mapping](#content-type-mapping)  \n         * [From Botpress to WhatsApp](#from-botpress-to-whatsapp)  \n         * [Special behaviors to consider](#special-behaviors-to-consider)  \n         * [From WhatsApp to Botpress](#from-whatsapp-to-botpress)  \n         * [Other message types](#other-message-types)  \n   * [Tips](#tips)  \n         * [Example:](#example)  \n   * [Starting a Conversation Proactively](#starting-a-conversation-proactively)  \n         * [Template Language](#template-language)  \n         * [Template Variables](#template-variables)  \n         * [Creating the conversation using the Botpress Client](#creating-the-conversation-using-the-botpress-client)[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)\nWebhook\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# Webhook\n[ Suggest Edits](/edit/webhook)\n![](https://files.readme.io/b75503d-image.png)\nWebhooks provide a powerful way to integrate Botpress with other services. This guide will walk you through how to set up a webhook in Botpress to allow your bot to receive external updates in real-time.\nPrerequisites\n[](#prerequisites)\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 Webhook integration in Botpress\n[](#setting-up-the-webhook-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 Webhook integration then click on the \"Install to Bot\" button, now go back to your bot.\nThe Webhook integration will have the following settings:\n* **Enabled**: Whether Botpress will communicate with the Webhook.\n* **Webhook URL**: The URL that you will use to send data to your bot.\n* **Secret**: A secret password that you can use to secure your webhook. It can be any string you want, but make it random and hard to guess.\nThat's it! Now the Webhook integration is operational and ready for use within your bot.\nSending data to your Webhook from Javascript\n[](#sending-data-to-your-webhook-from-javascript)\nYou can make requests to your webhook from any environment that supports HTTP requests, such as a Node.js app, a React app, a Javascript script running in the browser, a Zapier zap, a curl script, etc.\nThis code example uses the Axios library to make a POST request to the Webhook URL, in a simulated Node.js app.\nJavaScript\n`` import axios from 'axios'\nconst webhookUrl = 'https://your-webhook.url'\nconst data = {\narticle: {\nid: '123',\ncontent: 'Hello Webhooks!',\n},\ncategory: 'Business',\n}\nconst headers = {\n'Content-Type': 'application/json',\n// this is optional\n// `x-bp-secret`: 'your-secret'\n}\nawait axios.post(webhookUrl, data, header)\n// You should get a 200 OK response\n// Webhooks don't return any data in the response body\n``\nSending data to your Webhook from a HTTP client (for testing)\n[](#sending-data-to-your-webhook-from-a-http-client-for-testing)\n1. Open a HTTP client like Postman or Insomnia and create a new request\n2. Set the request type to `POST`\n3. Set the URL to the Webhook URL you got from the integration page in the Botpress Dashboard.\n4. Set the `Content-Type` header to `application/json`\n5. (Optional) Set the `x-bp-secret` header to the secret token you set in the Botpress Hub\n6. \\[Example\\] Set the body to the following JSON:\nJSON\n`{\n\"article\": {\n\"id\": \"123\",\n\"content\": \"Hello Webhooks!\"\n},\n\"category\": \"Business\"\n}\n`\n1. Send the request and you should see a `200 OK` success response.\nUsing the Webhook Event data in your bot\n[](#using-the-webhook-event-data-in-your-bot)\n1. Go to the Botpress Studio and right-click the editor to add a Trigger node, that triggers on `Webhook Event`.\n* This is where the conversation will start when the webhook received data, instead of following the regular path of beginning with the `Start` node.\n2. Connect the Trigger node to the rest of you conversation.\n3. Click on `Discover Events` button to see the events that were received. You can choose an event and save it as an example to trigger the conversation for testing.\n4. You can access the data from the request using the `event.payload` variable.\nWebhook Event Payload\n[](#webhook-event-payload)\nWebhook requests make available four properties that you can read in your bot:\n* `event.payload.body`: The body of the request - it is usually a JSON object\n* `event.payload.query`: A JSON object containing the URL params of the request  \n   * For example if you make a request to `https://your-webhook.url/?param1=hello&param2=world` the query object will look like this: `{ param1: 'hello', param2: 'world' }`  \n   * Then you can access the params using this notation: `event.payload.query.param1`\n* `event.payload.method`: The HTTP method of the request - usually `POST`\n* `event.payload.path`: The path of the request - usually `/`\nAdditional Information\n[](#additional-information)\n* You can create filters to manage when the trigger will be actually activated and also create alternative flows by using Expressions that consider the request data.\n* For example, you can add a filter that checks if the request path is new-comment (`event.payload.path === '/new-comment'`), in which case the conversation will only start if the request is made to this url - `https://your-webhook.url/new-comment`\n* You could also add Expression cards that transition to different nodes or workflows based on the data. For example, the `event.payload.body.category === 'Business'` condition could transition to a different flow that handles business articles.\n> ## ���\n>\n> Note\n>\n> Remember that the contents of the `event.payload` property received via Webhook will be replaced as soon as the bot or the user sends a new message. So you should save important information in workflow variables if you want to use it later in the conversation.\n* You can also add `/user` or any other path to the WebhookURL to record events specific to this URL.\n* You can then add a filter to the Webhook Event to only receive events from this URL.  \n   * For example, if you want to receive only the events that have a `type` equal to `text` and a `user.id` equal to `user-id`, you can use the following filter:  \n   * `event.payload.body.type === 'text' && event.payload.body.user.id === 'user-id'`\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Prerequisites](#prerequisites)  \n   * [Setting up the Webhook integration in Botpress](#setting-up-the-webhook-integration-in-botpress)  \n   * [Sending data to your Webhook from Javascript](#sending-data-to-your-webhook-from-javascript)  \n   * [Sending data to your Webhook from a HTTP client (for testing)](#sending-data-to-your-webhook-from-a-http-client-for-testing)  \n   * [Using the Webhook Event data in your bot](#using-the-webhook-event-data-in-your-bot)  \n   * [Webhook Event Payload](#webhook-event-payload)  \n   * [Additional Information](#additional-information)[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)\nWebchat\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](/\n<|end_input|>\n\nAnswer with this following format:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nFormat cheatsheet:\n```\n■label:【explanation】:x■\n```\n\nWhere `x` is one of the following: ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES\n\nRemember: In your `explanation`, please refer to the Expert Examples # (and quote them) that are relevant to ground your decision-making process.\nThe Expert Examples are there to help you make your decision. They have been provided by experts in the field and their answers (and reasoning) are considered the ground truth and should be used as a reference to make your decision when applicable.\nFor example, you can say: \"According to Expert Example #1, ...\"","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.label","promptSource":"zai:zai.label:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■is_about_animals:【The text describes Botpress WhatsApp integration, webhook setup, and related documentation. No mention of animals or animal-related content.】:ABSOLUTELY_NOT■

■contains_lua_code:【The document includes JavaScript, TypeScript, and JSON snippets, but there is no Lua syntax or code blocks.】:ABSOLUTELY_NOT■

■contains_python_code:【Only JavaScript/TypeScript and JSON examples are present; there is no Python code shown.】:ABSOLUTELY_NOT■

■contains_js_code:【Several JavaScript code blocks are included, e.g., “const whatsappAccessToken = env.WHATSAPP_ACCESS_TOKEN …”. This clearly demonstrates JavaScript code.】:ABSOLUTELY_YES■

■is_botpress:【The entire content is Botpress documentation (WhatsApp integration, webhook integration, Botpress Studio, Botpress Client, etc.). It is unequivocally about Botpress.】:ABSOLUTELY_YES■

■is_rasa:【There is no reference to Rasa anywhere in the text.】:ABSOLUTELY_NOT■

■has_flows:【The text mentions “flows” multiple times (e.g., “create alternative flows”, “Studio Interface Flows”, navigation links to “Flows”). This confirms the presence of the term.】:ABSOLUTELY_YES■

■has_api:【References to “Botpress APIs” (Files API, Chat API) and “Botpress Client” indicate discussion of Botpress API usage.】:ABSOLUTELY_YES■

■has_enterprise:【The term “Enterprise” does not appear in the document.】:ABSOLUTELY_NOT■

■has_workspaces:【The navigation includes a “Workspace” section and references to workspace‑related pages, indicating the term is mentioned.】:ABSOLUTELY_YES■

■has_webchat:【Multiple mentions of “Webchat” (Webchat integration, Webchat v1/v2, Webchat documentation) are present.】:ABSOLUTELY_YES■

■has_hitl:【The documentation lists “HITL Agent” and includes “Connect a live agent platform with Botpress”, indicating HITL is referenced.】:PROBABLY_YES■