본문으로 건너뛰기

Slack

최근 업데이트 2026. 10. 07.

1. Slack App 설정​

  1. Slack API에 접속합니다

  2. 새 앱을 생성합니다(또는 기존 앱을 사용합니다)

    • 빈 앱에서 시작("Blank app")을 선택합니다
    • App Name을 입력하고 Workspace를 선택합니다
  3. 앱 자격 증명을 가져옵니다:

    • Client ID(Basic Information → App Credentials에 있음)
    • Client Secret(Basic Information → App Credentials에 있음)

2. App-Level Tokens 설정​

  1. Basic Information → App-Level Tokens에서 "Generate Token and Scopes"를 클릭합니다
  2. Token 이름을 입력합니다(예: connection_token)
  3. connections:write, authorizations:read, app_configurations:write scopes를 추가합니다
  4. "Generate"를 클릭합니다
  5. 생성된 xapp-... 형식의 Token을 복사합니다

3. OAuth & Permissions 설정​

Slack은 HTTPS만 허용합니다. HTTPS가 없으면 이 설정을 건너뛰고 방법 1로 연동하여 사용하십시오

Slack App 관리 페이지 → OAuth & Permissions에서:

3.1 Redirect URLs 추가​

https://your-domain:port/agent/api/slack-oauth/callback

예시:

주의:

  • 프로토콜이 일치해야 합니다(HTTPS)
  • 기본 포트(80/443)가 아니면 포트 번호를 포함해야 합니다
  • 콜백 주소를 여러 개(개발/테스트/운영) 설정할 수 있습니다

3.2 User Token Scopes 설정​

OAuth & Permissions → Scopes → User Token Scopes에 다음을 추가합니다:

  • identity.basic - 사용자 기본 정보 가져오기(필수)
  • identity.email - 사용자 이메일 가져오기(선택)

참고: Scopes를 추가하거나 수정한 후에는 앱을 Workspace에 다시 설치해야 합니다.

3.3 Bot Token Scopes 설정​

OAuth & Permissions → Scopes → Bot Token Scopes에 다음을 추가합니다:

  • chat:write - 메시지 보내기
  • app_mentions:read - @ 멘션 읽기
  • channels:history - 채널 이전 메시지 읽기
  • channels:read - 채널 정보 읽기
  • groups:history - 비공개 채널 이전 메시지 읽기
  • im:history - 다이렉트 메시지 이전 메시지 읽기
  • im:read - 다이렉트 메시지 정보 읽기
  • files:write- 파일 업로드, 편집 및 삭제
  • files:read- 공유된 파일 보기

4. App Home 및 봇 설정​

  1. App Home → Show Tabs에서 다음을 활성화합니다:

- Home Tab - 사용자가 Home에서 Bot과 상호 작용할 수 있습니다

- Message Tab - Bot의 다이렉트 메시지 대화 화면

Allow users to send Slash commands and messages from the messages tab을 체크합니다

  1. Interactivity & Shortcuts에서 Interactivity를 활성화합니다
  2. Socket Mode에서 Socket Mode를 활성화합니다(WebSocket 연결을 사용하는 경우)

5. Event Subscriptions 추가​

  1. Event Subscriptions에서 Enable Events를 활성화합니다.
  2. Subscribe to bot events에 app_mention을 추가합니다. 공개 또는 비공개 채널에서 @App으로 시작한 새 작업을 받는 데 사용합니다.
  3. message.channels와 message.groups를 추가합니다. 공개/비공개 채널 thread에서 답변 대기 및 계속 실행에 대한 회신을 받는 데 사용합니다.
  4. message.im은 다이렉트 메시지를 받는 데 사용하므로 유지합니다. 그룹 다이렉트 메시지도 필요하면 message.mpim을 추가하고 해당 이전 메시지 권한을 부여합니다.
경고

Socket Mode, 이벤트 및 인터랙션 확인:

  • App-Level Token에는 최소한 connections:write를 부여하고 Enable Socket Mode를 켭니다.
  • Bot Token Scopes에는 최소한 chat:write, app_mentions:read, channels:history, groups:history, im:history, files:read, files:write가 포함되어야 합니다.
  • Interactivity는 반드시 켜야 합니다. Socket Mode에서는 공용 네트워크 Request URL이 필요하지 않지만, 메시지 양식, Modal 제출, 계속 실행은 여전히 Interactivity에 의존합니다.
  • OAuth Scopes나 Bot Events를 수정한 후에는 반드시 App을 Workspace에 다시 설치해야 합니다. App-Level Token을 다시 생성한 후에는 채널 설정의 App Token도 함께 업데이트해야 합니다.

6. Workspace에 앱 설치​

OAuth & Permissions 페이지에서 "Install to Workspace" 버튼을 클릭하여 앱이 Workspace에 접근하도록 권한을 부여합니다.

사용 절차​

방법 1: 연동 코드 모드(권장)​

Slack은 그룹 채팅에서 연동 코드로 계정을 연동하는 방식을 지원하며, 팀 내부에 보급하여 사용하기에 적합합니다.

