BotFatherでTelegramボットを作成してAIを追加する方法

Piotr Grudzień
公開日 読了時間:約23分
BotFatherとQuickchat AIで作るTelegramボットと、コース回答、PDF添付、担当者の返信を含む実際のFernwayの会話

Telegramボットを作成するには、BotFatherを開いて /newbot を送信し、名前とユーザー名を選び、ボットを動かすサービスにトークンをコピーします。このチュートリアルでは Quickchat AI を使い、自分の知識に基づいて回答するAI Agentをボットに接続します。コードの記述やサーバーの運用は不要です。

作成するのは、架空のオンライン英語学校 Fernway Languages です。受講希望者はTelegramボットを開き、料金を調べ、/schedule をタップし、PDFのコース案内を取り寄せ、担当者との会話を依頼できます。利用者の操作はTelegramのチャット内で完結し、チームはQuickchat AIで知識、Actions、会話を管理します。

TelegramのFernway Languagesが料金と時間割の質問に答え、依頼されたコース案内PDFを送信している画面

完成したTelegramボットです。コースの回答には登録した知識を使い、案内は実際のPDF添付ファイルとして届きます。

基本設定はボットの作成から返信のテストまでです。その後、PDFの送信と担当者への引き継ぎを追加します。グループチャットの章では、共有会話で返信の動作を予測しやすくする設定を説明します。

Fernway設定キットをダウンロードすると、知識、Main Prompt、コマンド一覧、テストシート、アバター、サンプルPDFが手に入ります。各ファイルは編集してダッシュボードに貼り付ける例であり、Agentを自動インポートするものではありません。

画面の例を再現できるよう、スクリーンショット、UIラベル、コピー用のデモ資料は英語のまま掲載しています。

ノーコードでTelegramボットを作るには何が必要ですか?

Telegramアカウント、Quickchat AIアカウント、演習用の新しいボットが必要です。BotFatherがTelegram上の名義を作り、Quickchat AIが裏側のAgentを動かします。

  1. スマートフォンかデスクトップでTelegramにログインします。似た名前のアカウントではなく、ステップ1でリンクした公式BotFatherを使ってください。
  2. Quickchat AIアカウントを作成し、求められたらメール認証を完了します。Freeプランは付属の利用枠で個人の非商用学習に使えます。実際の業務利用には商用プランを選んでください。AIの返信とSimulation Testingはクレジットを消費します。現在のプランと利用枠を確認してください。
  3. 両方のアプリを開いておきます。既存のサポート窓口を変更しないよう、新しいテスト用ボットを使います。初回訪問者の体験を確認するには、2つ目のTelegramアカウントが便利です。

Telegramのボット登録は無料です。AIの回答を生成するサービスには別途利用枠があります。この設定にモデル用のAPIキーを別途用意する必要はありません。

BotFatherとAIはそれぞれ何を担当しますか?

BotFatherはボットの名義と設定を管理します。 接続されたAgentが知識と指示を使って回答を決めます。ボットを作るだけでは、コース情報もメッセージに応答するプログラムも付きません。

BotFatherの名義設定、Telegramのメッセージ、Quickchat AIの回答を分けて示した図 Telegramが受講希望者のメッセージを接続先サービスに届け、Agentの回答が同じチャットに戻ります。

担当設定する内容受講希望者が見るもの
BotFather名前、ユーザー名、プロフィール画像、説明、コマンドメニュー、プライバシーモードボットの名義と利用開始の入口
Quickchat AIKnowledge Base、Main Prompt、挨拶、Actionsコースの回答、依頼したPDF、担当者への引き継ぎ
チーム正確なコース情報と、確認する担当者がいるInbox必要なときの担当者の返信

ステップ1:BotFatherでTelegramボットを作成するには?

公式BotFatherに /newbot を送り、表示名と一意のユーザー名を指定します。

  1. Telegramで @BotFather を開き、Start を選択します。
  2. /newbot を送信します。
  3. 名前を聞かれたら Fernway Languages を送ります。利用者に表示される名前です。
  4. ユーザー名を聞かれたら、fernway_lessons_yourname_bot のような名前を選びます。yourname を重複しない接尾辞に変えてください。ラテン文字、数字、アンダースコアを5~32文字使えます。大文字と小文字は区別されません。この標準の無料設定では末尾を bot にします。使用済みなら別の接尾辞を試してください。対象のPremiumアカウントには、BotFatherで別の語尾も提供されます。
  5. BotFatherがボットへのリンクと認証トークンを返します。リンクは利用者向けチャットを開くために保存します。トークンは秘密に保ち、ステップ4で使います。

