InfoGrab DocsInfoGrab Docs

Slack에서 승인하기

요약

미리보기 기능은 향후 릴리스에서 변경될 수 있습니다. Message > Send and Wait for Response 작업을 사용하면, 승인자는 Slack 안에서 직접 승인하거나 거부할 수 있습니다. Slack 내에서 승인하려면 다음이 필요합니다:

Note

이 기능은 미리보기 상태입니다

미리보기 기능은 향후 릴리스에서 변경될 수 있습니다. 프로덕션 워크플로에서는 의존하지 마세요. n8n이 이 기능을 점진적으로 출시하고 있으므로, 아직 인스턴스에서 사용할 수 없을 수도 있습니다.

Message > Send and Wait for Response 작업을 사용하면, 승인자는 Slack 안에서 직접 승인하거나 거부할 수 있습니다. 브라우저 페이지가 열리지 않습니다: 누군가 응답하는 즉시 워크플로가 재개되며, 출력에는 누가 응답했는지가 기록됩니다.

링크 버튼과의 차이점#

항목 링크 버튼(기본값) Slack에서 승인하기
결정이 이루어지는 곳 브라우저에서 n8n 페이지를 엽니다 Slack 안에서 클릭 한 번
누가 응답할 수 있는지 링크를 클릭할 수 있는 모든 사람 지정한 승인자만 가능(목록이 비어 있으면 메시지를 볼 수 있는 모든 사람이 응답 가능). 그 외의 사람에게는 직접 작성할 수 있는 비공개 알림이 표시되며, 워크플로는 계속 대기합니다.
출력 approvedrespondedAt 응답자 정보(ID, 이름, 사용자 이름, 이메일)와 채널 및 메시지를 추가로 포함
결정 이후 메시지 변경 없음. 버튼은 계속 클릭 가능한 상태로 남지만, 이후 클릭 시 "조치가 필요하지 않습니다" 페이지가 표시됩니다. 첫 번째 결정이 유지됩니다. 선택 가능: 결과를 표시하고 버튼 제거(기본값), 버튼만 제거, 또는 메시지를 그대로 유지
보안 서명된 링크: 아무도 URL이나 동작을 변조할 수 없지만, 링크를 가진 사람은 누구나 응답할 수 있으며 n8n은 누가 클릭했는지 알 수 없습니다 n8n은 모든 콜백이 Slack에서 왔는지 검증하고(Slack의 요청 서명 사용), 응답자를 승인자 목록과 대조해 확인합니다

요구 사항#

Slack 내에서 승인하려면 다음이 필요합니다:

  • Slack에서 공개 HTTPS로 접근할 수 있는 n8n 인스턴스. 누군가 응답하면 Slack이 인스턴스를 다시 호출하므로, localhost에서 실행 중인 인스턴스는 작동하지 않습니다.
  • API 액세스 토큰이나 OAuth2를 사용하는 Slack 자격 증명.
  • Slack 자격 증명의 Signature Secret 필드에는 Settings > Basic Information에서 확인할 수 있는 Slack 앱의 서명 비밀(signing secret)이 있어야 합니다. 이것이 없으면 버튼은 표시되지만 클릭해도 워크플로가 재개되지 않습니다.
  • Response TypeApproval로 설정.
  • users:readusers:read.email 스코프. 응답자의 ID, 이름, 사용자 이름은 Slack의 인터랙션 페이로드에서 가져오고, 이메일은 Slack API에서 가져오며 이 스코프가 필요합니다. 스코프가 없으면 출력에서 이메일이 생략될 뿐입니다. 이 기능이 존재하기 전에 생성된 OAuth2 자격 증명을 사용한다면, users:read.email 스코프를 적용받도록 다시 연결하세요.

승인 설정하기#

1. Slack 앱 및 자격 증명 생성하기#

API 액세스 토큰 사용하기 또는 OAuth2 사용하기를 따라 Slack 앱을 생성하고 자격 증명을 설정하세요. 앱의 스코프를 설정할 때, 출력에 응답자의 이메일이 포함되도록 users:readusers:read.email을 추가하세요.

2. Interactivity 켜기#

  1. Slack에서 Your Apps로 이동해 사용할 앱을 선택합니다.
  2. Features > Interactivity & Shortcuts로 이동해 Interactivity를 켭니다.
  3. Request URLhttps://<your-n8n-instance>/webhook-waiting-slack을 입력합니다. 인스턴스의 모든 워크플로는 이 하나의 URL을 공유합니다. N8N_ENDPOINT_WEBHOOK_WAIT 환경 변수를 변경했다면, 경로를 그에 맞게 조정하세요.
  4. Save Changes를 선택합니다.
Note