사용자 연동 절차​

  1. 사용자가 시스템에 로그인합니다
  2. 왼쪽 하단의 사용자 아바타를 클릭하여 메뉴를 엽니다
  3. Slack 행을 찾아 연동 코드 받기 버튼을 클릭합니다
  4. 시스템이 6자리 연동 코드(예: FRT12H)를 생성하며, 유효 기간은 10분입니다
  5. 사용자가 Slack에서 봇에게 다이렉트 메시지를 보냅니다: +bind FRT12H
  6. 연동에 성공하면 Slack에 연동 성공 안내가 표시됩니다

연동 해제 절차​

  1. 왼쪽 하단의 사용자 아바타를 클릭하여 메뉴를 엽니다
  2. Slack 행을 찾아 연결 해제 버튼을 클릭합니다
  3. 연결 해제 작업을 확인합니다
  4. 연결 해제에 성공하면 메뉴에 연동되지 않음 상태가 표시됩니다

방법 2: OAuth 인증 모드​

브라우저에서 권한을 부여하여 연동을 완료합니다.

사용자 연동 절차​

  1. 사용자가 시스템에 로그인합니다
  2. 왼쪽 하단의 사용자 아바타를 클릭하여 메뉴를 엽니다
  3. Slack 행을 찾아 연동 버튼을 클릭합니다
  4. Slack 권한 부여 페이지로 이동합니다
  5. 사용자가 권한 부여를 확인합니다(Workspace 선택)
  6. 시스템으로 자동으로 돌아와 연동 성공이 표시됩니다
  7. 인증 창을 닫으면 원래 페이지가 자동으로 새로 고쳐지고, 메뉴에 연동됨 상태가 표시됩니다

사용자 연동 해제 절차​

  1. 왼쪽 하단의 사용자 아바타를 클릭하여 메뉴를 엽니다
  2. Slack 행을 찾아 연결 해제 버튼을 클릭합니다
  3. 연결 해제 작업을 확인합니다
  4. 연결 해제에 성공하면 메뉴에 연동되지 않음 상태가 표시됩니다

사용자 지정 명령​

Slack 봇은 다음 명령을 지원합니다(모든 명령은 +로 시작합니다):

명령설명예시
+bind <CODE>연동 코드로 계정 연동(영문 대문자+숫자 6자리)+bind FRT12H
+new새 대화를 시작하고 현재 대화 기록을 지웁니다+new 보내기
+agent <名称> <消息>지정한 이름의 Agent에게 메시지를 보냅니다+agent rhea 你好
+agent <消息>시스템 기본 Agent에게 메시지를 보냅니다+agent 你好

설명:

  • +로 시작하지 않는 메시지는 시스템 기본 Agent에게 바로 전송됩니다
  • +bind 명령은 연동 코드 모드에서 사용하며, 연동하지 않은 사용자는 먼저 연동해야 다른 기능을 사용할 수 있습니다
  • +new 명령은 현재 대화를 지우고 새로 시작합니다
  • Agent 이름은 사용자에게 접근 권한이 있는 Agent여야 합니다
  • 명령 파라미터는 대소문자를 구분합니다
  • 연동 코드 문자 집합에서는 혼동하기 쉬운 문자(I/O/0/1)를 제외합니다

그룹 채팅 메시지 분배​

그룹 채팅 메시지 분배를 사용하면 하나의 Slack App이 규칙에 따라 서로 다른 질문을 서로 다른 Agent 또는 Team에 전달할 수 있습니다. 하나의 채팅 공간은 현재 Workspace에 대응하며, 설정은 해당 Workspace에서 이 App이 설치된 채널에 적용됩니다. Agentic Engine 계정을 연동하고 채널에서 App을 명시적으로 @멘션한 멤버만 작업을 시작할 수 있습니다.

관리자 설정​

  1. Socket Mode, Event Subscriptions, Interactivity가 활성화되어 있는지 확인합니다. Bot Events에는 최소한 app_mention, message.channels, message.groups, message.im이 포함되어야 하며, scopes를 수정한 후에는 App을 Workspace에 다시 설치합니다.
  2. 사용할 공개 채널 또는 비공개 채널에 App을 초대합니다. 비공개 채널에서 App이 멤버가 아니면 설정이 올바르더라도 메시지를 받을 수 없습니다.
  3. 시스템 관리 → 채널 관리로 이동하여 해당 Slack 채널에서 메시지 분배를 열고, Workspace를 선택한 다음 기본 Agent/Team을 설정합니다.
  4. 필요에 따라 규칙을 최대 19개까지 추가합니다. 규칙마다 Agent/Team을 하나 선택하고 필수 항목인 호출 명령을 입력하며, 키워드도 최대 10개까지 입력할 수 있습니다. 그런 다음 활성화 스위치를 켜고 저장합니다.
  5. 채널에서 @App +help를 보내 설정을 검수하고, 기능 목록과 스레드 답변이 모두 정상인지 확인합니다.
