ServiceNowインスタンスでSlackモーダルを設定
モーダルを作成し、Slackモーダルに表示するフィールドを指定します。モーダル UI は、ServiceNow テーブルを使用した自動生成と、カスタムの [ペイロードを表示] を使用した手動生成の 2 つの方法で生成できます。
始める前に
必要なロール:admin
このタスクについて
- コマンド
- ブロックアクション
- グローバルショートカット
- メッセージショートカット
手順
-
ServiceNowテーブルを使用して自動生成される UI でモーダルを作成するには:
- 移動先 Slack > Slack モーダル構成.
- [New] をクリックします。
-
Slack モーダル構成フォームで、次の値を入力します。
表 : 1. Slack モーダル構成フォーム フィールド 説明 名前 レコードを識別する名前です。たとえば、インシデントを作成するためのモーダルです。 モーダルタイトル Slackに表示されるモーダルタイトルです。たとえば、インシデントを作成です。 テーブル モーダルフィールドに対応するServiceNowテーブルです。たとえば、インシデント [incident] です。 カスタムモーダル カスタムモーダルを構成するオプションです。 入力フィールド Slackに表示するフィールドを入力します。たとえば、[優先度]、[カテゴリ]、および [簡単な説明] を選択します。これらのモーダルフィールドが選択したServiceNowテーブルに対応していることを確認してください。たとえば、インシデントを作成するモーダルにタスク関連フィールドを表示することはできません。 注:文字列、日付、および選択肢フィールドタイプのみがサポートされています。有効 レコードを積極的に使用するオプションです。 スクリプトの検証 モーダルでユーザーが入力した内容を検証するスクリプトです。ユーザー指定の入力を検証するには、モーダルから値を取得するフォーマットを把握し、Slackからの応答を解析していることを確認します。 ユーザーが [インシデントを作成] モーダルの [優先度]、[カテゴリ]、および [簡単な説明] フィールドに値を入力したときのサンプルペイロードは次のとおりです。{"priority":{"4gk":{"type":"static_select","selected_option":{"text":{"type":"plain_text","text":"1 - Critical","emoji":true},"value":"1"}}},"category":{"iV7":{"type":"static_select","selected_option":{"text":{"type":"plain_text","text":"Software","emoji":true},"value":"software"}}},"short_description":{"XS/Q=":{"type":"plain_text_input","value":"hemanth"}}}検証エラーをモーダルに表示するには、オブジェクトキー、ステータス、および errorObject を返すようにスクリプトを設定します。errorObject には、Slack に表示されるオブジェクトの値が必要です。オブジェクトには response_action と error が必要です。
また、検証エラーがない場合に status および statusMessage のキーを持つオブジェクトを返すようにスクリプトを設定します。 statusMessage はオプションであり、要件に応じて設定できます。
-
フォームヘッダーを右クリックし、 [保存] をクリックします。
[インシデントを作成] モーダルはSlackで作成されます。
-
カスタムの [ペイロードを表示] を使用して手動生成される UI でモーダルを作成するには:
- 移動先 Slack > Slack モーダル構成.
- [New] をクリックします。
-
Slack モーダル構成フォームで、次の値を入力します。
表 : 2. Slack モーダル構成フォーム フィールド 説明 名前 レコードを識別する名前です。たとえば、インシデントを作成するためのモーダルです。 カスタムモーダル カスタムモーダルを構成するオプションです。このチェックボックスをオンにします。 ペイロードを表示 モーダル UI を定義するSlackブロックキットビルダーによって生成されるペイロードです。詳細については、「ブロックキット」および「ブロックキットを使用したビルド」を参照してください。 有効 レコードを積極的に使用するオプションです。 スクリプトの検証 モーダルでユーザーが入力した内容を検証するスクリプトです。ユーザー指定の入力を検証するには、モーダルから値を取得するフォーマットを把握し、Slackからの応答を解析していることを確認します。 ユーザーが [インシデントを作成] モーダルの [優先度]、[カテゴリ]、および [簡単な説明] フィールドに値を入力したときのサンプルペイロードは次のとおりです。{"priority":{"4gk":{"type":"static_select","selected_option":{"text":{"type":"plain_text","text":"1 - Critical","emoji":true},"value":"1"}}},"category":{"iV7":{"type":"static_select","selected_option":{"text":{"type":"plain_text","text":"Software","emoji":true},"value":"software"}}},"short_description":{"XS/Q=":{"type":"plain_text_input","value":"hemanth"}}}検証エラーをモーダルに表示するには、オブジェクトキー、ステータス、および errorObject を返すようにスクリプトを設定します。errorObject には、Slack に表示されるオブジェクトの値が必要です。オブジェクトには response_action と error が必要です。
また、検証エラーがない場合に status および statusMessage のキーを持つオブジェクトを返すようにスクリプトを設定します。 statusMessage はオプションであり、要件に応じて設定できます。
-
フォームヘッダーを右クリックし、 [保存] をクリックします。
[インシデントを作成] モーダルはSlackで作成されます。
-
モーダルを表示するタイミングを定義する条件を指定します。
- 移動先 Slack > モーダルの受信決定 。
-
意思決定フォームで、次の値を入力します。
表 : 3. 意思決定フォーム フィールド 説明 ラベル 受信モーダル決定を識別する名前です。 回答 指定された条件が満たされたときに表示される必要があるモーダルです。Slack モーダル構成 [sn_slack_ah_v2_slack_modal_configuration] テーブルから必要なレコードが選択されていることを確認します。 デフォルトの回答 デフォルトのモーダルであるかどうかを指定するオプションです。デフォルトのモーダルは、条件が満たされない場合に適用されます。 条件 モーダルを表示するために Slack アプリケーションで満たす必要のある条件です。 注:- sys_id の値をコピーして記録します。Slack アプリでショートカットまたはメッセージショートカットを設定するときに、この sys_id を [コールバック ID] の一意の値として使用できます。必要なショートカットのモーダルを表示するには、[条件] でモーダルのインバウンドポリシーレコードの sys_id を指定します。注:受信通信を処理するために、次の 2 つのシステムプロパティが追加されています。
表 : 4. システムプロパティ カテゴリ プロパティ名 説明 例 スラッシュコマンド sn_slack_ah_v2.command.special_characters encodeURIComponent メソッドを使用してエンコードされた文字は、内部で処理されます。Slack アプリケーションの Slash コマンドで使用されている追加の特殊文字をエンコードされた URI 文字に置き換えるには、JSON 形式で文字を追加します。 {
"~" : "%7E",
"\(" : "%28",
}
インタラクティブ機能とショートカット: sn_slack_ah_v2.interactivity.special_characters encodeURIComponent メソッドを使用してエンコードされた文字と以下の文字は、内部で処理されます。!、'、(、)、*、~
プロパティに入力して、Slack アプリケーションにおける Slack のインタラクティブ機能とショートカットで使用されている追加の特殊文字を JSON 形式でエンコードされた URI 文字に置き換えます。
{
"~" : "%7E",
"\(" : "%28",
}
- 必要なSlackコマンドのモーダルを表示するには、[条件] でモーダルを表示する必要のあるコマンドを指定します。
- 必要なSlackブロックアクションのモーダルを表示するには、[条件] でモーダルを表示する必要のあるブロックアクションの必須アクション ID を指定します。
- sys_id の値をコピーして記録します。Slack アプリでショートカットまたはメッセージショートカットを設定するときに、この sys_id を [コールバック ID] の一意の値として使用できます。
-
[送信] をクリックします。
Slackのイベントがポリシーで指定された条件を満たすと、関連するモーダルが表示されます。注:これらの受信決定は意思決定テーブルに保存されます。ユーザーは、これらのテーブルのデータを直接更新または変更しないように注意してください。
-
ユーザーがインバウンドポリシーを作成してモーダルに値を入力したときに実行するタスクを指定します。
- 移動先 Slack > 受信決定.
- [New] をクリックします。
-
意思決定フォームで、次の値を入力します。
表 : 5. 意思決定フォーム フィールド 説明 ラベル 受信決定を識別する名前です。 回答 指定された条件が満たされるとトリガーされるサブフローです。 デフォルトの回答 この回答がデフォルトの回答かどうかを指定するオプションです。デフォルトの回答は、条件が満たされない場合に適用されます。 - [ルックアップ] アイコン (
) をクリックします。
- ドキュメントリストから必要なサブフローを選択します。注:[テーブル名] がフロー [sys_hub_flow] であることを確認します。
条件 ServiceNowインスタンスでタスクを実行するために満たす必要のある条件です。 条件でモーダルレコードを指定します。注:[条件] には、モーダルレコードにのみ固有の条件が必要です。 - [ルックアップ] アイコン (
-
[送信] をクリックします。
Slack ユーザーがモーダルに入力すると、入力を検証した後に関連するサブフローがトリガーされます。サブフローで構成された自動化に応じて、タスクが実行されます。