기능연동

콘솔에서 Slack 연결

에이전트의 Slack 탭에서 앱을 설치하고 채널을 연결하는 방법

에이전트 상세의 Slack 탭에서 앱 상태를 확인한다. 새 에이전트는 이름·하는 일·릴리스·켜기를 마친 뒤 채널 연결 단계에서 같은 화면을 사용한다. Slack 연결은 나중에 해도 된다.

Slack 탭은 설정 > 워크스페이스 > 연동 > Slack과 같은 구역 구조를 쓴다. 맨 위 Slack 카드에 연결 상태·봇 ID·홈 채널·DM 받기가 있고, 앱을 설치하면 아래로 연결된 채널, 기본이 이어진다. 에이전트 관리자에게는 그 아래에 연동 화면과 같은 이름·순서의 Slack 앱 생성(이 에이전트의 앱을 만드는 워크스페이스 토큰의 상태), Slack 앱에 넣을 주소(이 에이전트 앱의 이벤트 요청 URL), 자동으로 만든 Slack 앱(이 에이전트의 앱 한 줄짜리 표)과 맨 아래 위험 구역이 나온다. 왼쪽 구역 목록에서 고르면 그 구역으로 이동한다. 좁은 화면에서는 목록이 본문 위의 버튼 하나로 접힌다. 버튼에는 지금 보는 구역 이름이 보인다. 펼쳐서 구역을 고르면 목록이 다시 접힌다.

  1. 에이전트를 켠 뒤 Slack 앱 만들고 설치를 누른다. 워크스페이스 관리자가 앱 생성 설정(App Configuration Token)을 먼저 해 두어야 한다. 설정이 없거나 Slack이 더 이상 받지 않으면 버튼이 꺼지고 아래에 이유가 나온다. 소유자·관리자에게는 워크스페이스 Slack 설정으로 링크가, 그 밖의 에이전트 관리자에게는 소유자나 관리자에게 요청하라는 안내가 붙는다.
  2. Slack 동의 화면에서 앱을 설치한다. 콜백이 설치를 마치면 Slack 탭으로 돌아오고 화면 아래에 설치 결과 알림이 뜬다. 거절하거나 링크가 만료되면 실패 알림과 함께 Slack 탭에서 새 설치를 시작한다. 이미 사용한 링크는 다시 보내지 않는다. 설치 링크를 만들기 전에 Slack에 앱이 아직 있는지 확인한다. 앱을 만든 Slack 사용자의 토큰으로 물었는데 Slack에 앱이 없으면(예: Slack에서 지운 앱) 동의 화면으로 넘어가지 않고 그 이유를 보여 준다. 이때는 위험 구역에서 앱을 삭제하고 다시 설치하면 새 앱이 생긴다. 앱을 만든 Slack 사용자와 지금 App Configuration Token의 사용자가 다르면 확인 없이 링크를 만들고, Slack 탭에 미리 경고를 띄운다. 그 토큰으로는 설치가 실패할 수 있으니 원래 사용자의 토큰을 다시 등록하거나 새 사용자를 앱 공동 작업자로 추가한다. 권한이나 이벤트 설정이 바뀌면 자동으로 만든 Slack 앱 표의 앱 행에서 다시 설치를 누른다. 같은 행의 ⋯ 메뉴에는 Slack의 앱 설정 페이지를 새 탭에서 여는 Slack에서 열기와 새로고침이 있다.
  3. 설치한 뒤 홈 채널이 없으면 Slack 탭은 홈 채널 지정 단계만 보인다(관리자에게 보이는 앱 구역과 위험 구역은 그대로 있다). 홈 채널 고르기에서 채널을 고르면 그 채널이 사용 켜짐과 홈으로 저장되고 나머지 구역이 나타난다. 비공개 채널은 목록에 /invite 안내가 붙는다.
  4. 채널 구역의 채널 추가에서 이름 앞부분으로 검색하고 연결을 누른다. 연결 결과는 화면 아래 알림으로 뜬다. 연결한 채널마다 이 채널에서 사용과 멘션할 때만 반응 스위치가 있다. 사용을 끄면 그 채널에서 반응하지 않고, 멘션할 때만 반응을 끄면 멘션 없이 채널에 쓴 글에도 반응한다. 새로 추가하거나 에이전트를 초대한 채널은 사용이 켜진 채로 연결된다. 기본의 새 채널의 기본 반응 스위치는 새 채널이 멘션할 때만 반응할지 정하고, 바꾸는 즉시 서버에 저장된다. 이미 연결된 채널은 바뀌지 않는다. 처음 값은 멘션할 때만이다. DM 받기 스위치는 DM binding을 별도로 저장한다.
  5. 꺼 둔 채널을 다시 사용으로 켜면 멘션할 때만 반응하는 상태로 돌아온다. 저장 실패는 화면에 표시되고 기존 설정을 유지한다. 홈 채널은 홈 지정으로 바꾼다.