このチュートリアルにはコマンド画面で十分です。BotFatherに管理用Mini Appが表示されることもありますが、画面が異なる場合は以下のコマンドを使ってください。

認証済みBotFatherとの会話で、newbotコマンド、Fernway Languagesの名前、作成確認を表示し、ユーザー名と認証情報を伏せた画面

BotFatherが名義を作り、リンクと認証情報を返します。テスト用ユーザー名と認証情報全体は伏せています。

Telegramボットのトークンはどこで確認できますか?

BotFatherに /mybots を送り、ボットを選んで API Token を開きます。トークンはそのボットとして行うリクエストを認証します。サービスの専用認証欄にのみ貼り付け、Agentのプロンプト、知識、サポートチャット、スクリーンショットには入れないでください。

トークンが漏れたら、BotFatherに /revoke を送り、ボットを選んで新しいトークンを取得します。接続先サービスを更新し、返信をテストしてください。古い認証情報は使えなくなります。名前の変更やスクリーンショットの削除だけでは失効しません。

webhookの送信先は1つです。 同じボットを他のサービスに接続すると、受信メッセージをQuickchat AIに届けるwebhookが置き換わることがあります。複数のサービスから同じトークンで送信APIを呼べても、受信更新が自動で両方に複製されるわけではありません。webhook設定中は getUpdates によるポーリングもできません。別の受信フローには別のボットを使ってください。Telegramの更新配信ドキュメントに両方式の説明があります。

ステップ2:画像、説明、コマンドメニューを追加するには?

BotFatherのプロフィール設定コマンドで、最初のメッセージを送る前からボットを識別できるようにします。各コマンドの後に対象ボットを選び、以下の値を送信します。

BotFatherに送るコマンド続けて渡す内容表示場所
/setnameFernway LanguagesTelegramの表示名
/setuserpicキットの fernway-avatar.png をアップロードプロフィール画像
/setdescription下記の説明チャット開始前の紹介文
/setabouttext下記の短いプロフィール文ボットのプロフィールと共有リンクのプレビュー
/setcommands下記のコマンド一覧会話内で利用者がタップするメニュー

Description(最大512文字):

Ask Fernway Languages about English courses, prices and weekly class times. Request the course guide or ask to speak to the team. This is a fictional school built for a tutorial.

About text(最大120文字):

English courses, prices and class times. A fictional school for a Quickchat AI tutorial.

コマンド一覧: 以下の4行をまとめて貼り付けます。このBotFather用一覧ではコマンド名の先頭にスラッシュを付けません。

prices - Course prices
schedule - Weekly class times
trial - Request a free trial lesson
help - Talk to a person

ボットのプロフィールを開いて名前、画像、紹介文を確認します。Start を選ぶ前にチャットを開き、説明を確認してください。各設定はTelegramの BotFatherガイドでも説明されています。

ステップ4でボットを接続して Start を選んだら、コマンドメニューを開いて4項目を確認します。BotFatherに貼り付けるときは改行を保ってください。改行がないと複数項目が1つの長いコマンド説明になることがあります。

設定した挨拶の下にprices、schedule、trial、helpが並ぶFernway LanguagesのTelegramコマンドメニュー

完成したメニューには独立した4項目があります。上の挨拶はステップ3でQuickchat AIに設定します。

BotFatherがメニュー項目を追加し、Telegramがコマンド文字列を送り、Main Promptが意味を定義する流れの図 メニューに /schedule を追加しても時間割検索は実装されません。次のステップで、そのメッセージの意味をAgentに教えます。

ステップ3:自分の知識を使ってTelegramボットに回答させるには?

Agentを作成し、学校の事実情報を Knowledge Base に追加して、回答ルールを Main Prompt に書きます。事実と指示を分けると、ボットの振る舞いを変えずに価格を更新できます。

スクリーンショットは選択すると原寸で開きます。正確な文章やリクエスト値にはコピー用ブロックを使ってください。

コース情報を追加する

  1. Quickchat AIで新しいAgentを作り、Fernway Languages と名付けます。Identity の名前も同じ値にします。
  2. Knowledge Base を開いて Add Article を選び、Title を Fernway Languages course guide にします。
  3. 以下を Content に貼り付けて Save を選びます。処理が完了し、記事が Ready になるまで待ちます。公開や適用の操作が表示された場合は、実際のチャネルをテストする前に完了してください。

