Input: {"body":{"messages":[{"content":"Extract the following information from the input:\n{ \n/** The name of the feature */\nfeature?: string\n; \n/** The parent feature */\nparent?: string | null\n; \n/** The description of the feature */\ndescription?: string\n }\n====\n\n• Extract all things that looks like a Botpress feature in the provided input. You must extract a minimum of one element.\n• You may have multiple elements, or zero elements in the input.\n• You must extract each element separately.\n• Each element must be a JSON object with exactly the format: ■json_start■{ \"feature\": ..., \"parent\": ..., \"description\": ... }■json_end■\n• If there are no elements to extract, respond with ■ZERO_ELEMENTS■.\n• When you are done extracting all elements, type \"■NO_MORE_ELEMENT■\" to finish.\n• For example, if you have zero elements, the output should look like this: ■ZERO_ELEMENTS■■NO_MORE_ELEMENT■\n• For example, if you have two elements, the output should look like this: ■json_start■{ ... }■json_end■■json_start■{ ... }■json_end■■NO_MORE_ELEMENT■\n• You may ignore any fields that are not present in the input. All keys are optional.","role":"system"},{"content":"Here's an example to help you understand the format:\n\n<|start_schema|>\nArray<{ name: string, age: number }>\n<|end_schema|>\n\n<|start_instructions|>\nExtract all people\n<|end_instructions|>\n\n<|start_input|>\nThe story goes as follow.\nOnce upon a time, there was a person named Alice who was 30 years old.\nThen, there was a person named Bob who was 25 years old.\nThe end.\n<|end_input|>","role":"user","type":"text"},{"content":"■json_start■\n{\n  \"name\": \"Alice\",\n  \"age\": 30\n}\n■json_end■\n■json_start■\n{\n  \"name\": \"Bob\",\n  \"age\": 25\n}\n■json_end■■NO_MORE_ELEMENT■","role":"assistant","type":"text"},{"content":"Here's an example to help you understand the format:\n\n<|start_schema|>\n{ \n/** The name of the feature */\nfeature?: string\n; \n/** The parent feature */\nparent?: string | null\n; \n/** The description of the feature */\ndescription?: string\n }\n<|end_schema|>\n\n<|start_instructions|>\nExtract all things that looks like a Botpress feature in the provided input. You must extract a minimum of one element.\n<|end_instructions|>\n\n<|start_input|>\nwebchat)  \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# Use Your Own LLM\nBotpress LLM Interfaces allows you to bring your own LLM for use in your bot.\n[ Suggest Edits](/edit/llm-interfaces)\nThis guide outlines how to integrate your own Large Language Model (LLM) with Botpress, enabling you to manage privacy, security, and have full control over your AI outputs.\nUsing Your Own LLM\n[](#using-your-own-llm)\nWhy Bring Your Own LLM?\n[](#why-bring-your-own-llm)\nBotpress Studio offers an adaptable and powerful platform for building, deploying, and managing AI agents and chatbots. While Botpress provides a suite of pre-integrated language models, you may have specific needs that call for a more customized approach. Bringing your own (LLM) can enhance your solution’s capabilities, allowing you to leverage specialized models tailored to your unique requirements, domain expertise, or compliance needs.\nTailored Performance and Domain Expertise\n[](#tailored-performance-and-domain-expertise)\nIntegrating your LLM into Botpress Studio allows you to use models fine-tuned on industry-specific data, enhancing the relevance and quality of responses. This is particularly valuable for industries like finance, healthcare, legal, or customer service, where general-purpose models may not understand the nuanced terminology or context.\nFull Control Over Model Behavior\n[](#full-control-over-model-behavior)\nBy bringing your own LLM, you gain complete control over the model’s training data, parameters, and behavior. This flexibility enables you to optimize for specific outputs, ensure the language used aligns with your brand voice, and adjust to any special handling requirements.\nEnhanced Privacy and Security\n[](#enhanced-privacy-and-security)\nIn industries with strict data privacy regulations, such as GDPR or HIPAA, maintaining control over your LLM can help ensure compliance. With your own LLM, you have greater control over data handling, access, and storage, minimizing risks associated with third-party models and data leaks.\nCost Efficiency and Scalability\n[](#cost-efficiency-and-scalability)\nDepending on your scale and use case, managing your LLM can lead to significant cost savings. By optimizing your model’s architecture and usage, you can better control computational costs and resource allocation, particularly when compared to the potentially high API costs of third-party services.\nIntegration with Existing AI Pipelines\n[](#integration-with-existing-ai-pipelines)\nFor organizations already investing in AI infrastructure, integrating their own LLM with Botpress Studio can seamlessly extend their current pipelines. This approach reduces redundancy, leverages existing models and datasets, and aligns with in-house development workflows.\nExperimentation and Customization\n[](#experimentation-and-customization)\nBringing your own LLM provides the freedom to experiment with new architectures, training techniques, and optimization strategies. This freedom is essential for innovation, allowing you to test what works best for your specific application without being limited by the constraints of externally managed models.\nPerformance Optimization and Fine-Tuning\n[](#performance-optimization-and-fine-tuning)\nIn Botpress Studio, you can fine-tune your LLM’s performance based on real-world interactions. This iterative process of adjusting and retraining the model can lead to superior outcomes, as your LLM evolves to meet the changing needs of your users.\nDifferentiation and Competitive Advantage\n[](#differentiation-and-competitive-advantage)\nOwning and customizing your LLM allows you to differentiate your product from competitors using standard models. A unique LLM strategy can become a key value proposition, offering enhanced user experiences or capabilities that are not easily replicated.\n> ## ���\n>\n> For LLM providers\n>\n> If you're interested in monetizing your own LLM by making it available for use on Botpress, [contact us.](https://botpress.com/contact-us)\nGetting access\n[](#getting-access)\n> ## ���\n>\n> Ask for Access First!\n>\n> LLM Interfaces is a powerful feature, and requires users to validate the use case with us, before getting access.\n[iframe](https://share.hsforms.com/1mohlsPa5RsycE6ufHWrBhAcbihu \"share.hsforms.com\")\nInstructions\n[](#instructions)\nThere are three steps to use your own LLM: creating and configuring an integration, adding the LLM invocation logic, and selecting the LLM in the Botpress Studio.\n1\\. Create and configure an integration\n[](#1-create-and-configure-an-integration)\nStart by [creating an integration](/docs/getting-started-1). Once you've done that, you must adjust the integration definition by extending it with the `interfaces.llm` interface using the `.extend()` method.\nintegration.definition.ts\n`import { z, IntegrationDefinition, interfaces } from \"@botpress/sdk\";\nexport default new IntegrationDefinition({\n// ... other configuration properties\nname: \"my-llm\",\nentities: {\nmodelRef: {\nschema: z.object({\nid: z.string(),\n}),\n},\n},\n})\n.extend(interfaces.llm, ({ modelRef }) => ({\nmodelRef,\n}));\n`\nIn the above example, lines 14 - 16 were added. Once you are done with that, it's time to implement the LLM logic!\n2\\. Add the LLM invocation logic\n[](#2-add-the-llm-invocation-logic)\nWhen you use the `interfaces.llm`, you must implement two actions: `generateContent` and `listModels`. These actions define the core functionality of your LLM integration.\n**The listModels method**\nWhenever a user chooses an LLM model in the Botpress Studio, all listModels actions are invoked on installed integrations to list all available models.\nShould you wish to act as an LLM provider for Botpress and have users pay for tokens through Botpress, you can use the costPer1MTokens to charge users for using your LLM. For all other use cases, the costPer1MTokens should be set to 0, and billing handled by yourself.\n**The generateContent method**\nThis method, whos input is a standard input for invoking a create chat completion, must convert the format to a format compatible with your llm, invoke your LLM via api or a client library, and convert the format back to the Botpress format. You can see a working example [here](https://github.com/botpress/botpress/blob/master/integrations/anthropic/src/actions/generate-content.ts). For the format types, we suggest using IntelliSense to guide you.\nindex.ts\n`export default new bp.Integration({\nregister: async () => {},\nunregister: async () => {},\nactions: {\ngenerateContent: async ({input}) => {\n// Implement your own logic for generating content using your LLM\nconst result = await myLLM.generateText(input);\nreturn { result };\n},\nlistLanguageModels: async () => {\n// Implement your own logic for listing available models\nconst models = [\n{\nid: \"model1\",\nname: \"My LLM 1\",\ndescription: \"A highly accurate LLM\",\ntags: [\"recommended\", \"vision\"],\ninput: {\ncostPer1MTokens: 1,\nmaxTokens: 200_000,\n},\noutput: {\ncostPer1MTokens: 12,\nmaxTokens: 4096,\n},\n},\n{\nid: \"model2\",\nname: \"My LLM 2\",\ndescription: \"A more cost-effective LLM\",\ntags: [\"low-cost\"],\ninput: {\ncostPer1MTokens: 1,\nmaxTokens: 200_000,\n},\noutput: {\ncostPer1MTokens: 12,\nmaxTokens: 4096,\n},\n},\n];\nreturn { models };\n},\n},\nchannels: {},\nhandler: async () => {},\n})\n`\nOnce you are done with the above, simply deploy the integration, and install it to a bot you'd like to try it on.\n3\\. Select your LLM in Botpress Studio\n[](#3-select-your-llm-in-botpress-studio)\nNow you can choose your LLM when configuring AI-related tasks. It will show up in the LLM selectors in the Botpress Studio.\nIn the above example, **My LLM 1** and **My LLM 2** appear with the corresponding tags.\n![](https://files.readme.io/6311471c2d53aa45e62cec732ec1a0b1a2961bc87c06fbfcdbe4bdc9fa5680d0-Screenshot_2024-08-30_at_9.44.34_AM.png)\nBy integrating your own LLM with Botpress, you gain full control over AI outputs, privacy, and security, while also opening up potential monetization opportunities. Follow the outlined steps to configure your integration, implement the LLM logic, and seamlessly deploy it in Botpress Studio for a customized AI experience.\nHaving difficulties with LLM Interfaces?\n[](#having-difficulties-with-llm-interfaces)\nContact us at [\\[email protected\\]](/cdn-cgi/l/email-protection#c3afafaeeeaba6afb383a1acb7b3b1a6b0b0eda0acae) with as much details as possible about your company and your use case.\nUpdated 18 days ago\n---\n* [Table of Contents](#)\n* * [Using Your Own LLM](#using-your-own-llm)  \n         * [Why Bring Your Own LLM?](#why-bring-your-own-llm)  \n   * [Getting access](#getting-access)  \n         * [Instructions](#instructions)  \n   * [Having difficulties with LLM Interfaces?](#having-difficulties-with-llm-interfaces)[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)\nMoving Parts\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# Moving Parts\n[ Suggest Edits](/edit/moving-parts)\nThe standard way to develop a chatbot on Botpress Cloud is to use the [Studio](https://studio.botpress.cloud). It is a low-code platform; that is, the Studio allows you to create chatbots by writing little code, or even none at all.\nTo please developers, Botpress Cloud also allows you to develop chatbots with code only. This set of features is called the developer side of Botpress Cloud or the developer experience (DX).\nIn addition to allowing the development of Chatbots, the developer experience also allows the creation of Integrations. Integrations are applications that allow Chatbots to communicate with external services as well as share/reuse certain features. The only way to develop integrations is to do it with code.\nThe developer experience is composed of the following parts:\n* the [public HTTP API](https://botpress.com/docs/api/)\n* the [TypeScript HTTP Client](https://npmjs.com/package/@botpress/client)\n* the [TypeScript SDK](https://npmjs.com/package/@botpress/sdk)\n* the [CLI](https://npmjs.com/package/@botpress/cli)\nThe public HTTP API of Botpress Cloud is already documented [here](https://botpress.io/docs/cloud/api).\nThe TypeScript HTTP Client, on the other hand, only exposes the API in an npm package to facilitate requests to the API in JavaScript and TypeScript. It contains all the types of requests and responses of the API.\nTo create a Chatbot or an Integration, you must call the [create-bot](https://botpress.com/docs/api/#bot-create-bot) or [create-integration](https://botpress.com/docs/api/#bot-create-integration) route of the API. The HTTP body of the request contains a `code` field. This is the JavaScript program of the Bot or Integration. This code is executed by Botpress Cloud. However, this field cannot contain any program, it must have a certain format and a certain behavior for Botpress Cloud to be able to execute it. This is where the SDK comes in.\nThe SDK is an npm package that is used and executed with the code of the Bot or Integration. It facilitates development by providing functions and classes that frame your development. It is theoretically possible to develop a Bot or an Integration without using the SDK, but this is strongly discouraged.\nAt the time of writing, all Bots and Integrations are hosted and executed by Botpress Cloud. This means that it is not possible to host a server on your side. For this reason, the use of the JavaScript language is mandatory. If your program is written in TypeScript, it must be transpiled and bundled before being sent to Botpress Cloud. This is where CLI comes in.\nThe CLI wears several hats. It allows you to interact with the public HTTP API of Botpress Cloud and to develop/deploy Bots and Integrations. Just like the SDK, it is theoretically possible to do without it but this is strongly discouraged.\nSince the public HTTP API of Botpress Cloud is already documented and the TypeScript HTTP Client only exposes it in an npm package, the next sections of this document will focus on the SDK and the CLI.\nUpdated 4 months ago\n---[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)\nLibrary\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# Library\nRepository for managing global Intents and Entities, enabling the extraction and classification of messages.\n[ Suggest Edits](/edit/library)\nThe NLU Library is a key feature within Botpress, designed to manage and organize global Intents and Entities. These components are essential for understanding and processing user input, enabling your bot responds accurately and effectively.\nIntents\n[](#intents)\nIntents are the backbone of understanding in a chatbot. They represent the purpose or goal behind a user's message, allowing the chatbot to determine the appropriate response. Each intent can have multiple utterances—different ways users might express the same request.\nFor example, an \"Ordering a coffee\" intent could include utterances like:\n\"I want coffee\"\n\"I'd like some coffee, please\"\n\"Do you have a decaf espresso?\"\n\"Hi. I'd like to order a latte, please.\nThe chatbot compares user messages against these utterances to match them to the correct intent with the highest confidence score.\n| User Message                                | Intent Matched | Confidence |\n| ------------------------------------------- | -------------- | ---------- |\n| I would like to order a coffee.             | place-order    | 0.97       |\n| An espresso, please                         | place-order    | 0.91       |\n| Can you please give me a double cappuccino? | place-order    | 0.96       |\nCreating an Intent\n[](#creating-an-intent)\nTo create a new intent:\n1. Navigate to the Library\n2. Click the + button to add a new intent\n3. Provide a simple name for the intent (e.g., \"order coffee\")\nAdding Utterances\n[](#adding-utterances)\nAfter creating an intent, you need to define utterances that represent different ways a user might express the same intent.\n1. In the intent creation window, enter at least 10 utterances\n2. Save your changes\nUtterances currently support a maximum of 280 characters each.\nInline Intents\n[](#inline-intents)\nInline intents are specialized intents that can be defined directly on transitions within your chatbot’s flow. They function like global intents but are limited to specific scenarios within a conversation, making them ideal for context-sensitive tasks.\nTo use inline intents:\n* Define them directly on a transition within your flow\n* Add relevant utterances\nEntities\n[](#entities)\nEntities are data points or parameters that provide additional context within an intent. They allow your chatbot to extract and normalize specific details from a user's message, such as a date, time, color, or any other relevant piece of information.\n> ## ���\n>\n> Example\n>\n> The place-order intent contains the following entities:\n>\n> **caffeine** that specifies if the coffee is caffeinated or decaffeinated.\n>\n> **size** for a single or a double shot.\n>\n> **drink** that specifies the kind of drink asked for.\n>\n> Attached to NLU extraction, you will find an entities property which is an array of System and Custom entities.\nCustom Entities\n[](#custom-entities)\nBotpress provides two types of custom entities: pattern and list entities. To define a custom entity, go to the Library tab of the Explorer. From there, you can define your custom entities which will be available for any input message treated by your chatbot. Go ahead and click on New entity.\nUsing Entities\n[](#using-entities)\nYou may access and use entity data by looking up the event.nlu.entities variable in your hooks, flow transitions or Execute Code cards.\nList Entities\n[](#list-entities)\nList extraction behaves similarly to pattern extraction. However, you'll be able to add different occurrences of your entity with corresponding synonyms.\nLet's take Airport Codes as an example:\nExtraction will go like this: User said Type Value \"Find a flight from SFO to Mumbai\" \"Airport Codes\" \\[\"SFO\", \"BOM\"\\]\nPattern Entities\n[](#pattern-entities)\nPattern or Regular Expression Extraction allows you to extract information presented in a format that can be described using Regular Expression (RegEx). Once you've created a pattern entity, Botpress Native NLU will perform a regex extraction on each incoming message and add it to event.nlu.entities.\nExample:\nGiven a Pattern Entity definition with \\[A-Z\\]{3}-\\[0-9\\]{4}-\\[A-Z\\]{3} as a pattern: Extraction will go like this: User said Type Value Find product BHZ-1234-UYT SKU BHZ-1234-UYT\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Intents](#intents)  \n         * [Creating an Intent](#creating-an-intent)  \n         * [Inline Intents](#inline-intents)  \n   * [Entities](#entities)  \n         * [Custom Entities](#custom-entities)  \n         * [Using Entities](#using-entities)  \n         * [List Entities](#list-entities)  \n         * [Pattern Entities](#pattern-entities)[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)\nIntercom\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# Intercom\n[ Suggest Edits](/edit/intercom)\n![](https://files.readme.io/f69ccb4-image.png)\nIntroduction\n[](#introduction)\nIntercom is a Conversational Relationship Platform (CRP) that helps businesses build better customer relationships through personalized, messenger-based experiences across the customer journey. By integrating it with Botpress you can leverage AI to automate your customer support and sales processes.\nPrerequisites\n[](#prerequisites)\n* An [Intercom account](https://www.intercom.com/)\n* Administrator or Developer access to a Intercom workspace\nSetting up the Intercom integration in Botpress\n[](#setting-up-the-intercom-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 Intercom integration then click on the \"Install to Bot\" button, now go back to your bot settings.\nThe Intercom integration has the following settings:\n* **Enabled**: Whether Botpress will communicate with Intercom\n* **Webhook URL**: The URL for receiving data in Botpress\n* **Access Token**: The access token for the Intercom app\n* **Admin Id**: The admin id for the Intercom app\nSetting up Intercom\n[](#setting-up-intercom)\n> ## ���\n>\n> Info\n>\n> In this tutorial we are going to be using a standard production workspace, but you can also create a Test workspace to test the integration before deploying it to production.\n>\n> To do that, open the Settings of a production workspace, go to the General settings tab and look for the \"Enable a test workspace\" and click \"Save\". Now you just need to use this workspace in the steps below. Learn more about test workspace [here](https://www.intercom.com/help/en/articles/188-create-a-test-workspace-in-intercom).\n>\n> After verifying that the integration works, you will need to repeat the steps below using the production workspace! Don't create the app again, just go to the app settings (Test and publish > Your workspaces) and install it to the production workspace.\nCreating an App\n[](#creating-an-app)\nIn order to communicate with Botpress, you need to create a developer app in Intercom.\n1. Go to the [Developer Hub](https://developers.intercom.com/) in Intercom then click \"Your Apps\"\n2. Click \"New App\", give it a name like `Botpress connector`, then select the desired workspace and click \"Create App\"\n3. You will be redirected to the app's Authentication settings page. Copy the Access Token and paste it in the Botpress integration settings.\nGetting the Admin Id\n[](#getting-the-admin-id)\n1. Open Intercom and hover over your avatar in the bottom left corner, then click your avatar again to see your profile\n2. Copy the last number in the URL (as shown below), this is your Admin Id. Paste it in the Botpress integration settings\n![](https://files.readme.io/428e56f-image.png)\nSetting up the Webhook\n[](#setting-up-the-webhook)\n1. Copy the Webhook URL provided in the Botpress integration settings\n2. Go back to the Intercom app settings and open the \"Webhooks\" tab\n3. Paste the URL in the \"Endpoint URL\" section\n4. Click the \"Select a topic\" dropdown under the \"Topics\" section, a list is going to show up\n5. Search for `user` and and click the options `conversation.user.created` and `conversation.user.replied`. Now exit the list and a \"Topic\" section should appear with the selected topics. Click \"Save\" to finalize the webhook configuration\nAdding a Default conversation Assignee\n[](#adding-a-default-conversation-assignee)\n1. Go back to the Intercom app settings and open the \"Inbox\" tab\n2. Click \"Inbox settings\" then \"Workload management\"\n3. In the \"Default assignee\" section select yourself or another user to receive the conversations from the bot (it needs to be the same user as the Admin Id)\nFinalizing the configuration\n[](#finalizing-the-configuration)\nNow you just need to **Enable** the integration in the Botpress settings and click \"Save configuration\".\nThat's it, you may now start chatting with your bot on Intercom!\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Introduction](#introduction)  \n   * [Prerequisites](#prerequisites)  \n   * [Setting up the Intercom integration in Botpress](#setting-up-the-intercom-integration-in-botpress)  \n   * [Setting up Intercom](#setting-up-intercom)  \n         * [Creating an App](#creating-an-app)  \n         * [Getting the Admin Id](#getting-the-admin-id)  \n         * [Setting up the Webhook](#setting-up-the-webhook)  \n         * [Adding a Default conversation Assignee](#adding-a-default-conversation-assignee)  \n         * [Finalizing the configuration](#finalizing-the-configuration)[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)\nImport & Export\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\n<|end_input|>","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.extract","promptSource":"zai:zai.extract:default"},"model":"fast","signal":{},"stopSequences":["■NO_MORE_ELEMENT■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■json_start■{"feature":"Knowledge Base","parent":null,"description":"Central repository that stores searchable documents, web pages, text documents, and tables, providing quick access to information for Botpress bots."}■json_end■
■json_start■{"feature":"Web Pages KB Source","parent":"Knowledge Base","description":"Allows users to upload website content to the Knowledge Base via URLs or a site map, enabling comprehensive knowledge from online sources."}■json_end■
■json_start■{"feature":"Add from URLs","parent":"Web Pages KB Source","description":"Field where users can enter one URL per line (max 350 characters) to import web pages into the Knowledge Base automatically."}■json_end■
■json_start■{"feature":"Web Search Knowledge Base Source","parent":"Knowledge Base","description":"Provides options to search specific websites, the entire web, or exclude sites, with additional time‑filtering controls (e.g., last 24 h, 7 days, 30 days)."}■json_end■
■json_start■{"feature":"Tables: Organized Information","parent":"Knowledge Base","description":"Enables connecting data tables to the Knowledge Base, allowing users to query structured data directly and retrieve answers from searchable columns."}■json_end■