МожливостіСутності
Документація
    Ring Platform

    Децентралізоване самобудівне майбутнє

    Увійти
    Сутності
    Можливості
    Магазин
    Документація
    Концепції
    RING ЕкономікаSonoratek LLCГлобальний впливAI зустрічає Web3
    Розпочати
    Швидкий стартКалькуляторДорожня карта
    Конфіденційність|Контакти
    v1.104.14|Sonoratek LLC

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Інтеграція платежів
    Інтеграція WayForPay
    Web3 Гаманець
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкінга Токенів
    Сутності
    Можливості
    Повідомлення
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безпека та відповідність
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Білий лейбл
    Інтеграція Web3
    Реальні приклади
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Web3
    Token launch jurisdictions
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Архітектура PaymentConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Інтеграція платежів
    Інтеграція WayForPay
    Web3 Гаманець
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкінга Токенів
    Сутності
    Можливості
    Повідомлення
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безпека та відповідність
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Білий лейбл
    Інтеграція Web3
    Реальні приклади
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Web3
    Token launch jurisdictions
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Архітектура PaymentConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Інтеграція платежів
    Інтеграція WayForPay
    Web3 Гаманець
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкінга Токенів
    Сутності
    Можливості
    Повідомлення
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безпека та відповідність
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Білий лейбл
    Інтеграція Web3
    Реальні приклади
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Web3
    Token launch jurisdictions
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Архітектура PaymentConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Email AI-CRM API

    Доступ адміністратора

    Всі маршрути /api/admin/email/* потребують аутентифікованої сесії platform admin (роль admin або superadmin).

    Адмін-інтерфейс

    Інтерфейс перегляду знаходиться за адресою /admin/crm/* (CrmAdminShell). API залишаються /api/admin/email/* — див. Email AI-CRM.

    Cron / webhook

    /api/cron/* та /api/webhooks/email/inbound використовують CRON_SECRET або WEBHOOK_EMAIL_SECRET — не user session. Якщо секрет відсутній — запит відхиляється.

    CRM SMTP ≠ Auth SMTP

    Відправка чернеток використовує EmailSenderService + канальний SMTP (CRM_CHANNEL_*). Для авторизаційних OTP використовується lib/mailer.ts / SMTP_*. Не плутайте це в технічній документації.

    Адмін — канали

    GET /api/admin/email/channels

    Тільки для читання: статус каналів CRM (без паролей). Використовується для фільтрації inbox за каналами в UI.

    Відповідь:

    json
    
    {
      "channels": [
        {
          "id": "primary",
          "name": "Primary",
          "flow": "standard",
          "mailbox": "INBOX",
          "imapHost": "mail.ringdom.org",
          "imapUser": "info@ringdom.org",
          "smtpHost": "mail.ringdom.org",
          "smtpUser": "info@ringdom.org",
          "hasImapPassword": true,
          "hasSmtpPassword": true
        }
      ],
      "validation": { "ok": true, "errors": [] }
    }

    Реалізація: loadCrmChannels() + validateCrmChannels() з features/email-crm/pipeline/imap/config.ts.


    Адмін — треди

    GET /api/admin/email/threads

    Список email-тредів.

    QueryТипОпис
    statusstringФільтр: new, ongoing, waiting, resolved або всі
    sourceChannelstringФільтрація за id чи назвою каналу (для мультискринькової підтримки)

    Відповідь: { threads: EmailThreadRecord[] }

    PATCH /api/admin/email/threads

    Оновлення статусу треду.

    Body: { "id": "<threadId>", "status": "resolved" }

    GET /api/admin/email/threads/[id]

    Детальна інформація про тред: повідомлення, чернетки, відкриті задачі.

    Відповідь: { thread, messages, drafts, tasks }


    Адмін — чернетки

    GET /api/admin/email/drafts

    Чернетки до відправки (status: pending), найновіші першими.

    POST /api/admin/email/drafts/[id]/approve

    Затвердити чернетку до відправки (відмітка reviewer — user із сесії).

    POST /api/admin/email/drafts/[id]/reject

    Body: { "reason": "текстове пояснення (необов'язково)" }

    POST /api/admin/email/drafts/[id]/send

    Відправити затверджену чернетку через CRM SMTP-канал (EmailSenderService).

    Body (опціонально): { "toEmail": "...", "subject": "..." } — за замовчуванням з треду.

    Відповідь: { "success": true, "messageId": "<smtp-message-id>" }

    Email зберігається у email_messages + статус треду змінюється на waiting.


    Адмін — контакти

    GET /api/admin/email/contacts

    QueryОпис
    email, name, company, typeПараметри для пошуку

    POST /api/admin/email/contacts

    Body: { "email": "обовʼязково", "name?", "company?", "type?" }


    Адмін — задачі

    GET /api/admin/email/tasks

    QueryОпис
    statusopen, in_progress, overdue, completed і т.д.

    POST /api/admin/email/tasks

    Body: { "threadId", "title", "taskType", ... } — приклад див. у TaskCreateInput (task-service.ts).

    POST /api/admin/email/tasks/[id]/complete

    Body: { "completionNotes?": "text" }


    Адмін — аналітика

    GET /api/admin/email/analytics

    QueryЗначення
    range7d (за замовчуванням), 30d, 90d

    Відповідь: розподіл намірів/емоцій, costStats з email_api_usage, dailyStats, підсумки по чернетках/задачах.


    Cron — email processor

    POST або GET /api/cron/email-processor

    Auth: Authorization: Bearer $CRON_SECRET (обовʼязково)

    Body або query action:

    ActionОпис
    poll (default)pollInboundBatch() — забрати UNSEEN по каналах, обробити, закрити зʼєднання
    statusСтатистика процесора + IMAP (getEmailProcessor() для цієї дії)
    stopЗупинити IDLE listener
    startСтарт IDLE (потрібен EMAIL_PROCESSOR_ALLOW_HTTP_START=true)
    mark-overdue-tasksВиклик EmailTaskService.processOverdueTasks()

    Екземпляри процесора створюються окремо для кожної дії (не long-running-сервіс).

    Приклад:

    GET /api/cron/email-analytics

    Повертає 7-денний знімок дашборду (як admin analytics). Тільки cron-авторизація.

    Очищення токенів авторизації (пов'язано)

    GET/POST /api/cron/cleanup-email-tokens — видаляє прострочені email_login_tokens. Той самий pattern з CRON_SECRET. Документація — Ring Mailer; не відноситься до Email CRM напряму.


    Webhook — вхідна пошта

    POST /api/webhooks/email/inbound

    Auth: Authorization: Bearer $WEBHOOK_EMAIL_SECRET або HMAC-SHA256 hex у X-Email-Webhook-Signature по raw body.

    Body (JSON):

    Викликає EmailProcessor.ingestEvent() з uid: 0 (без позначки IMAP як прочитаного).


    Пов'язані документи

    Related documentation

    Email AI-CRM

    Передумова: налаштування операторів, секрети каналів, різниця Auth та CRM SMTP.

    Email AI-CRM architecture

    Деталі реалізації: EmailProcessor та jsonb-collection persist.

    Email AI-CRM developer guide

    Workflow: локальний poll + відправка чернетки (smoke test).

    Ring Mailer & RingdomX Mail

    Див. також: cron очистки токенів авторизації, SMTP_* plane.

    Email AI-CRM API

    Доступ адміністратора

    Всі маршрути /api/admin/email/* потребують аутентифікованої сесії platform admin (роль admin або superadmin).

    Адмін-інтерфейс

    Інтерфейс перегляду знаходиться за адресою /admin/crm/* (CrmAdminShell). API залишаються /api/admin/email/* — див. Email AI-CRM.

    Cron / webhook

    /api/cron/* та /api/webhooks/email/inbound використовують CRON_SECRET або WEBHOOK_EMAIL_SECRET — не user session. Якщо секрет відсутній — запит відхиляється.

    CRM SMTP ≠ Auth SMTP

    Відправка чернеток використовує EmailSenderService + канальний SMTP (CRM_CHANNEL_*). Для авторизаційних OTP використовується lib/mailer.ts / SMTP_*. Не плутайте це в технічній документації.

    Адмін — канали

    GET /api/admin/email/channels

    Тільки для читання: статус каналів CRM (без паролей). Використовується для фільтрації inbox за каналами в UI.

    Відповідь:

    json
    
    {
      "channels": [
        {
          "id": "primary",
          "name": "Primary",
          "flow": "standard",
          "mailbox": "INBOX",
          "imapHost": "mail.ringdom.org",
          "imapUser": "info@ringdom.org",
          "smtpHost": "mail.ringdom.org",
          "smtpUser": "info@ringdom.org",
          "hasImapPassword": true,
          "hasSmtpPassword": true
        }
      ],
      "validation": { "ok": true, "errors": [] }
    }

    Реалізація: loadCrmChannels() + validateCrmChannels() з features/email-crm/pipeline/imap/config.ts.


    Адмін — треди

    GET /api/admin/email/threads

    Список email-тредів.

    QueryТипОпис
    statusstringФільтр: new, ongoing, waiting, resolved або всі
    sourceChannelstringФільтрація за id чи назвою каналу (для мультискринькової підтримки)

    Відповідь: { threads: EmailThreadRecord[] }

    PATCH /api/admin/email/threads

    Оновлення статусу треду.

    Body: { "id": "<threadId>", "status": "resolved" }

    GET /api/admin/email/threads/[id]

    Детальна інформація про тред: повідомлення, чернетки, відкриті задачі.

    Відповідь: { thread, messages, drafts, tasks }


    Адмін — чернетки

    GET /api/admin/email/drafts

    Чернетки до відправки (status: pending), найновіші першими.

    POST /api/admin/email/drafts/[id]/approve

    Затвердити чернетку до відправки (відмітка reviewer — user із сесії).

    POST /api/admin/email/drafts/[id]/reject

    Body: { "reason": "текстове пояснення (необов'язково)" }

    POST /api/admin/email/drafts/[id]/send

    Відправити затверджену чернетку через CRM SMTP-канал (EmailSenderService).

    Body (опціонально): { "toEmail": "...", "subject": "..." } — за замовчуванням з треду.

    Відповідь: { "success": true, "messageId": "<smtp-message-id>" }

    Email зберігається у email_messages + статус треду змінюється на waiting.


    Адмін — контакти

    GET /api/admin/email/contacts

    QueryОпис
    email, name, company, typeПараметри для пошуку

    POST /api/admin/email/contacts

    Body: { "email": "обовʼязково", "name?", "company?", "type?" }


    Адмін — задачі

    GET /api/admin/email/tasks

    QueryОпис
    statusopen, in_progress, overdue, completed і т.д.

    POST /api/admin/email/tasks

    Body: { "threadId", "title", "taskType", ... } — приклад див. у TaskCreateInput (task-service.ts).

    POST /api/admin/email/tasks/[id]/complete

    Body: { "completionNotes?": "text" }


    Адмін — аналітика

    GET /api/admin/email/analytics

    QueryЗначення
    range7d (за замовчуванням), 30d, 90d

    Відповідь: розподіл намірів/емоцій, costStats з email_api_usage, dailyStats, підсумки по чернетках/задачах.


    Cron — email processor

    POST або GET /api/cron/email-processor

    Auth: Authorization: Bearer $CRON_SECRET (обовʼязково)

    Body або query action:

    ActionОпис
    poll (default)pollInboundBatch() — забрати UNSEEN по каналах, обробити, закрити зʼєднання
    statusСтатистика процесора + IMAP (getEmailProcessor() для цієї дії)
    stopЗупинити IDLE listener
    startСтарт IDLE (потрібен EMAIL_PROCESSOR_ALLOW_HTTP_START=true)
    mark-overdue-tasksВиклик EmailTaskService.processOverdueTasks()

    Екземпляри процесора створюються окремо для кожної дії (не long-running-сервіс).

    Приклад:

    GET /api/cron/email-analytics

    Повертає 7-денний знімок дашборду (як admin analytics). Тільки cron-авторизація.

    Очищення токенів авторизації (пов'язано)

    GET/POST /api/cron/cleanup-email-tokens — видаляє прострочені email_login_tokens. Той самий pattern з CRON_SECRET. Документація — Ring Mailer; не відноситься до Email CRM напряму.


    Webhook — вхідна пошта

    POST /api/webhooks/email/inbound

    Auth: Authorization: Bearer $WEBHOOK_EMAIL_SECRET або HMAC-SHA256 hex у X-Email-Webhook-Signature по raw body.

    Body (JSON):

    Викликає EmailProcessor.ingestEvent() з uid: 0 (без позначки IMAP як прочитаного).


    Пов'язані документи

    Related documentation

    Email AI-CRM

    Передумова: налаштування операторів, секрети каналів, різниця Auth та CRM SMTP.

    Email AI-CRM architecture

    Деталі реалізації: EmailProcessor та jsonb-collection persist.

    Email AI-CRM developer guide

    Workflow: локальний poll + відправка чернетки (smoke test).

    Ring Mailer & RingdomX Mail

    Див. також: cron очистки токенів авторизації, SMTP_* plane.

    Email AI-CRM API

    Доступ адміністратора

    Всі маршрути /api/admin/email/* потребують аутентифікованої сесії platform admin (роль admin або superadmin).

    Адмін-інтерфейс

    Інтерфейс перегляду знаходиться за адресою /admin/crm/* (CrmAdminShell). API залишаються /api/admin/email/* — див. Email AI-CRM.

    Cron / webhook

    /api/cron/* та /api/webhooks/email/inbound використовують CRON_SECRET або WEBHOOK_EMAIL_SECRET — не user session. Якщо секрет відсутній — запит відхиляється.

    CRM SMTP ≠ Auth SMTP

    Відправка чернеток використовує EmailSenderService + канальний SMTP (CRM_CHANNEL_*). Для авторизаційних OTP використовується lib/mailer.ts / SMTP_*. Не плутайте це в технічній документації.

    Адмін — канали

    GET /api/admin/email/channels

    Тільки для читання: статус каналів CRM (без паролей). Використовується для фільтрації inbox за каналами в UI.

    Відповідь:

    json
    
    {
      "channels": [
        {
          "id": "primary",
          "name": "Primary",
          "flow": "standard",
          "mailbox": "INBOX",
          "imapHost": "mail.ringdom.org",
          "imapUser": "info@ringdom.org",
          "smtpHost": "mail.ringdom.org",
          "smtpUser": "info@ringdom.org",
          "hasImapPassword": true,
          "hasSmtpPassword": true
        }
      ],
      "validation": { "ok": true, "errors": [] }
    }

    Реалізація: loadCrmChannels() + validateCrmChannels() з features/email-crm/pipeline/imap/config.ts.


    Адмін — треди

    GET /api/admin/email/threads

    Список email-тредів.

    QueryТипОпис
    statusstringФільтр: new, ongoing, waiting, resolved або всі
    sourceChannelstringФільтрація за id чи назвою каналу (для мультискринькової підтримки)

    Відповідь: { threads: EmailThreadRecord[] }

    PATCH /api/admin/email/threads

    Оновлення статусу треду.

    Body: { "id": "<threadId>", "status": "resolved" }

    GET /api/admin/email/threads/[id]

    Детальна інформація про тред: повідомлення, чернетки, відкриті задачі.

    Відповідь: { thread, messages, drafts, tasks }


    Адмін — чернетки

    GET /api/admin/email/drafts

    Чернетки до відправки (status: pending), найновіші першими.

    POST /api/admin/email/drafts/[id]/approve

    Затвердити чернетку до відправки (відмітка reviewer — user із сесії).

    POST /api/admin/email/drafts/[id]/reject

    Body: { "reason": "текстове пояснення (необов'язково)" }

    POST /api/admin/email/drafts/[id]/send

    Відправити затверджену чернетку через CRM SMTP-канал (EmailSenderService).

    Body (опціонально): { "toEmail": "...", "subject": "..." } — за замовчуванням з треду.

    Відповідь: { "success": true, "messageId": "<smtp-message-id>" }

    Email зберігається у email_messages + статус треду змінюється на waiting.


    Адмін — контакти

    GET /api/admin/email/contacts

    QueryОпис
    email, name, company, typeПараметри для пошуку

    POST /api/admin/email/contacts

    Body: { "email": "обовʼязково", "name?", "company?", "type?" }


    Адмін — задачі

    GET /api/admin/email/tasks

    QueryОпис
    statusopen, in_progress, overdue, completed і т.д.

    POST /api/admin/email/tasks

    Body: { "threadId", "title", "taskType", ... } — приклад див. у TaskCreateInput (task-service.ts).

    POST /api/admin/email/tasks/[id]/complete

    Body: { "completionNotes?": "text" }


    Адмін — аналітика

    GET /api/admin/email/analytics

    QueryЗначення
    range7d (за замовчуванням), 30d, 90d

    Відповідь: розподіл намірів/емоцій, costStats з email_api_usage, dailyStats, підсумки по чернетках/задачах.


    Cron — email processor

    POST або GET /api/cron/email-processor

    Auth: Authorization: Bearer $CRON_SECRET (обовʼязково)

    Body або query action:

    ActionОпис
    poll (default)pollInboundBatch() — забрати UNSEEN по каналах, обробити, закрити зʼєднання
    statusСтатистика процесора + IMAP (getEmailProcessor() для цієї дії)
    stopЗупинити IDLE listener
    startСтарт IDLE (потрібен EMAIL_PROCESSOR_ALLOW_HTTP_START=true)
    mark-overdue-tasksВиклик EmailTaskService.processOverdueTasks()

    Екземпляри процесора створюються окремо для кожної дії (не long-running-сервіс).

    Приклад:

    GET /api/cron/email-analytics

    Повертає 7-денний знімок дашборду (як admin analytics). Тільки cron-авторизація.

    Очищення токенів авторизації (пов'язано)

    GET/POST /api/cron/cleanup-email-tokens — видаляє прострочені email_login_tokens. Той самий pattern з CRON_SECRET. Документація — Ring Mailer; не відноситься до Email CRM напряму.


    Webhook — вхідна пошта

    POST /api/webhooks/email/inbound

    Auth: Authorization: Bearer $WEBHOOK_EMAIL_SECRET або HMAC-SHA256 hex у X-Email-Webhook-Signature по raw body.

    Body (JSON):

    Викликає EmailProcessor.ingestEvent() з uid: 0 (без позначки IMAP як прочитаного).


    Пов'язані документи

    Related documentation

    Email AI-CRM

    Передумова: налаштування операторів, секрети каналів, різниця Auth та CRM SMTP.

    Email AI-CRM architecture

    Деталі реалізації: EmailProcessor та jsonb-collection persist.

    Email AI-CRM developer guide

    Workflow: локальний poll + відправка чернетки (smoke test).

    Ring Mailer & RingdomX Mail

    Див. також: cron очистки токенів авторизації, SMTP_* plane.

    Owner Project Lab

    Див. також: адмінський shell замовлень CRM.

    bash
    
    curl -X POST "$BASE_URL/api/cron/email-processor" \
      -H "Authorization: Bearer $CRON_SECRET" \
      -H "Content-Type: application/json" \
      -d '{"action":"poll"}'
    json
    
    {
      "messageId": "<rfc5322-message-id>",
      "from": "sender@example.com",
      "fromName": "НЕОБОВ’ЯЗКОВО",
      "to": "info@example.com",
      "subject": "Тема листа",
      "bodyText": "Текст листа",
      "bodyHtml": "<div>опційно</div>",
      "date": "2026-06-10T12:00:00.000Z",
      "inReplyTo": "<parent-message-id>",
      "references": ["<ref1>", "<ref2>"]
    }

    Owner Project Lab

    Див. також: адмінський shell замовлень CRM.

    bash
    
    curl -X POST "$BASE_URL/api/cron/email-processor" \
      -H "Authorization: Bearer $CRON_SECRET" \
      -H "Content-Type: application/json" \
      -d '{"action":"poll"}'
    json
    
    {
      "messageId": "<rfc5322-message-id>",
      "from": "sender@example.com",
      "fromName": "НЕОБОВ’ЯЗКОВО",
      "to": "info@example.com",
      "subject": "Тема листа",
      "bodyText": "Текст листа",
      "bodyHtml": "<div>опційно</div>",
      "date": "2026-06-10T12:00:00.000Z",
      "inReplyTo": "<parent-message-id>",
      "references": ["<ref1>", "<ref2>"]
    }

    Owner Project Lab

    Див. також: адмінський shell замовлень CRM.

    bash
    
    curl -X POST "$BASE_URL/api/cron/email-processor" \
      -H "Authorization: Bearer $CRON_SECRET" \
      -H "Content-Type: application/json" \
      -d '{"action":"poll"}'
    json
    
    {
      "messageId": "<rfc5322-message-id>",
      "from": "sender@example.com",
      "fromName": "НЕОБОВ’ЯЗКОВО",
      "to": "info@example.com",
      "subject": "Тема листа",
      "bodyText": "Текст листа",
      "bodyHtml": "<div>опційно</div>",
      "date": "2026-06-10T12:00:00.000Z",
      "inReplyTo": "<parent-message-id>",
      "references": ["<ref1>", "<ref2>"]
    }
    1. Документація
    2. /API-інтерфейс
    3. /Email AI-CRM API

    Оновлено 21 лип. 2026 р.3 хв прослуховування

    1. Документація
    2. /API-інтерфейс
    3. /Email AI-CRM API

    Оновлено 21 лип. 2026 р.3 хв прослуховування

    1. Документація
    2. /API-інтерфейс
    3. /Email AI-CRM API

    Оновлено 21 лип. 2026 р.3 хв прослуховування