Slack은 앱당 하나의 Request URL만 허용하므로, 하나의 Slack 앱은 하나의 n8n 인스턴스를 지원합니다.

3. 자격 증명에 서명 비밀 추가하기#

  1. Slack 앱에서 Settings > Basic Information으로 이동해 App Credentials 섹션에서 Signing Secret을 복사합니다.
  2. n8n에서 Slack 자격 증명의 Signature Secret 필드에 이를 붙여넣습니다.

n8n은 서명 비밀을 사용해 각 콜백이 Slack에서 왔는지 검증합니다. 검증에 실패한 콜백은 n8n이 거부하며, 워크플로는 계속 대기합니다.

4. 노드 설정하기#

Slack 노드에서 Send and Wait for Response 작업과 함께 Message 리소스를 선택하고, Response TypeApproval로 설정합니다. 그러면 아래 설정이 Advanced Interactivity 섹션 헤더 아래에 나타납니다.

  • Capture Who Responded: 이를 켜면 승인 버튼이 Slack 인터랙티브 버튼으로 전환되고 누가 응답했는지 기록됩니다. 켜면 나머지 설정이 나타납니다.
  • Restrict Who Can Approve: 조치를 취할 수 있는 사용자를 선택합니다. 표현식으로 사용자 ID를 지정할 수도 있습니다. 목록에 없는 사람이 클릭하면 비공개 알림을 받으며, 워크플로는 계속 대기합니다.
  • Unauthorized Reply: 클릭했지만 승인자 목록에 없는 사람에게 표시되는 비공개(임시) 메시지입니다. 기본값은 You are not authorized to respond to this request.입니다.
  • After Decision: 누군가 승인하거나 거부한 후 원본 Slack 메시지에 어떤 일이 일어나는지입니다.
    • Show Outcome and Remove Buttons(기본값): 버튼을 제거하고 결정과 응답자를 명시하는 줄을 추가합니다.
    • Remove Buttons Only: 결과 줄을 추가하지 않고 버튼만 제거합니다.
    • Keep Message Unchanged: 버튼을 포함해 메시지를 전송된 그대로 유지합니다. 이후 클릭은 기록된 결정(첫 번째 결정)을 바꾸지 않습니다.

승인자 목록을 비워두면, 메시지를 볼 수 있는 모든 사람이 승인하거나 거부할 수 있습니다. 채널에서는 모든 멤버가 여기에 해당합니다. 이 목록은 누가 요청을 볼 수 있는지가 아니라 누가 응답할 수 있는지를 제어하므로, 민감한 승인 요청은 비공개 채널이나 다이렉트 메시지로 게시하세요.

5. 테스트하기#

워크플로를 실행하고, Slack에서 Approve를 선택한 다음, 노드 출력을 확인하세요.

노드 출력#

Slack에서 누군가 응답하면, 노드는 결정과 응답자를 출력합니다:

{
	"data": {
		"approved": true,
		"respondedAt": "2025-07-13T12:34:56.000Z",
		"channel": "C0123ABC456",
		"messageId": "1752407696.123456",
		"responder": {
			"id": "U0123ABC456",
			"name": "Jo Doe",
			"username": "jo.doe",
			"email": "jo@example.com",
			"source": "slack"
		}
	}
}

링크 버튼을 사용하면, 출력에는 approvedrespondedAt만 포함됩니다.

대신 링크 버튼을 받는 경우#

다음 중 하나라도 해당되면, 노드는 이전과 동일하게 동작하여 n8n 확인 페이지를 여는 버튼을 전송합니다:

  • 아직 인스턴스에서 이 기능이 활성화되지 않았습니다.
  • Response TypeFree Text 또는 Custom Form입니다.
  • Capture Who Responded가 꺼져 있습니다.

기존 워크플로는 변경 없이 계속 작동합니다.

문제 해결#

  • 버튼을 눌러도 아무 일도 일어나지 않거나 Slack에 경고가 표시됨: Request URL이 잘못되었거나, 인스턴스가 HTTPS로 공개적으로 접근 가능하지 않거나, Signature Secret이 없거나 잘못되었습니다. Slack은 거부된 콜백과 접근 불가능한 URL에 대해 동일한 경고를 표시합니다.
  • 누군가 "not authorized" 응답을 받음: 해당 사용자가 Restrict Who Can Approve에 나열되어 있지 않습니다. 문구는 Unauthorized Reply에서 가져옵니다.
  • 누군가 응답했는데도 워크플로가 재개되지 않음: Signature Secret이 없거나 앱의 Signing Secret과 일치하지 않습니다. n8n은 검증할 수 없는 콜백을 거부하며, 워크플로는 계속 대기합니다.

