PLAYBOOK · 워크플로우 · 2026.07.12

고객 문의 메일을 AI로 분류하고 답변 초안까지 만드는 방법

수신함에 쌓이는 문의를 사람이 하나씩 처리하는 대신, 검토만 남기는 자동화 설계입니다

다루는 도구n8nMakeOpenAIClaude API

지메일로 들어온 고객 문의를 n8n에서 자동 분류하고 답변 초안까지 만들어, 담당자는 검토와 발송만 하는 워크플로우입니다. 2026년 7월 공식 문서로 노드와 API를 확인해 재현 가능하게 정리했습니다.

  • 지메일로 들어오는 고객 문의를 유형별로 자동 분류하고 답변 초안까지 만드는 워크플로우입니다
  • 수신 감지와 분류, 초안 생성은 n8n이 맡고, 사람은 초안 검토와 발송만 담당합니다
  • 오늘 할 일: 문의 유형 3~4개를 정하고 Gmail Trigger로 수신함 하나를 연결해 봅니다

업무 시나리오

작은 온라인 스토어의 고객지원 담당자를 가정합니다. 하루에도 환불 요청, 배송 문의, 사용법 질문이 뒤섞여 들어옵니다. 담당자는 메일을 하나씩 열어 유형을 판단하고, 담당 팀으로 넘기고, 답변을 처음부터 씁니다. 문의가 몰리면 응답이 밀립니다.

병목은 사람이 '읽고, 분류하고, 작성하는' 일을 전부 순서대로 처리하는 데 있습니다. 이 가운데 판단이 반복되는 부분을 자동화 도구가 맡고, 사람은 마지막 검토에 집중하도록 바꿉니다. 도구는 n8n과 지메일, OpenAI 또는 Anthropic Claude API입니다. 여기 쓴 노드와 모듈, API는 2026년 7월 12일 각 공식 문서로 실존을 확인했습니다.

Before / After

아래 수치는 특정 회사의 성과가 아니라 이 설계에서 사람이 처리하는 단계를 센 값입니다.

  • 도입 전: 새 문의가 올 때마다 사람이 읽고, 유형을 판단해 담당 팀에 넘기고, 답변을 처음부터 씁니다
  • 도입 후: 도착과 동시에 유형이 분류되고 답변 초안이 원 스레드에 붙어, 담당자는 초안을 고쳐 보냅니다
  • 효과: 사람이 처리하는 단계가 4개(읽기·분류·작성·발송)에서 2개(검토·발송)로 줄어듭니다

전체 흐름

  1. 수신 — Gmail Trigger가 지원 수신함의 새 메일을 감지합니다
  2. 분류 — Text Classifier가 문의를 유형별로 나눕니다
  3. 초안 생성 — AI 노드가 유형에 맞는 답변 초안을 만듭니다
  4. 검토·발송 — 담당자가 원 스레드에 붙은 초안을 확인해 보냅니다

단계별 설계

아래는 2026년 7월 기준 n8n 공식 문서에 있는 노드만으로 구성했습니다.

  1. 수신 감지 (Gmail Trigger) — Gmail Trigger 노드로 지원 수신함을 폴링합니다. Poll Mode에서 확인 주기를 정하고, 필터에 라벨이나 발신 조건을 걸어 대상 메일만 통과시킵니다 [1]
  2. 필드 정리 (Edit Fields) — 트리거가 넘기는 발신자·제목·본문·스레드 ID를 Edit Fields(Set) 노드로 뒤 단계가 쓰기 좋게 정리합니다
  3. 유형 분류 (Text Classifier) — Text Classifier 루트 노드에 OpenAI Chat Model 또는 Anthropic Chat Model을 하위 노드로 연결합니다 [4]. 카테고리를 이름과 설명으로 정의하고, When No Clear Match를 Other 브랜치로 두어 확신이 낮은 문의는 사람에게 넘깁니다 [3]
  4. 답변 초안 생성 (AI 노드) — 분류 결과와 원문을 AI 노드(OpenAI의 Message a Model 또는 Basic LLM Chain)에 넣어 한국어 초안을 만듭니다. 정책·금액·링크를 지어내지 않도록 프롬프트로 제한합니다
  5. 초안 저장 (Gmail Draft · Create) — Gmail 노드의 Draft 리소스에서 Create를 씁니다. 받는 사람에 원 발신자, 제목에 Re:를 넣고, Thread ID에 2단계의 스레드 ID를 넣으면 원 대화에 답장 초안으로 붙습니다 [2]
  6. 담당자 라우팅·검토 (Gmail Message · Add Label) — Message 리소스의 Add Label로 유형 라벨과 '검토대기' 라벨을 붙입니다 [2]. 담당자는 지메일에서 라벨로 걸러 초안을 열고, 고쳐 발송합니다. 자동 발송은 두지 않습니다

