Перейти к содержанию

Интеграция Gmail и n8n: AI-разбор писем, вложения, ярлыки и безопасные черновики

Обновлено: 2026-05-30

AI summary: Problem/Solution-гайд по Gmail и n8n: как разбирать входящие письма, классифицировать их, обрабатывать вложения, создавать черновики ответов и не нарушать thread, OAuth и privacy-правила.
Готовый blueprint для внедрения

Импортируйте JSON в n8n, замените credentials, URL API, поля CRM/БД и лимиты под вашу инфраструктуру.

Проблема: Почта быстро превращается в ручную очередь: заявки, счета, резюме и ответы клиентов лежат вместе, вложения теряются, а автоответ без проверки может уйти не тому адресату.

Решение: строить интеграцию Gmail и n8n как controlled inbox triage: читать только нужные письма, сохранять threadId, классифицировать содержание, обрабатывать вложения, создавать draft вместо отправки и применять labels для SLA.

Схема интеграции Gmail и n8n для AI-разбора писем, черновиков и labels
Схема показывает controlled inbox triage: письмо классифицируется, получает label и черновик ответа.

Проблема: почему автоматизация Gmail без threadId и labels создаёт хаос

Самая опасная ошибка — сразу отправлять автоответ. В реальной поддержке письмо может быть частью длинного thread, содержать вложение, персональные данные, спорный тон или юридически значимую просьбу. Поэтому безопасная автоматизация Gmail начинается с triage и draft reply, а не с полной автопереписки.

n8n хорошо подходит как слой маршрутизации: Gmail trigger получает письмо, Code Node нормализует sender/subject/threadId, AI или правила определяют категорию, а Gmail node создаёт черновик, ставит label и отдаёт сложные случаи человеку.

Архитектура workflow Gmail + n8n для triage и черновиков

БлокЗадачаProduction-проверка
Gmail Triggerчитает новые письма по query/labelOAuth scope, unread, mailbox filter
Normalize emailизвлекает sender, subject, threadIdreply-to, attachments, text/html
Classify routeопределяет категорию и SLAinvoice, support, sales, HR
Attachment handlingсохраняет файлы в Drive/S3/CRMразмер, тип, вирусы, PII
Create draft replyготовит черновик в threadне отправляет без approval
Apply labelsставит статус обработкиprocessed, needs-human, sla-risk

Для бизнес-почты лучше создавать draft и label, а не отправлять ответ автоматически. Это сохраняет скорость, но оставляет контроль у человека.

Контракт входящего письма из Gmail

{
  "id": "18f7c9d2",
  "threadId": "18f7c9d2-thread",
  "from": "client@example.ru",
  "subject": "Счёт и закрывающие документы по заказу 10492",
  "snippet": "Добрый день, пришлите закрывающие документы и статус оплаты.",
  "labelIds": [
    "INBOX",
    "UNREAD"
  ],
  "attachments": [
    {
      "filename": "invoice-10492.pdf",
      "mimeType": "application/pdf",
      "size": 428312
    }
  ]
}

threadId обязателен для корректного ответа в переписке. Без него workflow может создать новое письмо вместо ответа в существующем диалоге.

Code Node: нормализация письма, вложений и маршрута

const msg = $json.body ?? $json;
const from = String(msg.from ?? msg.headers?.from ?? '').trim().toLowerCase();
const subject = String(msg.subject ?? '').replace(/\s+/g, ' ').trim();
const text = String(msg.text ?? msg.snippet ?? '').replace(/\s+/g, ' ').trim();
const attachments = Array.isArray(msg.attachments) ? msg.attachments : [];
const hasPdf = attachments.some(a => /pdf/i.test(a.mimeType ?? a.filename ?? ''));
const route = /счет|счёт|акт|закрывающ/i.test(subject + ' ' + text) ? 'documents' :
  /ошибка|не работает|срочно|проблем/i.test(subject + ' ' + text) ? 'support' :
  /резюме|ваканси/i.test(subject + ' ' + text) ? 'hr' : 'general';