Slack에서 승인하기

n8n v2.34
원문 보기

요약

미리보기 기능은 향후 릴리스에서 변경될 수 있습니다. Message > Send and Wait for Response 작업을 사용하면, 승인자는 Slack 안에서 직접 승인하거나 거부할 수 있습니다. Slack 내에서 승인하려면 다음이 필요합니다:

Note

이 기능은 미리보기 상태입니다

미리보기 기능은 향후 릴리스에서 변경될 수 있습니다. 프로덕션 워크플로에서는 의존하지 마세요. n8n이 이 기능을 점진적으로 출시하고 있으므로, 아직 인스턴스에서 사용할 수 없을 수도 있습니다.

Message > Send and Wait for Response 작업을 사용하면, 승인자는 Slack 안에서 직접 승인하거나 거부할 수 있습니다. 브라우저 페이지가 열리지 않습니다: 누군가 응답하는 즉시 워크플로가 재개되며, 출력에는 누가 응답했는지가 기록됩니다.

링크 버튼과의 차이점#

항목 링크 버튼(기본값) Slack에서 승인하기
결정이 이루어지는 곳 브라우저에서 n8n 페이지를 엽니다 Slack 안에서 클릭 한 번
누가 응답할 수 있는지 링크를 클릭할 수 있는 모든 사람 지정한 승인자만 가능(목록이 비어 있으면 메시지를 볼 수 있는 모든 사람이 응답 가능). 그 외의 사람에게는 직접 작성할 수 있는 비공개 알림이 표시되며, 워크플로는 계속 대기합니다.
출력 approvedrespondedAt 응답자 정보(ID, 이름, 사용자 이름, 이메일)와 채널 및 메시지를 추가로 포함
결정 이후 메시지 변경 없음. 버튼은 계속 클릭 가능한 상태로 남지만, 이후 클릭 시 "조치가 필요하지 않습니다" 페이지가 표시됩니다. 첫 번째 결정이 유지됩니다. 선택 가능: 결과를 표시하고 버튼 제거(기본값), 버튼만 제거, 또는 메시지를 그대로 유지
보안 서명된 링크: 아무도 URL이나 동작을 변조할 수 없지만, 링크를 가진 사람은 누구나 응답할 수 있으며 n8n은 누가 클릭했는지 알 수 없습니다 n8n은 모든 콜백이 Slack에서 왔는지 검증하고(Slack의 요청 서명 사용), 응답자를 승인자 목록과 대조해 확인합니다

요구 사항#

Slack 내에서 승인하려면 다음이 필요합니다:

  • Slack에서 공개 HTTPS로 접근할 수 있는 n8n 인스턴스. 누군가 응답하면 Slack이 인스턴스를 다시 호출하므로, localhost에서 실행 중인 인스턴스는 작동하지 않습니다.
  • API 액세스 토큰이나 OAuth2를 사용하는 Slack 자격 증명.
  • Slack 자격 증명의 Signature Secret 필드에는 Settings > Basic Information에서 확인할 수 있는 Slack 앱의 서명 비밀(signing secret)이 있어야 합니다. 이것이 없으면 버튼은 표시되지만 클릭해도 워크플로가 재개되지 않습니다.
  • Response TypeApproval로 설정.
  • users:readusers:read.email 스코프. 응답자의 ID, 이름, 사용자 이름은 Slack의 인터랙션 페이로드에서 가져오고, 이메일은 Slack API에서 가져오며 이 스코프가 필요합니다. 스코프가 없으면 출력에서 이메일이 생략될 뿐입니다. 이 기능이 존재하기 전에 생성된 OAuth2 자격 증명을 사용한다면, users:read.email 스코프를 적용받도록 다시 연결하세요.

승인 설정하기#

1. Slack 앱 및 자격 증명 생성하기#

API 액세스 토큰 사용하기 또는 OAuth2 사용하기를 따라 Slack 앱을 생성하고 자격 증명을 설정하세요. 앱의 스코프를 설정할 때, 출력에 응답자의 이메일이 포함되도록 users:readusers:read.email을 추가하세요.

2. Interactivity 켜기#

  1. Slack에서 Your Apps로 이동해 사용할 앱을 선택합니다.
  2. Features > Interactivity & Shortcuts로 이동해 Interactivity를 켭니다.
  3. Request URLhttps://<your-n8n-instance>/webhook-waiting-slack을 입력합니다. 인스턴스의 모든 워크플로는 이 하나의 URL을 공유합니다. N8N_ENDPOINT_WEBHOOK_WAIT 환경 변수를 변경했다면, 경로를 그에 맞게 조정하세요.
  4. Save Changes를 선택합니다.
Note

