Slack

このドキュメントでは、Slack を Google SecOps と統合する方法について説明します。

Google Security Operations と連携するように Slack を構成する

Google SecOps と連携するように Slack を構成するには、まず新しいアプリを作成する必要があります。

  1. https://api.slack.com/ にアクセスし、[Start Building] をクリックします。

  2. [アプリ名] パラメータと [開発用 Slack ワークスペース] パラメータを入力します。[Create App] をクリックします。

    Slack アプリのダイアログを作成する

  3. [OAuth & Permissions] タブに移動し、[Scopes] セクションまで下にスクロールします。

    [OAuth & Permissions] タブ

  4. 次のスコープ/権限を追加します。Slack では、ユーザー権限ではなく、ボットの OAuth トークン スコープを追加することが推奨されています。

    • channels:history
    • channels:manage
    • channels:read
    • chat:write
    • files:write
    • groups:history
    • groups:write
    • groups:read
    • im:read
    • im:write
    • im:history
    • mpim:read
    • mpim:history
    • mpim:write
    • users:read
    • users:read.email

    [Permission Scopes] ダイアログ

  5. 「インタラクティブ メッセージを送信」や「Webhook で返信を待機」などのアクションでアプリのインタラクティブ性を有効にするには、アプリのリクエスト URL を追加します。詳細については、Slack ドキュメント内の Slack アプリでのユーザー操作の処理に関するドキュメントをご覧ください。

  6. 上にスクロールして、[Install App to Workspace] をクリックします。

    [Install App to Workspace] ボタンの場所

  7. [許可] をクリックします。

    LabBot の権限アクセス設定

  8. bot を使用するかユーザーを使用するかに応じて、作成されたトークンのいずれかをコピーします。

  9. これらのトークンのいずれかを使用して統合を構成します。

ネットワーク

関数 デフォルト ポート 方向 プロトコル
API 複数の値 送信 apitoken

Google SecOps で Slack インテグレーションを構成する

Google SecOps で統合を構成する手順の詳細については、統合を構成するをご覧ください。

統合のパラメータ

次のパラメータを使用して統合を構成します。

パラメータの表示名 種類 デフォルト値 必須 説明
インスタンス名 文字列 なし いいえ 統合を構成するインスタンスの名前。
説明 文字列 なし いいえ インスタンスの説明。
API トークン 文字列 なし ○ Slack コンソールで生成された API トークン。
SSL を確認する チェックボックス オフ × Slack 接続で SSL の検証が必要な場合は、このチェックボックスをオンにします(デフォルトではオフになっています)。
リモートで実行 チェックボックス オフ いいえ 構成した統合をリモートで実行するには、フィールドのチェックボックスをオンにします。オンにすると、リモート ユーザー(エージェント)を選択するオプションが表示されます。

操作

質問する

説明

Slack で質問します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
チャネル 文字列 なし ○ ターゲット チャンネル。
問題 文字列 なし ○ 質問の内容。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
N/A

ビルドブロック

説明

指定された入力条件に基づいて Slack メッセージ ブロックを構築します。このアクションは、後で [インタラクティブ メッセージを送信] アクションに渡してメッセージを送信できる Webhook を含むブロックを作成します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
問題 文字列 なし ○ ブロックに追加する質問のテキストを指定します。
回答ボタン 文字列 なし ○ ブロックに追加する回答ボタンを指定します。
Siemplify ベース URL 文字列 なし ○ ブロックに追加する Google SecOps サーバーのベース URL を指定します。
ケース ID 文字列 なし ○ ブロックに追加する Google SecOps ケース ID を指定します。
Webhook トークンの UUID 文字列 なし ○ ユーザーの応答をモニタリングする Webhook トークンの UUID を指定します。

プレイブックのユースケースの例