3단계를 코드로 더 정밀하게 하려면, 모델에 구조화 출력을 지시해 분류 결과를 고정된 JSON으로 받습니다. OpenAI는 response_formatjson_schemastrict: true를 지정하면 응답이 스키마를 그대로 따릅니다 [5].

{
  "type": "json_schema",
  "json_schema": {
    "name": "cs_triage",
    "strict": true,
    "schema": {
      "type": "object",
      "properties": {
        "category": { "type": "string", "enum": ["환불·결제", "배송·주문", "기술문의", "기타"] },
        "priority": { "type": "string", "enum": ["높음", "보통", "낮음"] },
        "language": { "type": "string" },
        "summary":  { "type": "string" }
      },
      "required": ["category", "priority", "language", "summary"],
      "additionalProperties": false
    }
  }
}

Claude로 같은 일을 하려면 함수 호출로 도구를 정의합니다. 도구의 input_schema를 위와 같은 형태로 두고 tool_choice로 도구 호출을 강제하면, 응답이 스키마에 맞는 JSON으로 돌아옵니다 [6].

4단계의 초안 생성 프롬프트는 근거와 금지 규칙을 함께 넣습니다.

당신은 고객지원 담당자입니다. 아래 문의에 대한 한국어 답변 초안을 씁니다.
문의 유형: {{3단계 분류 결과}}
문의 본문: {{2단계 본문}}

규칙:
- 확인되지 않은 정책·금액·일정·링크를 만들지 않습니다.
- 근거가 없으면 "담당자가 확인 후 다시 안내드리겠습니다"로 적습니다.
- 사과·안내·다음 절차 순서로 3~5문장 이내로 씁니다.
- 서명은 "고객지원팀 드림"으로 끝냅니다.

주의점

  • 자동 발송을 두지 않습니다 — 초안까지만 만들고 발송은 사람이 합니다. 할루시네이션 답변이 그대로 나가는 것을 막습니다
  • 확신이 낮은 문의는 사람에게 — Text Classifier의 Other 브랜치로 분류가 불확실한 건을 검토 큐로 보냅니다
  • 개인정보가 외부로 나갑니다 — 문의 본문이 외부 모델로 전송되므로, 민감정보 마스킹과 조직 보안 기준 검토를 도입 전에 끝냅니다
  • 분류 스키마를 고정합니다 — 카테고리 값과 필드 구성을 정해 두면 뒤 단계 라우팅이 안정적이에요
  • 폴링 주기와 비용을 함께 봅니다 — 확인 주기가 짧을수록 반응은 빠르지만 실행 횟수와 토큰 비용이 늘어납니다

확장 아이디어

사내 도움말과 정책 문서를 RAG로 붙이면 초안이 실제 정책 문장을 근거로 답하게 됩니다. 지어내기 위험이 큰 환불 규정 같은 답변에서 특히 도움이 돼요.

같은 뼈대는 다른 도구로도 재현됩니다. Make에는 Watch emails 트리거와 Draft create a draft email, Update email labels 모듈이 있어 수신·초안·라벨 구조를 그대로 옮길 수 있습니다 [7]. Zapier로도 골격은 같습니다.

우선순위와 언어 필드도 분기점이 됩니다. priority가 '높음'인 문의만 슬랙으로 즉시 알리고, 영어 문의에는 영어 초안을 만들도록 4단계 프롬프트를 나누는 식이에요.

분류 품질은 로그로 개선합니다. 담당자가 고친 답변과 원래 초안을 함께 남기면 어떤 유형에서 초안이 자주 틀리는지 보입니다. 그 기록으로 카테고리 설명과 프롬프트를 프롬프트 엔지니어링 관점에서 다듬습니다.

참고 자료

  1. Gmail Trigger node — n8n Docs — https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/ · 2026-07-12 확인
  2. Gmail node (Draft·Message·Label operations) — n8n Docs — https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/ · 2026-07-12 확인
  3. Text Classifier node — n8n Docs — https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.text-classifier/ · 2026-07-12 확인
  4. Cluster nodes (root nodes and sub-nodes) — n8n Docs — https://docs.n8n.io/integrations/builtin/cluster-nodes/ · 2026-07-12 확인
  5. Structured Outputs — OpenAI API Docs — https://developers.openai.com/api/docs/guides/structured-outputs · 2026-07-12 확인
  6. Tool use (function calling) overview — Claude Docs — https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview · 2026-07-12 확인
  7. Gmail modules — Make Apps Documentation — https://apps.make.com/gmail-modules · 2026-07-12 확인
이 플레이북이 도움이 되었나요?