<!-- source: https://nodbot.ru/integrations/email-imap-gmail/; markdown: /llms/pages/generated/integrations-email-imap-gmail.md; type: IntegrationGuide -->
---
title: "Email, IMAP и Gmail в n8n: парсинг писем | Nodbot"
source_url: "https://nodbot.ru/integrations/email-imap-gmail/"
canonical_url: "https://nodbot.ru/integrations/email-imap-gmail/"
language: "ru"
content_type: "IntegrationGuide"
section: "integrations"
generated_at: "2026-05-30"
word_count_source: 1016
---

## AI summary

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

## Best used for

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

## Key topics

- Email
- IMAP
- Gmail
- n8n
- message id
- attachments
- parsing
- dedupe
- task automation
- support ticket

# Интеграция Email, IMAP и Gmail в n8n: парсинг писем, вложения и задачи

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

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

- Проблема и решение

- Архитектура workflow

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

- Code Node и проверки

- Готовый workflow JSON

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

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

- Production-риски

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

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

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

Решение: Надёжная email-интеграция через n8n фильтрует inbox по label/folder, использует Message-ID как idempotency key, парсит тему и тело, сохраняет вложения и создаёт задачу, лид или ticket только один раз.


## Проблема: почему простая интеграция создаёт дубли и ручной хаос

Email выглядит простым источником данных, пока не появляются пересылки, треды, автоответчики, подписи, HTML-тело, вложения, одинаковые темы и письма от no-reply. Поэтому workflow должен работать не с “последним письмом”, а с устойчивым контрактом: message_id, from, subject, body_text, attachments и thread context.

Для Gmail лучше использовать Gmail API/labels, когда нужны стабильные IDs и вложения. Для общего почтового ящика подойдёт IMAP, но тогда особенно важны folder, seen/unseen state и журнал обработанных Message-ID.


## Архитектура workflow для n8n

| Блок | Задача | Production-проверка |

| --- | --- | --- |

| Email/Gmail trigger | читает новые письма из label/folder | правильный label, query, unseen state |

| Normalize message | готовит from, subject, text, html и message_id | нет автоответов и no-reply |

| Parse intent | выделяет тип письма: заявка, счёт, support, спам | правила до создания задачи |

| Handle attachments | сохраняет PDF/CSV/изображения в облако | проверка размера и типа |

| Check idempotency | не обрабатывает Message-ID повторно | уникальный ключ mailbox+message_id |

| Create task/ticket | создаёт задачу, лид или ticket | ссылка на письмо и вложения |

Email workflow должен сначала решить, надо ли письмо обрабатывать вообще. Создавать задачу до фильтров — значит переносить мусор из inbox в CRM.


## Контракт входных данных

```json
{
  "mailbox": "support@example.ru",
  "message_id": "<CA+n8n-demo-10492@example.ru>",
  "from": "client@example.ru",
  "subject": "Счет и договор по проекту n8n",
  "body_text": "Добрый день, отправляю счет и договор во вложении.",
  "attachments": [
    {
      "filename": "invoice-10492.pdf",
      "mime_type": "application/pdf",
      "size_bytes": 284112
    },
    {
      "filename": "contract.docx",
      "mime_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "size_bytes": 491230
    }
  ],
  "received_at": "2026-05-30T10:15:00Z"
}
```

Контракт нужен для тестов и повторного запуска. Даже если источник — Gmail Trigger, внутри workflow лучше привести письмо к единому виду: message_id, sender, subject, body_text, attachments.


## Code Node: нормализация, mapping и guard-условия

