Slack

통합 버전: 23.0

Google Security Operations와 호환되도록 Slack 구성

Google SecOps와 함께 작동하도록 Slack을 구성하려면 먼저 새 앱을 만들어야 합니다.

  1. https://api.slack.com/으로 이동하여 빌드 시작을 클릭합니다.

  2. App NameDevelopment Slack Workspace 매개변수를 입력합니다. 앱 만들기를 클릭합니다.

    Slack 앱 만들기
대화상자

  3. OAuth 및 권한 탭으로 이동하여 범위 섹션까지 아래로 스크롤합니다.

    OAuth 및 권한 탭

  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

    권한 범위 대화상자

  5. '양방향 메시지 보내기', '웹훅으로 답장 대기'와 같은 작업에 앱 상호작용을 허용하려면 앱의 요청 URL을 추가하세요. 자세한 내용은 Slack 문서 내에서 제공되는 Slack 앱에서 사용자 상호작용 처리 문서를 참고하세요.

  6. 위로 스크롤하여 Install App to Workspace(작업공간에 앱 설치)를 클릭합니다.

    'Install App to Workspace' 버튼 위치

  7. 허용을 클릭합니다.

    LabBot 권한 액세스 설정

  8. 봇을 사용할지 사용자를 사용할지에 따라 생성된 토큰 중 하나를 복사합니다.

  9. 이러한 토큰 중 하나와의 통합을 구성합니다.

네트워크

함수 기본 포트 방향 프로토콜
API Multivalues 아웃바운드 apitoken

Google SecOps에서 Slack 통합 구성

Google SecOps에서 통합을 구성하는 방법에 대한 자세한 내용은 통합 구성을 참고하세요.

통합 매개변수

다음 매개변수를 사용하여 통합을 구성합니다.

매개변수 표시 이름 유형 기본값 필수 항목 설명
인스턴스 이름 문자열 해당 사항 없음 No 통합을 구성할 인스턴스의 이름입니다.
설명 문자열 해당 사항 없음 No 인스턴스에 대한 설명입니다.
API 토큰 문자열 해당 사항 없음 Slack 콘솔에서 생성된 API 토큰입니다.
SSL 확인 체크박스 선택 해제 아니요 Slack 연결에 SSL 확인이 필요한 경우 이 체크박스를 사용합니다 (기본적으로 선택되지 않음).
원격 실행 체크박스 선택 해제 No 구성된 통합을 원격으로 실행하려면 필드를 선택합니다. 선택하면 원격 사용자(에이전트)를 선택하는 옵션이 나타납니다.

작업

질문하기

설명

Slack에서 질문하기

매개변수

파라미터 이름 유형 기본값 필수 항목 설명
채널 문자열 해당 사항 없음 타겟 채널
질문 문자열 해당 사항 없음 질문 콘텐츠입니다.

실행

이 작업은 모든 항목에서 실행됩니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_succeed True/False is_succeed:False
JSON 결과
N/A

빌드 블록

설명

제공된 입력 기준에 따라 슬랙 메시지 블록을 빌드합니다. 이 작업은 나중에 '대화형 메시지 보내기' 작업에 전달하여 메시지를 보낼 수 있는 웹훅이 포함된 블록을 만듭니다.

매개변수

파라미터 이름 유형 기본값 필수 항목 설명
질문 문자열 해당 사항 없음 블록에 추가할 질문 텍스트를 지정합니다.
답변 버튼 문자열 해당 사항 없음 블록에 추가할 답변 버튼을 지정합니다.
Siemplify 기본 URL 문자열 해당 사항 없음 차단에 추가할 Google SecOps 서버 기본 URL을 지정합니다.
케이스 ID 문자열 해당 사항 없음 차단에 추가할 Google SecOps 케이스 ID를 지정합니다.
웹훅 토큰 UUID 문자열 해당 사항 없음 사용자의 응답을 모니터링할 웹훅 토큰 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\": \"...\"}]}]"
}
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

빌드 블록이 생성된 경우 (is_succeed=True): 'Slack 블록이 생성되었습니다.'

일반적인 오류로 인해 Slack 블록을 만들 수 없는 경우 (is_succeed=False): '발생한 오류로 인해 블록을 만들 수 없습니다: {0}'.format(error text)

작업이 실패하고 플레이북 실행을 중지합니다.

통합 구성에 웹훅 기반 URL이 지정되지 않은 경우: '작업을 실행하지 못했습니다. '웹훅 기본 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):

'채널 {0}이(가) 생성되었습니다.'.format(name)

'ok'== true이고 'Private' 작업 매개변수가 true이고 사용자 ID 매개변수가 비어 있는 경우(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)

두 번째 요청에서 '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) from the response)

작업이 실패하고 플레이북 실행을 중지합니다.

