Kommo + Klaviyo: синхронизация контактов и событий CRM с email-маркетингом

Kommo + Klaviyo: синхронизация контактов и событий CRM с email-маркетингом

Klaviyo — платформа email-маркетинга с упором на поведенческую сегментацию: кто открыл письмо, перешёл по ссылке, купил повторно. Kommo — воронка продаж: кто на каком этапе, когда сделка закрылась, какой менеджер ведёт. Без интеграции эти данные существуют отдельно. С интеграцией Klaviyo знает историю сделки — и может запустить нужную цепочку в нужный момент: оффер после взятия в работу, онбординг после Won, реактивацию после потери.

Что даёт связка Kommo + Klaviyo

Без интеграции:
— Klaviyo видит: открыл письмо, кликнул, купил на сайте
— Не видит: на каком этапе воронки, закрылась ли сделка, каков LTV клиента по данным CRM

С интеграцией:
— Контакт перешёл в сделку Kommo -> автоматически создаётся/обновляется профиль в Klaviyo
— Сделка Won -> событие Deal Won в Klaviyo -> запускается онбординг-цепочка
— Сделка потеряна -> событие Deal Lost -> запускается реактивационная цепочка через 30 дней
— Этап сделки -> свойство профиля crm_stage -> сегментация для таргетированных кампаний

Что синхронизируется

Kommo -> Klaviyo:
— Email и имя контакта -> профиль в Klaviyo (upsert по email)
— Название компании, телефон -> свойства профиля
— Текущий этап сделки -> кастомное свойство crm_stage
— Сумма сделки -> свойство deal_amount
— ID сделки Kommo -> свойство kommo_deal_id (для трассировки)
— События: Deal Created, Stage Changed, Deal Won, Deal Lost -> Events API

Klaviyo -> Kommo:
— Email-взаимодействия (опционально через Klaviyo Webhooks): открытие, клик -> Note в сделке

Архитектура

Kommo Webhook: любое событие сделки (create, update, stage_change, won, lost)
  ↓ Backend
  1. GET /api/v4/leads/{id} + contacts
     -> email, имя, компания, этап, сумма
  2. Klaviyo API: POST /api/profile-import
     -> создать или обновить профиль
     -> получить profile_id
  3. Klaviyo API: POST /api/lists/{list_id}/relationships/profiles
     -> добавить профиль в нужный список (например, 'CRM Leads')
  4. Klaviyo API: POST /api/events
     -> зафиксировать событие (Deal Won, Stage Changed и т.д.)
     -> в свойствах события - данные сделки

Klaviyo REST API: ключевые запросы

Klaviyo API использует API Key (Private Key). Все запросы к https://a.klaviyo.com/api/. Обязательный заголовок revision с версией API.

Создание или обновление профиля:

import requests

KLAVIYO_KEY = 'pk_your_private_key'
HEADERS = {
    'Authorization': f'Klaviyo-API-Key {KLAVIYO_KEY}',
    'revision': '2026-04-15',
    'Content-Type': 'application/json'
}

def upsert_profile(email, first_name, last_name, company, deal_stage, deal_amount, deal_id):
    payload = {
        'data': {
            'type': 'profile',
            'attributes': {
                'email': email,
                'first_name': first_name,
                'last_name': last_name,
                'organization': company,
                'properties': {
                    'crm_stage': deal_stage,
                    'deal_amount': deal_amount,
                    'kommo_deal_id': deal_id
                }
            }
        }
    }
    response = requests.post(
        'https://a.klaviyo.com/api/profile-import',
        headers=HEADERS,
        json=payload
    )
    return response.json()['data']['id']  # profile_id

Добавление профиля в список:

def add_to_list(profile_id, list_id):
    requests.post(
        f'https://a.klaviyo.com/api/lists/{list_id}/relationships/profiles',
        headers=HEADERS,
        json={
            'data': [{
                'type': 'profile',
                'id': profile_id
            }]
        }
    )
    # Возвращает 204 при успехе

Отправка события (Track Event):

def track_event(email, event_name, deal_data):
    payload = {
        'data': {
            'type': 'event',
            'attributes': {
                'profile': {
                    'data': {
                        'type': 'profile',
                        'attributes': {'email': email}
                    }
                },
                'metric': {
                    'data': {
                        'type': 'metric',
                        'attributes': {'name': event_name}
                    }
                },
                'properties': {
                    'deal_name': deal_data['name'],
                    'deal_stage': deal_data['stage'],
                    'deal_amount': deal_data['amount'],
                    'kommo_deal_id': deal_data['id']
                }
            }
        }
    }
    requests.post(
        'https://a.klaviyo.com/api/events',
        headers=HEADERS,
        json=payload
    )