後で「高度なメッセージを送信」アクションに渡して、ブロックを含むメッセージを送信できるブロックを構築します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
{
  "result": "[{\"type\": \"section\", \"block_id\": \"f99958f1-c1f1-4fdb-bb8b-a382d952d5bd\", \"text\": {\"type\": \"mrkdwn\", \"text\": \"yes?\", \"verbatim\": false}},{\"type\": \"actions\", \"block_id\": \"2850e684-472a-472f-9a32-96294cbe9046\", \"elements\": [{\"type\": \"button\", \"text\": {\"type\": \"plain_text\", \"text\": \"y\"}, \"action_id\": \"y\", \"url\": \"...\"}, {\"type\": \"button\", \"text\": {\"type\": \"plain_text\", \"text\": \"n\"}, \"action_id\": \"n\", \"url\": \"...\"}, {\"type\": \"button\", \"text\": {\"type\": \"plain_text\", \"text\": \"View Case in Siemplify\"}, \"action_id\": \"View Case in Siemplify\", \"url\": \"...\"}]}]"
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

ビルドブロックが正常に作成された場合(is_succeed=True):「Slack ブロックが正常に作成されました。」

一般的なエラーにより Slack ブロックの作成に失敗した場合(is_succeed=False): 「次のエラーが発生したため、ブロックの作成に失敗しました: {0}」.format(エラー テキスト)

アクションが失敗し、ハンドブックの実行が停止します。

統合構成で Webhook ベースの URL が指定されていない場合:「アクションの実行に失敗しました。統合パラメータ「Webhook Base URL」を指定してください。」

認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「"高度なメッセージを送信" アクションの実行に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般

チャネルの作成

説明

Slack チャネルを作成します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
チャンネル名 文字列 なし ○

チャンネルの名前を指定します。

注: チャンネル名に使用できるのは、英小文字、数字、ハイフン、アンダースコアのみです。また、80 文字以下にする必要があります。

ユーザー ID 文字列 なし ○

新しく作成されたチャンネルに招待するユーザーの ID を指定します。

例: U014JDHLW87、U08544ABC85。

非公開かどうか チェックボックス オフ × 有効にすると、アクションによって非公開チャンネルが作成されます。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "is_general": "False",
    "name_normalized": "12asd1237712318",
    "is_channel": "True",
    "creator": "U014J4NFQQG",
    "is_member": "True",
    "is_archived": "False",
    "topic": {
        "last_set": "0",
        "value": " ",
        "creator": " "
    },
    "parent_conversation": "None",
    "is_im": "False",
    "is_ext_shared": "False",
    "previous_names": [],
    "last_read": "0000000000.000000",
    "id": "C014S1G6DB4",
    "is_org_shared": "False",
    "pending_connected_team_ids": [],
    "is_pending_ext_shared": "False",
    "is_mpim": "False",
    "is_group": "False",
    "shared_team_ids": ["T013MJHSNCT"],
    "purpose": {
        "last_set": 0,
        "value": " ",
        "creator": " "
    },
    "is_private": "False",
    "is_shared": "False",
    "name": "12asd1237712318",
    "created": "1591194197",
    "pending_shared": [],
    "unlinked": 0,
    "priority": 0
}
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

「ok」== true、アクション パラメータ「Private」が false、ユーザー ID パラメータが空の場合(is_success=true):

"Successfully created channel {0}".format(name)

「ok」== true、「Private」アクション パラメータが true、「User IDs」パラメータが空の場合(is_success=true): 「プライベート チャンネル {0} が正常に作成されました」.format(name)

「ok」== true、「Private」アクション パラメータが false で、ユーザー ID が利用可能な場合(is_success=true): 「チャンネル {0} が正常に作成され、{1} 人のユーザーが追加されました」.format(name, user_ids)

「ok」== true、「Private」アクション パラメータが true で、ユーザー ID が利用可能な場合(is_success=true):

「プライベート チャネル {0} を作成し、{1} 人のユーザーを追加しました」.format(name, user_ids)

「ok」が false の場合。最初のリクエスト(is_success=false)の場合:

「チャンネル {0} を作成できませんでした。理由: {1}」.format(name, value of error parameter from response)

2 回目のリクエストで "ok" == false の場合(is_success=false):

「チャンネル {0} が作成されましたが、ユーザーは招待されていません。理由:".format(name, value of error parameter from response)

"ok" == false かつ error == "user_not_found" の場合(is_success=false):

「チャンネル {0} にユーザーを追加できませんでした。理由: 指定されたユーザー ID の {1} が Slack に存在しません。」.format(name, レスポンスの len(errors))

アクションが失敗し、ハンドブックの実行が停止します。

致命的なエラー(認証情報の誤り、接続エラー、アクションのクラッシュ)が報告された場合:「アクション「チャンネルの作成」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

チャンネルまたはユーザーの会話履歴を取得する

説明

指定された入力条件に基づいて、ユーザーまたはチャンネルの会話履歴を取得します。このアクションは、チャンネル ID またはユーザー ID のいずれかで動作します。これらの ID は、「チャンネルを一覧表示」アクションまたは「ユーザーを一覧表示」アクションで検索できます。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
チャンネル ID またはユーザー ID 文字列 なし ○ 会話履歴を取得するチャンネルまたはユーザー ID を指定します。
期間 DDL