치명적인 오류 (잘못된 사용자 인증 정보, 연결 오류, 작업 비정상 종료)가 보고되는 경우: ''채널 만들기' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

채널 또는 사용자 대화 기록 가져오기

설명

제공된 입력 기준에 따라 사용자 또는 채널의 대화 기록을 가져옵니다. 이 작업은 채널 또는 사용자 ID와 함께 작동하며, '채널 목록' 또는 '사용자 목록' 작업을 사용하여 검색할 수 있습니다.

매개변수

파라미터 이름 유형 기본값 필수 항목 설명
채널 또는 사용자 ID 문자열 해당 사항 없음 대화 기록을 가져올 채널 또는 사용자 ID를 지정합니다.
기간 DDL

지난 1시간

가능한 값은 다음과 같습니다.

  • 지난 1시간
  • 지난 6시간
  • 지난 24시간
  • 지난주
  • 지난달
  • 커스텀
No

결과 기간을 지정합니다.

'커스텀'을 선택한 경우 '시작 시간' 매개변수도 제공해야 합니다.

시작 시간 문자열 해당 사항 없음 No

결과 시작 시간을 지정합니다.

'기간' 매개변수에 '커스텀'을 선택한 경우 이 매개변수는 필수 항목입니다.

형식: ISO 8601.

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

종료 시간 문자열 해당 사항 없음 No

결과 종료 시간을 지정합니다.

아무것도 제공하지 않고 '기간' 매개변수에 '커스텀'을 선택하면 이 매개변수는 현재 시간을 사용합니다.

형식: ISO 8601.

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

반환할 최대 레코드 수 정수 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"
              }
            ]
          }
        ]
      }
    ]
  }
]
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

대화 기록을 찾은 경우 (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)

'반환할 최대 레코드 수' 매개변수에 잘못된 값이 제공된 경우: '{작업 이름}' 작업을 실행하는 중에 오류가 발생했습니다. 이유: '반환할 최대 레코드'에 잘못된 값이 제공되었습니다. 양수를 입력해야 합니다.'

'기간' 매개변수에 '맞춤'을 선택했지만 '시작 시간' 매개변수를 지정하지 않은 경우: '{작업 이름}' 작업을 실행하는 동안 오류가 발생했습니다. 이유: '맞춤 기간의 시작 시간이 제공되지 않았습니다.'

일반

사용자 세부정보 가져오기

설명

제공된 입력 기준에 따라 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"
}
케이스 월
결과 유형 값 / 설명 유형
출력 메시지\*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

사용자 세부정보를 찾은 경우 (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)

일반
케이스 월 테이블

표 이름: Slack 사용자 세부정보

테이블 열:

  • ID
  • 팀 ID
  • 이름
  • 실명
  • 표시 이름
  • 이름
  • 업데이트 시간
  • 시간대
  • 제목
  • 전화
  • 관리자 여부
  • 소유자
  • 기본 소유자인지 여부
  • 제한됨
  • 매우 제한됨
  • 봇 여부
  • 앱 사용자 여부
  • 이메일 확인 여부
일반

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(응답의 오류 매개변수 값)

일반

사용자 목록

설명

이 작업은 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
    }
]

설명

연결을 테스트합니다.

매개변수

해당 사항 없음

실행

이 작업은 모든 항목에서 실행됩니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
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(name/ID, new name)

'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 을 참고하세요.

이 작업은 '웹훅으로 답장 대기' 작업과 함께 사용하여 먼저 웹훅으로 차단 메시지를 사용자에게 전송한 후 나중에 '웹훅으로 답장 대기' 작업으로 사용자의 응답을 확인할 수 있습니다.

매개변수

파라미터 이름 유형 기본값 필수 항목 설명
메시지 유형 DDL

텍스트

가능한 값은 다음과 같습니다.

  • 텍스트
  • 차단
전송할 메시지 유형을 지정합니다.
수신자 유형 DDL

이름

가능한 값은 다음과 같습니다.

  • 이름
  • 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
    }
  }
]
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

메일이 전송된 경우 (is_succeed=True): '메일이 전송되었습니다.'

지정된 수신자를 찾을 수 없어 메시지가 전송되지 않은 경우(is_succeed=False): '지정된 수신자 {0}(유형 {1})을 찾을 수 없어 메시지가 전송되지 않았습니다.' (수신자, 수신자 유형)

일반적인 오류로 인해 메시지가 전송되지 않은 경우(is_succeed=False): '오류가 발생하여 메시지가 전송되지 않았습니다: {0}'(오류 텍스트)

작업이 실패하고 플레이북 실행을 중지합니다.

잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 보고되는 경우: ''고급 메시지 보내기' 작업을 실행하지 못했습니다. 오류: {0}".format(exception.stacktrace)

일반

대화형 메시지 보내기

설명

채널 또는 사용자에게 대화형 메시지를 보내고 제공된 웹훅 UUID를 기반으로 사용자의 응답을 확인합니다. 이 작업은 '고급 메시지 보내기' 작업과 유사하지만 블록 콘텐츠 (일반 텍스트 메시지 아님)만 보낼 수 있으며 웹훅에 대한 사용자의 응답을 확인하려면 웹훅 UUID가 필요합니다.

작업이 비동기식이므로 IDE에서 작업 시간 제한을 적절하게 조정합니다.

통합에 사용되는 Slack 앱이 대화형 메시지를 허용하도록 구성합니다. Slack 앱 구성에 대한 자세한 내용은 대화형 메시지를 위한 애플리케이션 준비를 참고하세요.

매개변수

파라미터 이름 유형 기본값 필수 항목 설명
수신자 유형 DDL

이름

가능한 값은 다음과 같습니다.

  • 이름
  • ID
  • 이메일

메시지를 보낼 채널 또는 사용자 이름 (전체 이름)을 지정합니다.

선택적으로 채널 또는 사용자 ID 또는 사용자 이메일 주소를 지정합니다.

받는 사람 문자열 해당 사항 없음 메시지를 보낼 수신자를 지정합니다.
메시지 문자열 해당 사항 없음 전송할 메시지의 콘텐츠를 지정합니다.
웹훅 토큰 UUID 문자열 해당 사항 없음 사용자의 응답을 모니터링할 웹훅 토큰 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": []
  }
]
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

메일이 전송된 경우 (is_succeed=True): '메일이 전송되었습니다.'

지정된 수신자를 찾을 수 없어 메시지가 전송되지 않은 경우(is_succeed=False): '지정된 수신자 {0}(유형 {1})을 찾을 수 없어 메시지가 전송되지 않았습니다.' (수신자, 수신자 유형)

일반적인 오류로 인해 메시지가 전송되지 않은 경우(is_succeed=False): '오류가 발생하여 메시지가 전송되지 않았습니다: {0}'(오류 텍스트)

비동기 기능의 케이스 월 메시지:

답장을 기다리는 동안의 케이스 월 메시지: '웹훅으로 전송된 메시지에 대한 응답을 기다리는 중입니다. 통합 구성의 웹훅 URL + 웹 토큰 UUID'

응답을 성공적으로 가져온 경우 (is_succeed=True): '웹훅에 대한 사용자의 응답을 성공적으로 가져왔습니다. 응답 콘텐츠: {0}'.format(사용자가 웹훅에 보낸 페이로드)

제한 시간까지 응답을 가져오지 못한 경우: '웹훅에 대한 사용자 응답을 찾을 수 없어 제한 시간으로 인해 작업이 중지되었습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

통합 구성에 웹훅 기반 URL이 지정되지 않고 웹훅 UUID 토큰이 지정된 경우: '작업을 실행하지 못했습니다. '웹훅 기본 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

웹훅으로 응답 대기

설명

사용자가 웹훅으로 전송된 메시지에 답장할 때까지 기다립니다. 이 작업은 사용자가 제공된 웹훅에 응답했는지 주기적으로 확인합니다. 웹훅이 포함된 차단 메시지가 전송된 경우 '고급 메시지 보내기' 작업과 함께 작업을 사용하여 사용자의 응답이 웹훅에 제공되었는지 확인할 수 있습니다.

이 작업은 비동기식이므로 IDE에서 스크립트 제한 시간 값을 적절하게 조정하세요.

매개변수

파라미터 이름 유형 기본값 필수 항목 설명
웹훅 토큰 UUID 문자열 해당 사항 없음 사용자의 응답을 모니터링할 웹훅 토큰 UUID를 지정합니다.

플레이북 사용 사례 예시

웹훅으로 메시지에 대한 답장을 기다립니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
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"
}
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

답장을 기다리는 동안의 케이스 월 메시지: '웹훅으로 전송된 메시지에 대한 응답을 기다리는 중입니다. 통합 구성의 웹훅 URL + 웹 토큰 UUID'

응답을 성공적으로 가져온 경우 (is_succeed=True): '웹훅에 대한 사용자의 응답을 가져왔습니다. 응답 콘텐츠: {0}'.format(사용자가 웹훅에 보낸 페이로드)

제한 시간까지 응답을 가져오지 못한 경우: '웹훅에 대한 사용자 응답을 찾을 수 없어 제한 시간으로 인해 작업이 중지되었습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

통합 구성에 웹훅 기반 URL이 지정되지 않고 웹훅 UUID 토큰이 지정된 경우: '작업을 실행하지 못했습니다. '웹훅 기본 URL' 통합 매개변수를 지정하세요. "

잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 보고되는 경우: ''고급 메시지 보내기' 작업을 실행하지 못했습니다. 오류: {0}".format(exception.stacktrace)

일반

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.