```javascript
const src = $json.body ?? $json;
const headers = src.headers ?? {};
const messageId = String(src.message_id ?? headers['message-id'] ?? src.id ?? '').trim();
if (!messageId) throw new Error('No email Message-ID or provider id');
const from = String(src.from ?? '').toLowerCase();
const subject = String(src.subject ?? '').trim();
const body = String(src.body_text ?? src.text ?? '').trim();
const ignored = /(auto.?reply|out of office|delivery status|mailer-daemon|no-reply)/i;
if (ignored.test(from) || ignored.test(subject)) {
  return [{ json: { action: 'ignore', reason: 'auto_or_system_email', from, subject } }];
}
const attachments = Array.isArray(src.attachments) ? src.attachments.filter(a => {
  const size = Number(a.size_bytes ?? 0);
  const name = String(a.filename ?? '').toLowerCase();
  return size > 0 && size < 25 * 1024 * 1024 && !name.endsWith('.exe');
}) : [];
const intent = /счет|invoice|оплат/i.test(subject + ' ' + body) ? 'invoice' : /договор|contract/i.test(subject + ' ' + body) ? 'contract' : 'support_request';
return [{ json: {
  action: 'create_task_or_ticket',
  idempotency_key: `email:${src.mailbox ?? 'default'}:${messageId}`.toLowerCase(),
  from, subject, intent,
  body_preview: body.slice(0, 600),
  attachment_count: attachments.length,
  attachments,
  received_at: src.received_at ?? new Date().toISOString()
}}];
```

Gmail API удобнее для Gmail/Google Workspace: стабильные message ids, labels и отдельный attachments.get. IMAP универсальнее для любого ящика, но требует аккуратного управления folder, seen/unseen и повторной обработкой.


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

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

```json
{
  "name": "Nodbot - Email IMAP Gmail parser with attachments",
  "nodes": [
    {
      "name": "Email or Gmail Trigger",
      "type": "n8n-nodes-base.webhook",
      "purpose": "Получить новое письмо"
    },
    {
      "name": "Normalize message",
      "type": "n8n-nodes-base.code",
      "purpose": "Собрать единый контракт письма"
    },
    {
      "name": "Classify email intent",
      "type": "n8n-nodes-base.code",
      "purpose": "Определить заявку, счёт или support"
    },
    {
      "name": "Check Message-ID dedupe",
      "type": "n8n-nodes-base.postgres",
      "purpose": "Не обработать письмо повторно"
    },
    {
      "name": "Save attachments",
      "type": "n8n-nodes-base.httpRequest",
      "purpose": "Сохранить вложения в облако"
    },
    {
      "name": "Create task or ticket",
      "type": "n8n-nodes-base.httpRequest",
      "purpose": "Создать задачу/тикет/лид"
    }
  ],
  "connections": "Email or Gmail Trigger → Normalize message → Classify email intent → Check Message-ID dedupe → Save attachments → Create task or ticket"
}
```


## Пошаговая настройка связки

- Выберите источник: Gmail API для Google Workspace или IMAP для общего ящика.

- Настройте label/folder только для писем, которые должны попадать в автоматизацию.

- Импортируйте workflow JSON и замените credentials.

- Добавьте idempotency storage по mailbox+message_id.

- Протестируйте письмо с вложением, письмо без вложений и автоответ.


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

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

- Повторный payload не создаёт дубль и возвращает тот же output key.

- Некорректный mapping останавливается до запроса к внешнему API.

- Пустые необязательные поля не ломают workflow.

- Ошибка API уходит в alert или DLQ с безопасным payload.

- Execution data не содержит секретов, токенов и лишних персональных данных.


## Production-риски

- Обрабатывается весь inbox. Workflow создаст задачи из рассылок, автоответов и системных писем.

- Нет Message-ID dedupe. Пересылка или повторный trigger создаст второй ticket.

- HTML тело парсится как plain text. В задачу попадает мусор из подписи и стилей.

- Вложения не проверяются. Большие или опасные файлы ломают execution.

- Нет ссылки на исходное письмо. Менеджер не может быстро восстановить контекст.


## Полезные ссылки и смежные материалы

- Gmail API messages

- Gmail API attachments.get

- Gmail и n8n

- Создать задачу Битрикс24 из email

- Gmail attachments to cloud disk

- Dropbox и n8n


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

- Источник ограничен label/folder/query, а не всем inbox.

- Message-ID или provider id сохраняется как idempotency key.

- Автоответы, no-reply и delivery status отфильтрованы.

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

- Созданная задача содержит ссылку на письмо, preview и файлы.

Nodbot настроит Email/IMAP/Gmail + n8n: фильтры, Message-ID idempotency, парсинг тела, вложения, облачное хранение и создание задач в CRM/helpdesk.