Last Hour

有効な値:

  • Last Hour
  • 過去 6 時間
  • 過去 24 時間
  • 先週
  • 先月
  • カスタム
いいえ

結果の期間を指定します。

「カスタム」を選択した場合は、「開始時刻」パラメータも指定する必要があります。

開始時刻 文字列 なし いいえ

結果の開始時刻を指定します。

「期間」パラメータに「カスタム」が選択されている場合、このパラメータは必須です。

形式: ISO 8601。

例: 2021-08-05T05:18:42Z

終了時刻 文字列 なし いいえ

結果の終了時刻を指定します。

何も指定されず、「期間」パラメータで「カスタム」が選択されている場合、このパラメータでは現在の時刻が使用されます。

形式: ISO 8601。

例: 2021-08-05T05:18:42Z。

返されるレコードの最大数 Integer 20 ×

返すレコードの数を指定します。

何も指定しないと、アクションで 20 件のレコードが返されます。

プレイブックのユースケースの例

会話履歴を取得してアラートを調査します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
[
  {
    "bot_id": "B02D9QYM7P0",
    "type": "message",
    "text": "test",
    "user": "U02D1RPLVST",
    "ts": "1665988448.627219",
    "app_id": "A02DDGD942Z",
    "team": "T02CX3N6B0B",
    "bot_profile": {
      "id": "B02D9QYM7P0",
      "deleted": false,
      "name": "Siemplify-test",
      "updated": 1630908872,
      "app_id": "A02DDGD942Z",
      "icons": {
        "image_36": "https://a.slack-edge.com/80588/img/plugins/app/bot_36.png",
        "image_48": "https://a.slack-edge.com/80588/img/plugins/app/bot_48.png",
        "image_72": "https://a.slack-edge.com/80588/img/plugins/app/service_72.png"
      },
      "team_id": "T02CX3N6B0B"
    },
    "blocks": [
      {
        "type": "rich_text",
        "block_id": "JbVUf",
        "elements": [
          {
            "type": "rich_text_section",
            "elements": [
              {
                "type": "text",
                "text": "test"
              }
            ]
          }
        ]
      }
    ]
  }
]
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

会話履歴が正常に見つかった場合(is_succeed=True):「会話履歴が正常に取得されました。」

指定された ID の会話が見つからない場合(is_succeed=False): 「指定された ID {0} の会話が見つかりませんでした」.format(channel_or_user_id)

指定された ID の会話が見つかり、指定された期間のメッセージが見つからなかった場合(is_succeed=False): 「ID {0} の会話は見つかりましたが、指定された期間のメッセージは見つかりませんでした。」.format(channel_or_user_id)

アクションが失敗し、ハンドブックの実行が停止します。

認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「「高度なメッセージを送信」アクションの実行に失敗しました。エラーは {0}」.format(exception.stacktrace)

「返される最大レコード数」パラメータに無効な値が指定されている場合:「アクション「{action name}」の実行エラー。理由: 「返さえる最大レコード数」に無効な値が指定されました。正の数を指定してください。」

「期間」パラメータで「カスタム」が選択され、「開始時刻」パラメータが指定されていない場合:「アクション「{アクション名}」の実行エラー。理由: 「カスタム期間の開始時間が指定されていません。」

全般

ユーザーの詳細を取得する

説明

指定された入力条件に基づいて Slack ユーザーの詳細を取得します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
検索する条件 DDL

メール

有効な値:

  • メール
  • 名前
  • ID
○ ユーザーの詳細を検索するパラメータを指定します。
ユーザーにとっての価値 文字列 なし ○ 検索するユーザー値を指定します。

プレイブックのユースケースの例

ユーザーの詳細を取得して、Google SecOps でアラート処理を拡充します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
  "id": "U043FPEMATG",
  "team_id": "T02CX3N6B0B",
  "name": "example.user",
  "deleted": false,
  "color": "3c989f",
  "real_name": "Example User",
  "tz": "Europe/Europe",
  "tz_label": "Central European Summer Time",
  "tz_offset": 7200,
  "profile": {
    "title": "",
    "phone": "",
    "skype": "",
    "real_name": "Example User",
    "real_name_normalized": "Example User",
    "display_name": "Example User",
    "display_name_normalized": "Example User",
    "fields": null,
    "status_text": "",
    "status_emoji": "",
    "status_emoji_display_info": [],
    "status_expiration": 0,
    "avatar_hash": "gc297456197c",
    "email": "example.user@example.com",
    "first_name": "Example",
    "last_name": "User",
    "image_24": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-24.png",
    "image_32": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-32.png",
    "image_48": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-48.png",
    "image_72": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png",
    "image_192": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-192.png",
    "image_512": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-512.png",
    "status_text_canonical": "",
    "team": "T02CX3N6B0B"
  },
  "is_admin": false,
  "is_owner": false,
  "is_primary_owner": false,
  "is_restricted": false,
  "is_ultra_restricted": false,
  "is_bot": false,
  "is_app_user": false,
  "updated": 1663939355,
  "is_email_confirmed": true,
  "who_can_share_contact_card": "EVERYONE"
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ \*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

ユーザーの詳細情報が正常に見つかった場合(is_succeed=True):「ユーザーの詳細情報が正常に取得されました。」

指定された条件に基づいてユーザーの詳細が見つからない場合(is_succeed=False): 「指定された条件に基づいてユーザーの詳細が見つかりませんでした。検索条件: <0> ユーザー値: <1>」.format(search_by, user_value)

名前でユーザーの詳細が見つかり、複数の一致が見つかった場合(is_succeed=True): 「指定された検索条件に複数の一致が見つかりました。検索条件: <0> ユーザー値: <1>」.format(search_by, user_value)

一般的なエラーが原因でユーザーが見つからなかった場合(is_succeed=False): 「エラーが発生したため、ユーザーの詳細を取得できませんでした: {0}」(エラー テキスト)

アクションが失敗し、ハンドブックの実行が停止します。

認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「"高度なメッセージを送信" アクションの実行に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般
Case Wall テーブル

テーブル名: Slack User Details

テーブル列:

  • ID
  • チーム ID
  • 名前
  • 本名
  • 表示名
  • 名
  • 姓
  • 更新時刻
  • タイムゾーン
  • タイトル
  • 電話
  • 管理者である
  • オーナー
  • メインのオーナーである
  • 制限されている
  • Ultra 制限あり
  • Is Bot
  • Is App User
  • メールアドレスの確認済み
全般

ID でユーザーの詳細を取得する

説明

ID でユーザーの詳細を取得します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
ユーザー ID 文字列 なし ○ ユーザーの ID。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
N/A

チャネルの一覧表示

説明

Slack チャンネルのリストを取得します。

パラメータ

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
[
    {
        "is_org_shared": false,
        "is_general": true,
        "name_normalized": "general",
        "name": "general",
        "is_channel": true,
        "created": 1575550599,
        "is_member": true,
        "is_mpim": false,
        "is_archived": false,
        "creator": "URALP6WRJ",
        "topic": {
            "last_set": 1575550599,
            "value": "Company-wide announcements and work-based matters",
            "creator": "URALP6WRJ"
        },
        "num_members": 1,
        "purpose": {
            "last_set": 1575550599,
            "value": "This channel is for workspace-wide communication and announcements. All members are in this channel.",
            "creator": "URALP6WRJ"
        },
        "members": ["URALP6WRJ"],
        "unlinked": 0,
        "is_shared": false,
        "id": "CRB4ZHGNR",
        "is_private": false,
        "previous_names": []
    }, {
        "is_org_shared": false,
        "is_general": false,
        "name_normalized": "random",
        "name": "random",
        "is_channel": true,
        "created": 1575550599,
        "is_member": true,
        "is_mpim": false,
        "is_archived": false,
        "creator": "URALP6WRJ",
        "topic": {
            "last_set": 1575550599,
            "value": "Non-work banter and water cooler conversation",
            "creator": "URALP6WRJ"
        },
        "num_members": 1,
        "purpose": {
            "last_set": 1575550599,
            "value": "A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.",
            "creator": "URALP6WRJ"
        },
        "members": ["URALP6WRJ"],
        "unlinked": 0,
        "is_shared": false,
        "id": "CRD0KF9T9",
        "is_private": false,
        "previous_names": []
    }, {
        "is_org_shared": false,
        "is_general": false,
        "name_normalized": "website",
        "name": "website",
        "is_channel": true,
        "created": 1575550600,
        "is_member": true,
        "is_mpim": false,
        "is_archived": false,
        "creator": "URALP6WRJ",
        "topic": {
            "last_set": 0,
            "value": " ",
            "creator": " "
        },
        "num_members": 1,
        "purpose": {
            "last_set": 0,
            "value": " ",
            "creator": " "
        },
        "members": ["URALP6WRJ"],
        "unlinked": 0,
        "is_shared": false,
        "id": "CRDAUBZP0",
        "is_private": false,
        "previous_names": []
    }
]
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

