モーダル内のBlock Kit
モーダルを使用すると、ユーザーから構造化された方法で情報を収集する、リッチでインタラクティブかつ動的なビューを作成できます。 これは、Open/update or push modal viewアクションを使用して行います。
Block Kitモーダルの例
モーダルビューはブロックを使用して構築されます。 モーダルビューには、タイトル、ビュー(ブロックで構成)、および送信/閉じるボタンがあります。 入力ブロックと呼ばれるモーダル専用ブロックも使用できます。 これには次のものがあります。
- 単一行入力
- 複数行入力
- 選択メニュー入力
- 日付ピッカー入力
- チェックボックス入力
インタラクティブコンポーネントと入力ブロックの比較
入力ブロックは、他のブロックのインタラクティブコンポーネントとは異なる動作をします。
ボタン、メニュー、およびその他のインタラクティブコンポーネントは、クリックされたときにコマンドを呼び出します。 これに対し、入力ブロックはビューが送信されたときにのみコマンドを呼び出します。 たとえば、モーダルでは、ユーザーは承認または却下を選択できます。 ユーザーがSubmitボタンをクリックしてモーダルを送信した後にのみ、値が確定します。
_ユーザーの選択は、_送信__をクリックした後にのみ確定します
ビューに入力ブロックが含まれる場合、送信ボタンと閉じるボタンを定義することが必須です。 入力ブロックが含まれない場合、送信ボタンと閉じるボタンを含める必要はありません。
モーダルスタック
モーダルは、ビュースタック内に最大3つのビューを同時に保持できます。 ユーザーに表示されるのは最上位のビューのみで、これはアクティブビューと呼ばれます。 ビュースタックは、ユーザーがアクティブビューを送信または閉じた後に以前のビューへ戻れるようにするため便利です。
各モーダルは最大3つのビューをスタックできます
モーダルを開くと、ルートビューで開きます。 モーダルを更新すると、指定した既存のビュー(そのビューIDを使用)が置き換えられます。一方、モーダルビューをプッシュすると、ビュースタックの最上位に新しいビューが適用されます。
各ビューには関連付けられたビューIDがあります。 既存のビューを更新するには、このビューIDが必要です。
ビュー間での情報の受け渡し
ユーザーがインタラクティブコンポーネントを操作するかモーダルを送信すると、ボットコマンドがダウンストリームレシピをトリガーします。 このダウンストリームレシピは、モーダルビューを更新またはプッシュできます。 ダウンストリームレシピ内のモーダルアクションに必要なコンテキストを確実に提供するには、ユーザーIDや商談IDなどのパラメーターを渡します。
モーダルでは、これらの値はコマンド入力値と呼ばれます。 これにより、レシピのある部分から別の部分へ特定のデータを渡せます。 たとえば、ユーザーがモーダルでアカウントを選択し、account_idをコマンド入力値として定義した場合、それを後続のアクションに渡して、そのアカウントに関する情報を更新または取得できます。 これにより、ユーザー入力に基づく動的なピックリストの生成など、動的でインタラクティブなワークフローが可能になります。
これらのパラメーターを渡すには、ダウンストリームレシピのNew commandトリガーで定義する必要があります。 パラメーター名とデータ型が、アップストリーム側の対応するものと一致していることを確認することが重要です。 たとえば、モーダルのビュー(アップストリームレシピでレンダリング)でopportunity_idを単一行入力として使用する場合、ダウンストリームレシピのNew commandでもopportunity_idを文字列パラメーターとして指定する必要があります。
JSONを使用してパラメーターを渡すことができます。たとえば、{"opportunity_id": "OPP1234567"}または{"OpportunityId": "OPP1234567"}です。 コマンド入力値では、JSON配列およびオブジェクトをパラメーターとして渡すこともサポートされています。
たとえば、ユーザーIDの配列を渡すことができます。
{
"user_ids": ["USER123", "USER456", "USER789"]
}商談を説明するキー値ペアを含むオブジェクトを渡すこともできます。
{
"opportunity": {
"id": "OPP1234567",
"name": "New business opportunity",
"amount": 50000,
"status": "Open"
}
}文字制限
モーダルでは、コマンド入力値としてCamelCase文字やカンマ区切りの名前と値のペアはサポートされません。 ただし、JSONではCamelCaseがサポートされます。たとえば、{"OpportunityId": "OPP1234567"}です。
モーダルの操作
次のコンポーネントを使用してモーダルを開くことができます。
- ボタン
- メニュー
- オーバーフロー
- 選択メニュー
- 日付ピッカー
- ラジオボタン
- ショートカット
- メッセージアクション
- スラッシュコマンド
- モーダルビューの送信
前述のコンポーネントはボットコマンドを呼び出し、トリガーIDを生成します。これはNew commandトリガーによって取得されます。 トリガーIDは、すべての種類のモーダルで必須です。 モーダルビューを開く、更新する、プッシュする操作には、すべてこのトリガーIDが必要です。
New commandトリガーのデータツリーには、モーダル関連のコンテキストを保存するModalsオブジェクトが含まれており、これによりモーダルアクションを実行できます。
| モーダルデータピル | 説明 |
|---|---|
| View ID | コマンドが呼び出されたビューのView ID、別名 アクティブビュー。 コマンドがビュー送信から呼び出された場合、このView IDはビューの更新/プッシュには使用できません。送信時にビューがすでに閉じているためです。 アクティブなビューが1つだけの場合、このView IDはルートビューIDと同じになります。 |
| Root View ID | ルートビューのView ID。 |
| Previous View ID | 現在のビューの下にあるビューのView ID |
| Private metadata | 必要に応じて下流のレシピに渡すために使用できるプライベートデータ。 このフィールドは暗号化され、ユーザーには表示されません。 |
| Hash | モーダルの更新時に必要に応じて使用できる一意の値。 指定するとハッシュが検証され、最新のビューのみが更新されます。これにより、更新が非同期に行われる場合に正しいビューが更新されることが保証されます。 |
Open/update or push modal viewアクション
このアクションを使用すると、ユーザーから構造化された方法で情報を収集する、リッチでインタラクティブかつ動的なモーダルを作成できます。 モーダルはブロックを使用して構築されます。
Open/update or push modal viewアクション
Modal action typeをopen、update、またはpushに設定することで、新しいモーダルビューを開く、既存のビューを更新する、または既存のビューの上に新しいビューをプッシュできます。 
すべてのモーダルアクションタイプで、トリガーIDが必要です。 Slackは、ユーザーが次のコンポーネントを操作したときにトリガーIDを生成します。
- ボタン
- メニュー
- オーバーフロー
- 選択メニュー
- 日付ピッカー
- ラジオボタン
- ショートカット
- メッセージアクション
- スラッシュコマンド
- モーダルビューの送信
モーダルビューを開くには、New commandトリガーの出力からトリガーIDStep 1データピルをマッピングします。
モーダルビューを開くためのトリガーID(New commandトリガー内にあります)
モーダルビューの更新にもトリガーIDが必要ですが、更新するビューのビューIDも指定する必要があります。 このビューIDは、New commandトリガーのデータツリーのModals配下にもあります。
モーダルビューを更新するためのトリガーIDとView ID(どちらもNew commandトリガー内にあります)
モーダルビューを(既存のビューの上に)プッシュするには、トリガーIDが必要です。 ただし、このトリガーIDは既存のビューから生成されている必要があります。
モーダルビューをプッシュするためのトリガーID(New commandトリガー内にあります)
モーダルビューを更新するタイミング
通常、ボットコマンドはビューIDを使用して、それらが存在するアクティブビューを更新します。
アクティブビューでの変更
これに対し、モーダル送信では通常、ルートビュー(ルートビューID)または前のビュー(前のビューID)を更新します。 これらのビューは、New commandトリガーのデータツリー内のModalsにあります。
New commandトリガー内にあるRoot View IDとPrevious View ID
ビューの送信
ビューが送信されると、デフォルトで閉じます。 ビュー送信への応答としてビューを更新する場合は、正しいビューIDを使用してください。
モーダルビューをプッシュするタイミング
通常、ボットコマンドはビューIDを使用して、それらが存在するアクティブビューの上にビューをプッシュします。 ビューIDは、New commandトリガーのデータツリー内のModalsにあります。
アクティブビューでの変更
New commandトリガー内にあるRoot View IDとPrevious View ID
ビューの送信
ビューが送信されると、デフォルトで閉じます。 モーダルビューは、必ずアクティブビューの上にのみプッシュしてください。
Open/update or push modal viewアクション入力
次の表では、このアクションを使用する場合の設定について説明します。
| 入力 | 説明 | ||
|---|---|---|---|
| トリガーID(必須) | モーダルビューを開けるのは、インタラクティブコンポーネント(ボタンやメニューなど)、モーダル送信、メッセージアクション、ショートカット、およびスラッシュコマンドのみです。 ユーザーがこれらの機能を操作または使用すると、トリガーIDが生成されます。 これらは、New commandトリガーのデータツリーのModalsオブジェクト配下から取得できます。 | ||
| モーダルアクションタイプ(必須) | Modal action typeをそれぞれopen、update、またはpushに設定することで、新しいモーダルビューを開く、既存のビューを更新する、または既存のビューの上に新しいビューをプッシュできます。 これは、Custom valueに切り替えることで動的に設定できます。 アクションでView IDが不要な場合(たとえば、モーダルビューを開くまたはプッシュする場合)、View IDは無視されます。 | ||
| View ID(任意) | 既存のモーダルを更新するには、更新するビューのビューIDを指定します。 このフィールドは、モーダルビューを開くまたはプッシュする場合には無視されます。 | ||
| 表示 | モーダルのタイトル | モーダルビューのタイトル。 最大24文字のみ。 | |
| ブロック | 積み重ねたり並べ替えたりできるブロックの配列。 | ||
| ビューを送信 | 送信コマンド | ユーザーがモーダル送信を行ったときに呼び出すコマンド。 | |
| コマンド入力値 | ユーザーがモーダルを送信するとき、ダウンストリームレシピにコンテキストを提供するために、ユーザーIDや商談IDなどのパラメーターを渡す必要がある場合があります。 これらを受け取る準備をするには、モーダルでこれらのパラメーターを定義し、ダウンストリームレシピのNew commandトリガーに渡す必要があります。 モーダルを含むアップストリームレシピと、New commandトリガーを持つダウンストリームレシピの両方で、パラメーター名が一致している必要があります。 アクションはカンマ区切りの名前と値のペアやCamelCaseをサポートしないため、モーダルでパラメーターを渡すにはJSONを使用します。 たとえば、 {"opportunity_id": "OPP1234567"}です。 ただし、JSON内ではCamelCaseパラメーターがサポートされます。たとえば、{"OpportunityId": "OPP1234567"}です。 JSONを使用して配列またはオブジェクトを渡すこともできます。パラメーター名とデータ型が、アップストリーム側の対応するものと一致していることを確認してください。 たとえば、モーダルビュー(アップストリームレシピでレンダリング)で opportunity_idを単一行入力として使用する場合、ダウンストリームレシピのNew commandトリガーでもopportunity_idを文字列パラメーターとして指定します。 | ||
| 送信ボタンのラベル | 送信ボタンのラベル。 最大24文字のみ。 | ||
| 閉じるボタンのラベル | 閉じるボタンのラベル。 最大24文字のみ。 | ||
| 閉じる時にクリア | 閉じるボタンをクリックすると、モーダル内のすべてのビューがクリアされ、モーダルが閉じます。 デフォルトはfalseです。 | ||
| 閉じる時に通知 | ユーザーが閉じるボタンをクリックすると、view_closedイベントを送信します。 デフォルトはfalseです。 このイベントをリッスンするには、New eventトリガーを使用します。 | ||
| 詳細設定 | プライベートメタデータ | 上級ユーザー向け。 機密データを渡すために使用します。 このフィールドは暗号化され、ユーザーには非表示になります。 最大長は3000文字。 | |
| Callback ID | 上級ユーザー向け。 ダウンストリームレシピでビュー送信イベントを参照するために使用します。 最大長は255文字。 | ||
| ハッシュ | モーダルの更新時に必要に応じて使用できる一意の値。 指定するとハッシュが検証され、最新のビューのみが更新されます。これにより、更新が非同期に行われる場合に正しいビューが更新されることが保証されます。 このフィールドは、モーダルビューを開くまたはプッシュする場合には無視されます。 | ||
Last updated: