This workflow follows the Telegram → Telegram Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Telegram Bot: Services + FAQ + Subscriptions (Yookassa)",
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"triggerEvents": [
"message"
],
"botToken": "{{ $env.TELEGRAM_BOT_TOKEN }}"
},
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.message.text }}",
"operation": "equals",
"value2": "/start"
}
]
}
},
"name": "IF: /start",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
650,
300
]
},
{
"parameters": {
"text": "\u041f\u0440\u0438\u0432\u0435\u0442, {{ $json.message.from.first_name }}! \ud83d\udc4b\n\n\ud83c\udfaf \u0412\u044b\u0431\u0435\u0440\u0438 \u0443\u0441\u043b\u0443\u0433\u0443:\n\n\ud83d\udcf9 \u0412\u0438\u0434\u0435\u043e\u0440\u043e\u043b\u0438\u043a - 2000 \u0440\u0443\u0431\n\ud83e\udd16 AI \u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 - 990 \u0440\u0443\u0431/\u043c\u0435\u0441\u044f\u0446\n\ud83d\udcbc \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u0446\u0438\u044f - 1500 \u0440\u0443\u0431",
"chatId": "={{ $json.message.chat.id }}",
"replyMarkup": {
"inline_keyboard": [
[
{
"text": "\ud83d\udcf9 \u0412\u0438\u0434\u0435\u043e\u0440\u043e\u043b\u0438\u043a",
"callback_data": "service_video"
}
],
[
{
"text": "\ud83e\udd16 AI \u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430",
"callback_data": "service_ai"
}
],
[
{
"text": "\ud83d\udcbc \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u0446\u0438\u044f",
"callback_data": "service_consultation"
}
],
[
{
"text": "\u2753 FAQ",
"callback_data": "faq_menu"
}
]
]
},
"botToken": "{{ $env.TELEGRAM_BOT_TOKEN }}"
},
"name": "Send Welcome",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [
850,
300
]
},
{
"parameters": {
"triggerEvents": [
"callbackQuery"
],
"botToken": "{{ $env.TELEGRAM_BOT_TOKEN }}"
},
"name": "Callback Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"typeVersion": 1,
"position": [
450,
500
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.callback_query.data }}",
"operation": "equals",
"value2": "faq_menu"
}
]
}
},
"name": "IF: FAQ",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
650,
500
]
},
{
"parameters": {
"text": "\u2753 \u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b\n\n\ud83d\udcdd \u041e \u0441\u0435\u0440\u0432\u0438\u0441\u0435\n\ud83d\udcb3 \u041e\u043f\u043b\u0430\u0442\u0430 \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430\n\ud83c\udfac \u0412\u0438\u0434\u0435\u043e\u0440\u043e\u043b\u0438\u043a\n\ud83e\udd16 AI \u0410\u0433\u0435\u043d\u0442\u044b\n\ud83d\udee0 \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430",
"chatId": "={{ $json.callback_query.from.id }}",
"replyMarkup": {
"inline_keyboard": [
[
{
"text": "\ud83d\udcdd \u041e \u0441\u0435\u0440\u0432\u0438\u0441\u0435",
"callback_data": "faq_about"
}
],
[
{
"text": "\ud83d\udcb3 \u041e\u043f\u043b\u0430\u0442\u0430",
"callback_data": "faq_payment"
}
],
[
{
"text": "\ud83c\udfac \u0412\u0438\u0434\u0435\u043e",
"callback_data": "faq_video"
}
],
[
{
"text": "\ud83e\udd16 AI",
"callback_data": "faq_ai"
}
],
[
{
"text": "\ud83d\udee0 \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430",
"callback_data": "faq_support"
}
]
]
},
"botToken": "{{ $env.TELEGRAM_BOT_TOKEN }}"
},
"name": "Send FAQ Menu",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [
850,
500
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.callback_query.data }}",
"operation": "regex",
"value2": "^service_"
}
]
}
},
"name": "IF: Service",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
650,
400
]
},
{
"parameters": {
"text": "\ud83d\udccb \u0421\u041e\u0413\u041b\u0410\u0421\u0418\u0415\n\n\ud83d\udcc4 \u0421\u0441\u044b\u043b\u043a\u0430: https://disk.yandex.ru/d/YOUR_LINK\n\n\u0421\u043e\u0433\u043b\u0430\u0441\u0435\u043d \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438?",
"chatId": "={{ $json.callback_query.from.id }}",
"replyMarkup": {
"inline_keyboard": [
[
{
"text": "\u2705 \u0421\u043e\u0433\u043b\u0430\u0441\u0435\u043d",
"callback_data": "agree_{{ $json.callback_query.data }}"
}
],
[
{
"text": "\u274c \u041d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u0435\u043d",
"callback_data": "disagree"
}
]
]
},
"botToken": "{{ $env.TELEGRAM_BOT_TOKEN }}"
},
"name": "Send Agreement",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [
850,
400
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.callback_query.data }}",
"operation": "regex",
"value2": "^agree_service_"
}
]
}
},
"name": "IF: Agreed",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
1050,
400
]
},
{
"parameters": {
"resource": "invoice",
"operation": "create",
"botToken": "{{ $env.TELEGRAM_BOT_TOKEN }}",
"chatId": "={{ $json.callback_query.from.id }}",
"title": "\u041f\u043b\u0430\u0442\u0435\u0436",
"description": "\u041e\u043f\u043b\u0430\u0442\u0430 \u0443\u0441\u043b\u0443\u0433\u0438",
"payload": "payment_{{ $json.callback_query.from.id }}",
"providerToken": "{{ $env.YOOKASSA_PROVIDER_TOKEN }}",
"startParameter": "{{ $json.callback_query.data }}",
"currency": "RUB",
"prices": [
{
"label": "\u0423\u0441\u043b\u0443\u0433\u0430",
"amount": "{{ $json.callback_query.data.includes('video') ? 200000 : ($json.callback_query.data.includes('ai') ? 99000 : 150000) }}"
}
]
},
"name": "Yookassa Invoice",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [
1250,
400
]
}
],
"connections": {
"Start": {
"main": [
[
"Telegram Trigger"
]
]
},
"Telegram Trigger": {
"main": [
[
"IF: /start"
]
]
},
"IF: /start": {
"main": [
[
"Send Welcome"
],
[]
]
},
"Callback Trigger": {
"main": [
[
"IF: Service",
"IF: FAQ"
]
]
},
"IF: Service": {
"main": [
[
"Send Agreement"
],
[]
]
},
"IF: FAQ": {
"main": [
[
"Send FAQ Menu"
],
[]
]
},
"Send Agreement": {
"main": [
[
"IF: Agreed"
]
]
},
"IF: Agreed": {
"main": [
[
"Yookassa Invoice"
],
[]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Telegram Bot: Services + FAQ + Subscriptions (Yookassa). Uses start, telegramTrigger, telegram. Event-driven trigger; 11 nodes.
Source: https://gist.github.com/NataliaBumina/9264e29115f6c911751abcd1219a1888 — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This template provides a workflow to integrate a Telegram bot with NeurochainAI's inference capabilities, supporting both text processing and image generation. Follow these steps to get started:
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
This template provides a structured way to build Telegram bots that respond to specific commands and handle user input. It allows users to interact with your bot by selecting options from a Telegram b
This n8n workflow enables Telegram users to interact with multiple AI models dynamically using #model_id commands. It also supports a /models command to list all available models. Each user has a dail
This workflow is using Telegram chat as a command center. Simple interface for user to run wokflows and receive answers by Telgram message or other mediums like email etc. User want to initiate a wokf