콘텐츠로 이동

07. 연결 관리

Slack 같은 외부 서비스를 한 번 연결해두면, 워크플로우에 토큰을 적지 않아도 이음새가 알아서 인증합니다. 사이드바 Connections 화면에서 관리합니다.


연결이 필요한 경우와 아닌 경우

필요 없는 경우가 대부분입니다. 아래 통합들은 연결 없이 바로 씁니다.

통합 연결 필요?
http_request ❌ 필요 없음 (토큰은 ${secrets.*}로)
llm_chat ❌ 필요 없음 (API 키는 ${secrets.*}로)
transform_jmespath ❌ 필요 없음
dataset ❌ 필요 없음
slack_post_message Slack 연결 필요

Slack에 메시지를 보낼 때 정도가 연결이 꼭 필요한 경우입니다. 그 외에는 08. 변수와 시크릿에 API 키를 넣고 http_request로 부르는 편이 더 간단할 때가 많습니다.


연결하기

  1. 사이드바에서 Connections로 들어갑니다.
  2. 연결할 서비스 카드에서 연결 버튼을 누릅니다.
  3. 그 서비스의 로그인·동의 화면으로 이동합니다. 요청하는 권한을 확인하고 승인합니다.
  4. 돌아오면 카드에 연결됨 상태와 받은 권한 목록이 표시됩니다.

일부 서비스는 연결 전에 추가 정보를 묻습니다 (예: 쇼핑몰의 몰 ID). 뜨는 입력창에 채워 넣으면 됩니다. API 키 방식으로 연결하는 서비스는 연결 대신 키를 직접 등록하는 창이 열립니다.

연결 가능한 서비스 목록은 Connections 화면에 카드로 표시됩니다. 베타 기간에 계속 늘어납니다.


연결 상태 읽는 법

카드 왼쪽 점 색깔이 상태입니다.

표시 할 일
🟢 연결됨 정상 없음
🟡 만료됨 토큰 만료 재연결
🔴 해지됨 상대 서비스에서 권한 취소됨 재연결
미연결 아직 연결 안 함 연결

만료된 토큰은 갱신을 지원하는 서비스라면 자동으로 갱신됩니다. 그래도 만료 표시가 남아 있다면 재연결하세요.

카드의 새로고침 버튼을 누르면 지금 이 연결이 실제로 살아 있는지 즉시 확인합니다.


권한(스코프) 관리

연결할 때 받은 권한 안에서만 동작합니다. 권한이 모자라면 카드에 이렇게 표시됩니다.

템플릿:
  ✅ Slack 메시지 발송
  ⚠️ 다른 기능        누락: [필요한권한]  권한 추가

권한 추가를 누르면 추가 권한을 요청하며 다시 연결합니다.


Slack 연결하기

가장 많이 쓰는 연결이므로 따로 정리합니다.

1) 연결

Connections → Slack 카드 → 연결 → Slack 워크스페이스 선택 → 권한 승인.

베타에서 요청하는 권한은 다음과 같습니다.

권한 용도
chat:write 메시지 발송
channels:read · groups:read 채널 목록 조회 (에디터에서 채널 고르기)
users:read 사용자 정보 조회
im:read · mpim:read DM 채널 조회
app_mentions:read 멘션 인식

2) ⚠️ 채널에 봇 초대하기 — 빠뜨리기 쉬움

메시지를 보낼 채널마다 봇을 초대해야 합니다. 워크스페이스 연결만으로는 부족합니다.

해당 Slack 채널에서:

/invite @이음새

이걸 안 하면 워크플로우가 not_in_channel 에러로 실패합니다.

3) 워크플로우에서 쓰기

- id: notify
  name: Slack 발송
  type: CALL
  integration: slack_post_message
  input:
    channel: "C0123ABCDEF"
    text: "안녕하세요! 자동화가  돌고 있습니다."

channel에는 채널 ID를 넣는 게 안전합니다. 비주얼 에디터에서는 연결된 Slack의 실제 채널 목록에서 고를 수 있습니다.

채널 ID 찾는 법: Slack에서 채널 우클릭 → 채널 세부정보 보기 → 맨 아래 채널 ID.


연결 해제

카드의 연결 해제를 누르면 저장된 토큰이 삭제됩니다.

⚠️ 그 연결을 쓰는 워크플로우는 다음 실행부터 실패합니다. 해제 전에 어떤 워크플로우가 쓰고 있는지 확인하세요.


워크플로우에서 토큰 직접 쓰기

드문 경우지만, 연결된 서비스의 토큰을 http_request에서 직접 써야 할 때가 있습니다.

input:
  uri: "https://slack.com/api/conversations.list"
  method: GET
  authenticate:
    authMethod: HEADERS
    data:
      Authorization: "Bearer ${connections.slack.accessToken}"

${connections.<제공사>.<필드>} 형식이고 제공사 이름은 소문자입니다. 만료된 토큰은 참조 시점에 자동 갱신됩니다.


연결 vs 시크릿, 뭘 써야 하나

연결 (Connections) 시크릿 (Variables)
인증 방식 OAuth (로그인 승인) API 키 문자열
만료 처리 자동 갱신 직접 교체
설정 난이도 클릭 몇 번 키 복사·붙여넣기
쓸 수 있는 곳 그 서비스 전용 통합 어디든 (http_request 등)

전용 통합이 있으면 연결을, 없으면 시크릿 + http_request 쓰면 됩니다.


다음08. 변수와 시크릿