InfoGrab DocsInfoGrab Docs

Webhook 노드 공통 문제

요약

다음은 Webhook 노드에서 발생하는 공통 문제와 질문, 그리고 제안된 해결 방법입니다. 기본적으로 Webhook 노드는 단일 메서드를 사용하는 호출만 허용합니다. Webhook 노드는 메서드별로 각각 출력을 가지므로, 메서드에 따라 다른 작업을 수행할 수 있습니다.

다음은 Webhook 노드에서 발생하는 공통 문제와 질문, 그리고 제안된 해결 방법입니다.

여러 HTTP 메서드 수신#

기본적으로 Webhook 노드는 단일 메서드를 사용하는 호출만 허용합니다. 예를 들어 GET 또는 POST 요청을 받을 수는 있지만 둘 다 받을 수는 없습니다. 여러 메서드를 사용하는 호출을 허용하려면:

  1. 노드의 Settings를 엽니다.
  2. Allow Multiple HTTP Methods를 켭니다.
  3. Parameters로 돌아갑니다. 이제 기본적으로 노드는 GET 및 POST 호출을 허용합니다. HTTP Methods 필드에서 다른 메서드를 추가할 수 있습니다.

Webhook 노드는 메서드별로 각각 출력을 가지므로, 메서드에 따라 다른 작업을 수행할 수 있습니다.

HTTP Request 노드로 Webhook 노드 트리거하기#

HTTP Request 노드는 지정한 URL로 HTTP 요청을 보냅니다.

  1. 새 워크플로를 생성합니다.
  2. 워크플로에 HTTP Request 노드를 추가합니다.
  3. Request Method 드롭다운 목록에서 메서드를 선택합니다. 예를 들어 Webhook 노드에서 HTTP method로 GET을 선택했다면, HTTP Request 노드에서도 요청 메서드로 GET을 선택합니다.
  4. Webhook 노드에서 URL을 복사하여 HTTP Request 노드의 URL 필드에 붙여넣습니다.
  5. Webhook 노드의 테스트 URL을 사용하는 경우: Webhook 노드로 워크플로를 실행합니다.
  6. HTTP Request 노드를 실행합니다.

curl로 Webhook 노드 트리거하기#

curl을 사용하여 Webhook 노드를 트리거하는 HTTP 요청을 보낼 수 있습니다.

Note

예제에서 <https://your-n8n.url/webhook/path>를 사용자의 웹훅 URL로 바꾸세요.
예제는 GET 요청을 사용합니다. HTTP Method에서 설정한 어떤 HTTP 메서드든 사용할 수 있습니다.

파라미터 없이 HTTP 요청 보내기:

curl --request GET <https://your-n8n.url/webhook/path>

본문(body) 파라미터를 포함한 HTTP 요청 보내기:

curl --request POST <https://your-n8n.url/webhook/path> --data 'key=value'

헤더 파라미터를 포함한 HTTP 요청 보내기:

curl --request GET <https://your-n8n.url/webhook/path> --header 'key=value'

파일을 전송하는 HTTP 요청 보내기:

curl --request POST <https://your-n8n.url/webhook/path> --form 'key=@/path/to/file'

/path/to/file을 전송할 파일의 경로로 바꾸세요.

문자열(string) 타입 응답 보내기#

기본적으로 응답 형식은 JSON 또는 배열입니다. 문자열 타입의 응답을 보내려면:

  1. Response Mode > When Last Node Finishes를 선택합니다.
  2. Response Data > First Entry JSON을 선택합니다.
  3. Add Option > Property Name을 선택합니다.
  4. 응답을 포함하는 속성의 이름을 입력합니다. 기본값은 data입니다.
  5. Edit Fields 노드를 Webhook 노드에 연결합니다.
  6. Edit Fields 노드에서 Add Value > String을 선택합니다.
  7. Name 필드에 속성의 이름을 입력합니다. 이 이름은 4단계에서 지정한 속성 이름과 일치해야 합니다.
  8. Value 필드에 문자열 값을 입력합니다.
  9. Keep Only Set을 켬(녹색)으로 토글합니다.

Webhook을 호출하면 Edit Fields 노드에서 문자열 응답을 전송합니다.

Test URL과 Production URL#

n8n은 각 Webhook 노드에 대해 두 개의 Webhook URL, 즉 Test URLProduction URL을 생성합니다.

워크플로를 만들거나 테스트하는 동안에는 Test URL을 사용합니다. Webhook URL을 프로덕션 환경에서 사용할 준비가 되면 Production URL을 사용합니다.

