メッセージとボタン

**「メッセージを送信」**アクションは、ブロックからボットの返信を構成し、インラインボタン・メインメニュー・ダイアログのステップを追加します。これはコンストラクターで最も機能豊富なアクションであり、ここで変数置換とボタンのリファラルパラメータも設定します。

メッセージブロック

メッセージは複数のブロックの連続で構成されます(ブロックを追加ボタン):

  • テキスト — 変数置換とボタン付きのフォーマットされたテキスト(最大 4096 文字)。
  • 写真 — キャプション付きの画像。
  • ファイル — キャプション付きのドキュメント。
  • 遅延 — 次のブロックの前の一時停止(秒単位)。
  • AI — プロンプトに基づいてモデルが生成した返信。
  • リアクション — 別のリアクションの呼び出し(任意で処理完了を待機)。

ブロックはドラッグ&ドロップで並べ替えられます。ブロックの表示モードは**「順番通り」または「ランダム」(バリエーション返信用)を選択できます。ボットのメインメニューは変更しない**、新たに設定する非表示にするを選択できます。

ブロックオプション

テキストブロックとメディアブロックにはフラグがあります: 固定ミュート転送保護スポイラーリンクプレビューなしN秒後に自動削除

インラインボタン

ブロック内でボタンを設定できます(ボタンテキスト + タイプ):

  • テキスト(callback) — ボット側で押下を処理するボタン。
  • リンク — URL を開きます。
  • ウェブアプリ — Telegram Mini App を開きます。Mini App を参照。
  • リアクションを呼び出す — 押下で別のリアクションを起動します。
  • 支払いを受け付ける通知 — 「近日公開」とマークされています。

ボタンのスタイル — 通常・青(Primary)・緑(Success)・赤(Danger)。**「使い捨て」**フラグを設定すると、押下後にボタンが無効になります。

押下時の動作

callback ボタンには、押下時の動作を設定できます: ボタンテキストを置き換えるメッセージを置き換える(テキストまたはリンクされたリアクションの内容で)、メッセージを削除するanswerCallbackQuery をスキップ。押下時にラベルを設定したり****パラメータを設定したりすることもできます。

ボタン内のパラメータ(Carry)

「Carry — ボタン押下時のデータスナップショット」ブロックは、メッセージ送信時に確定した値のセットをボタンに紐付けます。押下時にこれらの値がコンテキストに渡されるため、ボタンが複数あっても各ボタンはそれぞれのパラメータを持ちます(per-invocation)。ペイロードの有効期限を秒単位で設定できます。これは「商品を選ぶ → その商品を注文する」というシナリオの基盤です。

動的ボタン

**「リストからの動的ボタン」**ブロックは、ctx の配列を1要素1ボタンとして展開します。設定項目: ctx 内のリストキー、要素のエイリアス、1行あたりのボタン数、ボタンテンプレート({{alias.field}} をサポート)。これにより、カタログ・レコードリスト・コレクションデータからのメニューを構築できます。詳細は 動的ボタンとパラメータ を参照してください。

期待する返答(ダイアログのステップ)

テキストブロックはユーザーの返答を待つ設定にできます — これによりメッセージがダイアログのステップになり、返答があるまでシナリオが一時停止します。複数のステップを連続させることで、チャット内でアンケートやウィザードを構成できます。

期待するコンテンツの種類

ボットは特定の種類の返答を待つことができます: テキスト、選択肢から選ぶ(選択ボタン)、写真、動画、ビデオノート、音声、ドキュメント、ボイスメッセージ、位置情報、連絡先、カレンダー、またはサイコロ。ユーザーが異なる種類を送信した場合、そのステップは返答を不適切と判断します。

テキストの検証

テキスト返答に対しては、フォーマット検証を有効にできます: 電話番号、メール、URL、日付、時間、またはフォーミュラへの一致(正規表現)。検証を通過しなかった返答は拒否され、ボットはエラーメッセージを表示します。

返答の保存

ユーザーの返答はパラメータに保存できます — その後、変数置換で {{param.key}} として、また条件で利用できます。ダイアログのステップにより、ユーザーのミニプロフィールが構築されます。

エラー・リマインダー・タイムアウト

  • 検証エラー時のメッセージ — 返答が検証に失敗した場合に表示する内容。
  • リマインダー — ユーザーが無返答の場合に送信する内容。
  • タイムアウトによる待機解除 — 何秒後に待機を停止するか。タイムアウト時にはリアクションを起動できます(例: アンケートをやんわりと終了する)。このリアクションはリンクで「待機タイムアウト」として表示され、返答へのリアクションは「期待する返答」として表示されます。

変数置換

**「変数置換」**ボタンで変数を挿入できます: 送信者データ({{first_name}}{{username}}{{user_id}})、イベントデータ({{text}}{{chat_id}}{{datetime}})、パラメータ({{param.key}})。完全なリストとフォーミュラは 変数置換とフォーミュラ を参照してください。

次のステップ