본문으로 건너뛰기

n8n Cloud 초대 신청, 폼 하나로 자동화하기

· 약 6분
Datapopcorn CEO / AI automation educator

n8n Cloud에 사용자를 초대하는 일을 폼 제출 한 번으로 끝냈습니다. n8n Form이 이름과 이메일을 받고, HTTP Request가 초대 API를 호출한 뒤, 신청 정보 저장과 Discord 알림까지 자동으로 이어집니다.

공유용 워크플로우 다운로드​

이 유즈케이스를 직접 가져다 쓸 수 있도록 개인정보와 운영 자격증명을 제거한 공유용 JSON을 함께 제공합니다.

공유용 n8n 워크플로우 JSON 다운로드

공유본에는 실제 API 키, Discord Webhook, 실제 Data Table 이름, 신청자 데이터가 없습니다. Import한 뒤 아래 항목을 먼저 내 환경에 맞게 바꿔주세요.

  • 2) 사용자 초대 API (설정 필요): YOUR_N8N_HOST를 내 n8n Cloud 호스트로 변경하고 API Credential을 연결합니다.
  • 3) 신청 정보 저장 (테이블명 설정): n8n-cloud-invitations라는 Data Table을 만들거나 내 테이블명으로 바꿉니다.
  • Discord 초대 완료 알림: 공유본의 가짜 Credential을 내 Discord Webhook Credential로 교체합니다.
  • 신청 폼: 뒤 노드 표현식과 연결되어 있으므로 name, email 필드명은 유지합니다.

워크플로우 내부 Sticky Note에도 Import 후 설정 순서, 테스트 순서, 보안 주의사항을 적어두었습니다. 화면을 따라가며 설정할 수 있도록 노드별 캡처도 아래에 추가했습니다.

공유용 워크플로우 화면​

개인정보를 제거한 공유용 n8n 워크플로우 전체 화면

배경​

교육 과정이나 커뮤니티를 운영하다 보면 새로운 사용자를 n8n Cloud 워크스페이스에 초대하는 일이 반복됩니다. 신청 이메일을 확인하고, 초대 API를 호출하고, 누가 초대되었는지 따로 기록하고, 처리 결과를 운영 채널에 공유해야 합니다.

한두 명이라면 수작업으로 처리할 수 있지만 신청자가 늘어나면 누락과 중복이 생기기 쉽습니다. 그래서 이번에는 신청 폼을 시작점으로 사용자 초대, 이력 관리, 알림을 하나의 n8n 워크플로우로 묶었습니다.

목표​

이 자동화의 목표는 단순합니다.

  • 이름과 이메일을 폼으로 받습니다.
  • 입력된 이메일로 기존 n8n Cloud 워크스페이스에 사용자를 초대합니다.
  • 초대 API가 반환한 사용자 ID와 이메일을 저장합니다.
  • 초대가 끝나면 Discord에 처리 결과를 알립니다.
  • API 키와 같은 인증 정보는 글이나 화면에 노출하지 않습니다.

여기서 말하는 초대는 새로운 n8n 서버를 생성하는 과정이 아닙니다. 이미 운영 중인 n8n Cloud 워크스페이스에 멤버를 추가하는 과정입니다.

구현 흐름​

현재 워크플로우 화면의 시작점은 Google Form 노드가 아니라 n8n의 Form Trigger입니다. 기존 워크플로우 이름에는 Google Form이라는 표현이 남아 있었지만, 실제 실행은 n8n Form의 Test URL과 Production URL을 사용하고 있어 화면과 글의 표현을 함께 정리했습니다.

n8n Form으로 신청 받기​

신청 폼 노드 설정과 필드 구성

첫 번째 노드는 신청 폼 제출입니다. 폼 제목은 n8n Cloud 사용자 초대 신청서 (공유용)로 설정했고, 이름과 이메일을 입력받습니다.

폼 설명에는 다음 안내를 넣었습니다.

이름과 이메일 주소를 입력하면 n8n Cloud 초대 메일을 보내드립니다.

n8n Form Trigger는 테스트 URL과 운영 URL을 따로 제공합니다. 개발 중에는 Test URL로 폼 데이터를 확인하고, 실제 운영 시에는 워크플로우를 Publish한 뒤 Production URL을 사용합니다.

폼 단계에서 중요한 것은 다음 노드가 기대하는 필드명을 처음부터 고정하는 것입니다. 이 워크플로우에서는 name과 email을 사용하기 때문에 뒤의 HTTP Request와 Data Table 노드도 같은 이름을 기준으로 연결했습니다.

HTTP Request로 사용자 초대하기​

개인정보를 제거한 HTTP Request 설정

두 번째 노드는 n8n Cloud 사용자 초대 API입니다.

  • Method: POST
  • Endpoint: /api/v1/users
  • Body: JSON
  • Role: global:member

핵심 요청 본문은 다음과 같습니다.

[
{
"email": "{{ $json.email }}",
"role": "global:member"
}
]

폼에서 받은 이메일을 API 요청에 넣고, 초대 대상의 기본 역할은 멤버로 지정합니다. 초대 API가 성공하면 이후 노드에서 사용자 ID와 이메일 같은 결과값을 사용할 수 있습니다.

