Route messages between bots based on configurable conditions
BotMux can route messages between bots based on configurable rules.
Condition Types
Type
Description
Text match
Regex pattern matching on message text (case-insensitive)
User ID
Messages from a specific Telegram user
Chat ID
All messages from a specific chat/group
LLM
AI-based routing — describe the rule in natural language
Actions
Action
Description
Forward
Send message text as a new message via the target bot
Copy
Forward the original message preserving author attribution via forwardMessage
Drop
Silently ignore the message
Source-NAT Return Path
Replies to routed messages are automatically sent back through the original source bot to the original chat, maintaining conversational context. Each reply creates a new mapping, enabling ongoing cross-bot dialogs.
Loop Protection
Bot-originated messages are not reverse-routed, preventing infinite routing loops.
Management
Route rules are managed per-bot from the web UI with enable/disable toggle.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"BotMux","colors":{"primary":"#2563EB","light":"#60A5FA","dark":"#1D4ED8"},"logo":{"light":"https://mintcdn.com/botmux/9WhspsFNgwz08EH-/docs/logo/light.svg?fit=max\u0026auto=format\u0026n=9WhspsFNgwz08EH-\u0026q=85\u0026s=c5e02d831e50530eefc11d38602ec257","dark":"https://mintcdn.com/botmux/9WhspsFNgwz08EH-/docs/logo/dark.svg?fit=max\u0026auto=format\u0026n=9WhspsFNgwz08EH-\u0026q=85\u0026s=ca5630149012af18662d736ddcf064f5"},"favicon":"https://mintcdn.com/botmux/9WhspsFNgwz08EH-/docs/favicon.svg?fit=max\u0026auto=format\u0026n=9WhspsFNgwz08EH-\u0026q=85\u0026s=5f7a0653284f7f14f04e8833a6be6f9c","api":{},"navbar":{"links":[{"href":"https://botmux.exe.xyz","label":"Demo"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/skrashevich/botmux"}},"footer":{"socials":{"github":"https://github.com/skrashevich/botmux"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"docs/en"},{"language":"ru","href":"docs/ru"},{"language":"zh","href":"docs/zh"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"botmux","hasAudioNarration":false,"actualSubdomain":"botmux","customDomains":["docs.botmux.dev"],"gitSource":{"type":"github","owner":"skrashevich","repo":"botmux","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6acea7ca2936335b03160dee","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"en","tag":"Documentation","count":36},{"language":"ru","tag":"Документация","count":36},{"language":"zh","tag":"文档","count":36},{"language":"en","tag":"API Reference","count":35},{"language":"ru","tag":"Справочник API","count":35},{"language":"zh","tag":"API 参考","count":35},{"language":"en","tag":"Features","count":10},{"language":"ru","tag":"Функции","count":10},{"language":"zh","tag":"功能","count":10},{"language":"en","tag":"Bots","count":7},{"language":"ru","tag":"Боты","count":7},{"language":"zh","tag":"机器人","count":7},{"language":"zh","tag":"路由","count":7},{"language":"en","tag":"Messages","count":6},{"language":"ru","tag":"Сообщения","count":6},{"language":"zh","tag":"消息","count":6},{"language":"en","tag":"Admins","count":4},{"language":"en","tag":"Routes","count":4},{"language":"en","tag":"Tags","count":4},{"language":"en","tag":"Configuration","count":4},{"language":"en","tag":"Getting Started","count":4},{"language":"ru","tag":"Администраторы","count":4},{"language":"ru","tag":"Маршруты","count":4},{"language":"ru","tag":"Теги","count":4},{"language":"ru","tag":"Конфигурация","count":4},{"language":"ru","tag":"Начало работы","count":4},{"language":"zh","tag":"管理员","count":4},{"language":"zh","tag":"标签","count":4},{"language":"zh","tag":"配置","count":4},{"language":"zh","tag":"入门","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"docs/en/routing/inter-bot-routing","slug":"/docs/en/routing/inter-bot-routing","pageMetadata":{"title":"Inter-Bot Routing","description":"Route messages between bots based on configurable conditions","href":"/docs/en/routing/inter-bot-routing"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Route messages between bots based on configurable conditions\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`BotMux can route messages between bots based on configurable rules.`}),`\n`,_jsx(Heading,{level:`2`,id:`condition-types`,children:`Condition Types`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Text match`})}),_jsx(_components.td,{children:`Regex pattern matching on message text (case-insensitive)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`User ID`})}),_jsx(_components.td,{children:`Messages from a specific Telegram user`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Chat ID`})}),_jsx(_components.td,{children:`All messages from a specific chat/group`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`LLM`})}),_jsx(_components.td,{children:`AI-based routing — describe the rule in natural language`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`actions`,children:`Actions`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Forward`})}),_jsx(_components.td,{children:`Send message text as a new message via the target bot`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Copy`})}),_jsxs(_components.td,{children:[`Forward the original message preserving author attribution via `,_jsx(_components.code,{children:`forwardMessage`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Drop`})}),_jsx(_components.td,{children:`Silently ignore the message`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`source-nat-return-path`,children:`Source-NAT Return Path`}),`\n`,_jsx(_components.p,{children:`Replies to routed messages are automatically sent back through the original source bot to the original chat, maintaining conversational context. Each reply creates a new mapping, enabling ongoing cross-bot dialogs.`}),`\n`,_jsx(Heading,{level:`2`,id:`loop-protection`,children:`Loop Protection`}),`\n`,_jsx(_components.p,{children:`Bot-originated messages are not reverse-routed, preventing infinite routing loops.`}),`\n`,_jsx(Heading,{level:`2`,id:`management`,children:`Management`}),`\n`,_jsx(_components.p,{children:`Route rules are managed per-bot from the web UI with enable/disable toggle.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Inter-Bot Routing","description":"Route messages between bots based on configurable conditions","href":"/docs/en/routing/inter-bot-routing"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Condition Types","slug":"condition-types","depth":2,"children":[]},{"title":"Actions","slug":"actions","depth":2,"children":[]},{"title":"Source-NAT Return Path","slug":"source-nat-return-path","depth":2,"children":[]},{"title":"Loop Protection","slug":"loop-protection","depth":2,"children":[]},{"title":"Management","slug":"management","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/botmux/4aec683526972be5/internal/server/templates/assets/telegram-ui.js"],"subdomain":"botmux","siteName":"BotMux","title":"Inter-Bot Routing - BotMux","contextualStarterQuestions":[{"_id":"69c1838dc6c3dabe19e30c69","deploymentId":"69c0760ebfae8e8141dfcb88","questionText":"How are replies handled in routing?","status":"active","generatedBy":"contextual","path":"docs/en/routing/inter-bot-routing","createdAt":"2026-03-23T18:16:45.884Z","updatedAt":"2026-03-23T18:16:45.884Z","__v":0},{"_id":"69c1838dc6c3dabe19e30c67","deploymentId":"69c0760ebfae8e8141dfcb88","questionText":"How do I route messages between bots?","status":"active","generatedBy":"contextual","path":"docs/en/routing/inter-bot-routing","createdAt":"2026-03-23T18:16:45.884Z","updatedAt":"2026-03-23T18:16:45.884Z","__v":0},{"_id":"69c1838dc6c3dabe19e30c68","deploymentId":"69c0760ebfae8e8141dfcb88","questionText":"What routing conditions are available?","status":"active","generatedBy":"contextual","path":"docs/en/routing/inter-bot-routing","createdAt":"2026-03-23T18:16:45.884Z","updatedAt":"2026-03-23T18:16:45.884Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/routing/inter-bot-routing","matchLevel":0},"ru":{"href":"/docs/ru/routing/inter-bot-routing","matchLevel":1},"zh":{"href":"/docs/zh/routing/inter-bot-routing","matchLevel":1}}},"lastModified":"2026-03-23T18:16:23.347Z","originalFileLocation":"docs/en/routing/inter-bot-routing.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Route messages between bots based on configurable conditions\">\u003cmeta data-mint-head name=\"application-name\" content=\"BotMux\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Inter-Bot Routing - BotMux\">\u003cmeta data-mint-head property=\"og:description\" content=\"Route messages between bots based on configurable conditions\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"BotMux\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://botmux.mintlify.site/_mintlify/api/og/v2?division=Routing\u0026amp;title=Inter-Bot+Routing\u0026amp;description=Route+messages+between+bots+based+on+configurable+conditions\u0026amp;theme=96cbeb44b3fd6eaa66365d4b\u0026amp;signature=fb410fd838e31d352d2bb03b16417483b22e7c520148410312bcafd015964e13\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Inter-Bot Routing - BotMux\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Route messages between bots based on configurable conditions\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://botmux.mintlify.site/_mintlify/api/og/v2?division=Routing\u0026amp;title=Inter-Bot+Routing\u0026amp;description=Route+messages+between+bots+based+on+configurable+conditions\u0026amp;theme=96cbeb44b3fd6eaa66365d4b\u0026amp;signature=fb410fd838e31d352d2bb03b16417483b22e7c520148410312bcafd015964e13\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/botmux/fr5g8gAVOWdg5DL2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"BotMux\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/en/routing/inter-bot-routing.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.botmux.dev/docs/ru/routing/inter-bot-routing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.botmux.dev/docs/zh/routing/inter-bot-routing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.botmux.dev/#organization\",\"name\":\"BotMux\",\"url\":\"https://docs.botmux.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/botmux/9WhspsFNgwz08EH-/docs/logo/light.svg?fit=max\u0026auto=format\u0026n=9WhspsFNgwz08EH-\u0026q=85\u0026s=c5e02d831e50530eefc11d38602ec257\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.botmux.dev#website\",\"name\":\"BotMux\",\"url\":\"https://docs.botmux.dev\",\"publisher\":{\"@id\":\"https://docs.botmux.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing#webpage\",\"url\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\",\"name\":\"Inter-Bot Routing\",\"description\":\"Route messages between bots based on configurable conditions\",\"dateModified\":\"2026-03-23T18:16:23.347Z\",\"isPartOf\":{\"@id\":\"https://docs.botmux.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"BotMux\",\"item\":\"https://docs.botmux.dev\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inter-Bot Routing\",\"item\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing#article\",\"headline\":\"Inter-Bot Routing\",\"name\":\"Inter-Bot Routing\",\"description\":\"Route messages between bots based on configurable conditions\",\"url\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing\",\"mainEntityOfPage\":{\"@id\":\"https://docs.botmux.dev/docs/en/routing/inter-bot-routing#webpage\"},\"dateModified\":\"2026-03-23T18:16:23.347Z\",\"publisher\":{\"@id\":\"https://docs.botmux.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.botmux.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BotMux\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"BotMux\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/en/routing/inter-bot-routing.md","siteName":"BotMux","nav":{"global":null,"languages":[{"language":"en","dropdowns":[{"dropdown":"Documentation","icon":"book","description":"Learn how to use BotMux","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/docs/en"},{"title":"Quick Start","href":"/docs/en/quickstart"},{"title":"Installation","href":"/docs/en/installation"},{"title":"Docker","href":"/docs/en/docker"}]},{"group":"Core Concepts","pages":[{"title":"How It Works","href":"/docs/en/concepts/how-it-works"},{"title":"Multi-Bot Management","href":"/docs/en/concepts/multi-bot"},{"title":"Bot Setup","href":"/docs/en/concepts/bot-setup"}]},{"group":"Features","pages":[{"title":"Reverse Proxy","href":"/docs/en/features/reverse-proxy"},{"title":"Long Polling","href":"/docs/en/features/long-polling"},{"title":"API Proxy","href":"/docs/en/features/api-proxy"},{"title":"Message Monitoring","href":"/docs/en/features/message-monitoring"},{"title":"Analytics","href":"/docs/en/features/analytics"},{"title":"Admin Actions","href":"/docs/en/features/admin-actions"},{"title":"User Tags","href":"/docs/en/features/user-tags"},{"title":"Audit Log","href":"/docs/en/features/audit-log"},{"title":"Media Support","href":"/docs/en/features/media-support"},{"title":"Internationalization","description":"Multi-language interface support","href":"/docs/en/features/i18n"}]},{"group":"Routing","pages":[{"title":"Inter-Bot Routing","href":"/docs/en/routing/inter-bot-routing"},{"title":"LLM Routing","description":"AI-based smart routing via any OpenAI-compatible API","href":"/docs/en/routing/llm-routing"},{"title":"Source-NAT","href":"/docs/en/routing/source-nat"}]},{"group":"Bridges","pages":[{"title":"Protocol Bridges","href":"/docs/en/bridges/overview"},{"title":"Slack Bridge","href":"/docs/en/bridges/slack"},{"title":"Webhook Bridge","href":"/docs/en/bridges/webhook"}]},{"group":"Authentication","pages":[{"title":"Authentication","href":"/docs/en/auth/overview"},{"title":"Users \u0026 Roles","href":"/docs/en/auth/users-and-roles"},{"title":"API Keys","href":"/docs/en/auth/api-keys"}]},{"group":"Configuration","pages":[{"title":"CLI Flags","href":"/docs/en/configuration/cli-flags"},{"title":"Environment Variables","href":"/docs/en/configuration/environment-variables"},{"title":"Custom Telegram API","href":"/docs/en/configuration/custom-telegram-api"},{"title":"Demo Mode","href":"/docs/en/configuration/demo-mode"}]},{"group":"Architecture","pages":[{"title":"Architecture","href":"/docs/en/architecture/overview"},{"title":"Data Flow","href":"/docs/en/architecture/data-flow"},{"title":"Storage","href":"/docs/en/architecture/storage"}]},{"group":"Deployment","pages":[{"title":"Requirements","href":"/docs/en/deployment/requirements"},{"title":"Resource Requirements","href":"/docs/en/deployment/resource-requirements"},{"title":"Security","href":"/docs/en/deployment/security"}]}]},{"dropdown":"API Reference","icon":"rectangle-terminal","description":"REST API endpoints","groups":[{"group":"Bots","pages":[{"title":"List Bots","openapi":"GET /api/bots","href":"/docs/en/api-reference/bots/list"},{"title":"Add Bot","openapi":"POST /api/bots/add","href":"/docs/en/api-reference/bots/add"},{"title":"Update Bot","openapi":"POST /api/bots/update","href":"/docs/en/api-reference/bots/update"},{"title":"Delete Bot","openapi":"POST /api/bots/delete","href":"/docs/en/api-reference/bots/delete"},{"title":"Toggle bot disabled","openapi":"POST /api/bots/toggle-disabled","href":"/docs/en/api-reference/bots/toggle-disabled"},{"title":"Validate Token","openapi":"GET /api/bots/validate","href":"/docs/en/api-reference/bots/validate"},{"title":"Check Health","openapi":"GET /api/bots/health","href":"/docs/en/api-reference/bots/health"}]},{"group":"Chats","pages":[{"title":"List Chats","openapi":"GET /api/chats","href":"/docs/en/api-reference/chats/list"},{"title":"Refresh Chat","openapi":"GET /api/chats/refresh","href":"/docs/en/api-reference/chats/refresh"},{"title":"Delete Chat","openapi":"POST /api/chats/delete","href":"/docs/en/api-reference/chats/delete"}]},{"group":"Messages","pages":[{"title":"List Messages","openapi":"GET /api/messages","href":"/docs/en/api-reference/messages/list"},{"title":"Search Messages","openapi":"GET /api/messages/search","href":"/docs/en/api-reference/messages/search"},{"title":"Send Message","openapi":"POST /api/messages/send","href":"/docs/en/api-reference/messages/send"},{"title":"Pin Message","openapi":"POST /api/messages/pin","href":"/docs/en/api-reference/messages/pin"},{"title":"Unpin Message","openapi":"POST /api/messages/unpin","href":"/docs/en/api-reference/messages/unpin"},{"title":"Delete Message","openapi":"POST /api/messages/delete","href":"/docs/en/api-reference/messages/delete"}]},{"group":"Users","pages":[{"title":"List Users","openapi":"GET /api/users/list","href":"/docs/en/api-reference/users/list"},{"title":"Ban User","openapi":"POST /api/users/ban","href":"/docs/en/api-reference/users/ban"},{"title":"Unban User","openapi":"POST /api/users/unban","href":"/docs/en/api-reference/users/unban"}]},{"group":"Admins","pages":[{"title":"List Admins","openapi":"GET /api/admins","href":"/docs/en/api-reference/admins/list"},{"title":"Promote User","openapi":"POST /api/admins/promote","href":"/docs/en/api-reference/admins/promote"},{"title":"Demote Admin","openapi":"POST /api/admins/demote","href":"/docs/en/api-reference/admins/demote"},{"title":"Set Admin Title","openapi":"POST /api/admins/title","href":"/docs/en/api-reference/admins/title"}]},{"group":"Tags","pages":[{"title":"List Tags","openapi":"GET /api/tags","href":"/docs/en/api-reference/tags/list"},{"title":"User Tags","openapi":"GET /api/tags/user","href":"/docs/en/api-reference/tags/user-tags"},{"title":"Add Tag","openapi":"POST /api/tags/add","href":"/docs/en/api-reference/tags/add"},{"title":"Remove Tag","openapi":"POST /api/tags/remove","href":"/docs/en/api-reference/tags/remove"}]},{"group":"Routes","pages":[{"title":"List Routes","openapi":"GET /api/routes","href":"/docs/en/api-reference/routes/list"},{"title":"Add Route","openapi":"POST /api/routes/add","href":"/docs/en/api-reference/routes/add"},{"title":"Update Route","openapi":"POST /api/routes/update","href":"/docs/en/api-reference/routes/update"},{"title":"Delete Route","openapi":"POST /api/routes/delete","href":"/docs/en/api-reference/routes/delete"}]},{"group":"Analytics \u0026 Audit","pages":[{"title":"Chat Statistics","openapi":"GET /api/stats","href":"/docs/en/api-reference/analytics/stats"},{"title":"Audit Log","openapi":"GET /api/adminlog","href":"/docs/en/api-reference/audit-log/list"}]},{"group":"Long Polling \u0026 Proxy","pages":[{"title":"Poll Updates","openapi":"GET /api/updates/poll","href":"/docs/en/api-reference/long-polling/poll"},{"title":"Telegram API Proxy","href":"/docs/en/api-reference/telegram-proxy/proxy"}]}]}]},{"language":"ru","pages":[{"title":"ru","href":"/docs/ru/routing/inter-bot-routing"}]},{"language":"zh","pages":[{"title":"zh","href":"/docs/zh/routing/inter-bot-routing"}]}]},"basePath":"","title":"Inter-Bot Routing - BotMux","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}