구성 항목규칙
기본 Agent/Team활성화하기 전에 반드시 설정해야 합니다. 호출 명령을 지정하지 않았고 키워드도 일치하지 않을 때 사용됩니다.
호출 명령필수, 1~32자. 영문자, 숫자, -, _를 사용할 수 있으며 시스템 예약 명령은 사용할 수 없습니다. 대소문자 및 전각/반각 차이는 서로 다른 명령으로 취급하지 않습니다.
키워드선택 사항. 규칙마다 최대 10개, 각 2~32자. 여러 키워드가 동시에 일치하면 더 긴 키워드를 우선하며, 길이가 같아 하나로 판단할 수 없으면 기본 Agent/Team을 사용합니다.
선택 가능 범위활성화되어 있고 실행 가능한 시스템/기업 에이전트와 현재 기업의 Team을 선택할 수 있습니다. 개인 에이전트는 그룹 채팅 분배 후보에 표시되지 않습니다.

채널에서 사용하는 방법​

용도예시설명
사용 가능한 기능 보기@App +help
@App 能力清单
기본 항목, 호출 명령, 키워드를 나열합니다. 권한이 없거나 현재 실행할 수 없는 기능은 표시되지 않습니다.
Agent/Team 지정@App +analysis 分析本周数据analysis는 관리자가 설정한 호출 명령입니다. @App @analysis 分析本周数据를 보낼 수도 있습니다.
키워드로 분배@App 帮我检查埋点方案본문이 키워드와 일치하면 해당 Agent/Team에 전달하고, 일치하지 않으면 기본 항목을 사용합니다.
작업 취소@App +cancel메시지 전체를 정확히 이 내용으로 보내야 합니다. 이미 출력된 본문은 유지되며, 취소 확인 메시지가 별도로 전송됩니다.
이전 방식 호환@App +agent analysis 分析本周数据계속 사용할 수 있지만, +analysis를 직접 사용하는 것을 권장합니다.

스레드 답변: 일반적인 새 작업은 먼저 App을 @멘션해야 합니다. 작업이 이미 어떤 thread에서 답변을 기다리는 중이면 안내에 따라 해당 thread에 바로 답변할 수 있으며 다시 @멘션할 필요가 없습니다. 대기 중인 작업이 없는 일반 채널 메시지는 무시됩니다.

명령 범위: 그룹 채팅 분배는 +new를 지원하지 않습니다. 다이렉트 메시지에서는 여전히 +new, +agent, +cancel을 지원합니다.

공개 컨텍스트와 개인 데이터: 시스템은 최근에 App을 명시적으로 @멘션하여 실제로 처리된 공개 채널 회차만 참고로 사용합니다. App을 @멘션하지 않은 일반 메시지, 다른 채널, 다이렉트 메시지, 사용자 메모리는 섞이지 않습니다. 이전 내용은 신뢰할 수 없는 참고 자료로만 사용되며, 현재 메시지만이 이번 회차의 지시입니다.

자주 묻는 질문​

1. 사용자 메뉴에 Slack 연동 옵션이 표시되지 않음​

사유:

  • Slack 채널이 구성되지 않았거나 비활성입니다
  • Channel 테이블에 type='slack'인 레코드가 없습니다
  • config 필드에 clientId 또는 clientSecret이 없습니다

해결 방법:

  • 채널 관리에 Slack 채널이 있는지 확인합니다
  • 채널이 활성화되어 있는지 확인합니다
  • config 필드에 clientId와 clientSecret이 포함되어 있는지 확인합니다

2. 연동을 클릭한 후 이동 실패​

오류 메시지: 인증 URL을 가져오지 못했습니다

해결 방법:

  • Slack App의 Client ID와 Client Secret이 올바른지 확인합니다
  • Slack App이 Workspace에 설치되어 있는지 확인합니다
  • 백엔드 로그에서 구체적인 오류 정보를 확인합니다

3. 권한 부여 후 콜백 실패​

오류 메시지: 콜백 주소 검증 실패 또는 state 검증 실패

해결 방법:

  • Slack App에 설정한 Redirect URLs에 현재 접속 중인 콜백 주소가 포함되어 있는지 확인합니다
  • 프로토콜(HTTP/HTTPS)과 포트가 일치하는지 확인합니다
  • 교차 출처(CORS) 문제가 없는지 확인합니다

4. 연동 실패​

오류 메시지: 이 Slack 계정은 다른 사용자에 연결되어 있습니다

해결 방법:

  • 하나의 Slack 계정은 하나의 시스템 사용자에만 연동할 수 있습니다
  • 연동을 변경하려면 먼저 원래 계정에서 연결을 해제하십시오

5. 운영 환경 화이트리스트 검증 실패​

오류 메시지: 운영 환경에서는 ALLOWED_ORIGINS를 설정해야 합니다 또는 허용되지 않은 출처입니다

해결 방법:

  • ALLOWED_ORIGINS 환경 변수를 설정합니다
  • origin이 화이트리스트에 있는지 확인합니다
  • 여러 도메인은 쉼표로 구분합니다

관련 페이지와 다음 단계

이 문서가 도움이 되었나요?