Slack은 앱당 하나의 Request URL만 허용하므로, 하나의 Slack 앱은 하나의 n8n 인스턴스를 지원합니다.

3. 자격 증명에 서명 비밀 추가하기#

  1. Slack 앱에서 Settings > Basic Information으로 이동해 App Credentials 섹션에서 Signing Secret을 복사합니다.
  2. n8n에서 Slack 자격 증명의 Signature Secret 필드에 이를 붙여넣습니다.

n8n은 서명 비밀을 사용해 각 콜백이 Slack에서 왔는지 검증합니다. 검증에 실패한 콜백은 n8n이 거부하며, 워크플로는 계속 대기합니다.

4. 노드 설정하기#

Slack 노드에서 Send and Wait for Response 작업과 함께 Message 리소스를 선택하고, Response TypeApproval로 설정합니다. 그러면 아래 설정이 Advanced Interactivity 섹션 헤더 아래에 나타납니다.

  • Capture Who Responded: 이를 켜면 승인 버튼이 Slack 인터랙티브 버튼으로 전환되고 누가 응답했는지 기록됩니다. 켜면 나머지 설정이 나타납니다.
  • Restrict Who Can Approve: 조치를 취할 수 있는 사용자를 선택합니다. 표현식으로 사용자 ID를 지정할 수도 있습니다. 목록에 없는 사람이 클릭하면 비공개 알림을 받으며, 워크플로는 계속 대기합니다.
  • Unauthorized Reply: 클릭했지만 승인자 목록에 없는 사람에게 표시되는 비공개(임시) 메시지입니다. 기본값은 You are not authorized to respond to this request.입니다.
  • After Decision: 누군가 승인하거나 거부한 후 원본 Slack 메시지에 어떤 일이 일어나는지입니다.
    • Show Outcome and Remove Buttons(기본값): 버튼을 제거하고 결정과 응답자를 명시하는 줄을 추가합니다.
    • Remove Buttons Only: 결과 줄을 추가하지 않고 버튼만 제거합니다.
    • Keep Message Unchanged: 버튼을 포함해 메시지를 전송된 그대로 유지합니다. 이후 클릭은 기록된 결정(첫 번째 결정)을 바꾸지 않습니다.

승인자 목록을 비워두면, 메시지를 볼 수 있는 모든 사람이 승인하거나 거부할 수 있습니다. 채널에서는 모든 멤버가 여기에 해당합니다. 이 목록은 누가 요청을 볼 수 있는지가 아니라 누가 응답할 수 있는지를 제어하므로, 민감한 승인 요청은 비공개 채널이나 다이렉트 메시지로 게시하세요.

5. 테스트하기#

워크플로를 실행하고, Slack에서 Approve를 선택한 다음, 노드 출력을 확인하세요.

노드 출력#

Slack에서 누군가 응답하면, 노드는 결정과 응답자를 출력합니다:

{
	"data": {
		"approved": true,
		"respondedAt": "2025-07-13T12:34:56.000Z",
		"channel": "C0123ABC456",
		"messageId": "1752407696.123456",
		"responder": {
			"id": "U0123ABC456",
			"name": "Jo Doe",
			"username": "jo.doe",
			"email": "jo@example.com",
			"source": "slack"
		}
	}
}

링크 버튼을 사용하면, 출력에는 approvedrespondedAt만 포함됩니다.

대신 링크 버튼을 받는 경우#

다음 중 하나라도 해당되면, 노드는 이전과 동일하게 동작하여 n8n 확인 페이지를 여는 버튼을 전송합니다:

  • 아직 인스턴스에서 이 기능이 활성화되지 않았습니다.
  • Response TypeFree Text 또는 Custom Form입니다.
  • Capture Who Responded가 꺼져 있습니다.

기존 워크플로는 변경 없이 계속 작동합니다.

문제 해결#

  • 버튼을 눌러도 아무 일도 일어나지 않거나 Slack에 경고가 표시됨: Request URL이 잘못되었거나, 인스턴스가 HTTPS로 공개적으로 접근 가능하지 않거나, Signature Secret이 없거나 잘못되었습니다. Slack은 거부된 콜백과 접근 불가능한 URL에 대해 동일한 경고를 표시합니다.
  • 누군가 "not authorized" 응답을 받음: 해당 사용자가 Restrict Who Can Approve에 나열되어 있지 않습니다. 문구는 Unauthorized Reply에서 가져옵니다.
  • 누군가 응답했는데도 워크플로가 재개되지 않음: Signature Secret이 없거나 앱의 Signing Secret과 일치하지 않습니다. n8n은 검증할 수 없는 콜백을 거부하며, 워크플로는 계속 대기합니다.