「ok」== false の場合(is_success=false): 「チャンネルの一覧表示に失敗しました。理由: {0}」.format(レスポンスの error パラメータの値)

全般

ユーザーの一覧表示

説明

このアクションは、Slack ユーザーのリストを取得する役割を果たします。

パラメータ

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
[
    {
        "profile": {
            "status_text": " ",
            "display_name": " ",
            "status_emoji": " ",
            "title": " ",
            "status_text_canonical": " ",
            "team": "TRALP6VNY",
            "real_name": "somerealname",
            "image_24": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-24.png",
            "phone": " ",
            "real_name_normalized": "somerealnamen",
            "image_512": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-512.png",
            "image_72": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-72.png",
            "image_32": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-32.png",
            "image_48": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-48.png",
            "skype": " ",
            "avatar_hash": "g2d62053d7f7",
            "display_name_normalized": " ",
            "status_expiration": 0,
            "email": "mail@seimplify.co",
            "image_192": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-192.png"
        },
        "updated": 1575550598,
        "tz": "Europe/Moscow",
        "name": "name",
        "deleted": false,
        "is_app_user": false,
        "is_bot": false,
        "tz_label": "Moscow Time",
        "real_name": "realname",
        "color": "9f69e7",
        "team_id": "TRALP6VNY",
        "is_admin": true,
        "is_ultra_restricted": false,
        "is_restricted": false,
        "is_owner": true,
        "tz_offset": 14400,
        "has_2fa": false,
        "id": "URALP6WRJ",
        "is_primary_owner": true
    }, {
        "profile": {
            "last_name": " ",
            "status_emoji": " ",
            "display_name_normalized": "Slackbot",
            "image_32": "https://a.slack-edge.com/80588/img/slackbot_32.png",
            "skype": " ",
            "image_72": "https://a.slack-edge.com/80588/img/slackbot_72.png",
            "status_expiration": 0,
            "image_192": "https://a.slack-edge.com/80588/marketing/img/avatars/slackbot/avatar-slackbot.png",
            "first_name": "slackbot",
            "display_name": "Slackbot",
            "title": " ",
            "real_name_normalized": "Slackbot",
            "always_active": true,
            "status_text_canonical": " ",
            "image_24": "https://a.slack-edge.com/80588/img/slackbot_24.png",
            "phone": " ",
            "image_48": "https://a.slack-edge.com/80588/img/slackbot_48.png",
            "fields": null,
            "real_name": "Slackbot",
            "image_512": "https://a.slack-edge.com/80588/img/slackbot_512.png",
            "team": "TRALP6VNY",
            "avatar_hash": "sv41d8cd98f0",
            "status_text": " "
        },
        "updated": 0,
        "tz": null,
        "name": "slackbot",
        "deleted": false,
        "is_app_user": false,
        "is_bot": false,
        "tz_label": "Pacific Standard Time",
        "real_name": "Slackbot",
        "color": "757575",
        "team_id": "TRALP6VNY",
        "is_admin": false,
        "is_ultra_restricted": false,
        "is_restricted": false,
        "is_owner": false,
        "tz_offset": -28800,
        "id": "USLACKBOT",
        "is_primary_owner": false
    }
]

Ping

説明

接続をテストします。

パラメータ

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
N/A

チャンネル名を変更する

説明

Slack チャンネルの名前を変更します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
チャンネル名 文字列 なし ×

名前を変更するチャンネルの名前を指定します。

注: 「チャンネル名」と「チャンネル ID」の両方のパラメータが指定されている場合、アクションは ID でのみ機能します。

チャネル ID 文字列 なし ×

名前を変更するチャンネルの ID を指定します。

注: 「チャンネル名」と「チャンネル ID」の両方のパラメータが指定されている場合、アクションは ID でのみ機能します。

新しい名前 文字列 なし ○

チャネルの新しい名前を指定します。

注: チャンネル名に使用できるのは、英小文字、数字、ハイフン、アンダースコアのみです。また、80 文字以下にする必要があります。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果

「ok」が true の場合:

{
    "channel": {
        "id": "C013ELA1YVC",
        "name": "project_old",
        "is_channel": true,
        "is_group": false,
        "is_im": false,
        "created": 1589444943,
        "is_archived": false,
        "is_general": false,
        "unlinked": 0,
        "name_normalized": "project_old",
        "is_shared": false,
        "parent_conversation": null,
        "creator": "U0136KZ0P5M",
        "is_ext_shared": false,
        "is_org_shared": false,
        "shared_team_ids": [
            "T013MJHSNCT"
        ],
        "pending_shared": [],
        "pending_connected_team_ids": [],
        "is_pending_ext_shared": false,
        "is_member": true,
        "is_private": false,
        "is_mpim": false,
        "last_read": "1595242486.000300",
        "topic": {
            "value": "",
            "creator": "",
            "last_set": 0
        },
        "purpose": {
            "value": "This *channel* is for working on a project. Hold meetings, share docs, and make decisions together with your team.",
            "creator": "U0136KZ0P5M",
            "last_set": 1589444943
        },
        "previous_names": [
            "project_new",
            "project"
        ]
    },
    "ok": true,
    "warning": "missing_charset",
    "response_metadata": {
        "warnings": [
            "missing_charset"
        ]
    }
}

「ok」== false の場合:

{
    "ok": false,
    "error": "name_taken",
    "warning": "missing_charset",
    "response_metadata": {
        "warnings": [
            "missing_charset"
        ]
    }
}
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

「ok」== true(is_success=true)の場合: 「チャンネル {0} の名前を {1} {0} に変更しました。」.format(名前/ID, 新しい名前)

「ok」== false の場合(is_success=false):「アクションはチャンネル {0} の名前を変更できませんでした。理由: {1}」.format(name,error from the response)

チャンネル名でチャンネルが見つからなかった場合(is_success=false):「アクションはチャンネル {0} の名前を変更できませんでした。理由: チャンネルが見つかりませんでした」.format(name)

アクションが失敗し、ハンドブックの実行が停止します。

致命的なエラー(認証情報の誤り、接続エラー、アクションのクラッシュ)が報告された場合: 「アクション「チャンネルの名前変更」の実行エラー。理由: {0}''.format(error.Stacktrace)

「チャンネル名」パラメータと「チャンネル ID」パラメータが指定されていない場合:「アクション「チャンネル名の変更」の実行エラー。理由: 「チャンネル名」または「チャンネル ID」を指定する必要があります。」

全般

高度なメッセージを送信する

説明

Slack チャンネルまたはユーザーに高度なメッセージを送信します。このアクションを使用すると、シンプルなテキスト メッセージや、ボタンや高度な書式設定などを含むリッチな Slack ブロック メッセージを送信できます。ブロック メッセージの詳細については、Slack Block Kit をご覧ください。

このアクションは、「Webhook で返信を待機」アクションと組み合わせて使用できます。まず、Webhook を使用してブロック メッセージをユーザーに送信し、後で「Webhook で返信を待機」アクションを使用してユーザーの返信を確認します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
メッセージの種類 DDL

テキスト

有効な値:

  • テキスト
  • ブロック
○ 送信するメッセージのタイプを指定します。
受信者のタイプ DDL

名前

有効な値:

  • 名前
  • ID
  • メール
○

メッセージの送信先となるチャンネル名またはユーザー名(フルネーム)を指定します。

必要に応じて、チャンネル ID、ユーザー ID、またはユーザーのメールアドレスを指定します。

受信者 文字列 なし ○ メッセージの送信先を指定します。
メッセージ 文字列 なし ○ 送信するメッセージの内容を指定します。

プレイブックのユースケースの例

ボタン、リンク、画像などのリッチ コンテンツを含むメッセージを送信します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
[
  {
    "Entity": "U043FPEMATG",
    "EntityResult": {
      "channel": "D044C3DUMB2",
      "message": {
        "bot_id": "B02D9QYM7P0",
        "type": "message",
        "text": "test msg",
        "user": "U02D1RPLVST",
        "ts": "1666008612.116169",
        "app_id": "A02DDGD942Z",
        "team": "T02CX3N6B0B",
        "bot_profile": {
          "id": "B02D9QYM7P0",
          "app_id": "A02DDGD942Z",
          "name": "test",
          "icons": {
            "image_36": "https://a.slack-edge.com/80588/img/plugins/app/bot_36.png",
            "image_48": "https://a.slack-edge.com/80588/img/plugins/app/bot_48.png",
            "image_72": "https://a.slack-edge.com/80588/img/plugins/app/service_72.png"
          },
          "deleted": false,
          "updated": 1630908872,
          "team_id": "T02CX3N6B0B"
        },
        "blocks": [
          {
            "type": "rich_text",
            "block_id": "RJvg",
            "elements": [
              {
                "type": "rich_text_section",
                "elements": [
                  {
                    "type": "text",
                    "text": "test msg"
                  }
                ]
              }
            ]
          }
        ]
      },
      "ts": "1666008612.116169",
      "ok": true
    }
  }
]
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

