07. 연결 관리¶
Slack 같은 외부 서비스를 한 번 연결해두면, 워크플로우에 토큰을 적지 않아도 이음새가 알아서 인증합니다. 사이드바 Connections 화면에서 관리합니다.
연결이 필요한 경우와 아닌 경우¶
필요 없는 경우가 대부분입니다. 아래 통합들은 연결 없이 바로 씁니다.
| 통합 | 연결 필요? |
|---|---|
http_request |
❌ 필요 없음 (토큰은 ${secrets.*}로) |
llm_chat |
❌ 필요 없음 (API 키는 ${secrets.*}로) |
transform_jmespath |
❌ 필요 없음 |
dataset |
❌ 필요 없음 |
slack_post_message |
✅ Slack 연결 필요 |
즉 Slack에 메시지를 보낼 때 정도가 연결이 꼭 필요한 경우입니다.
그 외에는 08. 변수와 시크릿에 API 키를 넣고 http_request로 부르는 편이 더 간단할 때가 많습니다.
연결하기¶
- 사이드바에서 Connections로 들어갑니다.
- 연결할 서비스 카드에서 연결 버튼을 누릅니다.
- 그 서비스의 로그인·동의 화면으로 이동합니다. 요청하는 권한을 확인하고 승인합니다.
- 돌아오면 카드에 연결됨 상태와 받은 권한 목록이 표시됩니다.
일부 서비스는 연결 전에 추가 정보를 묻습니다 (예: 쇼핑몰의 몰 ID). 뜨는 입력창에 채워 넣으면 됩니다. API 키 방식으로 연결하는 서비스는 연결 대신 키를 직접 등록하는 창이 열립니다.
연결 가능한 서비스 목록은 Connections 화면에 카드로 표시됩니다. 베타 기간에 계속 늘어납니다.
연결 상태 읽는 법¶
카드 왼쪽 점 색깔이 상태입니다.
| 표시 | 뜻 | 할 일 |
|---|---|---|
| 🟢 연결됨 | 정상 | 없음 |
| 🟡 만료됨 | 토큰 만료 | 재연결 |
| 🔴 해지됨 | 상대 서비스에서 권한 취소됨 | 재연결 |
| ⚪ 미연결 | 아직 연결 안 함 | 연결 |
만료된 토큰은 갱신을 지원하는 서비스라면 자동으로 갱신됩니다. 그래도 만료 표시가 남아 있다면 재연결하세요.
카드의 새로고침 버튼을 누르면 지금 이 연결이 실제로 살아 있는지 즉시 확인합니다.
권한(스코프) 관리¶
연결할 때 받은 권한 안에서만 동작합니다. 권한이 모자라면 카드에 이렇게 표시됩니다.
권한 추가를 누르면 추가 권한을 요청하며 다시 연결합니다.
Slack 연결하기¶
가장 많이 쓰는 연결이므로 따로 정리합니다.
1) 연결¶
Connections → Slack 카드 → 연결 → Slack 워크스페이스 선택 → 권한 승인.
베타에서 요청하는 권한은 다음과 같습니다.
| 권한 | 용도 |
|---|---|
chat:write |
메시지 발송 |
channels:read · groups:read |
채널 목록 조회 (에디터에서 채널 고르기) |
users:read |
사용자 정보 조회 |
im:read · mpim:read |
DM 채널 조회 |
app_mentions:read |
멘션 인식 |
2) ⚠️ 채널에 봇 초대하기 — 빠뜨리기 쉬움¶
메시지를 보낼 채널마다 봇을 초대해야 합니다. 워크스페이스 연결만으로는 부족합니다.
해당 Slack 채널에서:
이걸 안 하면 워크플로우가 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. 변수와 시크릿