
n8n과 OpenAI를 사용하여 AI 기반 리드 후속 조치 시스템 구축하기
요약
n8n과 OpenAI를 활용하여 리드 데이터를 자동으로 포착하고 개인화된 이메일을 발송하는 자동화 워크플로우 구축 방법을 설명합니다. 웹훅, OpenAI, Gmail, Google Sheets를 연결하여 사람의 개입 없이 10초 이내에 리드 후속 조치를 완료하는 과정을 다룹니다.
핵심 포인트
- n8n 웹훅을 통한 실시간 리드 데이터 수집 방법
- gpt-4o-mini를 활용한 개인화된 이메일 자동 생성
- Gmail 및 Google Sheets 연동을 통한 자동 발송 및 기록
- 전 과정 자동화를 통한 업무 효율성 극대화
오늘 n8n에서 AI 기반 리드 후속 조치 (lead follow-up) 시스템을 구축해 보겠습니다.
웹훅 (Webhook)이 리드를 포착합니다. OpenAI가 개인화된 이메일을 작성합니다.
Gmail이 이를 전송합니다. Google Sheets가 이를 기록합니다.
사람의 개입 없이 10초 이내에 실행되는 4개의 노드입니다.
이 포스트의 끝에 도달하면, 하단의 JSON 내보내기를 통해 n8n에 직접 가져올 수 있는 완전히 작동하는 워크플로우 (workflow)를 갖게 될 것입니다.
학습 내용:
- 웹훅 트리거 (webhook trigger)를 통해 리드 데이터를 포착하는 방법
- OpenAI (gpt-4o-mini)를 사용하여 개인화된 후속 조치 이메일을 작성하는 방법
- Gmail을 통해 자동으로 전송하는 방법
- 모든 리드와 전송된 이메일을 Google Sheets에 기록하는 방법
구축할 내용
흐름은 다음과 같습니다:
Webhook → OpenAI (이메일 개인화) → Gmail (전송) → Google Sheets (기록)
리드가 웹사이트, Tally, Typeform 등 어디에서든 양식을 제출합니다. 웹훅이 실행되면, OpenAI가 데이터를 읽고 개인화된 후속 조치 이메일을 작성하며, Gmail이 이를 자동으로 전송하고, 마지막으로 Google Sheets가 리드와 전송된 이메일을 기록하여 기록을 남깁니다.
사람의 개입은 없습니다. 전체 과정은 10초 이내에 실행됩니다.
사전 요구 사항
- n8n 계정 (클라우드 또는 셀프 호스팅 — 둘 다 가능)
- OpenAI API 키
- n8n에 연결된 Gmail 계정
- 리드를 기록할 Google Sheets
1단계 — 웹훅 트리거 (The Webhook Trigger)
n8n에서 새로운 워크플로우를 생성합니다. 첫 번째 노드를 추가하세요: Webhook.
HTTP Method를 POST로 설정합니다. n8n이 고유한 URL을 생성해 줄 것입니다. 이를 복사하세요 — 이것이 귀하의 양식이 POST 할 주소입니다.
웹훅은 다음과 유사한 페이로드 (payload)를 받게 됩니다:
{
"name": "Chris Mbah",
"email": "chris@example.com",
...
필드 이름은 양식에서 보내는 것과 일치할 것입니다. 아래 노드들을 설정할 때 이 점을 유념하세요 — 이 필드들을 이름으로 참조하게 됩니다.
테스트하기: n8n에서 "Listen for test event"를 클릭한 다음, Postman 또는 간단한 curl 명령어를 사용하여 테스트 POST 요청을 보냅니다. n8n이 요청을 받으면 데이터가 노드 출력에 나타나며, 이후 단계에서 이를 참조할 수 있습니다.
curl -X POST https://your-n8n-webhook-url \
-H "Content-Type: application/json" \
-d '{"name":"Chris Mbah","email":"chris@example.com","company":"Endy Studios","role":"Founder","message":"Looking for help automating our lead pipeline"}'
2단계 — OpenAI (개인화된 이메일 작성)
OpenAI 노드를 추가합니다. 이를 Webhook 노드에 연결하세요.
Resource를 Message로, Operation을 Complete로 설정합니다.
Model 필드에는 gpt-4o-mini를 사용합니다. 이 모델은 빠르고 저렴하며, 이메일 작성에 충분한 성능을 갖추고 있습니다.
Prompt 필드는 개인화(Personalisation)가 이루어지는 곳입니다. n8n의 표현식(Expression) 구문을 사용하여 Webhook 데이터를 가져옵니다:
당신은 프리랜서 AI 자동화 컨설턴트가 새로운 리드(Lead)에게 후속 조치를 취할 수 있도록 돕는 AI 어시스턴트입니다.
다음 세부 정보를 가진 리드에게 짧고 전문적인 후속 조치 이메일을 작성하세요:
...
Max Tokens를 300으로 설정합니다. 이는 짧은 후속 이메일을 작성하기에 충분하며 API 비용을 낮게 유지해 줍니다.
노드 출력은 이메일 본문인 단일 문자열(String)이 됩니다. 다음 단계에서 이를 {{ $json.message.content }}로 참조하게 됩니다.
3단계 — Gmail (이메일 발송)
Gmail 노드를 추가합니다. 이를 OpenAI 노드에 연결하세요.
Operation을 Send로 설정합니다.
필드를 다음과 같이 구성합니다:
| 필드 | 값 |
|---|---|
| To | {{ $('Webhook').item.json.email }} |
| ... |
To 필드는 OpenAI의 출력이 아닌 원본 Webhook 데이터를 직접 참조하므로, 올바른 노드에서 데이터를 가져오고 있는지 확인해야 합니다. n8n에서는 $('노드 이름').item.json.필드명을 사용하여 이전 노드의 어떤 출력값이든 참조할 수 있습니다.
참고할 사항: 위의 제목(Subject)은 일반적입니다. 이 또한 동적으로 만들 수 있습니다. 프롬프트를 수정하여 JSON을 출력하도록 설정함으로써, OpenAI가 본문과 함께 제목도 반환하도록 요청하세요:
두 개의 필드를 가진 JSON 객체를 반환하세요:
- "subject": 짧고 구체적인 제목 (최대 8단어)
- "body": 이메일 본문
...
그런 다음 Gmail로 전달하기 전에 n8n의 Code 노드를 사용하여 이를 파싱(Parse)합니다:
const response = JSON.parse($input.item.json.message.content);
return { subject: response.subject, body: response.body };
Step 4 — Google Sheets (리드 기록하기)
Google Sheets 노드를 추가합니다. 이를 Gmail 노드에 연결하세요.
작업(Operation)을 Append Row로 설정합니다.
사용할 스프레드시트와 시트를 선택합니다. 그런 다음 열(Column)을 다음과 같이 매핑합니다:
| Column | Value |
|---|---|
| Name | {{ $('Webhook').item.json.name }} |
| ... |
이렇게 하면 모든 리드와 그들에게 정확히 무엇이 전송되었는지에 대한 실행 로그(Running log)를 가질 수 있습니다. 나중에 발송된 내용을 검토하거나 클라이언트에게 업무를 인계해야 할 때 매우 유용합니다.
전체 워크플로우 (The Full Workflow)
완성된 캔버스(Canvas)의 모습은 다음과 같습니다:
[Webhook] → [OpenAI] → [Gmail] → [Google Sheets]
4개의 노드로 구성됩니다. 선형(Linear) 구조이며, 이 버전에서는 분기(Branching)가 필요하지 않습니다.
나중에 분기를 추가하고 싶다면 — 예를 들어, 특정 의도(Intent)를 언급한 리드에게만 이메일을 보내거나, 가치가 높은 리드를 Slack 알림으로 라우팅하는 등의 작업 — Webhook과 OpenAI 사이에 IF 노드를 추가하여 흐름을 분리하면 됩니다.
워크플로우 활성화하기
모든 테스트가 완료되고 정상 작동한다면, 오른쪽 상단에서 워크플로우를 Active 상태로 전환하세요.
이 시점부터는 Webhook URL로 들어오는 모든 POST 요청이 전체 시퀀스를 자동으로 트리거합니다. n8n 에디터를 계속 열어둘 필요가 없습니다.
자체 호스팅(Self-hosting)을 사용 중이라면 n8n 인스턴스가 항상 실행 중인지 확인하세요. 클라우드(Cloud)를 사용 중이라면 클라우드에서 이를 자동으로 처리합니다.
실행 비용
현재 OpenAI 가격 기준으로, gpt-4o-mini는 입력 토큰 100만 개당 약 $0.15, 출력 토큰 100만 개당 약 $0.60의 비용이 듭니다.
단일 리드 후속 조치(프롬프트 + 응답)는 총 약 300~400개의 토큰을 사용합니다.
이는 리드당 약 $0.0001 수준입니다. 약 $1로 10,000개의 리드를 처리할 수 있습니다.
Gmail은 무료입니다. Google Sheets도 무료입니다. n8n 클라우드는 이 정도 규모를 충분히 커버할 수 있는 무료 티어(Free tier)를 제공합니다.
이 전체 시스템은 거의 제로에 가까운 비용으로 운영됩니다.
전체 JSON 내보내기 (Full JSON Export)
이 내용을 n8n에 직접 가져오기(Import) 하세요. 워크플로(Workflow)로 이동하여 메뉴(⋯)를 클릭하고, **JSON에서 가져오기 (Import from JSON)**를 선택한 뒤 이 내용을 붙여넣으세요. 본인의 자격 증명(Credentials)과 웹훅(Webhook) URL로 교체해야 합니다.
{
"name": "AI Lead Follow-Up System",
"nodes": [
...
다음 단계로 나아가기
이것은 기초입니다. 시스템이 실행되고 나면, 다음과 같은 자연스러운 확장 기능들을 추가할 수 있습니다.
리드 점수 산정 (Lead scoring) 추가. 이메일을 작성하기 전에 OpenAI에게 메시지와 역할(Role)을 바탕으로 리드에 1~10점 사이의 점수를 매기도록 요청하세요. 점수가 낮은 리드는 더 짧은 다른 이메일로 라우팅(Route)하고, 점수가 높은 리드는 Slack으로 알림을 보내도록 설정할 수 있습니다.
지연 시간 (Delay) 추가. 이메일이 너무 즉각적으로 느껴지는 것을 원치 않는다면 (어떤 사람들은 즉각적인 자동 답장을 의심스럽게 여깁니다), OpenAI와 Gmail 사이에 대기 (Wait) 노드를 추가하세요. 시간을 10~15분 정도로 설정하면 됩니다.
CRM과 연결. Google Sheets 대신 HubSpot 또는 Airtable 노드로 교체하세요. 로직은 동일하지만 데이터 관리는 더 깔끔해집니다.
하지만 우선 여기에 있는 것부터 시작하세요. 일단 실행시키세요. 리드가 들어오고 이메일이 자동으로 발송되는 것을 확인하세요.
자동화의 핵심은 복잡함이 아니라 단순함에 있습니다.
이러한 사례들을 공개적으로 더 많이 구축할 예정입니다. 다음 단계가 궁금하다면 계속 지켜봐 주세요.
n8n #automation #openai #tutorial #nocode #webdev #javascript #productivity
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기