カスタマーサービス
Telegram ボットのボタン設計:リプライキーボード、インラインボタン、ワンタップでの電話番号・位置情報リクエスト
Telegram ボットのボタンには 2 種類あり、動き方がまったく違います。リプライキーボードはテキストを送信し、電話番号や位置情報を求めることもできます。インラインボタンはメッセージの下に付き、リンクを開いたり操作を実行したりします。使い分けと MonoChat での設定方法をまとめました。
MonoChatチーム 更新日: 2 分で読めます
目次
Telegram ボットが「頼れる接客スタッフ」に見えるか「入力フォーム」に見えるかは、ボタンで決まります。「注文を追跡」「電話番号を送る」をタップできるお客様は 1 秒で答えられますが、注文番号や正しい形式の電話番号、住所を手入力しなければならないお客様は途中で離脱しがちです。
Telegram にはボット用に性質の異なる 2 種類のボタンがあり、これを混同するとボットの使い勝手は一気に落ちます。この記事では、リプライキーボードとインラインボタンの違い、ワンタップで電話番号や位置情報を受け取る方法、そして MonoChat での組み立て方を解説します。国内では LINE が中心ですが、Telegram は「10 億人を超えるアクティブユーザー」を公表しており、訪日客や海外の取引先、海外拠点のお客様と接する企業にとって、ボットが最初の接点になる場面は少なくありません。
2 種類のボタンの比較
| リプライキーボード | インラインキーボード | |
|---|---|---|
| 表示される場所 | お客様のキーボードの代わりに、入力欄の下 | 特定のメッセージの下 |
| タップすると | ボタンの文字が、入力したのと同じようにチャットに送られる | ボットに見えないデータが送られる、またはリンクや Mini App が開く。チャットには何も投稿されない |
| 電話番号・位置情報の取得 | 可能(request_contact、request_location、個別チャットのみ) | 不可 |
| タップ後 | 自動で隠せる(one_time_keyboard) | メッセージの下に残る |
| 向いている用途 | チャットに残したい回答:メニュー、はい/いいえ、連絡先や位置情報の共有 | メッセージに対する操作:リンク、確定/キャンセル、カードからの選択 |
Bot API では、前者は KeyboardButton を並べた ReplyKeyboardMarkup、後者は InlineKeyboardButton を並べた InlineKeyboardMarkup です。Telegram のボットガイドは違いを端的に述べています。リプライキーボードと異なり、インラインボタンを押してもチャットにメッセージは送信されません。
リプライキーボード:お客様が入力したように見える回答
リプライキーボードは、お客様の文字キーボードを貴社のボタンの並びに置き換えます。お客様が「営業時間」をタップすると、チャットにはお客様の発言として「営業時間」が表示され、ボットはそれを通常のメッセージとして読み取ります。メニューや短い回答に最適で、履歴が読みやすく、後からチャットを開いた担当者もお客様の選択をそのまま確認できます。
動作は次のオプションで決まります。
resize_keyboard:ボタンの数に合わせてキーボードの高さを縮めます。指定しないと、ボタン 2 つでも通常のキーボードと同じ高さになります。one_time_keyboard:一度使われたらキーボードを隠します。入力欄のアイコンから再表示できますが、お客様は通常の文字入力に戻れます。input_field_placeholder:キーボード表示中に入力欄へ 1〜64 文字のヒントを表示します(例:「選択してください」)。is_persistent:通常のキーボードを閉じてもボタンを表示し続けます。
タップで送られるのはただのテキストなので、ボタンのラベルはそのまま振り分けのキーになります。短く、重複せず、変えないことが大切です。「注文追跡」を「荷物はどこ?」に変えたら、そのテキストを待っているフローの条件も更新してください。
「連絡先を共有」で電話番号を受け取る
Telegram ボットがお客様の電話番号を自動的に知ることはありません。唯一の方法は依頼することで、request_contact を true にしたキーボードボタンを使います。お客様がタップすると、Telegram が電話番号を連絡先としてボットに送ります。Bot API には、これは個別チャットでのみ動作すると明記されています。
「電話番号を入力してください」と頼むよりはるかに確実です。国番号の入れ忘れや余計なスペースがなく、Telegram アカウントに登録された番号がそのまま届きます。注文、予約、CRM の顧客情報とお客様を結び付けたいときの自然な第一歩です。
お客様にタップしてもらうためのコツは 2 つです。
- 理由を伝える。「ご予約を確認するため、電話番号の共有をお願いします」と添えるだけで、ボタン単体よりずっと押されやすくなります。電話番号は個人情報保護法上の個人情報なので、利用目的を明示するのは当然の配慮です。
- **別の手段も用意する。**番号を共有したくない方もいます。予約番号やメールアドレスでも受け付けるか、担当者に引き継ぎましょう。
位置情報を受け取る
request_location も同じ仕組みで、ワンタップでお客様の現在地が位置情報メッセージとして届きます。配達先、最寄り店舗の案内、スタッフの派遣、対応エリア内かどうかの確認などに使えます。こちらも個別チャットのみで、共有するかどうかはお客様が決めます。
インラインボタン:メッセージに付く操作
インラインボタンは特定のメッセージに属するため、そのメッセージに関する選択に向いています。予約内容の下に「確定」「時間を変更」、レストランのあいさつの下に「メニューを見る」、請求の下に「今すぐ支払う」といった使い方です。よく使うのは次の 3 種類です。
- コールバックボタン:最大 64 バイトのデータ(
callback_data)をボットに送ります。チャットには何も表示されず、次の動きはボットが決めます。 - URL ボタン:料金表や配送状況の追跡ページなどのウェブページを開きます。
- Web App ボタン:予約フォームやカタログなどの Mini App を Telegram 内で開きます。
使い心地を左右する細かな点があります。コールバックボタンがタップされると、ボットが answerCallbackQuery を呼ぶまで Telegram は進行状況を表示し続け、表示するものがなくても呼ぶようボットに求めています。この処理を省いたボットではボタンが「読み込み中」のまま残り、お客様は何度もタップしてしまいます。
**Telegram Business アカウントについての注意。**ボットを Telegram Business アカウントに接続して個人チャットで代理応答させる場合、そのアカウントの名義で送るメッセージではリプライキーボードと Web App ボタンがサポートされません。これらはボットとのチャットで動作します。MonoChat のように BotFather のトークンで接続したボットは、このボットとのチャットでお客様と会話します。
使い分けの目安
| 場面 | 使うボタン |
|---|---|
| メインメニュー:「料金」「営業時間」「スタッフと話す」 | リプライキーボード(クイックリプライ) |
| はい/いいえ、評価、時間帯の選択 | 一度押すと隠れるリプライキーボード |
| お客様の電話番号の取得 | 連絡先共有ボタン |
| 配達先や最寄り店舗 | 位置情報送信ボタン |
| このメッセージの予約を確定・取り消し | インラインのコールバックボタン |
| ウェブサイト、追跡ページ、決済ページを開く | インラインの URL ボタン |
| Telegram 内のフォームやカタログ | インラインの Web App ボタン |
シンプルな原則として、回答を会話に残したいならリプライキーボード、メッセージに対する操作や Telegram の外へ移動するならインラインボタンを選びます。
MonoChat で Telegram のボタンを作る手順
MonoChat は BotFather のトークンで Telegram ボットを接続します(ボットの作成とトークンの取得を参照)。バージョン 3.8.41(2026 年 11 月 1 日)から、MonoChat はクイックリプライ、位置情報リクエスト、連絡先情報リクエストを Telegram のリプライキーボードのボタンとして送信し、ボタン付きメッセージの画像・動画・ドキュメントのヘッダーを表示し、すべてのタップに応答してボタンが読み込み中のまま残らないようにし、入力中インジケーターも表示できるようになりました。
1. クイックリプライ(リプライキーボード)。フローにメッセージを送信ノードを追加し(またはショートメッセージを作成し)、テキストタイプを選びます。本文を入力してクイックリプライをオンにし、ボタンでボタンごとに追加をクリックします。種類を text にし、対応する言語ごとにボタン名を入力します。Telegram では入力欄の下に 1 行 2 つずつ、ちょうどよいサイズで表示されます。画像・動画・ドキュメントのメッセージにもクイックリプライを付けられます。
2. 電話番号を依頼する。****連絡先情報リクエストタイプを選び、「ご注文を確認するため、電話番号の共有をお願いします。」のように本文を書きます。Telegram にはお客様の言語で連絡先情報を共有ボタンが表示されます。一度タップすると隠れ、番号は連絡先としてチャットに届きます。メニュー内で同じことをするなら、種類 user-phone-number のクイックリプライを使います。
3. 位置情報を依頼する。****位置情報リクエストタイプを選びます。お客様には位置情報を送信ボタンが表示され、位置情報メッセージとして届きます。
4. インラインボタン。****ボタンタイプを選びます。上部に画像・動画・ドキュメントを置く場合はヘッダーの種類を選び、本文(最大 1,024 文字)を書いてからボタンを追加します。コールバックは postback、リンクは web-url、Mini App は app-url です。ボタン名は最大 20 文字です。postback のタップはボタン返信としてチャットに届きます。
5. 回答で振り分ける。ボットフローを新規メッセージを受信しましたイベントで開始し、ボットですか?をオンにします。質問の後に If ノードを置き、クイックリプライにはメッセージテキスト、共有された連絡先や位置情報と手入力を区別するにはメッセージの種類の条件を使います。「スタッフと話す」を選んだお客様は会話を割り当てるノードへ送ります。
6. 入力中であることを伝える。チャネルの設定で入力中インジケーターを有効にするをオンにします。担当者がメッセージ欄に入力している間や、フローの AI ノードが回答を準備している間、お客様には「入力中」と表示されます。画像やドキュメントのアップロード中は、写真やファイルを送信中であることが Telegram に表示されます。
すべてのチャット、ボタンのタップ、共有された連絡先は、WhatsApp、Instagram、Messenger の会話と同じチーム受信トレイに届くため、引き継いだ担当者はお客様が何を選んだかをすぐ確認できます。
例:訪日客向けホテルのボット
お客様: /start ボット: こんにちは、京都・四条の「ホテル鴨川テラス」です。ご用件をお選びください。(ボタン:空港送迎の予約 · チェックイン時間 · スタッフと話す) お客様: 空港送迎の予約 ボット: ご予約を確認するため、電話番号の共有をお願いします。(ボタン:連絡先情報を共有) お客様: (連絡先を共有) ボット: ありがとうございます。現在地を送っていただければ、最適な乗車場所をご案内します。(ボタン:位置情報を送信) お客様: (位置情報を共有) ボット: 関西空港 第 1 ターミナル、15 時のお迎えでよろしいですか?(インラインボタン:確定 · 時間を変更)
3 つのリプライキーボードで回答をチャットに残し、最後の確認だけをインラインキーボードで行います。「スタッフと話す」はすぐ担当者につながります。
避けたい失敗
- **ボタンが多すぎる。**スマートフォンで見やすいのは 1 つのキーボードにつき 2〜6 個です。長いメニューは Mini App か次のステップに分けます。
- **いきなり電話番号を求める。**目的が伝わってから依頼しましょう。
- **キーボードが消えない。**お客様が文字を入力できないと感じます。一度きりの質問には使い切りのキーボードを。
- 反応のないボタン。「承知しました、少々お待ちください」だけでも、タップには必ず返事をします。
- 人につながる道がない。「スタッフと話す」は常に残しておきます。引き継ぎや営業時間は ビジネス向け Telegram の記事で解説しています。
WhatsApp も使っている場合、考え方は同じで制限が異なります。WhatsApp のインタラクティブメッセージをご覧ください。ボタンの合間に AI の回答を加えたい場合は、Telegram AI ボットの作り方が参考になります。
app.monochat.ai で無料で始め、数分で Telegram ボットを接続できます。
出典
- Telegram Bot API:ReplyKeyboardMarkup、KeyboardButton、InlineKeyboardButton、answerCallbackQuery、sendChatAction(Bot API 10.3)(2026 年 11 月 2 日閲覧)
- Telegram:ボットの機能、キーボード(2026 年 11 月 2 日閲覧)
- Telegram FAQ:10 億人を超えるアクティブユーザー(2026 年 11 月 2 日閲覧)
- MonoChat ヘルプセンター:メッセージの種類、Telegram のクイックリプライ、リクエスト、入力中インジケーター(2026 年 11 月 2 日閲覧)
- MonoChat 変更履歴 3.8.41(2026 年 11 月 2 日閲覧)
MonoChatで実践する