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|>\nion integration in Botpress\n[](#setting-up-the-notion-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 Notion integration then click on the \"Install to Bot\" button, now go back to your bot settings.\nThe Notion integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Telegram\n* **Webhook URL**: The URL for receiving data in Botpress\n* **Auth Token**: The token for authenticating requests from Notion\nSetting up Notion\n[](#setting-up-notion)\n1. To get the **Auth Token**, visit [My Integrations](https://www.notion.so/my-integrations) in Notion. Initiate a new integration, associate it with a workspace, and note down the `Internal Integration Secret`. Insert this secret in the `Auth Token` field under the **Integrations** tab of your bot.\n![](https://files.readme.io/ba1af96-image.png)\n2. Enable Notion Comment Capabilities under the **Capabilities** tab of your bot.\n![](https://files.readme.io/bc4dec2-image.png)\nThat's it! Now the Notion integration is operational and ready for use within your bot.\n> ## ���\n>\n> Info\n>\n> To execute certain actions, identification of Notion entities like pages or databases is essential. These IDs can be derived from the URL while viewing the entity or by choosing \"Copy Link\" from the options menu. For more details, refer to [Get a Database Id - NotionDevelopers](https://developers.notion.com/docs/create-a-notion-integration#step-3-save-the-database-id) .\nFunctionality\n[](#functionality)\nCards\n[](#cards)\nThe integration offers various actions encapsulated in cards, providing an interactive way to communicate between Botpress and Notion.\nAdd Comment to a Discussion\n[](#add-comment-to-a-discussion)\nAllows the bot to append a comment to an existing discussion in Notion.\n| Input             | Description                                                                                |\n| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- |\n| **Discussion ID** | To get the Discussion ID, look for the d parameter in the URL. The format is notion.so/pageTitle-pageID?d=**DiscussionID**&pvs=4 |\n| **Comment Body**  | The comment body can be a simple text that you want to add as a comment.                                                         |\nAdd Comment to a Page\n[](#add-comment-to-a-page)\nFacilitates adding comments at the page level in Notion.\n| Input            | Description                                                                                |\n| ---------------- | ------------------------------------------------------------------------------------------------------------------- |\n| **Page ID**      | To get the Page ID, go to the page and copy the ID from the URL. The format is often notion.so/pageTitle-**pageID** |\n| **Comment Body** | The comment body can be a simple text that you want to add as a comment.                                            |\nGet a Database\n[](#get-a-database)\nRetrieve details of a specific database to synchronize with `Add Page to a Database` action.\n| Input           | Description                                                                         | Format                   |\n| --------------- | ----------------------------------------------------------------------------------- | ------------------------ |\n| **Database ID** | To retrieve the Database ID, navigate to the database and copy the ID from the URL. | notion.so/**databaseID** |\nAdd Page to a Database\n[](#add-page-to-a-database)\nDesigned to work in combination with `Get a Database` to guide an [AI task](../docs/ai-task) in generating payloads.\n| Input           | Description                                                                         | Format                         |\n| --------------- | ----------------------------------------------------------------------------------- | ------------------------------ |\n| **Database ID** | To retrieve the Database ID, navigate to the database and copy the ID from the URL. | notion.so/**databaseID**       |\n| **Page ID**     | To get the Page ID, go to the page and copy the ID from the URL.                    | notion.so/pageTitle-**pageID** |\nDelete a block\n[](#delete-a-block)\nPermits deletion of entities like pages, blocks, or pages within a database.\n| Input        | Description                                                                                | Format                                       |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |\n| **Block ID** | Blocks also have unique IDs. To find the Block ID, right-click on the block and choose \"Copy Link\". The ID is often at the end of the link. | notion.so/pageTitle-pageID?pvs=4#**BlockID** |\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Prerequisites](#prerequisites)  \n   * [Setting up the Notion integration in Botpress](#setting-up-the-notion-integration-in-botpress)  \n   * [Setting up Notion](#setting-up-notion)  \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)\nSafety\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# Safety\nBotpress provides a robust feature set that ensure AI-driven interactions are safe, controlled, and compliant.\n[ Suggest Edits](/edit/safety)\nOverview\n[](#overview)\nEnsuring the safety of AI-driven interactions is a core priority for our team, and for bot builders. The Botpress platform is designed to empower developers while maintaining strict safety standards, giving you the tools needed to build reliable and controlled AI solutions. This overview covers the key safety aspects of Botpress, including constraint management, data privacy, access control, and mitigation of AI-related risks like hallucinations.\nKey Safety Features\n[](#key-safety-features)\n1. **Policy Agent**: Control AI behavior with predefined rules and constraints to ensure responses align with your organization’s standards. The Policy Agent acts as a gatekeeper, enforcing guardrails and mitigating hallucinations by filtering outputs against customizable policies.\n2. **Access Control & Permissions**: Secure your environment with granular access control. Define roles and permissions to regulate who can view, edit, and deploy AI models, ensuring that only authorized users can make changes.\n3. **Data Privacy & Security**: Botpress prioritizes data security with encryption, anonymization, and secure API connections. Our platform helps you comply with privacy regulations, safeguarding sensitive information across all interactions.\n4. **Monitoring & Analytics**: Gain insights into AI behavior and performance through monitoring and analytics tools. Track usage patterns, detect anomalies, and adjust policies in real time to maintain optimal safety levels.\n5. **Error Mitigation & Recovery**: Implement fallback mechanisms that catch errors or misbehaviors, redirecting interactions to human agents or predefined safe states. This ensures continuity and reliability even when the AI is uncertain or encounters edge cases.\n**Why Safety Matters**\n[](#why-safety-matters)\nBuilding trust in AI systems starts with safety. By implementing robust safety measures, Botpress ensures your AI solutions are not only effective but also secure and compliant with industry standards. Our commitment to safety helps you deploy AI with confidence, knowing that you are in control of every interaction.\nUpdated 27 days ago\n---\n* [Table of Contents](#)\n* * [Overview](#overview)  \n         * [Key Safety Features](#key-safety-features)[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)\nSchemas\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# Schemas\nBlueprint that defines the structure, format, and validation rules for data.\n[ Suggest Edits](/edit/schemas)\nA schema is a blueprint that defines the structure, required fields, data types, and validation rules for a piece of data. In Botpress, schemas are primarily used to ensure that data passed between various components—such as actions, modules, or API requests—meets the expected format and constraints.\nSchemas are useful for:\n* **Data Validation**: Preventing errors by ensuring that data adheres to the expected format.\n* **Consistency**: Enforcing a consistent structure for data across different components.\n* **Error Reduction**: Reducing the likelihood of runtime errors caused by unexpected or malformed data.\n* **Ease of Maintenance**: Making it easier to understand and manage data flow within your Botpress application.\nCreating and Using Schemas\n[](#creating-and-using-schemas)\nJSON Schema Basics\n[](#json-schema-basics)\nBotpress uses JSON Schema, a standard for describing the structure and validation constraints of JSON documents.\nA JSON Schema can define:\n* **Types**: The type of data (e.g., string, number, object, array).\n* **Required Fields**: Fields that must be present in the data.\n* **Enum Values**: Specific allowed values for a field.\n* **Nested Structures**: Complex data structures with multiple levels.\nCreating a schema\n[](#creating-a-schema)\nYou can create a new schema by navigating to the Schema menu in the left-hand menu. You can also create a new schema when adding a new variable through the Variables menu.\nUsing schemas\n[](#using-schemas)\nYou can use schemas instead of selecting a variable type like String or Number. This means that the variable will contain the information in the structure you've defined in your schema.\nFor example, you might use a variable to contain information about your end user. This variable can use a schema to contain information like email, age, name, and home address, all contained in a single variable and structured by your schema.\nTesting Schemas\n[](#testing-schemas)\nHere's a simple demo schema you can create to familiarize yourself with them.\n1. Create a schema for a user object with the following properties:\nJavaScript\n`zui.object({\nname: zui.string(),\nage: zui.number(),\nemail: zui.string().email(),\naddress: zui.object({\nstreet: zui.string(),\ncity: zui.string(),\nzip: zui.string().length(5)\n})\n})\n`\n1. Create a Variable of the user schema type and name it `UserInformation`.\n2. \\[optionally\\] you can use these variables as inputs for workflows, allowing the user to fill in the schema as though it were a form.\nUsage in AI Task\n[](#usage-in-ai-task)\n* Task Instructions:\n`Fetch name, age, email and address from the provided input\n`\n* AI Task Input:\n`Rohan Kokkula, 26, at [[email protected]](/cdn-cgi/l/email-protection), received a mysterious parcel at his doorstep:\n42 Emerald Lane, Mystic Falls, 560078.\nInside, a map beckoned him to a hidden world beneath Mumbai's bustling streets,\nwhere history and magic intertwined.\n`\n* Store result in variables: Select the Variable we created above.\nConditionally Show Inputs - Input trees\n[](#conditionally-show-inputs---input-trees)\nWe'll show you how to use discriminated unions in Zod to conditionally include fields in an object schema. We'll go through two examples:\n1. Changing the type of a variable based on user input.\n2. Conditionally showing an extra setting when an \"Advanced Setting\" toggle is activated.\n![selecting input type text, with no advanced settings](https://files.readme.io/4015772fa59ea2e70290e5c00ed8a78cde7aa3c0d229d5ead1543671f73a90e7-image.png)\nselecting input type text, with no advanced settings\n![selecting input type number, with advanced settings](https://files.readme.io/71423052c8b254a3d97bc8f02b00b488f5996817d0313c862d62548b7a8cc27b-image.png)\nselecting input type number, with advanced settings\nExample 1: Changing the Type of a Variable\n[](#example-1-changing-the-type-of-a-variable)\nIn this example, we'll create a schema that allows a variable (`value`) to be either a string or a number, depending on the user's choice.\nTypeScript\n`z.object({\ninputData: z.discriminatedUnion('inputType', [\nz.object({\ninputType: z.literal('Text'),\n// When inputType is 'Text', value is a string\nvalue: z.string().title('Text Value').placeholder('Enter text')\n}),\nz.object({\ninputType\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 document describes the Notion integration for Botpress, setup steps, capabilities, and Botpress UI elements. It contains no references to animals at all.】:ABSOLUTELY_NOT■

■contains_lua_code:【There is no Lua syntax or code snippets in the text. The only code shown is labeled JavaScript/TypeScript.】:ABSOLUTELY_NOT■

■contains_python_code:【No Python code appears; the only code snippet is JavaScript/TypeScript.】:ABSOLUTELY_NOT■

■contains_js_code:【A code block is explicitly labeled “JavaScript” (e.g., `zui.object({ … })`). This is clear JavaScript/TypeScript code.】:ABSOLUTELY_YES■

■is_botpress:【The entire passage is about Botpress – it discusses Botpress Cloud, Botpress Studio, integrations, APIs, and the Notion integration within Botpress.】:ABSOLUTELY_YES■

■is_rasa:【Rasa is never mentioned; the focus is solely on Botpress.】:ABSOLUTELY_NOT■

■has_flows:【The term “Flows” appears multiple times in navigation headings (e.g., “Flows”, “Studio Interface Flows”).】:ABSOLUTELY_YES■

■has_api:【The text includes a “Botpress APIs” section and mentions “Files API”, “Chat API”, etc.】:ABSOLUTELY_YES■

■has_enterprise:【There is no reference to Botpress Enterprise in the document.】:ABSOLUTELY_NOT■

■has_workspaces:【The setup instructions refer to a “workspace” when configuring Notion, and the navigation includes a “Workspace” menu item.】:ABSOLUTELY_YES■

■has_webchat:【“Webchat” is referenced numerous times in the navigation and documentation sections.】:ABSOLUTELY_YES■

■has_hitl:【The term “HITL” (Human‑in‑the‑Loop) appears in navigation items such as “HITL Agent” and “HITL”.】: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|>\n: z.literal('Number'),\n// When inputType is 'Number', value is a number\nvalue: z.number().title('Numeric Value').placeholder('Enter a number')\n})\n])\n});\n`\nHow It Works\n[](#how-it-works)\n* **`inputType`**: Acts as the discriminator that determines the type of the `value` field.\n* **Discriminated Union**:  \n   * If `inputType` is `\"Text\"`, the schema expects `value` to be a string.  \n   * If `inputType` is `\"Number\"`, the schema expects `value` to be a number.\nThis approach is useful when you want to change the type of a variable based on a user's selection.\nExample 2: Conditionally Showing Extra Settings\n[](#example-2-conditionally-showing-extra-settings)\nThis example demonstrates how to include an extra field when an \"Advanced Setting\" toggle is turned on.\nTypeScript\n`z.object({\n// ... your other inputs\n// Using discriminated union to handle the advanced setting toggle with Yes/No options\nsettings: z.discriminatedUnion('advancedSetting', [\nz.object({\nadvancedSetting: z.literal('No').describe('Advanced setting is disabled'),\n// No extra settings when advancedSetting is \"No\"\n}),\nz.object({\nadvancedSetting: z.literal('Yes').describe('Advanced setting is enabled'),\n// Extra setting when advancedSetting is \"Yes\"\nextraSetting: z.string()\n.title('Extra Setting')\n.placeholder('Enter extra setting')\n.describe('Additional setting enabled when the advanced setting is turned on')\n})\n])\n});\n`\nHow It Works\n[](#how-it-works-1)\n* **`advancedSetting`**: Acts as the discriminator that determines whether to include the `extraSetting` field.\n* **Discriminated Union**:  \n   * If `advancedSetting` is `\"No\"`, the schema does not include `extraSetting`.  \n   * If `advancedSetting` is `\"Yes\"`, the schema requires `extraSetting` to be provided.\nThis pattern is useful when you want to include additional settings only when an \"Advanced Setting\" option is enabled.\nTrying it out\n[](#trying-it-out)\nTrying it out is very easy!\n1. Open Botpress Studio\n2. Create and save the schema with discriminatedUnion fields\n3. Create a variable in a workflow other than main, set its type to the schema's saved name.\n4. Click on the input node for the workflow, then toggle the variable as an input.\n5. Go to another workflow and add a card that points to the one with the schema input.\n6. You'll now be able to able to see your input tree in all it's glory!\nSummary\n[](#summary)\n* **Discriminated Unions** in Zod allow you to conditionally change the shape of an object.\n* They are useful for:\n1. Changing the type of a variable based on user input.\n2. Conditionally including fields based on a toggle or option.\nBy using discriminated unions, you can build dynamic and flexible schemas that adapt based on user selections, making your form validation and UI more intuitive and responsive.\nUpdated 17 days ago\n---\n* [Table of Contents](#)\n* * [Creating and Using Schemas](#creating-and-using-schemas)  \n         * [JSON Schema Basics](#json-schema-basics)  \n         * [Creating a schema](#creating-a-schema)  \n         * [Using schemas](#using-schemas)  \n   * [Testing Schemas](#testing-schemas)  \n         * [Usage in AI Task](#usage-in-ai-task)  \n   * [Conditionally Show Inputs - Input trees](#conditionally-show-inputs---input-trees)[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)\nLine\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# Line\n[ Suggest Edits](/edit/line)\n![](https://files.readme.io/b9e5817-image.png)\nPrerequisites\n[](#prerequisites)\n* A channel created on the [LINE Developers Console](https://developers.line.biz/).\n* The same channel added to your LINE official account\nSetting up the LINE integration in Botpress\n[](#setting-up-the-line-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 LINE integration then click on the \"Install to Bot\" button, now go back to your bot settings.\nThe LINE integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with LINE\n* **Webhook URL**: The URL for receiving data in Botpress\n* **Channel Access Token**: The token used to authenticate the channel\n* **Channel Secret**: The secret used to verify the signature between LINE and Botpress\nSetting up Line\n[](#setting-up-line)\nChannel Access Token\n[](#channel-access-token)\nTo get this token, open the **Messaging API** tab in your channel settings in LINE, scroll to the bottom to the **Channel Access Token** section, and then generate a new one or copy it if the Channel access token was already issued, then paste it in Botpress.\nFor Long-Lived Channel Access Token: read this [LINE documentation](https://developers.line.biz/en/docs/messaging-api/channel-access-tokens/#long-lived-channel-access-tokens).\nChannel Secret\n[](#channel-secret)\nThe **Channel Secret** is used to [verify the signature](https://developers.line.biz/en/docs/messaging-api/receiving-messages/#verifying-signatures) between LINE and Botpress.\nTo get the secret, open the **Basic settings** tab in your channel configuration in LINE, scroll to the bottom to the **Channel Secret** section, and then copy the secret.\nFinalizing Channel Configuration\n[](#finalizing-channel-configuration)\nThe next step is to **Enable** the channel from the top of the screen and copy the webhook URL from the button below the webhook URL. Then click **Save**.\nNow, we proceed to the last step by [setting your webhook URL](https://developers.line.biz/en/docs/messaging-api/building-bot/#setting-webhook-url) in LINE.\nThat's it, you may now start chatting with your bot on LINE!\nContent Types Mapping\n[](#content-types-mapping)\nFrom Botpress to LINE\n[](#from-botpress-to-line)\n* **Text** is mapped to [Text Object](https://developers.line.biz/en/docs/messaging-api/message-types/#text-messages)\n* Text with **Markdown** is mapped to [Text Object](https://developers.line.biz/en/docs/messaging-api/message-types/#text-messages)\n* **Image** is mapped to [Image Object](https://developers.line.biz/en/docs/messaging-api/message-types/#image-messages)\n* **Audio** is mapped to [Audio Object](https://developers.line.biz/en/docs/messaging-api/message-types/#audio-messages)\n* **Video** is mapped to [Video Object](https://developers.line.biz/en/docs/messaging-api/message-types/#video-messages)\n* **File** is **NOT** supported in LINE [Message Types](https://developers.line.biz/en/docs/messaging-api/message-types/)\n* **Location** is mapped to [Location Object](https://developers.line.biz/en/docs/messaging-api/message-types/#location-messages)\n* **Carousel** is mapped to [Flex Object](https://developers.line.biz/en/docs/messaging-api/message-types/#flex-messages)\n* **Card** is mapped to [Flex Object](https://developers.line.biz/en/docs/messaging-api/message-types/#flex-messages)\n* **Dropdown** is mapped to [Flex Object](https://developers.line.biz/en/docs/messaging-api/message-types/#flex-messages)\n* **Choice** is mapped to [Flex Object](https://developers.line.biz/en/docs/messaging-api/message-types/#flex-messages)\nFrom LINE to Botpress\n[](#from-line-to-botpress)\n* **Text** is mapped to **Text Object**\n* The rest of the types are not currently processed by Botpress\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Prerequisites](#prerequisites)  \n   * [Setting up the LINE integration in Botpress](#setting-up-the-line-integration-in-botpress)  \n   * [Setting up Line](#setting-up-line)  \n         * [Channel Access Token](#channel-access-token)  \n         * [Channel Secret](#channel-secret)  \n   * [Finalizing Channel Configuration](#finalizing-channel-configuration)  \n   * [Content Types Mapping](#content-types-mapping)  \n         * [From Botpress to LINE](#from-botpress-to-line)  \n         * [From LINE to Botpress](#from-line-to-botpress)[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)\nMessenger\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# Messenger\n[ Suggest Edits](/edit/messenger)\n![](https://files.readme.io/281dbea-image.png)\nPrerequisites\n[](#prerequisites)\n* A [Meta developer app](https://developers.facebook.com/apps/create/) that will serve as the primary platform for managing connection between Messenger and Botpress, including the configuration of webhooks and access tokens.\n* A [Facebook page](https://www.facebook.com/pages/create/) that you own or has the developer role, this is needed to use the Messenger API.\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 Messenger integration in Botpress\n[](#setting-up-the-messenger-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 Messenger integration then click on the \"Install to Bot\" button, now go back to your bot settings.\nThe Messenger integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Messenger\n* **Webhook URL**: The URL for receiving data in Botpress\n* **App Id**: The id of your Meta App\n* **App Secret**: The secret of your Meta App\n* **Verify Token**: The token used to verify the webhook requests\n* **Page Id**: The id of your Facebook page\n* **Access Token**: The access token used to send messages to the Messenger API\nSetting up Messenger\n[](#setting-up-messenger)\nCreate a Facebook Page\n[](#create-a-facebook-page)\nIf you do not already have a Facebook page you will need to create one. You can find details on how to create a new Facebook page [here](https://www.facebook.com/pages/create/). To link your chatbot to a pre-existing page, you must have an administrator or developer role.\nMessenger API version\n[](#messenger-api-version)\nBotpress can only interact with the version 15.0 or higher of the Messenger API. It is not the default version in the app settings so it must be changed.\n1. Go to your Meta app start page\n2. In the left sidebar, expand the **Settings** menu and select **Advanced**\n3. In the **Upgrade API version** section, select v15.0 or higher as the API version\n4. Click on **Save changes**\nAdd Messenger Product\n[](#add-messenger-product)\nMessenger is not added by default in your Meta app, so it must be added manually\n1. In the left sidebar, click on **Add Product**\n2. In the Facebook Messenger section click **Set Up**\nApp Id and Secret\n[](#app-id-and-secret)\n1. In the left sidebar, expand the **Settings** menu and select **Basic**. Here you can find the App ID and App Secret\n2. Click on the **Show** button in the **App Secret** text box. Copy the App Id and\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 discusses Botpress, schema definitions, integrations, and documentation. There is no reference to animals at all.】:ABSOLUTELY_NOT■
■contains_lua_code:【The code snippets are TypeScript/Zod schemas; no Lua syntax or keywords appear.】:ABSOLUTELY_NOT■
■contains_python_code:【No Python code is present; only TypeScript and documentation text.】:ABSOLUTELY_NOT■
■contains_js_code:【The snippets are TypeScript, not JavaScript, and there is no JavaScript code in the document.】:ABSOLUTELY_NOT■
■is_botpress:【The document repeatedly mentions “Botpress”, “Botpress Studio”, “Botpress APIs”, and other Botpress‑specific sections, clearly indicating it is about Botpress.】:ABSOLUTELY_YES■
■is_rasa:【There is no mention of Rasa anywhere in the text.】:ABSOLUTELY_NOT■
■has_flows:【The navigation includes a link “Flows” and the body talks about workflows and input nodes, indicating flows are mentioned.】:ABSOLUTELY_YES■
■has_api:【Sections titled “Botpress APIs”, “Files API”, “Chat API” are explicitly listed, so the API is mentioned.】:ABSOLUTELY_YES■
■has_enterprise:【The term “Enterprise” does not appear in the entire document.】:ABSOLUTELY_NOT■
■has_workspaces:【The document contains a “Workspace” navigation item and discusses workspace settings, thus workspaces are mentioned.】:ABSOLUTELY_YES■
■has_webchat:【Multiple references to “Webchat”, “Webchat v1”, “Webchat v2”, and related documentation are present.】:ABSOLUTELY_YES■
■has_hitl:【The text mentions “HITL” in several places (e.g., “HITL Agent”, “HITL integration”).】:ABSOLUTELY_YES■