URL 유형 트리거 방법 수신 지속 시간 에디터 UI에 데이터 표시?
Test URL Listen for test event를 선택하고 소스에서 테스트 이벤트를 트리거합니다. 120초
Production URL 워크플로를 게시(publish)합니다 워크플로가 게시 해제될 때까지

자세한 내용은 Workflow development를 참조하세요.

화이트리스트에 있는 IP 주소가 연결에 실패하는 경우#

IP 화이트리스트에 있는 IP 주소에서 연결할 수 없는 경우, n8n이 리버스 프록시 뒤에서 실행되고 있는지 확인하세요.

그렇다면 N8N_PROXY_HOPS 환경 변수를 n8n이 실행되고 있는 리버스 프록시의 개수로 설정하세요.

경로와 메서드당 하나의 웹훅만 허용#

n8n은 경로와 HTTP 메서드 조합(예: /my-request에 대한 GET 요청)마다 하나의 웹훅만 등록할 수 있도록 허용합니다. 이는 어떤 웹훅이 요청을 수신해야 하는지에 대한 모호함을 방지하기 위한 것입니다.

선택한 경로와 메서드가 이미 사용 중이라는 메시지를 받으면, 다음 중 하나를 수행할 수 있습니다:

  • 충돌하는 웹훅이 있는 워크플로를 게시 해제합니다.
  • 충돌하는 웹훅 중 하나의 웹훅 경로 및/또는 메서드를 변경합니다.

n8n Cloud에서의 타임아웃#

n8n Cloud는 악성 트래픽을 방지하기 위해 Cloudflare를 사용합니다. 웹훅이 100초 이내에 응답하지 않으면, 수신 요청은 524 상태 코드와 함께 실패합니다.

이 때문에 이 제한을 초과할 수 있는 장시간 실행되는 프로세스의 경우, 두 개의 별도 웹훅을 구성하여 폴링 로직을 도입해야 할 수 있습니다:

  • 장시간 실행되는 프로세스를 시작하고 즉시 응답을 보내는 웹훅 하나.
  • 프로세스 상태를 조회하고 완료되면 결과를 가져오기 위해 일정 간격으로 호출할 수 있는 두 번째 웹훅.

Webhook 노드 공통 문제

n8n v2.29
원문 보기
요약

다음은 Webhook 노드에서 발생하는 공통 문제와 질문, 그리고 제안된 해결 방법입니다. 기본적으로 Webhook 노드는 단일 메서드를 사용하는 호출만 허용합니다. Webhook 노드는 메서드별로 각각 출력을 가지므로, 메서드에 따라 다른 작업을 수행할 수 있습니다.

다음은 Webhook 노드에서 발생하는 공통 문제와 질문, 그리고 제안된 해결 방법입니다.

여러 HTTP 메서드 수신#

기본적으로 Webhook 노드는 단일 메서드를 사용하는 호출만 허용합니다. 예를 들어 GET 또는 POST 요청을 받을 수는 있지만 둘 다 받을 수는 없습니다. 여러 메서드를 사용하는 호출을 허용하려면:

  1. 노드의 Settings를 엽니다.
  2. Allow Multiple HTTP Methods를 켭니다.
  3. Parameters로 돌아갑니다. 이제 기본적으로 노드는 GET 및 POST 호출을 허용합니다. HTTP Methods 필드에서 다른 메서드를 추가할 수 있습니다.

Webhook 노드는 메서드별로 각각 출력을 가지므로, 메서드에 따라 다른 작업을 수행할 수 있습니다.

HTTP Request 노드로 Webhook 노드 트리거하기#

HTTP Request 노드는 지정한 URL로 HTTP 요청을 보냅니다.

  1. 새 워크플로를 생성합니다.
  2. 워크플로에 HTTP Request 노드를 추가합니다.
  3. Request Method 드롭다운 목록에서 메서드를 선택합니다. 예를 들어 Webhook 노드에서 HTTP method로 GET을 선택했다면, HTTP Request 노드에서도 요청 메서드로 GET을 선택합니다.
  4. Webhook 노드에서 URL을 복사하여 HTTP Request 노드의 URL 필드에 붙여넣습니다.
  5. Webhook 노드의 테스트 URL을 사용하는 경우: Webhook 노드로 워크플로를 실행합니다.
  6. HTTP Request 노드를 실행합니다.

curl로 Webhook 노드 트리거하기#

