웹훅 응답
n8n v2.29Respond to Webhook 노드를 사용하여 수신되는 웹훅에 대한 응답을 제어합니다. 첫 번째 데이터 항목에 대해 한 번만 실행됩니다 Respond to Webhook 노드는 수신되는 첫 번째 데이터 항목을 사용하여 한 번만 실행됩니다.
Respond to Webhook 노드를 사용하여 수신되는 웹훅에 대한 응답을 제어합니다. 이 노드는 Webhook 노드와 함께 작동합니다.
첫 번째 데이터 항목에 대해 한 번만 실행됩니다
Respond to Webhook 노드는 수신되는 첫 번째 데이터 항목을 사용하여 한 번만 실행됩니다. 자세한 내용은 하나 이상의 데이터 항목 반환을 참고하세요.
Respond to Webhook 사용 방법#
Respond to Webhook 노드를 사용하려면:
- 워크플로의 트리거 노드로 Webhook 노드를 추가합니다.
- Webhook 노드에서 Respond를 Using 'Respond to Webhook' node로 설정합니다.
- 워크플로 어디에든 Respond to Webhook 노드를 추가합니다. 다른 노드의 데이터를 반환하려면 해당 노드들 뒤에 배치합니다.
노드 파라미터#
다음 파라미터를 사용하여 노드 동작을 구성합니다.
응답 형식#
웹훅 응답에 어떤 데이터를 보낼지 선택합니다.
- All Incoming Items: 입력의 모든 JSON 항목으로 응답합니다.
- Binary File: Response Data Source에 정의된 바이너리 파일로 응답합니다.
- First Incoming Item: 첫 번째로 수신된 항목의 JSON으로 응답합니다.
- JSON: Response Body에 정의된 JSON 객체로 응답합니다.
- JWT Token: JSON Web Token(JWT)으로 응답합니다.
- No Data: 응답 페이로드가 없습니다.
- Redirect: Redirect URL에 설정된 URL로 리디렉션합니다.
- Text: Response Body에 설정된 텍스트로 응답합니다. 기본적으로 HTML을 전송합니다(
Content-Type: text/html).
노드 옵션#
Add Option을 선택하여 옵션을 보고 설정합니다.
- Response Code: 사용할 응답 코드를 설정합니다.
- Response Headers: 전송할 응답 헤더를 정의합니다.
- Put Response in Field: All Incoming Items 또는 First Incoming Item으로 응답할 때 사용할 수 있습니다. 응답 데이터를 담을 필드의 이름을 설정합니다.
- Enable Streaming: 활성화하면 스트리밍을 사용하여 데이터를 사용자에게 반환합니다. Response mode가 Streaming으로 구성된 트리거가 필요합니다.
n8n이 HTML 응답을 보호하는 방식#
n8n 버전 1.103.0부터, n8n은 웹훅에 대한 HTML 응답을 <iframe> 태그로 자동으로 감쌉니다. 이는 인스턴스 사용자를 보호하기 위한 보안 메커니즘입니다.
이는 다음과 같은 영향을 미칩니다.
- HTML이 상위 문서에 직접 렌더링되는 대신 샌드박스된 iframe에서 렌더링됩니다.
- 최상위 window나 로컬 스토리지에 접근하려는 JavaScript 코드는 실패합니다.
- 인증 헤더는 샌드박스된 iframe에서 사용할 수 없습니다(예: 기본 인증). 짧은 수명의 액세스 토큰을 HTML에 내장하는 것과 같은 대체 방법을 사용해야 합니다.
- 상대 URL(예:
<form action="/">)은 작동하지 않습니다. 대신 절대 URL을 사용하세요.
템플릿 및 예제#
Respond to Webhook 통합 템플릿 둘러보기 또는 모든 템플릿 검색
워크플로 동작#
Respond to Webhook 노드를 사용할 때, 워크플로는 다음과 같이 동작합니다.
- 워크플로가 Respond to Webhook 노드를 실행하지 않고 종료되면, 200 상태와 함께 표준 메시지를 반환합니다.
- 첫 번째 Respond to Webhook 노드가 실행되기 전에 워크플로에서 오류가 발생하면, 500 상태와 함께 오류 메시지를 반환합니다.
- 첫 번째 노드 이후에 두 번째 Respond to Webhook 노드가 실행되면, 워크플로는 이를 무시합니다.
- Respond to Webhook 노드가 실행되었지만 웹훅이 없었던 경우, 워크플로는 Respond to Webhook 노드를 무시합니다.
웹훅에 전송된 응답 출력하기#
기본적으로 Respond to Webhook 노드에는 노드의 입력 데이터를 포함하는 단일 출력 분기가 있습니다.
원할 경우, 웹훅에 전송된 응답을 포함하는 두 번째 출력 분기를 활성화할 수 있습니다. 이 보조 출력을 활성화하려면, 캔버스에서 Respond to Webhook 노드를 열고 Settings 탭을 선택합니다. Enable Response Output Branch 옵션을 활성화합니다.
이제 노드에는 두 개의 출력이 생깁니다.
- Input Data: 노드의 입력을 그대로 전달하는 원래 출력입니다.
- Response: 웹훅에 전송된 응답 객체입니다.
하나 이상의 데이터 항목 반환(사용 중단됨)#
1.22.0에서 사용 중단됨
n8n 1.22.0에서는 All Incoming Items 옵션을 사용하여 모든 데이터 항목을 반환하는 기능이 추가되었습니다. n8n은 이 섹션에서 설명하는 우회 방법을 사용하는 대신, 최신 버전의 n8n으로 업그레이드할 것을 권장합니다.
Respond to Webhook 노드는 수신되는 첫 번째 데이터 항목을 사용하여 한 번만 실행됩니다. 이는 표현식을 사용하는 경우에도 마찬가지입니다. Loop 노드를 사용하여 강제로 반복하도록 할 수 없습니다. 워크플로는 실행되지만, 웹훅 응답에는 여전히 첫 번째 실행 결과만 포함됩니다.
하나 이상의 데이터 항목을 반환해야 하는 경우, 다음 옵션 중 하나를 선택하세요.
- Respond to Webhook 노드를 사용하는 대신, Webhook 노드의 Respond에서 When Last Node Finishes 옵션을 사용합니다. 워크플로가 출력하는 최종 데이터를 반환하려는 경우 이 방법을 사용합니다.
- Aggregate 노드를 사용하여 여러 항목을 단일 항목으로 변환한 다음, Respond to Webhook 노드로 데이터를 전달합니다. Aggregate를 **All Item Data (Into a Single List)**로 설정합니다.