Использование:

# При Won-событии из Kommo
profile_id = upsert_profile(
    email='client@company.com',
    first_name='John', last_name='Smith',
    company='ACME Corp',
    deal_stage='Won',
    deal_amount=12000,
    deal_id=98765
)
add_to_list(profile_id, KLAVIYO_CUSTOMERS_LIST_ID)
track_event('client@company.com', 'Deal Won', deal_data)

Сегменты по этапу воронки

После синхронизации свойства crm_stage в Klaviyo создаются сегменты:

  • crm_stage = Квалификация -> нагревающая цепочка с контентом
  • crm_stage = Переговоры -> кейсы и ROI-материалы
  • crm_stage = Won -> онбординг и cross-sell
  • crm_stage = Lost -> реактивация через 30 дней

Каждый сегмент обновляется автоматически при смене этапа в Kommo — нет необходимости вручную перемещать контакты между списками.

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

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

  • До: email-маркетолог вручную экспортировал Won-сделки из Kommo раз в неделю и загружал в Klaviyo. Задержка онбординга — до 7 дней. Реактивация потерянных сделок — не настроена вовсе.
  • После: Won в Kommo -> через 2 минуты профиль в Klaviyo получает событие Deal Won -> запускается онбординг-цепочка -> через 30 дней потерянные сделки получают реактивационное письмо автоматически.
  • Результат: конверсия онбординга выросла на 18% за счёт своевременного старта цепочки. Реактивационная цепочка вернула 4% потерянных сделок.

Аналогичный подход реализовывался для Brevo (Sendinblue) и Kommo — Klaviyo сильнее в поведенческой сегментации, Brevo — в многоканальности (email + SMS).

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

  • Используется Klaviyo для email-маркетинга, Kommo — для продаж
  • Нужны триггерные цепочки по событиям CRM: Won, Lost, смена этапа
  • Цикл сделки от 2 недель — там нагрев и онбординг критичны
  • Маркетинг хочет видеть статус лидов из CRM для сегментации кампаний
  • Объём: 50+ контактов в месяц, для которых нужна персонализированная коммуникация

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

Есть ли нативная интеграция Klaviyo и Kommo?

Нативной интеграции нет. Klaviyo предлагает нативные коннекторы для Shopify, WooCommerce, BigCommerce — e-commerce платформ. Для CRM типа Kommo интеграция строится через REST API. Это даёт полный контроль над тем, какие события и свойства передаются.

Klaviyo vs Brevo: что выбрать для интеграции с Kommo?

Klaviyo сильнее в поведенческой сегментации и автоматизации на основе событий — идеален если маркетинг строится на data-driven триггерах. Brevo выигрывает при многоканальных коммуникациях (email + SMS + WhatsApp) и меньшей стоимости при высоком объёме. Для B2B SaaS с длинным циклом сделки — Klaviyo. Для e-commerce и транзакционных коммуникаций — Brevo.

Можно ли синхронизировать данные из Klaviyo обратно в Kommo?

Да, через Klaviyo Webhooks. Klaviyo отправляет события (email opened, link clicked, unsubscribed) на URL вашего backend’а. Backend обновляет Note или кастомное поле в Kommo. Это позволяет менеджеру видеть email-активность клиента прямо в карточке сделки.

Как дедуплицировать профили в Klaviyo?

Klaviyo дедуплицирует по email автоматически при использовании POST /api/profile-import. Если профиль с таким email уже существует — он обновляется. Возможна ситуация с несколькими профилями (один по email, другой по phone_number) — это решается через POST /api/profiles/{id}/merge.

Klaviyo API — какие лимиты?

Profile-import: 75 запросов/сек (burst), 750/мин (steady). Events API: аналогично. Для типового объёма Kommo (до 500 сделок в месяц) лимиты не критичны. При пиковых нагрузках — реализовать очередь с экспоненциальным backoff.

Итого

  • Klaviyo REST API: POST /api/profile-import (upsert профиля), POST /api/events (событие сделки), POST /api/lists/{id}/relationships/profiles (добавление в список)
  • Ключевые события из Kommo: Deal Won, Deal Lost, Stage Changed — каждое запускает отдельный flow в Klaviyo
  • Сегменты по свойству crm_stage обновляются автоматически при каждом изменении в Kommo
  • Типовой срок разработки — 2 недели

Если вы используете Klaviyo и Kommo и хотите настроить автоматические триггеры по событиям воронки — опишите, какие цепочки нужны и при каких событиях. Exceltic.dev предложит архитектуру и маппинг событий.

Ещё статьи

Все →