ServiceNowインスタンスでSlackモーダルを設定

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:9分
  • モーダルを作成し、Slackモーダルに表示するフィールドを指定します。モーダル UI は、ServiceNow テーブルを使用した自動生成と、カスタムの [ペイロードを表示] を使用した手動生成の 2 つの方法で生成できます。

    始める前に

    必要なロール:admin

    このタスクについて

    たとえば、Slackでモーダルを使用してインシデントを作成する場合、「インシデントを作成」モーダルには [優先度][カテゴリ]、および [簡単な説明] フィールドが必要です。
    注:
    モーダルは、次のインタラクティブSlackコンポーネントからトリガーできます。
    • コマンド
    • ブロックアクション
    • グローバルショートカット
    • メッセージショートカット

    手順

    1. ServiceNowテーブルを使用して自動生成される UI でモーダルを作成するには:
      1. 移動先 Slack > Slack モーダル構成.
      2. [New] をクリックします。
      3. 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 はオプションであり、要件に応じて設定できます。

        スクリプトの検証。
      4. フォームヘッダーを右クリックし、 [保存] をクリックします。
        [インシデントを作成] モーダルはSlackで作成されます。
        Slack モーダル。
    2. カスタムの [ペイロードを表示] を使用して手動生成される UI でモーダルを作成するには:
      1. 移動先 Slack > Slack モーダル構成.
      2. [New] をクリックします。
      3. 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 はオプションであり、要件に応じて設定できます。

        スクリプトの検証。
      4. フォームヘッダーを右クリックし、 [保存] をクリックします。
        [インシデントを作成] モーダルはSlackで作成されます。
    3. モーダルを表示するタイミングを定義する条件を指定します。
      1. 移動先 Slack > モーダルの受信決定
      2. 意思決定フォームで、次の値を入力します。
        表 : 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",

          }

          必要なショートカットのモーダルを表示するには、[条件] でモーダルのインバウンドポリシーレコードの sys_id を指定します。
          Slack ショートカットのモーダルを表示する。
        • 必要なSlackコマンドのモーダルを表示するには、[条件] でモーダルを表示する必要のあるコマンドを指定します。
          Slack コマンドのモーダルを表示する。
        • 必要なSlackブロックアクションのモーダルを表示するには、[条件] でモーダルを表示する必要のあるブロックアクションの必須アクション ID を指定します。
          Slack ブロックアクションのモーダルを表示する。
      3. [送信] をクリックします。
        Slackのイベントがポリシーで指定された条件を満たすと、関連するモーダルが表示されます。
        注:
        これらの受信決定は意思決定テーブルに保存されます。ユーザーは、これらのテーブルのデータを直接更新または変更しないように注意してください。
    4. ユーザーがインバウンドポリシーを作成してモーダルに値を入力したときに実行するタスクを指定します。
      1. 移動先 Slack > 受信決定.
      2. [New] をクリックします。
      3. 意思決定フォームで、次の値を入力します。
        表 : 5. 意思決定フォーム
        フィールド 説明
        ラベル 受信決定を識別する名前です。
        回答 指定された条件が満たされるとトリガーされるサブフローです。
        デフォルトの回答 この回答がデフォルトの回答かどうかを指定するオプションです。デフォルトの回答は、条件が満たされない場合に適用されます。
        1. [ルックアップ] アイコン (ルックアップアイコン) をクリックします。
        2. ドキュメントリストから必要なサブフローを選択します。
          注:
          [テーブル名]フロー [sys_hub_flow] であることを確認します。
        タスクを自動化するためにSlackからの応答ペイロードを処理するようにサブフローが構成されていることを確認してください。
        条件 ServiceNowインスタンスでタスクを実行するために満たす必要のある条件です。
        条件でモーダルレコードを指定します。
        サブフローをトリガーする条件。
        注:
        [条件] には、モーダルレコードにのみ固有の条件が必要です。
      4. [送信] をクリックします。
        Slack ユーザーがモーダルに入力すると、入力を検証した後に関連するサブフローがトリガーされます。サブフローで構成された自動化に応じて、タスクが実行されます。