Kommo + Chili Piper: автоматическое назначение встреч из воронки продаж

Kommo + Chili Piper: автоматическое назначение встреч из воронки продаж

Chili Piper — инструмент для instant booking: лид заполняет форму -> моментально бронирует встречу с нужным менеджером по правилам роутинга (territory, round robin, account owner). В отличие от Calendly, Chili Piper ориентирован на B2B sales: роутинг по CRM-данным, instant handoff, Queue для inbound лидов. Без интеграции с Kommo встречи из Chili Piper существуют отдельно — история встреч не попадает в сделку, no-show не обрабатывается автоматически. С интеграцией каждое событие бронирования моментально отражается в карточке сделки.

Чем Chili Piper отличается от Calendly для продаж

ПараметрChili PiperCalendly
Роутинг по правиламДа — territory, round robin, ownerОграниченно
Instant booking (форма -> встреча)Да, нативноЧерез Zapier или routing forms
Queue (inbound лиды в очередь)ДаНет
CRM-aware роутингSalesforce, HubSpot нативноНет
Цена$30+/пользователь/мес$12+/пользователь/мес

Для команд с кастомными интеграциями Kommo и inbound-моделью Chili Piper даёт instant booking прямо из лендинга — лид бронирует встречу в секунду после заполнения формы.

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

Chili Piper -> Kommo:
booking.created -> Note: «Chili Piper: встреча забронирована на {date}» + задача
booking.rescheduled -> Note: «Встреча перенесена на {new_date}»
booking.cancelled -> Note + задача: «Встреча отменена — запланировать новую»
booking.no_show -> Note + смена этапа или задача: «No-show — повторный аутрич»
booking.completed -> Note: «Встреча проведена»

Kommo -> Chili Piper:
— Передача данных лида при бронировании через Custom Form Fields
— Идентификатор сделки в Chili Piper через custom field kommo_deal_id

Архитектура

Лид бронирует встречу через Chili Piper (форма или embed)
  ↓ Chili Piper Webhook: booking.created
  ↓ Backend
  1. Извлечь: email, имя, дата встречи, менеджер, kommo_deal_id (если передан)
  2. Если kommo_deal_id есть - использовать напрямую
     Если нет - найти лид/сделку по email контакта в Kommo
  3. Kommo: POST /leads/{id}/notes
     -> «Chili Piper: встреча с {manager} на {datetime}»
  4. Kommo: POST /tasks
     -> задача менеджеру: «Провести встречу с {name}»
  5. Обновить поле chili_booking_id в сделке

Chili Piper Webhook: booking.no_show
  ↓ Backend
  1. Найти сделку по chili_booking_id или email
  2. Kommo: POST /notes -> «No-show: {name} не явился на встречу»
  3. Kommo: POST /tasks -> «Повторный аутрич после no-show»
  4. Опционально: Kommo: PATCH /leads/{id} -> смена этапа «No-show»

Chili Piper Webhook: ключевые поля и обработка

from flask import Flask, request
import hmac, hashlib

app = Flask(__name__)
CHILI_WEBHOOK_SECRET = "your_webhook_secret"

EVENT_NOTES = {
    "booking.created":     "Chili Piper: встреча забронирована",
    "booking.rescheduled": "Chili Piper: встреча перенесена",
    "booking.cancelled":   "Chili Piper: встреча отменена",
    "booking.no_show":     "Chili Piper: клиент не явился (no-show)",
    "booking.completed":   "Chili Piper: встреча проведена",
}

@app.route("/webhooks/chili-piper", methods=["POST"])
def chili_webhook():
    # Верификация (если secret настроен)
    sig = request.headers.get("X-Chili-Signature", "")
    if CHILI_WEBHOOK_SECRET and sig:
        expected = hmac.new(
            CHILI_WEBHOOK_SECRET.encode(),
            request.data,
            hashlib.sha256
        ).hexdigest()
        if not hmac.compare_digest(expected, sig):
            return "", 403

    payload = request.json
    event = payload.get("event_type")
    booking = payload.get("booking", {})

    attendee_email = booking.get("contact_email", "")
    attendee_name = booking.get("contact_name", "")
    assignee_name = booking.get("assignee_name", "")
    start_time = booking.get("start_time", "")  # ISO datetime
    booking_id = booking.get("id", "")

    # Попытка найти сделку по kommo_deal_id в custom fields
    kommo_deal_id = booking.get("custom_fields", {}).get("kommo_deal_id")
    if kommo_deal_id:
        deal_id = int(kommo_deal_id)
    else:
        deal_id = find_kommo_deal_by_contact_email(attendee_email)

    if not deal_id:
        return "", 200

    note_prefix = EVENT_NOTES.get(event, f"Chili Piper: {event}")
    note_text = (
        f"{note_prefix}\n"
        f"Участник: {attendee_name} ({attendee_email})\n"
        f"Менеджер: {assignee_name}\n"
        f"Время: {start_time}"
    )
    create_kommo_note(deal_id, note_text)
    update_kommo_deal(deal_id, {"chili_booking_id": booking_id})

    if event == "booking.created":
        create_kommo_task(deal_id,
            f"Провести встречу с {attendee_name} ({start_time})")

    elif event == "booking.cancelled":
        create_kommo_task(deal_id,
            f"Встреча с {attendee_name} отменена - предложить новое время")

    elif event == "booking.no_show":
        create_kommo_task(deal_id,
            f"No-show: {attendee_name} не явился - повторный аутрич")

    return "", 200

Передача kommo_deal_id в Chili Piper

Чтобы мгновенно находить сделку при входящем booking, передайте kommo_deal_id через Chili Piper Custom Form Fields:

Вариант 1 (embed на сайте): добавьте hidden field в форму на лендинге с name="kommo_deal_id". Если форма встроена на страницу с уже известным deal ID (например, ссылка из письма), передайте через URL-параметр ?kommo_deal_id=12345 и читайте в JS.

Вариант 2 (Chili Piper Concierge / Queue): при создании booking через API (POST /fire-hose) добавьте custom_fields.kommo_deal_id в теле запроса.

Вариант 3 (fallback по email): если kommo_deal_id не передан — ищем сделку по email контакта. Работает для большинства сценариев.

Роутинг: как Chili Piper выбирает менеджера

Chili Piper Rules Engine маршрутизирует лидов по условиям:
Round Robin: равномерное распределение между SDR
Account Owner: если лид уже есть в CRM — к его владельцу
Territory: по стране/штату/zip из формы
Priority Queue: входящие лиды ждут пока менеджер не освободится

Для Kommo-интеграции территориальный роутинг особенно ценен: лид из Нидерландов -> к EU-специалисту, из США -> к US-менеджеру, Note в Kommo содержит имя назначенного менеджера.

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

B2B SaaS (US + EU, inbound-модель, Kommo + Chili Piper, 80–100 демо в месяц):

  • До: лид заполнял форму -> SDR получал уведомление -> вручную проверял Calendly менеджеров -> отправлял ссылку. Время от заявки до встречи: 2–24 часа. No-show обрабатывался вручную «кто заметит».
  • После: instant booking — лид бронирует встречу сразу после формы. Время до встречи: 0 (бронирует сам). No-show -> автозадача на повторный аутрич в тот же день.
  • Дополнительно: все встречи в истории сделок Kommo — руководитель видит конверсию demo->Won без отдельных отчётов.

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

  • B2B с inbound лидами и несколькими SDR/AE — роутинг нужен
  • Команды где лид должен бронировать встречу моментально (instant booking)
  • 30+ демо в месяц — no-show без автоматизации теряется
  • Международные команды с территориальным роутингом

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

Chili Piper vs Calendly для интеграции с Kommo?

Calendly интегрируется с Kommo аналогично через webhook. Calendly дешевле ($12 vs $30+/пользователь). Chili Piper сильнее в роутинге и instant booking. Если нужен просто «клиент выбирает время» — Calendly. Если нужен «лид заполняет форму и сразу видит доступные слоты ответственного» — Chili Piper.

Как настроить Webhook в Chili Piper?

Chili Piper Workspace Settings -> Integrations -> Webhooks -> Add Endpoint. Указать URL и выбрать события. Для Enterprise-плана доступны все события. Верификация через подпись в заголовке (если настроена).

Chili Piper хранит историю встреч?

Да, в дашборде Analytics — все встречи, статусы, конверсии, no-show rate по менеджерам. Но без интеграции с Kommo эта аналитика живёт только в Chili Piper. С интеграцией — история также в CRM для полного контекста сделки.

Как обрабатывать rescheduled встречи?

booking.rescheduled содержит previous_start_time и новое start_time. В Kommo: Note с обоими временами + обновить задачу (Kommo API не поддерживает редактирование задач — создать новую, старую — Done).

Итого

  • Chili Piper Webhook: X-Chili-Signature (HMAC-SHA256), form events — JSON
  • Ключевые события: booking.created, booking.rescheduled, booking.cancelled, booking.no_show
  • Маппинг на сделку: kommo_deal_id в custom fields или fallback по email контакта
  • Роутинг: round robin, territory, account owner — не нужно обрабатывать на стороне Kommo
  • No-show -> автозадача на повторный аутрич — ключевая ценность для sales-команд

Если вы используете Chili Piper и Kommo и хотите видеть историю встреч в сделках — опишите вашу модель роутинга. Exceltic.dev настроит webhook-обработчик и маппинг.

Ещё статьи

Все →