タイトル、コース料金、毎週の授業時間を表示したFernwayの知識記事エディター 事実はKnowledge Baseに登録します。下のコピー用記事全文には、体験レッスン、返金、レベル分けの方針も含まれます。

Fernwayの知識記事をコピー
Fernway Languages is a fictional online English school used for this tutorial.

Courses
B1 English: EUR120 total for a four-week course. Classes are on Tuesdays and Thursdays, 18:00 to 19:00 UTC.
A2 English: EUR90 total for a four-week course. Classes are on Mondays and Wednesdays, 18:00 to 19:00 UTC.
Both courses meet online. Prices are for the complete four-week course, not per lesson.

Trial lessons
A free trial lesson lasts 20 minutes. Ask the student which course interests them and which day and time they prefer, including their time zone. A member of the Fernway team must confirm availability. The bot cannot book or confirm a trial lesson.

Refunds
Students can receive a full refund if they cancel at least 48 hours before their first class. The team reviews requests made later; no refund is promised for those requests.

Course brochure
The course guide contains the same course prices, weekly schedule, trial policy and refund policy. Send it only when the student asks for the brochure or course guide.

Placement
The team handles level placement. This knowledge base does not contain a placement-test score cutoff or rules that convert a test score into a course level. Do not invent a cutoff or interpret a student's score.

レベル分けの基準点がないことで、意味のあるテストができます。Agentは情報源からB1の料金に答えられますが、受講に必要な点数を作り出してはいけません。

コマンドの意味を定義する

Identity を開き、Edit と表示された Main Prompt カードを選んで、以下のプロンプト全文を貼り付けます。自動保存を待ち、再度開いて保存内容を確認します。

Nameと編集可能なMain Promptカードを表示したFernway LanguagesのIdentityページ IdentityからMain Promptを開きます。このルールがTelegramコマンドの意味を定めます。

Main Prompt全文をコピー
You are the Fernway Languages assistant. Help prospective students understand the English courses using the Knowledge Base.

Answer the student's question directly. Use plain text, short paragraphs and no Markdown tables. Keep routine answers under 100 words. State prices in EUR and class times in UTC unless the student explicitly asks for a conversion.

Treat /prices as a request for the course prices. Treat /schedule as a request for the weekly class times. Treat /trial as a request for a free trial lesson: explain that it lasts 20 minutes, ask for the preferred course, day, time and time zone, and make clear that the team must confirm availability. Treat /help as a request to speak to a person. These commands may include a bot username after an @ sign; apply the same rule to /prices@username, /schedule@username, /trial@username and /help@username.

Call send_course_brochure only when the student explicitly asks to receive the brochure or course guide. Do not call it for a price or schedule question alone. Do not ask for a chat ID, token or email address to send it. Say that the brochure was sent only after the action succeeds. If it fails, say that the file could not be sent and offer to explain the courses in the chat.

Use only the Knowledge Base for course facts and policies. If a requested fact is missing, say that the team will need to confirm it. Never invent placement-test cutoffs, available trial slots, bookings, refunds or course discounts.

If the student asks for a person, use Human Handoff. Do not promise an immediate response or pretend a staff member has already replied.

このプロンプトには、後で設定する任意の資料送信と引き継ぎの手順も含まれます。完成した受講者サポートとして公開する前に、その設定も終えてください。プロンプトはActionの実行を要求できますが、Action自体の作成やTelegram接続は行いません。

グループで使う場合は /schedule@your_bot のように宛先を付けた形も重要です。プレーンテキストの指示にも意味があります。この連携の通常返信はTelegramのMarkdown書式を使わずに送信されます。

挨拶メッセージを設定する

Your Website を開き、Text Content タブで Welcome message を編集します。この共有の挨拶はTelegramの独自ボット接続でも使われます。

Welcome to Fernway Languages. I can help with our English courses, prices and class times. Try /prices, /schedule or /trial, or ask a question. Use /help to ask for a person.

Fernwayの挨拶とコマンドの提案が入力されたWelcome message欄 共有のWelcome message欄はYour Website → Text Contentにあります。Telegramでは/startに使用します。

独自ボット連携は訪問者が /start を送ったときに、この設定済みの挨拶を送信します。BotFatherのチャット前の説明や、コース質問に対するAI生成の回答とは別のものです。

