Kommo + Brevo: email и SMS-рассылки с привязкой к этапу воронки

Kommo + Brevo: email и SMS-рассылки с привязкой к этапу воронки

Brevo (бывший Sendinblue) — платформа для email и SMS-маркетинга. Kommo — CRM с воронкой продаж. В большинстве компаний они работают параллельно: маркетинг рассылает письма по своим спискам, продажи ведут сделки в CRM. Контекст не пересекается — менеджер не знает, открыл ли клиент письмо, а маркетолог не знает, на каком этапе воронки клиент находится. Интеграция Kommo и Brevo синхронизирует оба потока: этап сделки -> сегмент в Brevo, реакция на письмо -> данные в карточке Kommo.

Что синхронизируется между Kommo и Brevo

Kommo -> Brevo:
— Новый лид на этапе «Квалификация» -> контакт добавляется в Brevo список «Тёплые лиды» -> запускается nurturing-цепочка
— Лид перешёл на «Коммерческое предложение» -> контакт переносится в список «Горячие» -> индивидуальное письмо с КП
— Лид закрыт (Won) -> добавляется в список «Клиенты» -> welcome-серия
— Лид потерян (Lost) -> добавляется в список «Реактивация» -> серия через 30–60 дней

Brevo -> Kommo:
— Контакт открыл письмо -> Note в карточке Kommo «Открыл письмо [название] [дата]»
— Контакт кликнул ссылку -> Note «Кликнул [URL] в письме [название]»
— SMS доставлено / не доставлено -> статус в кастомном поле

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

Kommo: смена этапа сделки
  ↓ Webhook -> Backend
  1. GET контакт сделки (email)
  2. Brevo API: getContactInfo(email)
     -> найден: updateContact (обновить атрибуты, списки)
     -> не найден: createContact
  3. Brevo API: addContactToList(listId)
  4. Brevo API: sendTransactionalEmail (если нужно разовое письмо)

Brevo Webhook: opened / clicked
  ↓ Backend
  1. Найти контакт в Kommo по email
  2. Создать Note на связанной сделке
  3. (Опционально) Обновить скоринг-поле контакта

Brevo REST API: ключевые методы

Brevo API авторизуется через api-key в заголовке.

Создание или обновление контакта:

import sib_api_v3_sdk

configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = BREVO_API_KEY

api = sib_api_v3_sdk.ContactsApi(sib_api_v3_sdk.ApiClient(configuration))

# Создать или обновить контакт с атрибутами из Kommo
create_contact = sib_api_v3_sdk.CreateContact(
    email=email,
    attributes={
        'FIRSTNAME': first_name,
        'LASTNAME': last_name,
        'PHONE': phone,
        'CRM_STAGE': kommo_stage_name,
        'CRM_DEAL_VALUE': deal_price
    },
    list_ids=[target_list_id],
    update_enabled=True  # Обновить если контакт уже существует
)
api.create_contact(create_contact)

Отправка транзакционного email:

send_email = sib_api_v3_sdk.SendSmtpEmail(
    to=[{'email': email, 'name': contact_name}],
    template_id=BREVO_TEMPLATE_ID,
    params={
        'deal_name': deal_name,
        'manager_name': manager_name,
        'proposal_link': proposal_url
    }
)
api_instance.send_transac_email(send_email)

Отправка SMS:

sms_api = sib_api_v3_sdk.TransactionalSMSApi(sib_api_v3_sdk.ApiClient(configuration))
send_sms = sib_api_v3_sdk.SendTransacSms(
    sender='Exceltic',
    recipient=phone,
    content=f'Ваше КП от {manager_name} отправлено на email. Вопросы? Ответьте на это сообщение.'
)
sms_api.send_transac_sms(send_sms)

Маппинг этапов Kommo -> списки Brevo

Этап KommoСписок BrevoДействие при добавлении
Новый лидLead NurturingЗапуск email-цепочки (5 писем, 14 дней)
КвалифицированHot LeadsПерсональное письмо от менеджера
КП отправленоProposal SentReminder через 3 дня если не открыл
WonClientsWelcome-серия -> onboarding
LostReactivationПауза 30 дней -> реактивация

