How to connect the school’s own Telegram bot, link students’ Telegram accounts and invite them to the group’s channel and chat automatically.
A school connects its own Telegram bot: it works under your name and with your token. Through the bot, students sign in to the school with Telegram, get personal invitations to their group’s Telegram channel and chat, and receive service messages from the school.
Shows the Sign in with Telegram button on the sign-in page of a public school. A private school has no such button; if you make the school public again, it comes back.
Links the student’s Telegram account to their profile.
Sends the student personal invite links to the group’s Telegram channel and chat.
Removes the student from the channel and chat when they are removed from the group.
Sends service messages to students with a linked Telegram: about a failed charge and the end of a subscription (commercial schools only), the password recovery code, and login details if the account was created automatically. The bot doesn’t send course or webinar reminders.
The setting is available in a public school where registration with Telegram is turned on. In a private school, the Telegram setup section is not shown. In a corporate school, these are Public company and Private company, and a new company is created as private — see Company connection and setup.
1
Turn on Telegram in the registration methods
Open My school → Login and registration (in a corporate school — Company → Login and registration). In the Registration methods block, turn on Telegram and save. The Telegram setup section appears below.
2
Create a bot
In Telegram, open @BotFather and create a bot. BotFather gives you the bot token.
3
Get the Client ID
In @BotFather, select the bot and open the Login Widget setting. If the method is not turned on, click Switch to OpenID Connect Login and confirm. Copy the Client ID.
4
Add the school address in BotFather
In the same settings, add the school address to Redirect URIs and Trusted Origins. The exact links — for the base domain and for your own domain if it is connected — are shown in the How to connect hint in the Telegram setup section.
5
Fill in the settings in the school
In the Telegram setup section, paste the Client ID into the Telegram login block, and the token into the Bot’s token field in the Bot notifications block. The Bot’s name field fills in automatically: the platform checks the token in Telegram and inserts the bot name.
6
Save
Click Save. You can save the form only if both Client ID and Bot’s token are filled in.
Telegram does not apply changes right away and may cache the settings. Test signing in with Telegram in incognito mode.
If the token is wrong, an error from Telegram appears under the field, and the bot name is not inserted. Learn more about sign-in methods in Login and registration.
In the profile settings.Settings → Account settings → Telegram. The item is shown if the school has a bot set up. Until Telegram is linked, it says “Not connected” next to it.
In a course lesson. If the student is in a group with Telegram connected but has not linked their account yet, the lesson shows the Connect Telegram block — “After this, the bot will send you an invitation link”.
At payment (commercial schools only). If Request Telegram before payment is turned on for the group, the student links Telegram right on the payment page.
When linking, the student allows the school bot to send them private messages — without this, the bot cannot send the invitation. One Telegram account can be linked to only one profile in the school. The student can unlink Telegram in the same profile settings; the platform asks to confirm the action.
You can link each course group to a Telegram channel, a Telegram chat or both.
1
Prepare the channel and chat
Add the school bot as an admin of the channel and chat and give it the rights to invite and remove members.
2
Open the group settings
Go to Courses → select a course → Groups → select a group → Settings and open the Chat and channel tab.
3
Enter the channel and chat IDs
In the In Telegram block, fill in Telegram channel ID and Telegram group ID. These are numeric IDs, for example “-12345678”. The Instruction link next to the block title leads to a step-by-step guide.
4
Set up the welcome message and save
In the Telegram settings block, fill in Welcome message when sending an invitation link if needed and turn on Request Telegram before payment (in a corporate school — Request Telegram before course enrollment). Save the group settings.
If the school has no bot token set, the Chat and channel tab shows the warning School Telegram bot token is not set. Click it to go to the setup.
On the same tab, in the Inside the platform block, you turn on Group chat in messenger and Channel in messenger. These are chats inside the platform, and they work independently of Telegram. Learn more in Group settings.
A student with a linked Telegram was added to the group: after payment, manually or automatically
Sends a private message with the 👉 Channel and 👉 Group buttons
A student in the group linked Telegram later
Sends invitations to all of their groups with Telegram connected that they have not been invited to yet
The student was removed from the group: manually, after a subscription was cancelled, after a refund, a transfer to another group or the deletion of the group
Revokes their link and removes them from the channel and chat
A staff member clicked Send invites
Sends invitations to all members with a linked Telegram who have not yet received a link to the current channel and chat
Invitation rules:
Each link is personal and single-use: only one person can join with it.
The message text is your Welcome message of up to 500 characters with Markdown (V2) support. If it is not set, the bot writes “Invite link”.
If you change the channel or chat ID, students already added do not get an invitation automatically. Click Send invites.
Invitations are sent in the background. If the group has many members, sending takes some time.
If the group has members with a linked Telegram who have not been sent a link to the current channel or chat yet, the Chat and channel tab shows the Missed Telegram invites block with the Send invites button and a counter of such members. After you confirm, the message “Invitations have been queued” appears.The status of each member is visible in the group’s student list, in the Telegram column. The column is shown only if Telegram is connected to the group.
Status
What it means
Invite link sent
The bot sent an invitation to the current channel and chat
Invite link not sent
The invitation has not been sent yet
Telegram not linked
The student has not linked Telegram to their profile
Previous chat link sent
The invitation was to a channel or chat that has been replaced with a new one. You need to send the invitations again
The check on the payment page exists only in commercial schools. In a corporate school, the toggle is called Request Telegram before course enrollment.
If you turn on this setting, a linked Telegram becomes a required condition for buying a tariff that enrolls the student in this group:
a signed-in student without Telegram sees “To continue — connect Telegram” and cannot go to payment until they link an account;
a buyer who is not signed in sees “To continue — log in via Telegram” and signs in to the school with Telegram.
This way every buyer has Telegram, and the bot can send the invitation right away.
Why is there no “Telegram setup” section in the school settings?
The section appears only if the school is public and Telegram is turned on in the Registration methods. Turn on the toggle and save the settings.
Why aren't the bot settings saved?
The form is saved only when both required fields are filled in: Client ID and Bot’s token. If there is an error under the token field, check that the token was copied from @BotFather in full.
A student paid for a course but did not get an invitation to the Telegram channel. Why?
Check in order: whether the student has Telegram linked, whether the bot token is set in the school, whether the channel and chat IDs are filled in correctly in the group, and whether the bot was added as an admin with the right to invite members. If the student blocked the bot, the message will not reach them. After fixing the problem, click Send invites on the Chat and channel tab.
Can I forward an invite link to another person?
There is no point: the link is single-use and personal. After the first person joins with it, nobody else can. Besides, the link is revoked when the student is removed from the group.
We changed the group's Telegram chat. How do we invite all students there?
After saving the new ID, open the Chat and channel tab and click Send invites. The bot sends links to all members with a linked Telegram who do not have an invitation to the new chat yet. In the student list, they currently have the Previous chat link sent status.
Will the bot remove a student from the chat if their access has ended?
The bot removes the student from the channel and chat when the student is removed from the group: manually, after a subscription is cancelled, after a refund, when they are transferred to another group or when the group is deleted.
A student says “This Telegram is already linked to another account”. What should I do?
One Telegram account can be linked to only one profile in the school. The student needs to unlink Telegram from the other profile in Settings → Account settings → Telegram or use a different Telegram account.
Can I change the text of the invitation message?
Yes. Fill in Welcome message when sending an invitation link on the Chat and channel tab — up to 500 characters, Markdown (V2) is supported. The bot adds the 👉 Channel and 👉 Group buttons on its own.
Can I send newsletters to students through the bot?
No. The bot sends only invitations to the group’s channel and chat and service messages: about subscription problems, the password recovery code and login details. For regular messages, use the group channel.
Updated: 2026-10-17 07:07 UTC
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Exode — Product documentation","colors":{"primary":"#0e32cf","light":"#3a9cfc","dark":"#0e32cf"},"logo":{"light":"https://mintcdn.com/exode-faq/RM155sfnW-prDXlV/logo/dark.svg?fit=max\u0026auto=format\u0026n=RM155sfnW-prDXlV\u0026q=85\u0026s=226b8c34c13ebf24544dd5b62ed2a413","dark":"https://mintcdn.com/exode-faq/nK1GoAso5impPdQT/logo/light.svg?fit=max\u0026auto=format\u0026n=nK1GoAso5impPdQT\u0026q=85\u0026s=e9f1d77186583292eb8e9ff7839322c2"},"favicon":"https://mintcdn.com/exode-faq/Qt_iwajwYtzMNgtj/favicon.ico?fit=max\u0026auto=format\u0026n=Qt_iwajwYtzMNgtj\u0026q=85\u0026s=ab877d4deb8ab432bb3f59ae7580f411","navbar":{"links":[{"icon":"phone","href":"tel:781139570","label":"78-113-95-70"},{"href":"https://docs.exode.biz/en/welcome","label":"API"}],"primary":{"type":"button","label":"Support","href":"https://t.me/exode_biz_support"}},"footer":{"socials":{"telegram":"https://t.me/exode_biz","instagram":"https://www.instagram.com/exode_uz"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","navbar":{"links":[{"icon":"phone","href":"tel:781139570","label":"78-113-95-70"},{"href":"https://docs.exode.biz/en/welcome","label":"API"}],"primary":{"type":"button","label":"Support","href":"https://t.me/exode_biz_support"}},"href":"en/welcome"},{"language":"ru","navbar":{"links":[{"icon":"phone","href":"tel:781139570","label":"78-113-95-70"},{"href":"https://docs.exode.biz/ru/welcome","label":"API"}],"primary":{"type":"button","label":"Поддержка","href":"https://t.me/exode_biz_support"}},"href":"ru/welcome"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"exode-faq","hasAudioNarration":false,"actualSubdomain":"exode-faq","customDomains":["faq.exode.biz"],"gitSource":{"type":"github","owner":"aslanorlov","repo":"exode-faq","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"f8ffc1b8-5299-4bc5-b826-b92fb598100f","liveDeploymentHistoryId":"6ad325650d7b01a838871775","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad325650d7b01a838871775"},"entitlements":{},"buildId":"6ad325650d7b01a838871775","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"en","tag":"General","count":54},{"language":"ru","tag":"Общее","count":54},{"language":"en","tag":"Corporate training and HR","count":14},{"language":"ru","tag":"Корпобучение и HR","count":14},{"language":"en","tag":"Online schools","count":12},{"language":"ru","tag":"Онлайн-школы","count":12},{"language":"en","tag":"Getting started","count":7},{"language":"en","tag":"Courses","count":7},{"language":"en","tag":"School setup","count":7},{"language":"ru","tag":"Начало работы","count":7},{"language":"ru","tag":"Курсы","count":7},{"language":"ru","tag":"Настройка школы","count":7},{"language":"en","tag":"Sales and payments","count":6},{"language":"ru","tag":"Продажи и платежи","count":6},{"language":"en","tag":"Communication and content","count":5},{"language":"en","tag":"Lessons and modules","count":5},{"language":"en","tag":"School customization","count":5},{"language":"ru","tag":"Общение и контент","count":5},{"language":"ru","tag":"Уроки и модули","count":5},{"language":"ru","tag":"Кастомизация школы","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"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":"llms-txt-v2","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":"per-site-search-delta","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":"editor-private-page-search","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/general/communication/telegram-bot","slug":"/en/general/communication/telegram-bot","pageMetadata":{"title":"School Telegram bot","description":"How to connect the school's own Telegram bot, link students' Telegram accounts and invite them to the group's channel and chat automatically.","href":"/en/general/communication/telegram-bot"},"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: \"How to connect the school’s own Telegram bot, link students’ Telegram accounts and invite them to the group’s channel and chat automatically.\"\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={a:`a`,em:`em`,hr:`hr`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading,Note,Step,Steps,Table,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A school connects its own Telegram bot: it works under your name and with your token. Through the bot, students sign in to the school with Telegram, get personal invitations to their group’s Telegram channel and chat, and receive service messages from the school.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-the-bot-can-do`,children:`What the bot can do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Shows the `,_jsx(_components.strong,{children:`Sign in with Telegram`}),` button on the sign-in page of a public school. A private school has no such button; if you make the school public again, it comes back.`]}),`\n`,_jsx(_components.li,{children:`Links the student’s Telegram account to their profile.`}),`\n`,_jsx(_components.li,{children:`Sends the student personal invite links to the group’s Telegram channel and chat.`}),`\n`,_jsx(_components.li,{children:`Removes the student from the channel and chat when they are removed from the group.`}),`\n`,_jsx(_components.li,{children:`Sends service messages to students with a linked Telegram: about a failed charge and the end of a subscription (commercial schools only), the password recovery code, and login details if the account was created automatically. The bot doesn’t send course or webinar reminders.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`connecting-the-bot`,children:`Connecting the bot`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The setting is available in a public school where registration with Telegram is turned on. In a private school, the Telegram setup section is not shown. In a corporate school, these are `,_jsx(_components.strong,{children:`Public company`}),` and `,_jsx(_components.strong,{children:`Private company`}),`, and a new company is created as private — see `,_jsx(_components.a,{href:`/en/corporate/setup`,children:`Company connection and setup`}),`.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Turn on Telegram in the registration methods`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`My school → Login and registration`}),` (in a corporate school — `,_jsx(_components.strong,{children:`Company → Login and registration`}),`). In the `,_jsx(_components.strong,{children:`Registration methods`}),` block, turn on `,_jsx(_components.strong,{children:`Telegram`}),` and save. The `,_jsx(_components.strong,{children:`Telegram setup`}),` section appears below.`]})}),_jsx(Step,{title:`Create a bot`,children:_jsxs(_components.p,{children:[`In Telegram, open `,_jsx(_components.a,{href:`https://t.me/BotFather`,children:`@BotFather`}),` and create a bot. BotFather gives you the bot token.`]})}),_jsx(Step,{title:`Get the Client ID`,children:_jsxs(_components.p,{children:[`In @BotFather, select the bot and open the `,_jsx(_components.strong,{children:`Login Widget`}),` setting. If the method is not turned on, click `,_jsx(_components.strong,{children:`Switch to OpenID Connect Login`}),` and confirm. Copy the `,_jsx(_components.strong,{children:`Client ID`}),`.`]})}),_jsx(Step,{title:`Add the school address in BotFather`,children:_jsxs(_components.p,{children:[`In the same settings, add the school address to `,_jsx(_components.strong,{children:`Redirect URIs`}),` and `,_jsx(_components.strong,{children:`Trusted Origins`}),`. The exact links — for the base domain and for your own domain if it is connected — are shown in the `,_jsx(_components.strong,{children:`How to connect`}),` hint in the `,_jsx(_components.strong,{children:`Telegram setup`}),` section.`]})}),_jsx(Step,{title:`Fill in the settings in the school`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Telegram setup`}),` section, paste the `,_jsx(_components.strong,{children:`Client ID`}),` into the `,_jsx(_components.strong,{children:`Telegram login`}),` block, and the token into the `,_jsx(_components.strong,{children:`Bot’s token`}),` field in the `,_jsx(_components.strong,{children:`Bot notifications`}),` block. The `,_jsx(_components.strong,{children:`Bot’s name`}),` field fills in automatically: the platform checks the token in Telegram and inserts the bot name.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Save`}),`. You can save the form only if both `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Bot’s token`}),` are filled in.`]})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Telegram does not apply changes right away and may cache the settings. Test signing in with Telegram in incognito mode.`})}),`\n`,_jsxs(_components.p,{children:[`If the token is wrong, an error from Telegram appears under the field, and the bot name is not inserted. Learn more about sign-in methods in `,_jsx(_components.a,{href:`/en/general/school-setup/registration-settings`,children:`Login and registration`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-a-student-links-telegram`,children:`How a student links Telegram`}),`\n`,_jsx(_components.p,{children:`A student can link Telegram in three ways:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`In the profile settings.`}),` `,_jsx(_components.strong,{children:`Settings → Account settings → Telegram`}),`. The item is shown if the school has a bot set up. Until Telegram is linked, it says “Not connected” next to it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`In a course lesson.`}),` If the student is in a group with Telegram connected but has not linked their account yet, the lesson shows the `,_jsx(_components.strong,{children:`Connect Telegram`}),` block — “After this, the bot will send you an invitation link”.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`At payment (commercial schools only).`}),` If `,_jsx(_components.strong,{children:`Request Telegram before payment`}),` is turned on for the group, the student links Telegram right on the payment page.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`When linking, the student allows the school bot to send them private messages — without this, the bot cannot send the invitation. One Telegram account can be linked to only one profile in the school. The student can unlink Telegram in the same profile settings; the platform asks to confirm the action.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-group’s-telegram-channel-and-chat`,children:`The group’s Telegram channel and chat`}),`\n`,_jsx(_components.p,{children:`You can link each course group to a Telegram channel, a Telegram chat or both.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Prepare the channel and chat`,children:_jsx(_components.p,{children:`Add the school bot as an admin of the channel and chat and give it the rights to invite and remove members.`})}),_jsx(Step,{title:`Open the group settings`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Courses → select a course → Groups → select a group → Settings`}),` and open the `,_jsx(_components.strong,{children:`Chat and channel`}),` tab.`]})}),_jsx(Step,{title:`Enter the channel and chat IDs`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`In Telegram`}),` block, fill in `,_jsx(_components.strong,{children:`Telegram channel ID`}),` and `,_jsx(_components.strong,{children:`Telegram group ID`}),`. These are numeric IDs, for example “-12345678”. The `,_jsx(_components.strong,{children:`Instruction`}),` link next to the block title leads to a step-by-step guide.`]})}),_jsx(Step,{title:`Set up the welcome message and save`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Telegram settings`}),` block, fill in `,_jsx(_components.strong,{children:`Welcome message when sending an invitation link`}),` if needed and turn on `,_jsx(_components.strong,{children:`Request Telegram before payment`}),` (in a corporate school — `,_jsx(_components.strong,{children:`Request Telegram before course enrollment`}),`). Save the group settings.`]})})]}),`\n`,_jsxs(_components.p,{children:[`If the school has no bot token set, the `,_jsx(_components.strong,{children:`Chat and channel`}),` tab shows the warning `,_jsx(_components.strong,{children:`School Telegram bot token is not set`}),`. Click it to go to the setup.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`On the same tab, in the `,_jsx(_components.strong,{children:`Inside the platform`}),` block, you turn on `,_jsx(_components.strong,{children:`Group chat in messenger`}),` and `,_jsx(_components.strong,{children:`Channel in messenger`}),`. These are chats inside the platform, and they work independently of Telegram. Learn more in `,_jsx(_components.a,{href:`/en/general/groups/group-settings`,children:`Group settings`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`how-invitations-work`,children:`How invitations work`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Event`}),_jsx(_components.th,{children:`What the bot does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A student with a linked Telegram was added to the group: after payment, manually or automatically`}),_jsxs(_components.td,{children:[`Sends a private message with the `,_jsx(_components.strong,{children:`👉 Channel`}),` and `,_jsx(_components.strong,{children:`👉 Group`}),` buttons`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A student in the group linked Telegram later`}),_jsx(_components.td,{children:`Sends invitations to all of their groups with Telegram connected that they have not been invited to yet`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The student was removed from the group: manually, after a subscription was cancelled, after a refund, a transfer to another group or the deletion of the group`}),_jsx(_components.td,{children:`Revokes their link and removes them from the channel and chat`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A staff member clicked `,_jsx(_components.strong,{children:`Send invites`})]}),_jsx(_components.td,{children:`Sends invitations to all members with a linked Telegram who have not yet received a link to the current channel and chat`})]})]})]}),`\n`,_jsx(_components.p,{children:`Invitation rules:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Each link is personal and single-use: only one person can join with it.`}),`\n`,_jsxs(_components.li,{children:[`The message text is your `,_jsx(_components.strong,{children:`Welcome message`}),` of up to 500 characters with Markdown (V2) support. If it is not set, the bot writes “Invite link”.`]}),`\n`,_jsxs(_components.li,{children:[`If you change the channel or chat ID, students already added do not get an invitation automatically. Click `,_jsx(_components.strong,{children:`Send invites`}),`.`]}),`\n`,_jsx(_components.li,{children:`Invitations are sent in the background. If the group has many members, sending takes some time.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`missed-invitations`,children:`Missed invitations`}),`\n`,_jsxs(_components.p,{children:[`If the group has members with a linked Telegram who have not been sent a link to the current channel or chat yet, the `,_jsx(_components.strong,{children:`Chat and channel`}),` tab shows the `,_jsx(_components.strong,{children:`Missed Telegram invites`}),` block with the `,_jsx(_components.strong,{children:`Send invites`}),` button and a counter of such members. After you confirm, the message “Invitations have been queued” appears.`]}),`\n`,_jsxs(_components.p,{children:[`The status of each member is visible in the group’s student list, in the `,_jsx(_components.strong,{children:`Telegram`}),` column. The column is shown only if Telegram is connected to the group.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`What it means`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Invite link sent`})}),_jsx(_components.td,{children:`The bot sent an invitation to the current channel and chat`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Invite link not sent`})}),_jsx(_components.td,{children:`The invitation has not been sent yet`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Telegram not linked`})}),_jsx(_components.td,{children:`The student has not linked Telegram to their profile`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Previous chat link sent`})}),_jsx(_components.td,{children:`The invitation was to a channel or chat that has been replaced with a new one. You need to send the invitations again`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`request-telegram-before-payment`,children:`Request Telegram before payment`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The check on the payment page exists only in commercial schools. In a corporate school, the toggle is called `,_jsx(_components.strong,{children:`Request Telegram before course enrollment`}),`.`]})}),`\n`,_jsx(_components.p,{children:`If you turn on this setting, a linked Telegram becomes a required condition for buying a tariff that enrolls the student in this group:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`a signed-in student without Telegram sees “To continue — connect Telegram” and cannot go to payment until they link an account;`}),`\n`,_jsx(_components.li,{children:`a buyer who is not signed in sees “To continue — log in via Telegram” and signs in to the school with Telegram.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`This way every buyer has Telegram, and the bot can send the invitation right away.`}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked-questions`,children:`Frequently asked questions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Why is there no “Telegram setup” section in the school settings?`,id:`why-is-there-no-telegram-setup-section-in-the-school-settings`,children:_jsxs(_components.p,{children:[`The section appears only if the school is public and `,_jsx(_components.strong,{children:`Telegram`}),` is turned on in the `,_jsx(_components.strong,{children:`Registration methods`}),`. Turn on the toggle and save the settings.`]})}),_jsx(Accordion,{title:`Why aren't the bot settings saved?`,id:`why-arent-the-bot-settings-saved`,children:_jsxs(_components.p,{children:[`The form is saved only when both required fields are filled in: `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Bot’s token`}),`. If there is an error under the token field, check that the token was copied from @BotFather in full.`]})}),_jsx(Accordion,{title:`A student paid for a course but did not get an invitation to the Telegram channel. Why?`,id:`a-student-paid-for-a-course-but-did-not-get-an-invitation-to-the-telegram-channel-why`,children:_jsxs(_components.p,{children:[`Check in order: whether the student has Telegram linked, whether the bot token is set in the school, whether the channel and chat IDs are filled in correctly in the group, and whether the bot was added as an admin with the right to invite members. If the student blocked the bot, the message will not reach them. After fixing the problem, click `,_jsx(_components.strong,{children:`Send invites`}),` on the `,_jsx(_components.strong,{children:`Chat and channel`}),` tab.`]})}),_jsx(Accordion,{title:`Can I forward an invite link to another person?`,id:`can-i-forward-an-invite-link-to-another-person`,children:_jsx(_components.p,{children:`There is no point: the link is single-use and personal. After the first person joins with it, nobody else can. Besides, the link is revoked when the student is removed from the group.`})}),_jsx(Accordion,{title:`We changed the group's Telegram chat. How do we invite all students there?`,id:`we-changed-the-groups-telegram-chat-how-do-we-invite-all-students-there`,children:_jsxs(_components.p,{children:[`After saving the new ID, open the `,_jsx(_components.strong,{children:`Chat and channel`}),` tab and click `,_jsx(_components.strong,{children:`Send invites`}),`. The bot sends links to all members with a linked Telegram who do not have an invitation to the new chat yet. In the student list, they currently have the `,_jsx(_components.strong,{children:`Previous chat link sent`}),` status.`]})}),_jsx(Accordion,{title:`Will the bot remove a student from the chat if their access has ended?`,id:`will-the-bot-remove-a-student-from-the-chat-if-their-access-has-ended`,children:_jsx(_components.p,{children:`The bot removes the student from the channel and chat when the student is removed from the group: manually, after a subscription is cancelled, after a refund, when they are transferred to another group or when the group is deleted.`})}),_jsx(Accordion,{title:`A student says “This Telegram is already linked to another account”. What should I do?`,id:`a-student-says-this-telegram-is-already-linked-to-another-account-what-should-i-do`,children:_jsxs(_components.p,{children:[`One Telegram account can be linked to only one profile in the school. The student needs to unlink Telegram from the other profile in `,_jsx(_components.strong,{children:`Settings → Account settings → Telegram`}),` or use a different Telegram account.`]})}),_jsx(Accordion,{title:`Can I change the text of the invitation message?`,id:`can-i-change-the-text-of-the-invitation-message`,children:_jsxs(_components.p,{children:[`Yes. Fill in `,_jsx(_components.strong,{children:`Welcome message when sending an invitation link`}),` on the `,_jsx(_components.strong,{children:`Chat and channel`}),` tab — up to 500 characters, Markdown (V2) is supported. The bot adds the `,_jsx(_components.strong,{children:`👉 Channel`}),` and `,_jsx(_components.strong,{children:`👉 Group`}),` buttons on its own.`]})}),_jsx(Accordion,{title:`Can I send newsletters to students through the bot?`,id:`can-i-send-newsletters-to-students-through-the-bot`,children:_jsx(_components.p,{children:`No. The bot sends only invitations to the group’s channel and chat and service messages: about subscription problems, the password recovery code and login details. For regular messages, use the group channel.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`Updated: 2026-10-17 07:07 UTC`})})]})}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":"School Telegram bot","description":"How to connect the school's own Telegram bot, link students' Telegram accounts and invite them to the group's channel and chat automatically.","href":"/en/general/communication/telegram-bot"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What the bot can do","slug":"what-the-bot-can-do","depth":2,"children":[]},{"title":"Connecting the bot","slug":"connecting-the-bot","depth":2,"children":[]},{"title":"How a student links Telegram","slug":"how-a-student-links-telegram","depth":2,"children":[]},{"title":"The group’s Telegram channel and chat","slug":"the-group’s-telegram-channel-and-chat","depth":2,"children":[{"title":"How invitations work","slug":"how-invitations-work","depth":3,"children":[]},{"title":"Missed invitations","slug":"missed-invitations","depth":3,"children":[]},{"title":"Request Telegram before payment","slug":"request-telegram-before-payment","depth":3,"children":[]}]},{"title":"Frequently asked questions","slug":"frequently-asked-questions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/exode-faq/0f03cceb9db709c8/lang-detect.js"],"subdomain":"exode-faq","siteName":"Exode — Product documentation","title":"School Telegram bot - Exode — Product documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/general/communication/telegram-bot","matchLevel":0},"ru":{"href":"/ru/general/communication/telegram-bot","matchLevel":1}}},"lastModified":"2026-10-17T07:36:14.441Z","originalFileLocation":"en/general/communication/telegram-bot.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=\"How to connect the school\u0026#x27;s own Telegram bot, link students\u0026#x27; Telegram accounts and invite them to the group\u0026#x27;s channel and chat automatically.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Exode — Product documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_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/exode-faq/Wp7VM_dlt_4QlPSi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"School Telegram bot - Exode — Product documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to connect the school\u0026#x27;s own Telegram bot, link students\u0026#x27; Telegram accounts and invite them to the group\u0026#x27;s channel and chat automatically.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Exode — Product documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://faq.exode.biz/en/general/communication/telegram-bot\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://exode-faq.mintlify.app/_mintlify/api/og/v2?division=Communication+and+content\u0026amp;title=School+Telegram+bot\u0026amp;description=How+to+connect+the+school%27s+own+Telegram+bot%2C+link+students%27+Telegram+accounts+and+invite+them+to+the+group%27s+channel+and+chat+automatically.\u0026amp;theme=4b81d533b2a2f5ec2be885ba\u0026amp;signature=bd2590b9d08ff8aedba9cf2a6100bf63b57e85fa9af537f7e7ee0bfd5fa2365d\">\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=\"School Telegram bot - Exode — Product documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to connect the school\u0026#x27;s own Telegram bot, link students\u0026#x27; Telegram accounts and invite them to the group\u0026#x27;s channel and chat automatically.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://exode-faq.mintlify.app/_mintlify/api/og/v2?division=Communication+and+content\u0026amp;title=School+Telegram+bot\u0026amp;description=How+to+connect+the+school%27s+own+Telegram+bot%2C+link+students%27+Telegram+accounts+and+invite+them+to+the+group%27s+channel+and+chat+automatically.\u0026amp;theme=4b81d533b2a2f5ec2be885ba\u0026amp;signature=bd2590b9d08ff8aedba9cf2a6100bf63b57e85fa9af537f7e7ee0bfd5fa2365d\">\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/exode-faq/Wp7VM_dlt_4QlPSi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Exode — Product documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0e32cf\">\u003clink data-mint-head rel=\"canonical\" href=\"https://faq.exode.biz/en/general/communication/telegram-bot\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/general/communication/telegram-bot.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://faq.exode.biz/en/general/communication/telegram-bot\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://faq.exode.biz/ru/general/communication/telegram-bot\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://faq.exode.biz/en/general/communication/telegram-bot\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://faq.exode.biz/#organization\",\"name\":\"Exode — Product documentation\",\"url\":\"https://faq.exode.biz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/exode-faq/RM155sfnW-prDXlV/logo/dark.svg?fit=max\u0026auto=format\u0026n=RM155sfnW-prDXlV\u0026q=85\u0026s=226b8c34c13ebf24544dd5b62ed2a413\"}},{\"@type\":\"WebSite\",\"@id\":\"https://faq.exode.biz#website\",\"name\":\"Exode — Product documentation\",\"url\":\"https://faq.exode.biz\",\"publisher\":{\"@id\":\"https://faq.exode.biz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://faq.exode.biz/en/general/communication/telegram-bot#webpage\",\"url\":\"https://faq.exode.biz/en/general/communication/telegram-bot\",\"name\":\"School Telegram bot\",\"description\":\"How to connect the school's own Telegram bot, link students' Telegram accounts and invite them to the group's channel and chat automatically.\",\"dateModified\":\"2026-10-17T07:36:14.441Z\",\"isPartOf\":{\"@id\":\"https://faq.exode.biz#website\"},\"breadcrumb\":{\"@id\":\"https://faq.exode.biz/en/general/communication/telegram-bot#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://faq.exode.biz/en/general/communication/telegram-bot#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Communication and content\",\"item\":\"https://faq.exode.biz/en/general/communication/messenger\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"School Telegram bot\",\"item\":\"https://faq.exode.biz/en/general/communication/telegram-bot\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://faq.exode.biz/en/general/communication/telegram-bot#article\",\"headline\":\"School Telegram bot\",\"name\":\"School Telegram bot\",\"description\":\"How to connect the school's own Telegram bot, link students' Telegram accounts and invite them to the group's channel and chat automatically.\",\"url\":\"https://faq.exode.biz/en/general/communication/telegram-bot\",\"mainEntityOfPage\":{\"@id\":\"https://faq.exode.biz/en/general/communication/telegram-bot#webpage\"},\"dateModified\":\"2026-10-17T07:36:14.441Z\",\"publisher\":{\"@id\":\"https://faq.exode.biz/#organization\"},\"isPartOf\":{\"@id\":\"https://faq.exode.biz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Exode — Product documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Exode — Product documentation","nav":{"global":null,"languages":[{"language":"en","navbar":{"links":[{"icon":"phone","href":"tel:781139570","label":"78-113-95-70"},{"href":"https://docs.exode.biz/en/welcome","label":"API"}],"primary":{"type":"button","label":"Support","href":"https://t.me/exode_biz_support"}},"tabs":[{"tab":"General","groups":[{"group":"Getting started","pages":[{"title":"Introduction","href":"/en/welcome"},{"title":"Platform overview","href":"/en/general/getting-started/overview"}]},{"group":"Creating a school","pages":[{"title":"Registration and school creation","href":"/en/general/school-creation/registration"},{"title":"School type: course sales or corporate training","href":"/en/general/school-creation/school-type"},{"title":"School address and domain","href":"/en/general/school-creation/domain"}]},{"group":"School setup","pages":[{"group":"School customization","root":{"title":"School customization","href":"/en/general/school-setup/customization"},"pages":[{"title":"Logo and icon","href":"/en/general/school-setup/logo-and-icon"},{"title":"Themes","href":"/en/general/school-setup/themes"},{"title":"Course catalog","href":"/en/general/school-setup/course-catalog"},{"title":"Left site menu","href":"/en/general/school-setup/left-menu"},{"title":"Website footer","href":"/en/general/school-setup/footer"}]},{"title":"Available languages","href":"/en/general/school-setup/languages"},{"title":"Login and registration","href":"/en/general/school-setup/registration-settings"}]},{"group":"Roles and permissions","pages":[{"title":"Roles in the school","href":"/en/general/roles-permissions/user-roles"},{"title":"Access rights","href":"/en/general/roles-permissions/access-rights"}]},{"group":"Courses","pages":[{"title":"Course settings","href":"/en/general/courses/settings"},{"title":"Course types","href":"/en/general/courses/course-types"},{"title":"Creating courses","href":"/en/general/courses/creating-courses"},{"title":"Course bundles","href":"/en/general/courses/course-packages"},{"title":"Content protection","href":"/en/general/courses/content-protection"},{"title":"SEO optimization","href":"/en/general/courses/seo"},{"title":"Reviews","href":"/en/general/courses/reviews"}]},{"group":"Lessons and modules","pages":[{"title":"Creating lessons and modules","href":"/en/general/lessons-modules/creating"},{"title":"Lesson content","href":"/en/general/lessons-modules/content"},{"group":"Practice","root":{"title":"Practice","href":"/en/general/lessons-modules/practice"},"pages":[{"title":"Lesson and practice settings","href":"/en/general/lessons-modules/settings"},{"title":"Task types","href":"/en/general/lessons-modules/task-types"},{"title":"Practice check","href":"/en/general/lessons-modules/checking-practice"}]}]},{"group":"Task database","pages":[{"title":"Creating tasks","href":"/en/general/task-bank/creating-tasks"},{"title":"Using tasks","href":"/en/general/task-bank/using-tasks"}]},{"group":"Rewards and gamification","pages":[{"group":"Certificates","root":{"title":"Certificates","href":"/en/general/gamification/certificates"},"pages":[{"title":"Setting up certificates","href":"/en/general/gamification/creating-certificates"},{"title":"Editing the certificate","href":"/en/general/gamification/editing-certificates"},{"title":"Where the student sees the certificate","href":"/en/general/gamification/certificate-display"}]},{"title":"Gamification: stars and rating","href":"/en/general/gamification/gamification"}]},{"group":"People","pages":[{"title":"Adding users","href":"/en/general/users/adding-users"},{"title":"Course access","href":"/en/general/users/adding-to-course"},{"title":"User card","href":"/en/general/users/user-card"},{"title":"Video watch filter","href":"/en/general/users/video-watch-filter"}]},{"group":"Groups","pages":[{"title":"Groups and cohorts","href":"/en/general/groups/creating-groups"},{"title":"Group settings","href":"/en/general/groups/group-settings"}]},{"group":"Communication and content","pages":[{"title":"Messenger","href":"/en/general/communication/messenger"},{"title":"Notifications","href":"/en/general/communication/notifications"},{"title":"Knowledge base and AI assistant","href":"/en/general/communication/knowledge-base"},{"title":"Stories","description":"How to create a school story, how long it is shown, who sees it and how to unpublish it","href":"/en/general/communication/stories"},{"title":"School Telegram bot","href":"/en/general/communication/telegram-bot"}]},{"group":"Analytics","pages":[{"title":"Home analytics","description":"The Home section: key school metric cards, charts of enrollments, revenue and users online, period selection and comparison with the previous period.","href":"/en/general/analytics/main-analytics"},{"title":"How metrics are calculated","href":"/en/general/analytics/detailed-analytics"},{"title":"Tables and exports","href":"/en/general/analytics/dashboards"},{"title":"Student progress","href":"/en/general/analytics/personal-analytics"}]},{"group":"Mobile app","pages":[{"title":"Mobile app","href":"/en/general/mobile-app/mobile-app"}]},{"group":"Reference","pages":[{"title":"Glossary","href":"/en/general/reference/glossary"},{"title":"What's available on the platform","href":"/en/general/reference/feature-status"}]},{"group":"For developers","pages":[{"title":"Technical documentation","href":"/en/general/developers/technical-overview"},{"title":"Webhooks","href":"/en/general/developers/webhooks"},{"title":"Custom code","href":"/en/general/developers/custom-code"},{"title":"API","href":"/en/general/developers/api"}]}]},{"tab":"Online schools","pages":[{"title":"Online schools","href":"/en/online-schools/getting-started/user-scenarios"}]},{"tab":"Corporate training and HR","pages":[{"title":"Corporate training and HR","href":"/en/corporate/overview"}]}]},{"language":"ru","navbar":{"links":[{"icon":"phone","href":"tel:781139570","label":"78-113-95-70"},{"href":"https://docs.exode.biz/ru/welcome","label":"API"}],"primary":{"type":"button","label":"Поддержка","href":"https://t.me/exode_biz_support"}},"pages":[{"title":"ru","href":"/ru/general/communication/telegram-bot"}]}]},"title":"School Telegram bot - Exode — Product documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}