ステップ4:トークンをQuickchat AIに接続するには?

作成したTelegramの名義を使うには Your own bot から接続します。

  1. External Apps を開き、Telegram、Your own bot の順に選びます。
  2. Connect to Telegram を選び、BotFatherのトークンを Bot Token に貼り付けて、ダイアログ内の Connect to Telegram で送信します。
  3. Enable your own bot をオンにして Save を選びます。
  4. Telegramでボットの t.me リンクを開きます。Start を選ぶか /start を送って挨拶を確認します。

Quickchat AIのTelegram設定でYour own botに接続済みFernwayボットが表示され、Enable your own botがオンの状態 実際の接続パネルにボットの名義と有効状態が表示されています。BotFatherで作った名義にはYour own botを使います。

Bot Token欄が空のQuickchat AIのConnect to Telegramダイアログ 認証情報はこの欄に入力します。スクリーンショットには意図的にトークンを入れていません。

ダッシュボードの共有 Quickchat AI bot は別の設定です。独自ボットを作らずにAgent専用のチャットリンクを提供します。ここでの主手順は自分の名義と認証情報を使います。共有方式は Telegram AIチャットボットガイドで説明しています。

接続ダイアログにグループ向けのプライバシー無効化が書かれていても、このチュートリアルの宛先付きコマンドの手順では有効のままにします。個別チャットはグループのプライバシー設定と独立して動きます。グループの章で違いを説明します。

ステップ5:Telegramボットをテストするには?

Agentの回答とTelegramに届くメッセージの両方を確認します。ダッシュボードのテストは回答ロジックを検証し、Telegramの会話で初めてチャネル全体を検証できます。

Quickchat AIで回答をテストする

Testing を開いて Create Dataset を選び、Fernway course answers と名付け、以下のメッセージを別々の行に追加します。

How much is the B1 English course?
/prices
/schedule
/schedule@fernway_demo_bot
/trial
I scored 62 on your placement test. Do I qualify for B1?

宛先付きコマンドの行では、サンプルのユーザー名でプロンプトのルールを確認します。実際のTelegramテストでは自分のボットのユーザー名を使ってください。

Evaluation criteria には以下を使います。

Fernway Languages is a fictional English school. B1 costs EUR120 total for four weeks and meets Tuesdays and Thursdays, 18:00 to 19:00 UTC. A2 costs EUR90 total for four weeks and meets Mondays and Wednesdays, 18:00 to 19:00 UTC. A free trial lasts 20 minutes and requires team confirmation; no booking may be claimed. Commands must be treated as requests for the corresponding information. No placement-score cutoff is known, so the Agent must not decide a level from a score. Replies should be brief, plain text and based on these facts. Evaluate reply content only. This test cannot verify Telegram delivery, a received PDF or human assignment.

利用可能なAIクレジットを用意して Run を選びます。各行は別の会話を開始します。追加質問のテストには、同じ AI Preview の会話を継続して使ってください。次のデータ行は会話の次のターンではありません。

料金とコマンドへの回答、レベル分けの質問の結果を示す6件の完了済みFernway Simulationテスト 実際のローカルSimulation結果です。評価器が引き継ぎを観測できなかったため、レベル分けの回答は低い評価になりました。実際の担当変更はInboxで確認しています。

Telegramで受講希望者の体験をテストする

実際のボットの個別チャットで、返信を待ちながら以下を送ります。対応する質問と回答は Inbox で探します。

レベル分けの点数の質問は、ステップ6と7を終えた後、最後に行ってください。 担当者への引き継ぎが起き、自動返信が止まることがあります。

メッセージや操作合格となる結果
/start設定した挨拶が表示される
How much is the B1 English course?4週間のコース全体でEUR120
メニューの /schedule をタップ両コースの週間日程がUTCと明記される
/trial をタップ20分の体験レッスンを依頼し、空き状況の確認はチームに任せる
I scored 62 on your placement test. Do I qualify for B1?基準点を作り上げたり受講資格を判断したりせず、チームによる確認が必要だと伝える

TelegramのFernway Languagesがレベル分けテスト62点からB1の受講資格を判断しない回答

実際の回答はレベルの判断をチームに委ねています。同じ会話に、先の資料と担当者の返信も残っています。

同じTelegramのレベル分け質問、Agentの回答、Unassignedの会話を示すQuickchat AI Inbox 対応するInbox画面には回答と会話のUnassigned状態が表示されています。

