WorkbotでのDialogsの使用
Workbotを使用すると、Slack Dialogsを呼び出すことができます。これは、よりインタラクティブな方法で情報を引き出すことができる優れたSlack機能です。

Workbotは、たとえばGithubでチケットを作成するためにユーザーから情報を収集するなど、さまざまな目的でDialogsを呼び出すことができます。
概念
Dialogワークフローを作成するには、3つの高度な機能を実行する3つのレシピが必要です。
Post dialogレシピをトリガー トリガーされると、このレシピのアクションが2番目のレシピをトリガーし、そのレシピがDialogを呼び出します。 これをトリガーレシピと呼びます。
Post dialog トリガーされると、このレシピのアクションがDialogを投稿します。
アクションの実行 Dialogが送信されると、このレシピのアクションがフォローアップアクションを実行します。

レシピの観点では、最初のレシピがトリガーレシピをトリガーし、そのレシピがさらにアクションの実行レシピをトリガーします。
これは、Dialogsの呼び出しにTrigger IDが必要であり、これはSlackのボタンまたはメニューオプションのクリックイベントからのみ生成されるためです。
Dialogsの動作を確認するには、次のシンプルなレシピを参照してください。トリガーレシピ、Post dialog、およびアクションの実行
Post dialogレシピのトリガー
Post dialogレシピをトリガーするには、Post command replyまたはPost messageのWorkbotアクションを使用します。
選択したWorkbotアクションにかかわらず、Dialogレシピは次の2つの方法でトリガーできます。
1. ボタン

Submit button commandフィールドは特に重要です。このコマンドは、Dialogを投稿するレシピ(つまりトリガーレシピ)をトリガーします。

2. メニューオプション

Submit menu option commandフィールドは特に重要です。このコマンドは、Dialogを投稿するレシピ(つまりトリガーレシピ)をトリガーします。

Slackでボタンまたはメニューオプションをクリックすると、Dialogsの呼び出しに必要なパラメーターであるTrigger IDを含むイベントがトリガーされます。
上記の例では、ボタンとメニューオプションの両方がWorkbotコマンドをcollect issue detailsに送信します。
Dialogの投稿
このレシピのDialogが呼び出されるようにするには、トリガーレシピの送信ボタンまたはメニューオプションのコマンドを、このPost dialogレシピのPost commandトリガーにマッピングする必要があります。

Post dialogレシピは、WorkbotのPost commandトリガーを使用して、トリガーレシピのボタンまたはメニューオプションからコマンドを受信します。
このPost dialogレシピの例では、送信ボタンと送信メニューオプションのコマンドcollect issue detailsは、Post dialogトリガーcollect issue detailsと同一です。

Post dialogの設定
Post dialogを設定するには、Post dialogアクションを使用します。
次の表は、Post dialogアクションで使用できるフィールドの一覧です。
| フィールド | 説明 | ここに入力する内容 |
|---|---|---|
| Trigger ID | 送信ボタンまたは送信メニューオプションによってトリガーされたイベントのID。 | 次を使用します: Trigger IDStep 1 Post commandトリガーのデータピル。 |
| Callback ID | Dialogの識別子。 最大長は255文字です。 | トリガーレシピで定義されたSubmit buttonまたはSubmit menu optionコマンドから、コマンド入力値を渡します。![]() ![]() トリガーレシピのパラメーター名が、Dialogを投稿するレシピのコマンド入力フィールドと一致していることを確認します。 |
| ダイアログタイトル | 呼び出されたDialogのタイトル。 最大長は24文字です。 | Dialogの目的を説明します。例: チケットを作成 |
| 送信ボタンのラベル | DialogのSubmitボタンに表示するテキストラベル。 1語のみ入力できます。 | 空白のままにすると、デフォルトでSubmitになります。 すべてのDialogsには、デフォルトでCancelボタンがあります。![]() |
| 送信ボタンコマンド | SlackユーザーがDialogのSubmitボタンをクリックしたときに実行するWorkbotコマンド | 実行するレシピのPost commandトリガーと一致するWorkbotコマンドを使用します。 |
| Dialogフォームフィールド | これは、Submit button command入力フィールドでコマンドを選択すると自動的に生成されます。 最大5フィールド | これは、Dialogに表示されるフィールドを定義します。 Dialogにヒント、エラー処理、ピックリストオプションなどを含めるには、これを変更します。 上記のSubmit button commandから実行されるレシピのコマンド入力フィールドと一致させる必要があるため、"name"値は変更しないでください。 Post dialogレシピのJSON例を参照してください。 |
Submit button commandフィールドは特に重要です。このコマンドは、アクションを実行するレシピ(つまり、アクションの実行レシピ)をトリガーします。
アクションの実行
このレシピがDialogによって実行されるようにするには、Post dialogレシピの送信ボタンコマンドを、このレシピのPost commandトリガーにマッピングする必要があります。

最後のレシピ(フォローアップアクションの実行を担当)は、WorkbotのPost commandトリガーを使用して、Post dialogレシピの送信ボタンコマンドからコマンドを受信します。
この例では、Post dialogレシピの送信ボタンコマンドgithub new issueは、アクションの実行レシピのPost commandトリガーgithub new issueと同一です。

Dialogsを使用する際の一般的な落とし穴
Dialogsでは複数のレシピを使用するため、最初にいくつかの問題が発生するのは普通です。 Dialogsを使用する際の一般的な落とし穴をいくつか示します。
1. 複数のレシピで同じPost commandトリガーワードを使用する

いずれのレシピでも、Post commandトリガーのApp、Action、Action dataの3つすべての組み合わせが、Workatoアカウント全体で一意であることを確認します。 送信ボタンまたは送信メニューオプションのコマンドは、1つのレシピにのみマッピングする必要があります。
たとえば、上記のレシピは、そのWorkatoアカウントでgithub report bugをPost commandトリガーとして持つ唯一のレシピである必要があります。
2. Submit button/menu optionコマンドのマッピングが正しくない
レシピのSubmit button commandおよび/またはSubmit menu option commandが、2番目(または3番目)のレシピのPost commandトリガーに正しくマッピングされていることを確認します。
3. Dialogフォームフィールドと、その後にトリガーされるレシピのコマンド入力フィールドとのマッピングが正しくない
Post dialogレシピのDialogフォームフィールド名が、その後にトリガーされるレシピのコマンド入力フィールドに対応していることを確認します。

試してみる
Slackから呼び出して、これらの例のトリガーレシピ、Post dialog、およびアクションを実行レシピを追加し、ダイアログを試してみてください。

Last updated:


