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-sellcrm_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 предложит архитектуру и маппинг событий.