공개 채널은 반응이 켜진 채로 연결하거나 나중에 반응을 켜면 서버가 봇을 참여시킨다. 반응이 꺼진 채널에는 참여하지 않는다. 비공개 채널은 봇이 스스로 들어갈 수 없으니 /invite로 초대해야 한다. 봇이 아직 없는 비공개 채널에는 /invite 필요 태그와 복사 버튼이 붙는다. 버튼을 누르면 /invite @<에이전트 slug>를 클립보드에 복사한다. 브라우저가 클립보드를 막으면 명령을 선택한 칸을 보여 주니 직접 복사한다. 검색은 봇이 볼 수 있는 공개 채널과 이미 참여한 비공개 채널을 보여 준다. 더 보기로 다음 페이지를 읽는다. Slack 요청 제한으로 결과가 오래됐거나 목록 상한에 걸리면 안내를 표시한다.

위험 구역의 Slack 연결 해제 행에서 연결 해제를 누르면 에이전트의 Slack 신원과 채널 연결을 회수한다. Slack 앱은 남아 있어 다시 설치할 수 있다. Slack 앱 삭제 행의 앱 삭제는 Slack 앱과 저장된 자격을 삭제한다. 되돌릴 수 없고, 다시 연결하면 새 앱이 생긴다. 두 행동 모두 영향을 설명하는 확인창을 거친다.

구역 목록의 링크를 Enter로 고르면 그 구역으로 포커스가 옮겨 간다. Tab으로 스위치에 이동해 Space로 반응을 바꾼다. 결과와 오류는 보조 기술에도 알린다.

설치 뒤 이벤트 등록이 끝나지 않으면 콜백에 확인 필요 안내가 나온다. Slack 앱에 넣을 주소의 이벤트 요청 URL 행은 Slack이 주소를 확인했는지(확인됨·확인 대기·등록 실패·아직 보내지 않음)를 보여 주고, 다시 확인으로 주소를 Slack에 다시 보낸다. 주소를 보냈는데 Slack이 아직 확인하지 않았으면 Slack 카드 아래에 안내와 Slack 앱 설정의 Event Subscriptions 화면 링크가 나온다. 주소를 보내기 전에는 이 안내를 띄우지 않는다. 실 Slack의 멘션 응답 및 회수 뒤 이벤트 처리는 별도 사람 검증이 필요하다.

에이전트 목록의 전체 탭에서는 Slack 탭이 사람에게 할 일을 요구하는 에이전트에만 카드와 표 행에 Slack 조치 필요: <이유> 링크가 붙는다. 링크는 그 에이전트의 Slack 탭을 연다. 이유는 하나만 보이고, Slack 탭이 먼저 보이는 일이다. 설치 전이면 앱 설치 대기, 봇 연결이 해제되거나 앱이 제거됐으면 다시 설치 필요다. 설치돼 있으면 이 순서로 먼저 걸리는 것이다: 이벤트 주소 확인 대기(주소를 보낸 뒤), 홈 채널 지정 필요, 이벤트 주소 등록 실패. 앱이 없거나 설정이 끝난 에이전트에는 링크가 없다. API는 GET /v1/agents?include=summary의 summary.slack_action이다. 관리하는 에이전트 탭의 목록에는 요약이 없어 링크도 없다.

소유자·관리자의 홈에는 이런 에이전트가 있을 때만 지금 할 일이 시작하기 위에 나온다. 행마다 Slack <이유>, 에이전트 이름, 그 때문에 생기는 일이 보이고, 오른쪽 버튼은 그 에이전트의 Slack 탭을 연다. 버튼 이름은 그 탭에서 할 일이다(앱 설치, 앱 다시 설치, 이벤트 주소 확인, 이벤트 주소 다시 확인, 홈 채널 고르기). 세 건까지 보이고, 더 있으면 전체 보기 N건이 에이전트 목록으로 간다. 홈은 목록 첫 100개만 읽으니, 에이전트가 그보다 많으면 건수 뒤에 "이상"이 붙는다. 그 100개 밖의 에이전트에만 조치가 필요하면 지금 할 일은 나오지 않는다.

설정 > 워크스페이스 > 연동 > Slack의 자동으로 만든 Slack 앱 절은 이 콘솔이 만든 Slack 앱을 표로 보여 준다. 계정 연결 앱이 먼저, 그다음 에이전트 앱이 에이전트 이름순으로 나온다. 행마다 앱 이름과 Slack 앱 ID, 에이전트, 상태, 갱신 시각이 있다. 상태는 연결됨(계정 연결 앱은 client secret이 저장돼 Sign in with Slack을 쓸 수 있을 때, 에이전트 앱은 봇 @slug가 설치됐을 때), 설치 전, 비밀값 없음(client secret이 없는 계정 연결 앱), 만드는 중, 삭제 중이다. 자세히는 그 에이전트의 Slack 탭을 연다. 이 절은 보기만 한다. 에이전트 앱의 설치·연결 해제·삭제는 그 에이전트의 Slack 탭에서 한다. 계정 연결 앱을 지우거나 다시 만드는 화면은 아직 없다. 손으로 만든 앱과 만들기에 실패했거나 지운 앱은 보이지 않는다. 소유자·관리자만 볼 수 있고, API는 GET /v1/workspaces/{id}/slack/apps다. 좁은 화면에서는 에이전트와 갱신 시각이 앱 칸 아래 줄로 접힌다.