Input: {"body":{"maxTokens":2000,"messages":[{"content":"You are summarizing a text. The text is split into 1 parts, and you are currently working on part 1.\nAt every step, you will receive the current summary and a new part of the text. You need to amend the summary to include the new information (if needed).\nThe summary needs to cover the main points of the text and must be concise.\n\nIMPORTANT INSTRUCTIONS:\n- At each step, you will receive a part of the text to summarize. Make sure to reply with the new summary in the tags ■START■ and ■END■.\n- Summarize the text and make sure that the main points are included.\n- Ignore any unnecessary details and focus on the main points.\n- Use short and concise sentences to increase readability and information density.\n- When looking at the new information, focus on: Extract the Table of Contents for the Botpress Documentation. Start with a short sentence explaining what Botpress is. Pay special attention to all the different features. Focus on horizontal coverage of features rather than going in depth into one feature. The goal is to have a complete overview of what the documentation covers.\n- The current summary is empty. You need to generate a summary that covers the main points of the text.\n- This is the last part you will have to summarize. Make sure the summary is complete and covers all the main points.\n- The current summary is 0 tokens long. You need to make sure it is 2000 tokens or less.\n\nFORMAT OF THE SUMMARY:\nA normal text with multiple sentences and paragraphs. Use markdown to format the text into sections. Use headings, lists, and other markdown features to make the text more readable. Do not include links, images, or other non-text elements.","role":"system"},{"content":"■START■\n<summary still empty>\n■END■\n\nPlease amend the summary between the ■START■ and ■END■ tags to accurately reflect the prompt and the additional text below.\n\n<|start_new_information|>\n Note\n>\n> You can find your personal access token in your [Botpress Dashboard](https://app.botpress.cloud/). Click your avatar and select \"Personal Access Tokens\". Generate a new one and copy it.\nThis is how the request would look like using Axios in a Javascript application:\nJavaScript\n`` const requestConfig = {\nheaders: {\nAuthorization: `Bearer ${process.env.BOTPRESS_PERSONAL_ACCESS_TOKEN}`,\n},\n}\nconst getAnalytics = await axios.get(`https://api.botpress.cloud/v1/admin/${botId}/analytics`, requestConfig)\n``\nIf you were to print the analytics (available at `getAnalytics.data.records`), the result would look like this:\nJSON\n`[\n{\n\"startDateTimeUtc\": \"2023-10-18T00:00:00.000Z\",\n\"endDateTimeUtc\": \"2023-10-30T20:00:00.000Z\",\n\"returningUsers\": 14,\n\"newUsers\": 4,\n\"sessions\": 4,\n\"messages\": 146\n},\n{\n\"startDateTimeUtc\": \"2023-09-01T03:00:00.000Z\",\n\"endDateTimeUtc\": \"2023-09-31T19:00:00.000Z\",\n\"returningUsers\": 38,\n\"newUsers\": 16,\n\"sessions\": 25,\n\"messages\": 1943\n}\n]\n`\n> ## ���\n>\n> Note\n>\n> It's a list of records containing the start and end date of the period, the number of returning users, new users, sessions and messages. With this information you can create your own charts and dashboards in your internal systems or favorite BI tool.\nIf you need advanced analytics about user behavior and the paths they take when interacting with the bot, you can use the [Hooks method](../docs/hooks) to export the data in real-time to a third-party service like Mixpanel, Hotjar, Segment or Amplitude.\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Making a request to the API](#making-a-request-to-the-api)[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)\nExporting Data\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# Exporting Data\nExport data from your chatbot using the Botpress API by requesting the relevant endpoint.\n[ Suggest Edits](/edit/exporting-data)\nBotpress Cloud allows you to create, manage, and deploy chatbots with little to no coding or infrastructure. In the natural course of maintaining a bot you may want to access its data outside of Botpress for various purposes, such as reporting, analysis, backup, or integration.\nThis section covers some of the most important use cases for extracting bot data to third-parties software.\n| **Action**              | **Methods**                                                                                | **Use Cases**                                                                                |\n| ----------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |\n| Exporting conversations | [Using the Botpress API](./exporting-conversations/with-the-api) [Using Hooks](./exporting-conversations/from-the-bot) | Data AnalysisCompliance and AuditingBackup and Historical RecordDebugging                           |\n| Exporting analytics     | [Using Hooks](./exporting-analytics/from-the-bot)[Using the Botpress API](./exporting-analytics/with-the-api)          | Performance Monitoring and EvaluationUser Tracking and Behavior AnalysisProduct ManagementDebugging |\nUpdated about 1 month 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)\nBuilding\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# Building\nDocumentation and resources for building your own integration with Botpress.\n[ Suggest Edits](/edit/building-integrations)\nThis section provides a resources for building your own integration with Botpress and a third-party service.\nBefore building your own integration, make sure to check our available integrations in the Botpress Hub to see if the integration already exists.\nUpdated about 1 month 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)\nConfiguration variables\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# Configuration variables\nStore essential information like API keys and database credentials.\n[ Suggest Edits](/edit/configuration-variables-1)\nConfiguration Variables are containers that store essential information such as API keys and database credentials, and allow chatbot developers to easily access and modify them as needed. They provide a central location for configuration settings, which helps developers ensure that the chatbot functions correctly and stays up-to-date. Configuration variables also provide a level of security by keeping sensitive information separate from the codebase, reducing the risk of data exposure.\n> ## ���\n>\n> Development vs. production\n>\n> Configuration values set in the Botpress Studio are strictly for testing your bot in the emulator. They do not apply to any production deployments of your bot.\n>\n> To set configuration variables for a production bot in deployment, use the configuration variables tab in the dashboard.\nUsing Configuration Variables\n[](#using-configuration-variables)\nIn the Studio, navigate to the Variables menu in Chatbot settings. Here, you can add configuration variables.\nYou can create a new key and add the value you'd like to use in yoru development environment. This value should only be used for testing purposes in the emulator.\nSave and publish your chatbot to enable these changes.\nDevelopment\n[](#development)\nUsage\n[](#usage)\nYou can use **`{{env.key}}`** to retrieve the value of a Configuration Variable Key that you created.\nYou can use **`env.key`** to access its value in an Execute Code card, when writing custom code.\nProduction\n[](#production)\nUsage\n[](#usage-1)\nIn the Configuration Variables tab of your bot's dashboard, you can set key values.\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Using Configuration Variables](#using-configuration-variables)  \n         * [Development](#development)  \n         * [Production](#production)[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)\nControlling Web Chat using JavaScript\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# Controlling Web Chat using JavaScript\n[ Suggest Edits](/edit/controlling-web-chat-using-javascript)\nControlling the Webchat Widget\n[](#controlling-the-webchat-widget)\nThis library is a toolkit that provides various tools (or functions) to interact with the Botpress Webchat.\nJavaScript\n`window.botpressWebChat = {\ninit,\nmergeConfig,\nonEvent,\nsendPayload,\nsendEvent,\n}\n`\n---\nInitializing the Widget\n[](#initializing-the-widget)\nThis function initializes the webchat and connects it to your bot. You must do this before anything else.\nJavaScript\n`window.botpressWebChat.init({\nbotId: '<botID>',\nhostUrl: 'https://cdn.botpress.cloud/webchat/v1',\nmessagingUrl: 'https://messaging.botpress.cloud',\nclientId: '<clientID>',\n})\n`\nYou can find information on the configuration parameters [here](#configurable-script-parameters).\n---\nChanging the Widget's Configuration\n[](#changing-the-widgets-configuration)\nAfter initializing the widget, if you want to update it, send a configuration object for the changes you want. You don't need to re-include everything else.\nJavaScript\n`window.botpressWebChat.mergeConfig({ showTimestamp: false })\n`\nYou can find information on the configuration parameters [here](#configurable-script-parameters).\n---\nSend user data from your website to Botpress\n[](#send-user-data-from-your-website-to-botpress)\nYou can send data from your website to the webchat using the `init` function. Important : the `mergeConfig` doesn't allow you to pass user data.\nTo send information, submit a flat (without nested objects) object to the `userData` property.\nJavaScript\n`window.botpressWebChat.init({\nuserData: {\nname: 'Jack Black',\n},\n})\n`\nAll the parameters sent to the userData object should be string typed.\nYou can receive data from the webchat in Botpress by using `Get User Data` Card in the flow. In the User ID field, add `{{event.userId}}`.\n---\nTrigger Widget Actions\n[](#trigger-widget-actions)\nThis function allows you to send a custom event to the chat. Think of it as sending a signal to the chat for it to do something specific.\nJavaScript\n`// Show the chat\nwindow.botpressWebChat.sendEvent({ type: 'show' })\n// Hide the chat\nwindow.botpressWebChat.sendEvent({ type: 'hide' })\n// Toggle the chat\nwindow.botpressWebChat.sendEvent({ type: 'toggle' })\n// Toggle the bot info page\nwindow.botpressWebChat.sendEvent({ type: 'toggleBotInfo' })\n// Create a new conversation\nwindow.botpressWebChat.sendEvent({ type: 'createConversation' })\n// Load a conversation by ID\nwindow.botpressWebChat.sendEvent({ type: 'loadConversation', conversationId: '6ffe8622-49fd-4de9-81e5-412ba2296913' })\n`\nTo load a conversation, you must provide the conversation ID. You can get the conversation ID from the event payload of a `MESSAGE.SENT` event.\n---\nSending messages or instructions from your website\n[](#sending-messages-or-instructions-from-your-website)\nYou can use the `sendPayload` function to send a specific message (or instruction) to the chatbot. For sending instructions, please refer to [Triggers](../docs/events-1#webchat-triggers).\nJavaScript\n`window.botpressWebChat.sendPayload({ type: 'text', text: 'I am a message sent through code' })\n`\nYou can see examples of all of the message types you can send to the chatbot [here](https://github.com/botpress/messaging/blob/master/packages/channels/example/payloads.json).\n---\nListening to Widget Events\n[](#listening-to-widget-events)\nThis function lets you listen for certain events happening in the chat and then do something when they happen. It's like setting up a watch for specific actions.\nYou can find the list of events [here](../docs/events-1#webchat-lifecycle-and-events).\nJavaScript\n`window.botpressWebChat.onEvent(\n(event) => {\nif (event.type === 'MESSAGE.RECEIVED') {\nconsole.log('A new message was received!')\n}\n},\n['MESSAGE.RECEIVED']\n)\n`\nNext Steps\n[](#next-steps)\n* [Styling your Webchat](https://styler.botpress.app)\n* [Embedding your Webchat on React App](../docs/react-app)\n* [Embedding your Webchat on Webflow Site](../docs/webflow)\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Controlling the Webchat Widget](#controlling-the-webchat-widget)  \n   * [Initializing the Widget](#initializing-the-widget)  \n   * [Changing the Widget's Configuration](#changing-the-widgets-configuration)  \n   * [Send user data from your website to Botpress](#send-user-data-from-your-website-to-botpress)  \n   * [Trigger Widget Actions](#trigger-widget-actions)  \n   * [Sending messages or instructions from your website](#sending-messages-or-instructions-from-your-website)  \n   * [Listening to Widget Events](#listening-to-widget-events)  \n   * [Next Steps](#next-steps)[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)\nCapture Information\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# Capture Information\nCards that stop the bot's workflow and waits for a user's response to capture specific pieces of information.\n[ Suggest Edits](/edit/capture-information)\n**Capture Information** cards instruct the bot to stop processing and wait for the user's response while capturing a specific piece of information from the user's input.\nThis could include details like the user's name, full address, or raw input.\nTo collect multiple pieces of information, multiple prompt fields can be added to a single prompt node. Once the information is collected, a flow variable should be created to store the extracted information for later use in the conversation or to be passed on to other systems. This allows for a more personalized and efficient experience for the user, as well as providing valuable data for the chatbot's developers.\nPrompt Field Types\n[](#prompt-field-types)\nA Prompt Field is a type of input field that is used to capture information from a user in a structured and organized manner. It can include various types of input fields such as Single Choice, Multiple Choice, Number, Email Address, Phone Number, and more.\nThe Prompt Field also includes validation messages and code validation, which helps ensure that the user inputs the correct type of information. This means that if the user inputs an invalid value, they will be notified with an error message and prompted to re-enter the correct information.\n| **Prompt Fields**                                                             | **Description & Extracted Information**                                                                                |\n| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| [SingleChoice](../docs/capture-information#single-choice)                     | Extracts a Single Choice from a finite list of possible ValuesVariable Type: String                                                           |\n| [MultipleChoice](../docs/capture-information#multi-choice)                    | Extracts one or multiple choices from a finite list of possible ValuesVariable Type: String                                                   |\n| [Boolean](../docs/capture-information#boolean)                                | Extract a Boolean (On/Off) from the QueryVariable Type: Boolean                                                                               |\n| [Confirmation](../docs/capture-information#confirmation)                      | Confirm a Yes/No question with a Boolean from the QueryVariable Type: Boolean                                                                 |\n| [Number](../docs/capture-information#number)                                  | Extracts a Number from the QueryVariable Type: Number                                                                                |\n| [EmailAddress](../docs/capture-information#email-address)                     | Extracts a full Email Address from the QueryVariable Type: String                                                                             |\n| [PhoneNumber](../docs/capture-information#phone-number)                       | Extracts a Telephone Number and optionally the Country Code from the QueryVariable Type: String                                               |\n| [FullAddress](../docs/capture-information#fulladdress)                        | Extract the Full Address from the QueryVariable Type: Object                                                                                |\n| [Price](https://botpress.com/docs/cloud/toolbox/capture-information/#price)   | Extracts a Price from the QueryVariable Type: Number                                                                                |\n| [RawInput](../docs/capture-information#raw-input)                             | Extract the Input provided by the User, without any processingVariable Type: String                                                           |\n| [Percentage](../docs/capture-information#percentage)                          | Extracts a Percentage from the QueryVariable Type: Number                                                                                |\n| [Quantity](../docs/capture-information#quantity)                              | Extract a Quantity from a QueryVariable Type: Number                                                                                |\n| [Color](../docs/capture-information#color)                                    | Extracts a Color as both HEX and RGB codes from the QueryVariable Type: Object                                                                |\n| [TimeMeasurement](../docs/capture-information#time-measurement)               | Extracts a time measurement as (ns, mu, ms, s, min, h, d, week, month, year) UnitsVariable Type: Number                                       |\n| [WeightMeasurement](../docs/capture-information#weight-measurement)           | Extracts a Weight Measurement as (mcg, mg, g, kg, oz, lb, mt, t) UnitsVariable Type: Number                                                   |\n| [CronSchedule](../docs/capture-information#cron-schedule)                     | Extracts a one-time or recurring schedule as a CRON Expression from the QueryVariable Type: Object                                            |\n| [OperatingSystem](../docs/capture-information#operating-system)               | Extracts the name of an Operating System (Windows, OSX, IOS, Android, Linux)Variable Type: Object                                             |\n| [QuantityofPeople](../docs/capture-information#quantity-of-people)            | Extracts the Number of People in a QueryVariable Type: Number                                                                                |\n| [VolumeMeasurement](../docs/capture-information#volume-measurement)           | Extracts a volume measurement as (mm3, cm3, ml, l, kl, m3, km3, tsp, Tbs, in3, fl-oz, cup, pnt, qt, gal, ft3, yd3) UnitsVariable Type: Number |\n| [TemperatureMeasurement](../docs/capture-information#temperature-measurement) | Extracts a Temperature Measurement as (C, K, F) UnitsVariable Type: Number                                                                    |\n| [Person](../docs/capture-information#person)                                  | Extracts the name of a person(first and last names)Variable Type: Object                                                                      |\n| [DateTime](../docs/capture-information#datetime)                              | Extracts date and time relative to the current dateVariable Type: Date                                                                        |\nSingle Choice\n[](#single-choice)\nThe **Single Choice** is a type of input field that presents the user with a list of options to choose from. The user can only select **one** option from the list, and their choice is then stored as a value in a variable. This variable can be used later in your workflow for further processing.\n> ## ���\n>\n> Tip\n>\n> If the user enters text instead of clicking a button, the AI will search their text for any of the button options, and, if there is an option the user's text will be treated as if they clicked the button.\nAn example of Single Choice would be a survey question with multiple options, where the user selects one answer from the list.\n**Steps to use Single Choice Field**\n1. Create a new capture information card.\n2. Set the Type property to **Single Choice**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the selected option.\n4. Set the **Prompt message** property to a message that lists the available options for the user to choose from.\n5. Click on the **Advanced Configuration** to add Choices.\nOnce the card is used, it will present the available options to the user and allow them to select only one. The selected option will be saved in the workflow variable you specified, and you can use it in other parts of your workflow to make decisions or take actions based on the user's choice.\n**Example**\nLet's say you want to ask the user about their preferred mode of transportation, and you have three options: car, bus, and bike. You can create a new capture information card with the following properties:\n`Type: Single Choice\nVariable name: preferredTransportation\nPrompt message: What is your preferred mode of transportation? Choose one from the following: car, bus, bike.\n`\nWhen the user selects their preferred mode of transportation, the Single Choice card will save the value in the **preferredTransportation** workflow variable. You can then use this variable to tailor the conversation based on the user's choice.\nFor example, if they choose bike, you can ask follow-up questions related to biking or suggest some scenic bike routes.\nYou can also use the value of the **preferredTransportation** variable in transitions. For example, if the user selects car, you can move them to a node related to car-related services or if they choose bus, you can move them to a node related to public transportation schedules.\nMulti Choice\n[](#multi-choice)\nThe **Multi Choice** type is a way to gather information from users by presenting them with a list of options to choose from. Users can select one or more options from the list.\nThis type of capture information is useful in scenarios where you want to give users a set of choices to pick from, like selecting the toppings for a pizza or the colors for a shirt. It's a quick and easy way to collect information from users without having to ask them to type out their answers.\n**Steps to use Multi Choice Field**\n1. Create a new capture information card.\n2. Set the Type property to **Multi Choice**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted values.\n4. Set the **Prompt message** property to a message that provides a list of choices for the user to select from.\n5. Click on the **Advanced Configuration** to add Choices.\nOnce the card is used, it will extract the selected options from the user's input and save them in the workflow variable you specified. You can then use this variable in other parts of your workflow to make decisions or take actions based on the user's response.\n**Example**\nLet's say you want to ask the user what toppings they want on their pizza. You can create a new capture information card with the following properties:\n`Type: Multi Choice\nVariable name: pizzaToppings\nPrompt message: What toppings would you like on your pizza? Please select all that apply: pepperoni, mushrooms, onions, olives, sausage.\n`\nWhen the user enters their response, the Multi Choice card will extract the selected options and save them in the **pizzaToppings** workflow variable. You can then use this variable in other parts of your workflow to make decisions or take actions based on the user's response.\nFor example, if the user selects **pepperoni** and **mushrooms,** you can use the **pizzaToppings** variable to customise their order and display a message like **Your pizza with pepperoni and mushrooms is on the way!**\nBoolean\n[](#boolean)\n**Boolean** type extracts a binary value from the user's input and saves it in a variable of type boolean. The extracted information can include values like true and false, agree and disagree, accept and decline, or any other binary values.\n**Steps to use Boolean Field**\n1. Create a new capture information card.\n2. Set the Type property to **Boolean**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted boolean value.\n4. Set the **Prompt message** property to a message that prompts the user to enter a binary value.\n5. Optionally, you can edit the Choices property if you want to customize the binary values that the user can select. By default, the choices are **Yes** and **No**. When the user provides an input, the system will extract either a **true** or **false** value based on whether the user selects **Yes** or **No**.\n**Example**\nLet's say you want to ask the user if they agree to the terms and conditions of service. You can create a new capture information card with the following properties:\n`Type: Boolean\nVariable name: agreeToTerms\nPrompt message: Do you agree to the terms and conditions of our service? Please enter 'yes' or 'no'.\n`\nWhen the user enters their response, the Boolean card will extract the binary value and save it in the **agreeToTerms** workflow variable as either true or false. You can then use this variable in other parts of your workflow to decide whether to proceed with the service or not.\nIf the user agrees to the terms and conditions, you can submit their request or move them to the next node, but if they disagree, you can say something like 'Sorry to hear that' and end the conversation. This will display a message based on the user's response and whether they agreed to the terms and conditions or not.\nConfirmation\n[](#confirmation)\nThe **Confirmation** type is a way to ask the user to confirm or agree to something. For example, you might use this type to confirm a user's purchase, agreement to terms and conditions, or confirmation of an appointment. When the user responds, the Confirmation type extracts a binary value (either true or false) and saves it in a variable. This allows you to use the user's confirmation or agreement later in your bot's logic.\n**Steps to use Confirmation Field**\n1. Create a new capture information card.\n2. Set the Type property to **Confirmation**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted boolean value.\n4. Set the **Prompt message** property to a message that prompts the user to confirm or agree to something.\n5. Optionally, you can edit the Choices property if you want to customize the binary values that the user can select. By default, the choices are **Accept** and **Decline**. When the user provides an input, the system will extract either a **true** or **false** value based on whether the user selects **Accept** or **Decline**.\nOnce the card is used, it will automatically extract the confirmation from the user's input and save it in the workflow variable you specified as a boolean value (true or false). You can then use this variable in other parts of your workflow to make decisions or take actions based on the user's confirmation.\n**Example**\nLet's say you want to ask the user if they want to proceed with a purchase. You can create a new capture information card with the following properties:\n`Type: Confirmation\nVariable name: proceedWithPurchase\nPrompt message: Are you sure you want to proceed with the purchase? Please enter 'Accept' or 'Decline'.\n`\nWhen the user enters their response, the Confirmation card will extract the confirmation and save it in the **proceedWithPurchase** workflow variable as either true or false. You can then use this variable in other parts of your workflow to decide whether to proceed with the purchase or not.\nIf the user confirms they want to proceed with the purchase, you can move them to the payment process node, but if they decline, you can say something like 'No problem, maybe next time!' and end the conversation. This will display a message based on the user's response and whether they confirmed to proceed with the purchase or not.\nNumber\n[](#number)\nThe**Number** type extracts a numerical value from the user's input and saves it in a variable of type number.\nThe user can enter any numerical value, like a whole number or a decimal, and the bot will recognize and store it as a number. This can be used for calculations or any other purpose where a numerical value is needed.\n**Steps to use Number Field**\n1. Create a new capture information card.\n2. Set the Type property to **Number**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted numerical value.\n4. Set the **Prompt message** property to a message that prompts the user to enter a numerical value.\nOnce the card is used, it will automatically extract the numerical value from the user's input and save it in the workflow variable you specified as a numerical value (integer or decimal). You can then use this variable in other parts of your workflow to perform calculations or take actions based on the user's response.\n**Example**\nImagine you are creating an online store that sells products to customers. You want to ask the user to enter the quantity of a certain product they want to purchase. To do this, you can create a form with a field that uses the Number type to capture the user's input.\nFor example, you can create a field with the following details:\n`Type: Number\nVariable name: productQuantity\nPrompt message: How many units of this product would you like to purchase?\n`\nWhen the user enters their response, the Number field will extract the numerical value and save it in the productQuantity variable as either an integer or decimal value. You can then use this variable in other parts of your workflow to calculate the total cost of the purchase.\nFor instance, if the product costs $10 per unit and the user entered **3** as the product quantity, you can calculate the total cost in an [Execute Code Card](../execute-code/) as follows:\n`workflow.totalCost = workflow.productQuantity * $10\n`\nThis will enable you to calculate the total cost of the purchase based on the user's input and display it to the user before they confirm their order.\nEmail Address\n[](#email-address)\nThe **EmailAddress** type is used to extract an email address value from the user's input and save it in a variable of type string. This allows you to use the extracted email address in other parts of your bot's logic, such as sending an email confirmation or storing the email address for future use. The email address can be in any valid email address format, including with special characters such as dots, hyphens, and underscores.\n**Steps to use Email Address Field**\n1. Create a new capture information card.\n2. Set the Type property to **EmailAddress**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted email address value.\n4. Set the **Prompt message** property to a message that prompts the user to enter an email address.\nOnce the card is used, it will automatically extract the email address value from the user's input and save it in the workflow variable you specified as a string value. You can then use this variable in other parts of your workflow to send emails or perform other actions based on the user's response.\n**Example**\nLet's say you want to ask the user for their email address so that you can send them a newsletter. You can create a new capture information card with the following properties:\n`Type: EmailAddress\nVariable name: userEmail\nPrompt message: Please enter your email address to subscribe to our newsletter.\n`\nWhen the user enters their email address, the EmailAddress card will extract the value and save it in the **userEmail** workflow variable as a string. You can then use this variable in other parts of your workflow to add the user to your newsletter subscription list or perform other actions based on the user's response.\nPhone Number\n[](#phone-number)\nIn this section, we'll discuss the **PhoneNumber** capture information type in Botpress. This type of capture information extracts only the phone number representing the user's input, excluding the country code, and saves it in a variable of type string.\n**Steps to use Phone Number Field**\n1. Create a new capture information card.\n2. Set the Type property to **PhoneNumber**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted phone number value.\n4. Set the **Prompt message** property to a message that prompts the user to enter a phone number.\nOnce the card is used, it will automatically extract the phone number from the user's input and save it in the workflow variable you specified as a string value. The extracted information will not include the country code, only the digits representing the phone number. You can then use this variable in other parts of your workflow to make decisions or take actions based on the user's phone number.\n**Example**\nLet's say you want to ask the user for their phone number to schedule a call with them. You can create a new capture information card with the following properties:\n`Type: PhoneNumber\nVariable name: userPhoneNumber\nPrompt message: Please enter your phone number so we can schedule a call with you.\n`\nWhen the user enters their response, the PhoneNumber card will extract the digits representing the phone number and save it in the userPhoneNumber workflow variable as a string. You can then use this variable in other parts of your workflow to schedule a call with the user.\nFullAddress\n[](#fulladdress)\n**FullAddress** extracts the full address information from the user's input and saves it in a variable of type object. The extracted information contains the country, city, street, zip code, and house number.\n**Steps to use Full Address Field**\n1. Create a new capture information card.\n2. Set the Type property to **FullAddress**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted address information.\n4. Optionally, set the **Prompt message** property to a message that prompts the user to enter their address.\n5. Save the card.\nOnce the card is saved, it will automatically extract the full address information from the user's input and save it in the workflow variable you specified. You can then use this variable in other parts of your workflow by referencing the specific fields in the address object using the following syntax: **`{{workflow.variableName.country}}`**, **`{{workflow.variableName.city}}`**, **`{{workflow.variableName.street}}`**, **`{{workflow.variableName.zip}}`**, and **`{{workflow.variableName.number}}`**.\n**Example**\nLet's say you want to capture the user's full address to use in a shipping process. You can create a new capture information card with the following properties:\n`Type: FullAddress\nVariable name: shippingAddress\nPrompt message: **Please enter your full shipping address:**\n`\nWhen the user enters their address, the FullAddress card will extract the information and save it in the **shippingAddress** workflow variable. You can then use this variable in other parts of your workflow to complete the shipping process, such as sending an email confirmation to the user with their shipping details.\nHere's an example of how you can use the extracted information in a message:\n`Thank you for your order! Your shipping address is: {{workflow.shippingAddress.number}}\n{{workflow.shippingAddress.street}}, {{workflow.shippingAddress.city}}, {{workflow.shippingAddress.country}},\n{{workflow.shippingAddress.zip}}\n`\nThis will display the user's full address in a clear and easy-to-read format for both the user and the bot.\nPrice\n[](#price)\n**Price** extracts the price information from the user's input and saves it in a variable of type number. The extracted information contains the amount of money, regardless of the currency.\n**Steps to use Price Field**\n1. Create a new capture information card.\n2. Set the Type property to **Price**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted price information.\n4. Set the **Prompt message** property to a message that prompts the user to enter the price.\n5. Optionally, set the **Default value** property to a default price to be used if the user doesn't provide one.\n6. Save the card.\nOnce the card is saved, it will automatically extract the price information from the user's input and save it in the workflow variable you specified. You can then use this variable in other parts of your workflow to perform calculations or other operations that require the price information.\n**Example**\nLet's say you want to capture the user's price information to process a payment. You can create a new capture information card with the following properties:\n`Type: Price\nVariable name: paymentAmount\nPrompt message: Please enter the payment amount:\nDefault value: 0.00\n`\nWhen the user enters the price, the Price card will extract and save the information in the **paymentAmount** workflow variable. You can then use this variable in other parts of your workflow to process the payment, such as sending the payment information to a payment gateway.\nHere's an example of how you can use the extracted information in a message:\nText\n`Your payment amount is {{workflow.paymentAmount}}. Thank you for your payment!\n`\nThis will display the user's payment amount in a clear and easy-to-read format for both the user and the bot.\nRaw Input\n[](#raw-input)\nThe **RawInput** extracts the user's input as it is and saves it in a variable of type string. The extracted information can include any type of user input, including text, numbers, and special characters.\n**Steps to use Raw Input Field**\n1. Create a new capture information card.\n2. Set the Type property to **Raw Input**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted user input.\n4. Set the **Prompt message** property to a message that prompts the user to enter their input.\nOnce the card is used, it will automatically extract the user's input and save it in the workflow variable you specified as a string value. You can then use this variable in other parts of your workflow to process the user's input or display it back to them.\n**Example**\nLet's say you want your users to submit an issue for your product. You can create a new capture information card with the following properties:\n`Type: Raw Input\nVariable name: issueDescription\nPrompt message: Please describe the issue you are experiencing.\n`\nWhen the user enters the issue description, the Raw Input card will extract the user's input and save it in the **issueDescription** workflow variable as a string value. You can then use this variable in other parts of your workflow to log the issue or escalate it to the relevant team for resolution.\nYou can create a message node with the following text:\nText\n`Thank you for reporting the issue: {{issueDescription}}. Our team will investigate the issue and get back to you with an\nupdate as soon as possible.\n`\nThis will acknowledge the issue and provide the user with an estimated time frame for resolution.\nAnswer from a Knowledge Base\n[](#answer-from-a-knowledge-base)\nThe Raw Input card can also be used to search for answers in a Knowledge Base (KB) and answer the user's question directly. You can have it search across all available KBs or limit the search to a specific KB.\n**Searching All Knowledge Bases**\nTo enable the search across all available Knowledge Bases when the user asks a question:\n1. Create a new capture information card with the Type set to **Raw Input**.\n2. Make sure the \"Search in all KBs\" option is selected.\n3. In the **Prompt message** property, enter a message that encourages the user to input their question (e.g., “What would you like to know?”).\n4. Store the user's input in a variable by setting the **Variable name** property (e.g., `userQuery`) if you want to use it later.\nOnce set up, the chatbot will automatically search all configured Knowledge Bases for the user's inputted question and display the answer, provided that the Knowledge Agent's manual answering feature is not enabled.\n**Searching a Particular Knowledge Base**\nFor more targeted information retrieval, you may want to search within a specific KB:\n1. Create a new capture information card with the Type set to **Raw Input**.\n2. Deselect the \"Search in all KBs\" option.\n3. Provide the name of the KB you wish to search in the \"KBs to search in\" input field.\n4. In the **Prompt message** property, enter a prompt directing the user to ask their question.\n5. Set the **Variable name** property to save the user's query (e.g., `userQuerySpecific`) if you want to use it later.\nAfter the user submits their question, the chatbot will automatically conduct a search within the specified Knowledge Base and display the relevant answer. This happens seamlessly without the need for an action card to trigger the search, assuming that manual answering is turned off for the Knowledge Agent.\nPercentage\n[](#percentage)\nThe **Percentage** extracts the decimal representing the percentage the user is using from the user's input and saves it in a variable of type number. The extracted information can include values like 50%, 75%, or any other percentage.\n**Steps to use Percentage Field**\n1. Create a new capture information card.\n2. Set the Type property to **Percentage**.\n3. Set the **Variable name** property to the name of the workflow variable you want to use to store the extracted percentage value.\n4. Set the **Prompt message** property to a message that prompts the user to enter a percentage.\nOnce the card is used, it will automatically extract the decimal value representing the percentage from the user's input and save it in the workflow variable you specified as a number value. You can then use this variable in other parts of your workflow to make calculations or take actions based on the user's response.\n**Example**\nLet's say you want to ask the user what percentage discount they would like to apply to their purchase. You can create a new capture information card with the following properties:\n`Type: Percentage\nVariable name: discountPercentage\nPrompt message: **Please enter the percentage discount you would like to apply to your purchase.**\n`\nWhen the user enters their response, the Percentage card will extract the decimal value representing the percentage and save it in the **discountPercentage** workflow variable as a number. You can then use this variable in other parts of your workflow to calculate the discount or take actions based on the user's desired discount.\nFor example, if the user entered 50%, you could calculate the discount amount as follows:\nHTML\n`discountAmount = totalPrice * (discountPercentage / 100)\n`\nThis will calculate the discount amount based on the user's desired discount percentage and the total price of the purchase.\nQuantity\n[](#quantity)\nThe **Quantity** extracts the quantity information from the user's input and saves it in a variable of type number. For example, if the user inputs \"I want to buy 5 apples\" or \"Give me 5 kilograms of apples\", the function will extract the number 5 and store it as a numerical value, without regard to the different units of measurement used. This allows you to work with the quantity of the item, regardless of how the user expressed it\n<|new_information|>","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:summarize","promptSource":"zai:summarize:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
**Botpress** – a cloud‑native platform for creating, deploying and managing AI‑powered chatbots with a visual studio, extensible integrations and built‑in analytics.

---

## 📚 Documentation Overview (Table of Contents)

### 1. Getting Started
- **Build** – create a bot project.
- **Deploy** – publish to Botpress Cloud.
- **Monitor** – observe health and usage.

### 2. Dashboard
- **Workspace** – Home, Members, Audits, Integrations, Usage, Settings, Profile.
- **Bot** – Overview, Integrations, Webchat, Logs, Conversations, Analytics, Events, Issues, **Configuration Variables**.

### 3. Studio (visual flow editor)
- **Interface** – Nodes, Home, Flows, Knowledge Base, Tables.
- **Agents** – Summary, Personality, Policy, Translator, Knowledge, HITL, Vision, Analytics.
- **Library**, **Hooks**, **Integrations**, **Schemas**, **Card Hub**, **Versions**, **Chatbot Settings**, **Variables**, **Debugger/Logs/JSON**, **Emulator**, **Keyboard Shortcuts**, **Commands**, **Preferences**, **Import & Export**.

### 4. Cards (building‑block actions)
- **Send Messages** – text, image, carousel, etc.
- **Execute** – run custom code.
- **Webchat** – embed the chat widget.
- **Flow Logic** – conditional routing.
- **AI** – tasks, transitions, text generation.

### 5. Webchat
- **Core features** – Flow Logic, AI, Capture Information, Events, Agents, Utilities.
- **Version 1 (deprecated)** – controlling via JavaScript, styling (button, header, input area, bot info), embedding (React, React Native, iframe, full‑screen).
- **Version 2** – Embedded Webchat, Custom CSS, React components, Webchat client.

### 6. Integrations
#### Usage (pre‑built channels)
- Asana, HITL, Instagram, Intercom, Line, Messenger, Microsoft Teams, Notion, Slack, Sunshine Conversations, Telegram, Trello, Twilio, Viber, Vonage, Webhook, WhatsApp (manual config), Zapier, Zendesk.

#### Building your own
- **Getting Started** – add messaging capabilities, actions & triggers, publish to Botpress Hub.
- **LLM Interfaces** – use your own large language model.
- **Live‑agent (HITL)** – connect human agents.
- **Moving Parts**, **CLI**, **SDK**.
- **Key Concepts** – Architecture, Tags, Channels, Configuration, User, Conversations, Messages, Event, States, Actions, Definitions, Secrets, ZUI (beta).
- **How‑to** – States (register/unregister), Integration actions/events, Handlers, Logging, Custom integration.

### 7. Botpress APIs
- **Files API** – manage assets.
- **Chat API** – interact with bots programmatically.

### 8. Appendix
- **Safety** – Preventing Abuse, Brand Safety Framework.
- **Exporting Data** –
  - *Raw Conversations* (API)
  - *Conversation History* (in‑bot)
  - *Streaming Analytics* (Hooks)
  - *Compiled Bot Analytics* (API)

---

## 🔑 Core Features Highlighted in the Docs

### Exporting & Analytics
- Obtain a **personal access token** from the dashboard.
- Example Axios request to `/admin/{botId}/analytics` returns JSON records with `startDateTimeUtc`, `endDateTimeUtc`, `returningUsers`, `newUsers`, `sessions`, `messages`.
- Use the data to build internal dashboards or stream real‑time events via **Hooks** to services like Mixpanel, Hotjar, Segment, Amplitude.

### Configuration Variables
- Store secrets (API keys, DB credentials).
- **Development** – set in Studio (emulator only).
- **Production** – set in the Dashboard → Configuration Variables tab.
- Access in flows: `{{env.KEY}}` or `env.KEY` in Execute Code cards.

### Capture Information Cards
- Prompt users and extract typed data into workflow variables.
- **Supported field types** (each maps to a variable type):
  - **SingleChoice**, **MultipleChoice**, **Boolean**, **Confirmation**, **Number**, **EmailAddress**, **PhoneNumber**, **FullAddress**, **Price**, **RawInput**, **Percentage**, **Quantity**, **Color**, **TimeMeasurement**, **WeightMeasurement**, **CronSchedule**, **OperatingSystem**, **QuantityofPeople**, **VolumeMeasurement**, **TemperatureMeasurement**, **Person**, **DateTime**.
- Example: a *SingleChoice* card asking “Preferred transport?” stores the answer in `preferredTransportation`.

### Controlling the Webchat Widget (JavaScript SDK)
```js
window.botpressWebChat = { init, mergeConfig, onEvent, sendPayload, sendEvent };
```
- **init** – set `botId`, `hostUrl`, `messagingUrl`, `clientId`, optional `userData`.
- **mergeConfig** – update widget options (e.g., `showTimestamp`).
- **sendEvent** – show/hide/toggle chat, load specific conversation, etc.
- **sendPayload** – send a text or custom message to the bot.
- **onEvent** – listen for lifecycle events (e.g., `MESSAGE.RECEIVED`).

---

### Summary
The Botpress documentation covers the full lifecycle of a chatbot:

1. **Starting** a project → **building** flows in Studio.
2. **Enriching** interactions with Cards, AI, and Capture Information.
3. **Deploying** via the Dashboard, configuring variables, and monitoring analytics.
4. **Integrating** with dozens of third‑party channels or creating custom connectors via the SDK/CLI.
5. **Embedding** the Webchat widget and controlling it programmatically.
6. **Exporting** conversation and analytics data for BI or compliance needs.

All sections are organized hierarchically as shown above, giving a complete, high‑level map of the Botpress docs without diving into any single feature.