実際のテストでは、Agentは点数からレベルを推定しませんでした。Lack Of Knowledge の引き継ぎが有効で、その後Inboxでは会話が Unassigned になりました。回答と担当状態は別々に確認します。回答の評価器では会話の担当者を確定できません。このチェックは他の会話テストの後に行うか、自動返信を続ける前にInboxの担当者メニューから AI Agent を選んでください。

回答が間違っていたら、関連する知識記事と保存済みプロンプトを確認し、1点だけ変更して新しい会話で同じメッセージを試します。コマンドの失敗には正確なコマンドルールを、料金の間違いには知識の検索と公開状態を確認します。接続表示が緑だから合格とせず、実際の回答を記録してください。

6件のデータセットは出発点です。AIサポートAgentのテストガイドでは、公開前に現実的な失敗例と採点基準を追加する方法を説明しています。

ステップ6:ボットにPDFを送らせるには?

固定のコース案内を現在のTelegramチャットに送る API Action を1つ追加します。Agentが利用者から依頼されたかを判断し、連携が認証情報と宛先を渡します。

文書Actionの固定された3つの入力元であるSystem Token、現在のチャットのチャネルメタデータ、公開PDF URLを示す図 利用者にトークンやチャットIDを求めません。このActionにはモデルが埋めるパラメーターがありません。

キットの fernway-course-guide.pdf をダウンロードして例を確認します。この設定例は当サイトの公開URLを使います。自分のファイルでは、Telegramがログインなしで取得でき、正しいコンテンツタイプのPDFを返す直接HTTPS URLを使ってください。URLから取得する文書は20 MB未満にします。Telegramのファイル送信ドキュメントではURL取得とファイルアップロードを区別しています。

Actions & MCPs で Add Action を選び、API Actionビルダーで以下の欄を設定します。自動生成の下書きが提示された場合も、有効にする前に実際のリクエストを設定例と照合してください。

POST sendDocument、TelegramのSystem Token参照、JSON本文の現在のチャットメタデータを設定したAPI Actionエディター トークンのチップはURLに、チャットメタデータのチップはBodyに入れます。PDFのURLは固定です。

API Action Name

send_course_brochure

What to ask the user first

FormatNameDescriptionRequired
パラメーターなしなしこの欄は空にします。リクエスト値はすべて接続か固定の設定例から取得します。該当なし

API Endpoint: method and URL

POST を選び、以下を入力します。

https://api.telegram.org/bot{{telegram_bot_token}}/sendDocument

Add AI Data から System Tokens の telegram_bot_token を挿入します。接続済みボットの認証情報への参照であり、トークン自体を貼り付ける場所ではありません。

Headers

キー値
Content-Typeapplication/json

Body:API Endpointの Body タブに貼り付けます。

{
  "chat_id": "{{metadata_telegram_chat_id}}",
  "document": "https://quickchat.ai/blog-assets/tutorials/create-telegram-bot/fernway-course-guide.pdf",
  "caption": "Fernway Languages course guide (fictional tutorial example)"
}

Add AI Data から会話メタデータの telegram_chat_id を挿入します。テンプレート表記は {{metadata_telegram_chat_id}} です。Telegramチャネルが受信チャットから設定するため、PDFはその会話に戻ります。文書URLとキャプションは固定のままにします。

API Action Description

Send the Fernway Languages course guide PDF to the current Telegram chat when the student explicitly asks to receive the brochure or course guide. Do not call this action for a price, schedule or trial question alone. No information needs to be collected from the student: the current chat and bot credentials are supplied automatically. Call it once per explicit request. Confirm delivery only if the request succeeds.

Actionを保存して有効にします。Main Prompt全文には明示的な依頼がある場合のみ実行するルールが含まれています。Bot APIのメソッドは sendDocument に記載されています。

返信だけでなくファイルを確認する

  1. Telegramで How much is the B1 English course? を送ります。依頼していないファイルが付かず、料金が返ることを確認します。
  2. Can you send me the brochure? を送ります。
  3. PDF添付ファイルが届き、Fernwayのコース案内として開けることを確認します。
  4. Inbox で会話を開き、呼び出されたActionカードを展開します。Actions & MCPs のActionカードでは View logs を開いてリクエストと結果を確認します。スクリーンショットを共有する前にトークンを必ず伏せてください。
  5. 宛先が現在のチャットであり、1回の依頼に文書が1つ送られたことを確認します。