Один контакт в Brevo может быть одновременно в нескольких списках — это нормально. Важно правильно управлять unsubscribe: если контакт отписался от рассылки, Brevo не должен получать повторные запросы на добавление его в списки.

Обработка отписок

Brevo автоматически отмечает контакт как emailBlacklisted: true при отписке. Перед добавлением нового контакта или обновлением:

def safe_add_to_list(email: str, list_id: int):
    contact_info = api.get_contact_info(email)
    if contact_info.email_blacklisted:
        # Не трогаем отписавшегося
        return
    api.add_contact_to_list(list_id, {'emails': [email]})

Это критично: попытка добавить отписавшегося в список нарушает GDPR и может привести к блокировке аккаунта Brevo.

Реальный кейс

B2B-компания (SaaS, 60–80 лидов в месяц, цикл сделки 3–6 недель):

  • До интеграции: маркетинг рассылал newsletter всем подряд. Горячие лиды на этапе «Переговоры» получали те же письма, что и холодные из базы — без персонализации.
  • После: лиды из Kommo автоматически распределяются по сегментам Brevo в зависимости от этапа. «Горячие» получают 1-on-1 письмо от менеджера (транзакционный шаблон). Lost-лиды попадают в реактивационную цепочку через 45 дней.
  • Результат: open rate транзакционных писем от менеджера — 61% (против 22% у массовых рассылок). Три реактивированных клиента за первые 2 месяца из lost-сегмента.

Аналогичный принцип сегментации применяли при интеграции Kommo и ActiveCampaign — там тоже ключевой вопрос в корректной двусторонней синхронизации статусов.

Для кого актуально

Интеграция Kommo + Brevo имеет смысл если:
— Brevo используется для email и/или SMS и менять его не планируется
— Нужны разные цепочки для разных этапов воронки, а не одна рассылка для всех
— Важно видеть в Kommo, открыл ли клиент письмо перед звонком
— Компания отправляет SMS-напоминания или транзакционные SMS

Часто задаваемые вопросы

Brevo имеет CRM — зачем использовать Kommo параллельно?

Brevo CRM — минималистичный инструмент, заточенный под маркетинговые задачи. Kommo — полноценная CRM с Digital Pipeline, телефонией, задачами, воронками. Они закрывают разные потребности: Kommo — процесс продажи, Brevo — маркетинговая коммуникация. Интеграция позволяет командам работать в привычных инструментах.

Sendinblue переименовался в Brevo — изменился ли API?

API остался обратно совместимым. Endpoint api.brevo.com работает наравне со старым api.sendinblue.com. SDK обновился: старый sib-api-v3-sdk (Python) переименован в brevo-python, но старый тоже продолжает работать.

Как передавать персональные данные контактов в Brevo согласно GDPR?

Brevo — европейская компания, серверы в ЕС, GDPR-compliant. Для передачи данных нужно: (1) наличие правового основания (договор или согласие); (2) если используете Brevo для маркетинга — явное согласие на маркетинговые письма. Помечайте контакты в Brevo флагом smsBlacklisted или emailBlacklisted если согласия нет.

Как Brevo webhook передаёт события открытия письма?

Brevo Webhook настраивается в разделе Settings -> Webhooks. Поддерживаемые события: opened, clicked, delivered, bounced, unsubscribed. Каждый webhook содержит email контакта, ID кампании, timestamp — достаточно для связи с Kommo по email.

Итого

  • Kommo + Brevo: двусторонняя синхронизация — этап воронки определяет сегмент в Brevo, реакция на письмо попадает в Kommo
  • Транзакционные email и SMS из Brevo запускаются по событиям в Kommo
  • Обработка отписок (emailBlacklisted) обязательна — нарушение ведёт к блокировке аккаунта
  • Типовой срок разработки — 2–3 недели
  • Актуально для компаний с циклом сделки от 2 недель, где email-nurturing влияет на конверсию

Если вы используете Brevo и Kommo и хотите связать маркетинговые рассылки с воронкой — опишите текущую структуру этапов и сегментов. Exceltic.dev предложит схему синхронизации под вашу логику.

Ещё статьи

Все →