<!-- source: https://nodbot.ru/integrations/gmail/; markdown: /llms/pages/generated/integrations-gmail.md; type: IntegrationGuide -->
---
title: "Gmail и n8n: разбор писем и черновики | Nodbot"
source_url: "https://nodbot.ru/integrations/gmail/"
canonical_url: "https://nodbot.ru/integrations/gmail/"
language: "ru"
content_type: "IntegrationGuide"
section: "integrations"
generated_at: "2026-05-30"
word_count_source: 926
---

## AI summary

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

## Best used for

Страница нужна интеграторам и владельцам n8n, которые хотят внедрить связку без дублей, ручного хаоса и потери данных.

## Key topics

- Gmail
- n8n Gmail node
- Gmail API
- draft reply
- threadId
- labels
- email triage
- attachments
- OAuth

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

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

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

- Проблема и сценарии внедрения

- Архитектура интеграции

- Контракт данных

- Code Node и нормализация

- Готовый workflow JSON

- Пошаговая настройка

- Тесты перед production

- Production-риски

- Полезные ссылки

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

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

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


## Проблема: почему автоматизация 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/label | OAuth scope, unread, mailbox filter |

| Normalize email | извлекает sender, subject, threadId | reply-to, attachments, text/html |

| Classify route | определяет категорию и SLA | invoice, support, sales, HR |

| Attachment handling | сохраняет файлы в Drive/S3/CRM | размер, тип, вирусы, PII |

| Create draft reply | готовит черновик в thread | не отправляет без approval |

| Apply labels | ставит статус обработки | processed, needs-human, sla-risk |

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


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

```json
{
  "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: нормализация письма, вложений и маршрута

```javascript
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)
}}];
```

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


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

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

```json
{
  "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

- Создайте Google OAuth credential для Gmail с минимальными scope.

- Подготовьте labels: triaged, needs-human, sla-risk, processed.

- Импортируйте workflow JSON и настройте Gmail query/label filter.

- Добавьте правила для вложений: PDF, счета, резюме, большие файлы.

- Включите draft mode для ответов, где нужна проверка человеком.


## Тесты перед production

```bash
curl -X POST "https://YOUR-N8N-DOMAIN/webhook/integration-gmail-n8n-triage" \
  -H "Content-Type: application/json" \
  --data @integration-gmail-n8n-triage-payload.json
```

- Письмо в существующем thread создаёт черновик в том же диалоге.

- No-reply отправитель не получает draft reply.

- Письмо с PDF получает нужный label и route documents.

- Срочное письмо получает needs-human и sla-risk.

- OAuth ошибка не теряет message_id и уходит в alert.


## Production-риски

- Автоотправка без review. Ошибка текста может уйти клиенту или партнёру.

- Нет threadId. Ответ создаётся отдельным письмом и ломает историю.

- Слишком широкие OAuth scope. Интеграция получает лишний доступ к почте.

- Вложения пишутся в executions. Большие PDF и персональные данные засоряют хранилище.

- Нет label lifecycle. Непонятно, какие письма уже обработаны.


## Полезные ссылки и смежные workflow

- n8n Gmail node

- Gmail API overview

- Gmail API drafts

- Gmail attachments → Yandex Disk

- Письмо → задача Битрикс24


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

- Workflow сохраняет message_id и threadId для каждого письма.

- Ответы создаются как draft, если нет явного правила автоотправки.

- Labels отражают статус обработки и SLA.

- Вложения обрабатываются по типу, размеру и sensitivity.

- OAuth, rate limit и invalid grant уходят в alert.

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