実際のテストでは、send_course_brochure がHTTP 200 とTelegramの ok: true を返しました。冒頭の画像には利用者のチャットに届いた fernway-course-guide.pdf が写っています。リクエストの結果と受信ファイルの両方で配信を確認できます。Agentの確認文だけでは証明になりません。

送信テストはTelegramで行ってください。 Simulationの会話には実際のTelegramボットトークンのコンテキストがありません。回答確認にはSimulationを、ファイル配信確認には実際のTelegramチャットを使います。

ステップ7:Telegramの会話を担当者に引き継ぐには?

Human Handoff を有効にし、人を求める依頼で会話の担当が変わるようにします。その後、チームの担当者がInboxから返信します。

  1. Actions & MCPs を開き、Human Handoff を有効にして Edit Action を選びます。
  2. 既定の Handoff Rules を保ち、Media Message、User Frustration、Customer Support Suggestion、Lack Of Knowledge をオン、Irrelevant Advice をオフにします。Main Promptで /help は人を求める依頼に対応済みです。このデモでは独自ルールは追加しません。
  3. 見守り付きの演習では Human Agents’ availability をオフのままにし、テスト中は担当者がInboxを確認します。Email notifications もオフにします。これは本デモの設定であり、引き継ぎを時間制限しないことは、常時人がいることを意味しません。
  4. 公開前に対応可能時間の設定を有効にし、実際に担当者がいる時間帯とタイムゾーンを設定します。時間外メッセージも合わせて変更してください。
  5. Actionを保存します。ボットの個別チャットで I want to talk to a person. を送り、確認を求められたら Yes と答えます。
  6. Inbox でAIが担当から外れていることを確認します。Assign to me を選び、Hi, this is Alex from Fernway. Which course would you like help with? を送ってTelegramに届くか確認します。
  7. 人が担当している間に、利用者からもう1通送ります。AIが返信しないことを確認します。担当者メニューで AI Agent を選んでから新しいコース質問を送り、自動返信が再開したことを検証します。

人を求める依頼、Unassigned状態、Assign to meボタンを表示したQuickchat AI Inboxの実際のTelegram会話 依頼によって実際のチャットはUnassignedになり、担当者がAssign to meを選べる状態になります。先の資料返信にも折りたたまれたAction呼び出しマーカーがあります。

AIのコース回答から自動返信停止、Inboxからの担当者返信、再割り当てまでの引き継ぎの流れ 利用者はTelegramに留まります。引き継ぎ成功には担当変更と担当者の返信の到着が必要です。自動化を再開するときは担当者メニューでAI Agentを選びます。

人を求める依頼、引き継ぎ確認、オペレーターAlexの返信、利用者の追加メッセージを表示したFernwayのTelegram会話

オペレーターのInboxからの返信が同じTelegramチャットに届きます。利用者はアプリを切り替えずに続けられます。

オペレーターの返信、利用者の追加メッセージ、AI Agentへの再割り当てを示すQuickchat AI Inbox オペレーターの対応後、担当をAI Agentに戻しています。その次のレベル分け質問にはステップ5のAI回答が返りました。

ローカルのレベル分けテストのように、知識の不足も引き継ぎを起こすことがあります。回答が推測を避けているか、転送を主張するならInboxの担当が変わったかを別々に確認してください。Human Handoffガイドに対応可能時間と振り分けの詳しい説明があります。

チャットボットの有人引き継ぎ手順では、時間外の依頼と、再割り当て後も自動返信が動くかのテストを追加しています。

Telegramグループではボットはどう動きますか?

プライバシーモードは、Telegramがどのグループメッセージをボットに届けるかを決めます。 Quickchat AIの独自ボット接続は受信したメッセージを処理します。「メンションだけに答える」という別のフィルターは追加しません。

プライバシー有効時は宛先付きコマンドと返信が届き、無効時や管理者の場合は通常のグループ会話も届くことを示した図 図は本チュートリアルで使うメッセージ種別を示しています。Telegramはサービスメッセージと、文脈で変わるコマンドの振り分けも説明しています。

直接の依頼に答えるクラス用グループでは、以下のように設定します。

  1. BotFatherに /setjoingroups を送り、ボットを選び、グループ参加が無効なら有効にします。
  2. /setprivacy を送り、ボットを選んで Enable にします。管理者権限を与えず、通常メンバーのままにしてください。追加後にプライバシーを変えた場合は、一度削除して再追加すると設定が反映されます。
  3. 自分で管理する小さなテストグループにボットを追加します。
  4. See everyone in class tomorrow. など通常のメッセージを送ります。この設定では返信が起きないはずです。
  5. your_bot を実際のユーザー名に置き換えて /schedule@your_bot を送ります。時間割の回答を確認し、その回答にTelegramの Reply 操作で What does B1 cost? と質問します。