return [{ json: {
  message_id: msg.id,
  thread_id: msg.threadId,
  from,
  subject,
  text_preview: text.slice(0, 700),
  route,
  has_attachments: attachments.length > 0,
  has_pdf: hasPdf,
  labels_to_add: route === 'support' ? ['needs-human','sla-risk'] : ['triaged'],
  draft_allowed: Boolean(msg.threadId) && !/unsubscribe|noreply|no-reply/.test(from)
}}];
Почему лучше draft, а не send

Черновик ускоряет ответ, но не отнимает контроль. Для писем с оплатой, документами, персональными данными и конфликтами человек должен увидеть текст перед отправкой.

Готовый workflow JSON: скачать и импортировать

Скачать готовый workflow JSON Скачать тестовый payload

{
  "name": "Nodbot - Gmail inbox triage with draft reply",
  "nodes": [
    {
      "name": "Gmail Trigger",
      "type": "n8n-nodes-base.gmailTrigger",
      "purpose": "Получить новое письмо"
    },
    {
      "name": "Normalize email",
      "type": "n8n-nodes-base.code",
      "purpose": "Подготовить threadId, sender и attachments"
    },
    {
      "name": "Classify route",
      "type": "n8n-nodes-base.code",
      "purpose": "Определить категорию"
    },
    {
      "name": "Check draft allowed",
      "type": "n8n-nodes-base.if",
      "purpose": "Проверить безопасность черновика"
    },
    {
      "name": "Create Gmail draft",
      "type": "n8n-nodes-base.gmail",
      "purpose": "Создать draft reply"
    },
    {
      "name": "Apply labels",
      "type": "n8n-nodes-base.gmail",
      "purpose": "Поставить labels"
    }
  ],
  "connections": "Gmail Trigger → Normalize email → Classify route → Check draft allowed → Create Gmail draft → Apply labels"
}

Пошаговая настройка Gmail OAuth, labels и n8n

  1. Создайте Google OAuth credential для Gmail с минимальными scope.
  2. Подготовьте labels: triaged, needs-human, sla-risk, processed.
  3. Импортируйте workflow JSON и настройте Gmail query/label filter.
  4. Добавьте правила для вложений: PDF, счета, резюме, большие файлы.
  5. Включите draft mode для ответов, где нужна проверка человеком.

Тесты перед production

curl -X POST "https://YOUR-N8N-DOMAIN/webhook/integration-gmail-n8n-triage" \
  -H "Content-Type: application/json" \
  --data @integration-gmail-n8n-triage-payload.json
  1. Письмо в существующем thread создаёт черновик в том же диалоге.
  2. No-reply отправитель не получает draft reply.
  3. Письмо с PDF получает нужный label и route documents.
  4. Срочное письмо получает needs-human и sla-risk.
  5. OAuth ошибка не теряет message_id и уходит в alert.

Production-риски

  • Автоотправка без review. Ошибка текста может уйти клиенту или партнёру.
  • Нет threadId. Ответ создаётся отдельным письмом и ломает историю.
  • Слишком широкие OAuth scope. Интеграция получает лишний доступ к почте.
  • Вложения пишутся в executions. Большие PDF и персональные данные засоряют хранилище.
  • Нет label lifecycle. Непонятно, какие письма уже обработаны.
Карточка результата Gmail workflow в n8n с route, draft и labels
Пример результата: письмо обработано, thread сохранён, создан черновик и поставлен label.

Критерии готовности

  1. Workflow сохраняет message_id и threadId для каждого письма.
  2. Ответы создаются как draft, если нет явного правила автоотправки.
  3. Labels отражают статус обработки и SLA.
  4. Вложения обрабатываются по типу, размеру и sensitivity.
  5. OAuth, rate limit и invalid grant уходят в alert.
Нужно разобрать почту без риска неправильных автоответов?

Nodbot настроит Gmail + n8n: triage, labels, вложения, draft replies, human approval, OAuth и мониторинг ошибок почтовых workflow.

Обсудить Gmail-автоматизацию