curl을 사용하여 Webhook 노드를 트리거하는 HTTP 요청을 보낼 수 있습니다.

Note

예제에서 <https://your-n8n.url/webhook/path>를 사용자의 웹훅 URL로 바꾸세요.
예제는 GET 요청을 사용합니다. HTTP Method에서 설정한 어떤 HTTP 메서드든 사용할 수 있습니다.

파라미터 없이 HTTP 요청 보내기:

curl --request GET <https://your-n8n.url/webhook/path>

본문(body) 파라미터를 포함한 HTTP 요청 보내기:

curl --request POST <https://your-n8n.url/webhook/path> --data 'key=value'

헤더 파라미터를 포함한 HTTP 요청 보내기:

curl --request GET <https://your-n8n.url/webhook/path> --header 'key=value'

파일을 전송하는 HTTP 요청 보내기:

curl --request POST <https://your-n8n.url/webhook/path> --form 'key=@/path/to/file'

/path/to/file을 전송할 파일의 경로로 바꾸세요.

문자열(string) 타입 응답 보내기#

기본적으로 응답 형식은 JSON 또는 배열입니다. 문자열 타입의 응답을 보내려면:

  1. Response Mode > When Last Node Finishes를 선택합니다.
  2. Response Data > First Entry JSON을 선택합니다.
  3. Add Option > Property Name을 선택합니다.
  4. 응답을 포함하는 속성의 이름을 입력합니다. 기본값은 data입니다.
  5. Edit Fields 노드를 Webhook 노드에 연결합니다.
  6. Edit Fields 노드에서 Add Value > String을 선택합니다.
  7. Name 필드에 속성의 이름을 입력합니다. 이 이름은 4단계에서 지정한 속성 이름과 일치해야 합니다.
  8. Value 필드에 문자열 값을 입력합니다.
  9. Keep Only Set을 켬(녹색)으로 토글합니다.

Webhook을 호출하면 Edit Fields 노드에서 문자열 응답을 전송합니다.

Test URL과 Production URL#

n8n은 각 Webhook 노드에 대해 두 개의 Webhook URL, 즉 Test URLProduction URL을 생성합니다.

워크플로를 만들거나 테스트하는 동안에는 Test URL을 사용합니다. Webhook URL을 프로덕션 환경에서 사용할 준비가 되면 Production URL을 사용합니다.

URL 유형 트리거 방법 수신 지속 시간 에디터 UI에 데이터 표시?
Test URL Listen for test event를 선택하고 소스에서 테스트 이벤트를 트리거합니다. 120초
Production URL 워크플로를 게시(publish)합니다 워크플로가 게시 해제될 때까지

자세한 내용은 Workflow development를 참조하세요.

화이트리스트에 있는 IP 주소가 연결에 실패하는 경우#

IP 화이트리스트에 있는 IP 주소에서 연결할 수 없는 경우, n8n이 리버스 프록시 뒤에서 실행되고 있는지 확인하세요.

그렇다면 N8N_PROXY_HOPS 환경 변수를 n8n이 실행되고 있는 리버스 프록시의 개수로 설정하세요.

경로와 메서드당 하나의 웹훅만 허용#

n8n은 경로와 HTTP 메서드 조합(예: /my-request에 대한 GET 요청)마다 하나의 웹훅만 등록할 수 있도록 허용합니다. 이는 어떤 웹훅이 요청을 수신해야 하는지에 대한 모호함을 방지하기 위한 것입니다.

선택한 경로와 메서드가 이미 사용 중이라는 메시지를 받으면, 다음 중 하나를 수행할 수 있습니다:

  • 충돌하는 웹훅이 있는 워크플로를 게시 해제합니다.
  • 충돌하는 웹훅 중 하나의 웹훅 경로 및/또는 메서드를 변경합니다.

n8n Cloud에서의 타임아웃#

n8n Cloud는 악성 트래픽을 방지하기 위해 Cloudflare를 사용합니다. 웹훅이 100초 이내에 응답하지 않으면, 수신 요청은 524 상태 코드와 함께 실패합니다.

이 때문에 이 제한을 초과할 수 있는 장시간 실행되는 프로세스의 경우, 두 개의 별도 웹훅을 구성하여 폴링 로직을 도입해야 할 수 있습니다:

  • 장시간 실행되는 프로세스를 시작하고 즉시 응답을 보내는 웹훅 하나.
  • 프로세스 상태를 조회하고 완료되면 결과를 가져오기 위해 일정 간격으로 호출할 수 있는 두 번째 웹훅.