宛先なしの /schedule は、最後に呼びかけたボットによって動作が変わることがあります。標準のプライバシーモードでは、普通の文章内の @mention は宛先付きコマンドの確実な代わりにはなりません。上記の明示的な形式で試してください。Telegramのプライバシーモード規則も参照できます。

Fernwayボットのグループ参加とプライバシー設定が有効になっているBotFather画面

保存したBotFather設定はEnableです。自分のボットでグループメッセージのチェックを行い、そのグループでの配信を検証してください。

以下の別のグループテストは、同じFernway Agentに接続した共有の @QuickchatAI_bot を使っています。宛先付きの時間割コマンドと、ボットへの返信として送った料金質問に回答しました。これは共有ボットという選択肢の例です。独自のFernwayボットは個別チャットで検証したため、グループ動作には上記の確認が必要です。

Fernway Study Groupで共有Quickchat AIボットが宛先付き時間割コマンドと、B1料金を尋ねる返信に答えている画面

このグループでは共有の@QuickchatAI_botを使っています。個別チャットの画像に写る名義は独自のFernwayボットです。

プライバシーを無効にしたり、ボットを管理者にしたりすると、通常のグループ会話もAgentに届き、返信が増える場合があります。モデレーション用の追加権限とAction制御は Telegramグループ管理チュートリアルで説明しています。

グループ全体で1つの共有会話です。 個人のコース相談はボットの個別チャットで行ってください。グループでHuman Handoffが起きると、再割り当てまで全体のAIが停止します。その人専用の個別会話が作られるわけではありません。

Telegramボットが返信しないのはなぜですか?

最も単純な個別チャットのテストから始め、接続とメッセージ種別を確認します。グループ動作とファイル配信には、それぞれ別の条件が加わります。

症状確認する内容
BotFatherで作成できたが返信しないAgentとの接続を完了します。BotFatherは返信ロジックを提供しません。
挨拶が出ない正しいボットを開いて /start を送り、Enable your own bot と設定済みの Welcome message を確認します。
別のボットサービスを試した後に止まったそのサービスがwebhookを置き換えた可能性があります。意図したサービスを再接続し、別用途には別のボットを使います。
トークン変更後に止まったBot Token を新しい値に更新し、接続を保存します。
個別チャットでは答えるがグループでは答えないグループ参加、プライバシーモード、実際のユーザー名を確認します。/schedule@your_bot またはボットへの返信を試します。
グループの全メッセージに答えるプライバシーが無効か、ボットが管理者かを確認します。上記の静かな設定に戻します。
メニューにコマンドがあるが回答が無関係宛先付き形式も含め、Main Promptのルールを確認します。メニュー登録だけでは動作は定義されません。
PDFを送ったと言うが添付がない実際のAction呼び出し、直接PDF URL、Telegramの応答を確認します。独自ボット接続を有効にしてTelegramからテストします。
引き継ぎまでは答えるが、その後止まるInboxの担当を確認します。人が担当する会話や未割り当ての会話は、担当者の対応か再割り当てを待ちます。
Agentが回答できない、またはテストが止まる利用可能なクレジット、知識の処理状況、Agentの有効状態を確認します。
Telegramがレート制限エラーを返すメッセージ頻度を下げ、Telegramが返した再試行間隔を守ります。

ボットを共有する前に、実際の情報で個別チャットの料金、不明な事実、PDF、担当者返信のテストを繰り返してください。Fernwayの情報とリンクはすべて自分のものに置き換えます。最新の接続設定は Telegramチャネルのドキュメントを参照してください。

ChatGPTやClaudeでこのボットの作成を手伝ってもらえますか?

Quickchat AIアカウントに接続したAIクライアントは、Agent、知識、指示、Actions、テストデータを準備できます。Telegramの名義は引き続き自分でBotFatherで作り、ダッシュボードの独自ボット設定にトークンを入力します。

Manage with AIの手順に従い、認証済みの ChatGPT掲載ページか Claude掲載ページから接続します。アシスタントに設定キットと次の依頼を渡してください。