メッセージが正常に送信された場合(is_succeed=True): 「メッセージは正常に送信されました」

指定された受信者が存在しないため、メッセージが正常に送信されなかった場合(is_succeed=False): 「指定された受信者 {0}(タイプ {1})が見つからなかったため、メッセージは送信されませんでした。」(受信者、受信者のタイプ)

一般的なエラーによりメッセージが正常に送信されなかった場合(is_succeed=False): 「エラーが発生したため、メッセージは送信されませんでした: {0}」(エラー テキスト)

アクションが失敗し、ハンドブックの実行が停止します。

認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「「高度なメッセージを送信」アクションの実行に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般

インタラクティブなメッセージを送信する

説明

チャンネルまたはユーザーにインタラクティブ メッセージを送信し、指定された Webhook UUID に基づいてユーザーの応答を確認します。このアクションは「高度なメッセージを送信」アクションと似ていますが、ブロック コンテンツ(プレーン テキスト メッセージではない)のみを送信でき、Webhook UUID を使用してユーザーの Webhook への応答を確認する必要があります。

アクションは非同期です。IDE でアクション タイムアウトを適宜調整します。

インテグレーションで使用される Slack アプリを構成して、インタラクティブ メッセージを許可します。Slack アプリの構成の詳細については、インタラクティブ メッセージ用のアプリケーションの準備をご覧ください。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
受信者のタイプ DDL

名前

有効な値:

  • 名前
  • ID
  • メール
○

メッセージの送信先となるチャンネル名またはユーザー名(フルネーム)を指定します。

必要に応じて、チャンネル ID、ユーザー ID、またはユーザーのメールアドレスを指定します。

受信者 文字列 なし ○ メッセージの送信先を指定します。
メッセージ 文字列 なし ○ 送信するメッセージの内容を指定します。
Webhook トークンの UUID 文字列 なし ○ ユーザーのレスポンスをモニタリングする Webhook トークンの UUID を指定します。

プレイブックのユースケースの例

ボタン、リンク、画像などのリッチ コンテンツを含むメッセージを送信します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
[
  {
    "uuid": "10953f8e-7ef8-4bde-9e9b-212005e0e737",
    "type": "web",
    "token_id": "47289ba5-277e-4ab9-9238-eb31080530ca",
    "ip": "0000:a000000:ad80:000:20ea:653:fb97",
    "hostname": "webhook.site",
    "method": "GET",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15",
    "content": "",
    "query": {
      "Answer": "yes"
    },
    "headers": {
      "connection": [
        "close"
      ],
      "accept-encoding": [
        "gzip, deflate, br"
      ],
      "accept-language": [
        "en-US,en;q=0.9"
      ],
      "user-agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15"
      ],
      "cookie": [
        "_ga=GA"
      ],
      "accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "host": [
        "webhook.site"
      ],
      "content-length": [
        ""
      ],
      "content-type": [
        ""
      ]
    },
    "url": "https://webhook.site/47289ba5-277e-4ab9-9238-xx0000000xx?Answer=yes",
    "size": 0,
    "files": [],
    "created_at": "2022-10-14 19:45:40",
    "updated_at": "2022-10-14 19:45:40",
    "sorting": 1665776740032262,
    "custom_action_output": []
  }
]
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

メッセージが正常に送信された場合(is_succeed=True): 「メッセージは正常に送信されました」

指定された受信者が存在しないため、メッセージが正常に送信されなかった場合(is_succeed=False): 「指定された受信者 {0}(タイプ {1})が見つからなかったため、メッセージは送信されませんでした。」(受信者、受信者のタイプ)

一般的なエラーによりメッセージが正常に送信されなかった場合(is_succeed=False): 「エラーが発生したため、メッセージは送信されませんでした: {0}」(エラー テキスト)

非同期機能に関する Case Wall のメッセージ:

返信を待っている間のイテレーションのケースウォール メッセージ: 「Webhook で送信したメッセージに対する返信を待っています。Webhook url with uuid: {0}".format(integration configuration の Webhook URL + ウェブトークンの UUID)