보안 주의: X-N8N-API-KEY 헤더는 필요하지만 실제 키 값은 코드 블록, 블로그, 커밋, 화면 캡처에 넣으면 안 됩니다. 운영 환경에서는 n8n Credential이나 Secret으로 분리하고, 이미 외부에 노출된 키는 폐기 후 재발급해야 합니다.

Data Table에 신청 정보 저장하기​

공유용 Data Table 설정과 컬럼 매핑

API 호출이 끝나면 신청 정보 저장 노드에서 결과를 Data Table에 기록합니다. 초대 결과를 저장해두면 나중에 중복 신청을 확인하거나 초대 상태를 추적할 수 있습니다.

현재 구성은 다음 세 값을 저장하는 방식입니다.

name: {{ $('신청 폼 제출').item.json.name }}
user_id: {{ $json.user.id }}
email: {{ $json.user.email }}

이 매핑에서 이름은 최초 신청 폼에서 가져오고, 사용자 ID와 이메일은 초대 API 응답에서 가져옵니다. 입력 데이터와 API 응답 데이터의 출처가 다르기 때문에 어떤 노드의 값을 참조하는지 명시하는 것이 중요합니다.

Discord로 처리 결과 알리기​

공유용 Discord Webhook 설정 마지막 노드는 Discord 초대 완료 알림입니다. Discord Webhook을 통해 운영 채널에 초대 완료 메시지를 보냅니다.

n8n Cloud 초대 완료: {{ $json.user.email }}
메일을 확인해주세요.

이제 운영자는 매번 n8n 편집기를 열어 실행 결과를 확인하지 않아도 됩니다. 신청이 처리되면 알림 채널에서 대상 이메일을 바로 확인할 수 있습니다.

결과​

이 워크플로우가 실행되면 사용자는 신청 폼에 이름과 이메일을 입력합니다. 이후 n8n이 자동으로 API를 호출해 워크스페이스 초대 요청을 보내고, 초대 결과를 저장한 뒤 Discord에 알립니다.

결과적으로 운영자가 직접 처리해야 했던 세 가지 작업이 하나의 흐름으로 줄어듭니다.

  1. 초대 API 호출
  2. 신청 이력 기록
  3. 처리 결과 공유 특히 API 응답에서 반환되는 사용자 ID를 함께 저장하기 때문에 단순히 이메일 목록만 남기는 것보다 운영 이력을 추적하기 좋습니다.

운영 전에 확인할 것​

현재 폼은 별도 인증 없이 접근할 수 있는 구조이므로 실제 공개 운영 전에는 다음 항목을 추가로 검토하는 것이 좋습니다.

  • 이메일 형식과 허용 도메인 검증
  • 같은 이메일의 중복 신청 방지
  • API 호출 실패 시 별도 오류 알림
  • 공개 폼 스팸 방지
  • 초대 성공과 실패 결과를 구분해 저장
  • API 키를 Credential 또는 Secret으로 분리

테스트할 때는 실제 운영 계정으로 바로 실행하기보다 테스트용 이메일과 Test URL을 먼저 사용하는 편이 안전합니다. 초대 API는 외부 시스템의 상태를 바꾸는 요청이므로 Execute step을 누르기 전에 입력 데이터와 대상 워크스페이스를 확인해야 합니다.

배운 점​

이번 사례에서 가장 중요한 설계 포인트는 초대 API를 중심으로 후속 작업을 나눈 것입니다. API 호출이 성공한 뒤에는 같은 결과를 Data Table 저장과 Discord 알림에 각각 전달할 수 있어, 기록과 알림을 독립적으로 관리할 수 있습니다.

또 하나는 입력 필드와 API 응답 필드를 구분하는 일입니다. 신청 폼의 이름은 트리거 노드에서 가져오고, 사용자 ID와 초대 이메일은 API 응답에서 가져옵니다. 이 차이를 표현식에 명확히 적어두면 나중에 노드를 수정하거나 확장할 때도 흐름을 이해하기 쉽습니다.

다음 액션​

이 워크플로우는 다음과 같이 확장할 수 있습니다.

  • 초대 전 중복 이메일을 확인하는 분기 추가
  • 특정 이메일 도메인만 허용하는 검증 추가
  • API 실패 시 운영자에게 별도 알림 전송
  • 초대 결과에 따라 성공과 실패를 각각 기록
  • 초대 완료 후 환영 메일이나 온보딩 안내 발송

폼으로 입력을 받고, API로 처리하고, 데이터베이스와 협업 도구에 결과를 남기는 구조는 사용자 초대 외에도 교육 신청, 팀 계정 생성, 파트너 등록 등 다양한 운영 업무에 적용할 수 있습니다.

n8n의 강점은 각각의 작업을 별도 스크립트로 만들지 않고, 폼과 API, 저장소, 알림을 하나의 시각적인 흐름으로 연결할 수 있다는 점입니다. 작은 반복 업무부터 자동화하면 운영자는 누락을 줄이고, 더 중요한 교육과 콘텐츠 설계에 시간을 쓸 수 있습니다.