Create a separate learning Agent named Fernway Languages from this tutorial kit. Do not change existing Agents. Set its display name and Identity name, add the knowledge article, and copy the Main Prompt and welcome message exactly. Configure send_course_brochure from action.json but leave it inactive. Use only the System Token reference, never ask me to paste my real Telegram token into chat. Create the Fernway course-answer dataset and evaluation criteria. Prepare Human Handoff using the default rules and show me the availability settings to review. Read back the saved configuration. Do not run tests, spend credits, send Telegram messages or activate Actions yet. List the remaining owner steps: create and configure the bot in BotFather, enter its token under Your own bot, review working hours, activate the Action and complete the real-channel checks. Do not use the shared Telegram connection as a substitute for my own bot.

ここで使うアカウント管理接続は、AgentをMCPツールとして公開することとは別です。設定の準備は手伝えますが、実際のTelegram返信と添付ファイルの確認は必要です。

よくある質問

コードを書かずにTelegramボットを作るには?

Telegramで公式BotFatherを開き、/newbotを送り、表示名と末尾がbotの一意なユーザー名を選びます。返されたトークンをQuickchat AIなどのボットサービスに接続します。知識と指示を追加して接続を有効にし、個別メッセージをテストしてください。BotFatherが名義を作り、接続先サービスが回答を提供します。

Telegramボットの作成は無料ですか?

BotFatherでのTelegramボット登録は無料です。Quickchat AIのFreeは個人の非商用学習向けで、AIクレジットに上限があります。業務利用には商用プランが必要です。AI回答とSimulation Testingはクレジットを消費します。Telegramの名義を作ってもAIを無制限に使えるわけではありません。

Telegramボットのトークンはどこで見つかりますか?

公式BotFatherを開いて/mybotsを送り、ボットを選び、API Tokenを選択します。認証情報はボットサービスの専用Bot Token欄に貼り付けます。プロンプト、知識記事、公開リポジトリ、スクリーンショットには入れないでください。

Telegramボットのトークンが漏れたらどうすればよいですか?

BotFatherの/revokeで漏れたトークンを失効させ、新しいものを取得し、接続先サービスを更新して返信を試します。公開されたコピーも削除しますが、それだけに頼らないでください。古いトークンを保存した人は、失効するまで利用できます。

1つのTelegramボットを2つのプラットフォームに接続できますか?

受信更新を届けるwebhookの宛先は1つです。2つ目のプラットフォームがwebhookを置き換えると、最初のサービスは更新を受信しなくなります。複数システムから送信APIを呼ぶことはできますが、受信メッセージが自動で両方に複製されることはありません。独立した受信フローには別のボットを使います。

Telegramボットにコマンドを追加するには?

BotFatherに/setcommandsを送り、ボットを選び、各行にコマンドと説明を1組ずつ記入します。先頭のスラッシュは不要です。これでメニューができますが、動作も実装する必要があります。このチュートリアルではMain Promptで/prices、/schedule、/trial、/helpを対応する回答やActionに結び付けています。

個別チャットでは返信するのにグループでは返信しないのはなぜですか?

ボットがグループに参加しているか確認し、/schedule@your_botのように実際のユーザー名宛てのコマンドを送るか、ボットのメッセージに返信します。プライバシー有効時、管理者でないボットには通常のグループ会話は届きません。普通の文章内のメンションは宛先付きコマンドの確実な代替にはなりません。

TelegramボットにAIやChatGPTを追加できますか?

BotFatherで作ったボットをAIサービスに接続できます。このチュートリアルは独自の知識、Main Prompt、Actionsを持つQuickchat AI Agentを使います。個人のChatGPT会話をTelegramにつなぐものではありません。対応するアカウント管理アシスタントがAgentの準備を手伝い、所有者が独自ボット接続を完了します。

このTelegramボットは音声メッセージに答えられますか?

Quickchat AIのTelegram連携は現在、Agent向けに音声メモを文字起こししません。音声添付がInboxに表示されることはありますが、この手順は入力された文字を使います。利用者に質問を入力してもらうか、人が添付を確認してください。

個人のTelegramアカウントが自動化されますか?

いいえ。この手順では独自のユーザー名を持つ別のボット名義を作ります。Telegramには他のアカウント自動化機能もありますが、ここで説明するQuickchat AI接続はボット宛てのメッセージを扱います。個人プロフィールからの自動返信は設定しません。

Quickchat AI Quickchat AI Ask Quickchat AI a question