レスポンスが正常に取得された場合(is_succeed=True): 「Webhook へのユーザーのレスポンスが正常に取得されました。レスポンス コンテンツ: {0}」.format(ユーザーから Webhook に送信されたペイロード)

タイムアウトまでレスポンスを取得できなかった場合: 「Webhook に対するユーザーのレスポンスが見つからなかったため、タイムアウトによりアクションが停止しました。」

アクションが失敗し、ハンドブックの実行が停止します。

統合構成で Webhook ベースの URL が指定されておらず、Webhook UUID トークンが指定されている場合: 「アクションの実行に失敗しました。統合パラメータ「Webhook Base URL」を指定してください。」」

認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「アクション「インタラクティブ メッセージの送信」の実行に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般

メッセージを送信

説明

ユーザーまたは複数のユーザー/チャンネルにメッセージを送信します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
チャネル 文字列 なし ○

メッセージを送信する Slack チャンネルの名前またはユーザーのメールアドレス。

入力する値はカンマで区切る必要があります。

メッセージ 文字列 なし ○ メッセージの内容。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
N/A

ファイルをアップロード

説明

Slack にファイルを追加してチームメイトと共有し、共同作業に役立てることができます。 デバイスまたはお好みのファイル管理アプリからファイルを選択して Slack にアップロードできます。アップロードされたファイルは、ワークスペース全体で保存、検索、共有が可能です。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
ファイル名 文字列 なし ○ ターゲット ファイル名。
ファイルパス 文字列 なし ○ ターゲット ファイルのパス。
チャネル 文字列 なし ○ ターゲット チャンネル。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
N/A

応答を待つ

説明

チャンネル内のメッセージへのスレッド返信を待ちます。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
チャネル 文字列 なし ○ ターゲット チャンネル。
メッセージのタイムスタンプ 文字列 なし ○ 返信を取得するメッセージのタイムスタンプ(ミリ秒単位)。
チャネル ID 文字列 なし × ターゲット Slack チャンネルの ID。

プレイブックのユースケース

メッセージ送信アクションと、返信を待つアクションを含むプレイブック(チャネルは前の操作のプレースホルダ - チャネル ID)

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
N/A

Webhook で応答を待つ

説明

Webhook で送信されたメッセージに対するユーザーの返信を待ちます。このアクションは、指定された Webhook を定期的にチェックし、ユーザーがその Webhook に返信したかどうかを確認します。Webhook を使用したブロック メッセージが送信された場合、「高度なメッセージを送信」アクションでアクションを使用して、ユーザーの回答が Webhook に提供されたかどうかを確認できます。

このアクションは非同期です。IDE でスクリプト タイムアウト値を適宜調整してください。

パラメータ

パラメータ名 タイプ デフォルト値 必須 説明
Webhook トークンの UUID 文字列 なし ○ ユーザーのレスポンスをモニタリングする Webhook トークンの UUID を指定します。

プレイブックのユースケースの例

Webhook を使用してメッセージへの返信を待つ。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
{
  "client_msg_id": "00000000-0000-0000-0000-000000000000",
  "type": "message",
  "text": "Yes",
  "user": "U0000000",
  "ts": "1578390603.001200",
  "team": "T0000000",
  "blocks": [
    {
      "type": "rich_text",
      "block_id": "2Bb=",
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [
            {
              "type": "text",
              "text": "Example"
            }
          ]
        }
      ]
    }
  ],
  "thread_ts": "1578390492.001100",
  "parent_user_id": "U0000000"
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

返信を待っている間のイテレーションのケースウォール メッセージ: 「Webhook で送信したメッセージに対する返信を待っています。Webhook url with uuid: {0}".format(integration configuration の Webhook URL + ウェブトークンの UUID)

レスポンスが正常に取得された場合(is_succeed=True): 「Webhook へのユーザーのレスポンスが正常に取得されました。レスポンス コンテンツ: {0}」.format(ユーザーから Webhook に送信されたペイロード)

タイムアウトまでレスポンスを取得できなかった場合: 「Webhook に対するユーザーのレスポンスが見つからなかったため、タイムアウトによりアクションが停止しました。」

アクションが失敗し、ハンドブックの実行が停止します。

統合構成で Webhook ベースの URL が指定されておらず、Webhook UUID トークンが指定されている場合: 「アクションの実行に失敗しました。統合パラメータ「Webhook ベース URL」を指定してください。」」

認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「「高度なメッセージを送信」アクションの実行に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。