Kommo + Legalesign: электронная подпись документов из воронки для UK-команд

Legalesign - британская платформа электронной подписи с фокусом на юридически обязывающих документах для EU и UK-рынков. Интеграция с Kommo позволяет отправлять контракт на подпись прямо из карточки сделки и автоматически переводить сделку в следующий этап, когда все стороны подписали документ.

Legalesign использует REST API с API-key аутентификацией. Вебхуки отправляются при каждом событии жизненного цикла документа: создание, просмотр, подписание, отказ. Это делает интеграцию надёжной и наблюдаемой - в отличие от polling-подходов.

Почему нативной интеграции Legalesign и Kommo не существует

Legalesign - специализированный инструмент для UK и EU рынков с меньшей долей рынка, чем DocuSign или Adobe Sign. В маркетплейсе Kommo виджета Legalesign нет. Компании, которые выбирают Legalesign из-за его соответствия UK eIDAS и GDPR-требованиям, вынуждены либо отправлять документы вручную, либо строить обходные схемы через Zapier.

Проблема Zapier-подхода: лимиты задач, отсутствие retry при ошибках, невозможность передачи бинарных данных (готового PDF контракта), задержка 1-15 минут. Для продаж B2B это критично - клиент ждёт контракт немедленно после согласования условий.

Кастомная интеграция через Legalesign REST API решает все эти проблемы и добавляет:

  • Автоматическую подстановку данных из полей сделки в шаблон документа
  • Отслеживание статуса подписания в карточке Kommo
  • Уведомления менеджеру при просмотре и подписании документа клиентом
  • Двустороннюю синхронизацию: подписанный PDF сохраняется в заметке к сделке

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

Компоненты:

  • Python микросервис (FastAPI)
  • Kommo Webhook: событие «Смена этапа» на этап «Отправить контракт»
  • Legalesign REST API v1: создание документа из шаблона, отправка получателям
  • Legalesign Webhook: события document_signed, document_viewed, document_declined
  • PostgreSQL: хранение маппинга signer_id -> lead_id
import requests
import hashlib
import hmac

LEGALESIGN_BASE = "https://api.legalesign.com/api/v1"

def create_document_from_template(
    api_key: str,
    template_id: str,
    signers: list,
    field_values: dict
) -> dict:
    """
    Создаём документ из шаблона Legalesign.
    field_values: {"company_name": "Acme Ltd", "deal_value": "£5,000"}
    """
    headers = {
        "Authorization": f"ApiKey {api_key}",
        "Content-Type": "application/json",
    }
    payload = {
        "template": f"/api/v1/template/{template_id}/",
        "signers": signers,
        "text_fields": [
            {"label": k, "value": v}
            for k, v in field_values.items()
        ],
        "auto_send": True,
    }
    resp = requests.post(
        f"{LEGALESIGN_BASE}/document/",
        headers=headers,
        json=payload
    )
    resp.raise_for_status()
    return resp.json()

def handle_legalesign_webhook(payload: dict, kommo_client):
    """
    Обрабатываем события Legalesign:
    - document_signed: переводим сделку на следующий этап
    - document_declined: добавляем тег и уведомляем менеджера
    """
    event = payload.get("event")
    document_id = payload.get("document", {}).get("id")
    lead_id = get_lead_id_by_document(document_id)  # из БД
    
    if event == "document_signed":
        kommo_client.update_lead(
            lead_id,
            status_id=SIGNED_STAGE_ID,
            custom_fields={LEGALESIGN_DOC_ID_FIELD: document_id}
        )
        # Скачиваем подписанный PDF и добавляем к сделке
        pdf_url = payload.get("document", {}).get("signed_pdf_url")
        if pdf_url:
            attach_pdf_to_lead(lead_id, pdf_url, kommo_client)
    
    elif event == "document_declined":
        kommo_client.add_note(
            lead_id,
            text=f"Клиент отказался подписать документ. Причина: {payload.get('decline_reason', 'не указана')}"
        )

Пошаговая реализация

Шаг 1 - получение API-ключа Legalesign. В настройках аккаунта Legalesign: Settings -> API. API-ключ привязан к аккаунту, не к пользователю. Рекомендуем создать отдельный технический аккаунт для интеграций.

Шаг 2 - создание шаблона документа. В Legalesign создаёте шаблон контракта с полями-переменными (merge fields). Имена полей должны точно совпасть с ключами в вашем маппинге.

Шаг 3 - Kommo webhook. Настраиваете вебхук на смену этапа. Фильтр: только переход на этап «Отправить контракт» (настройте конкретный stage_id).

Шаг 4 - Legalesign webhook. В настройках Legalesign указываете URL вашего микросервиса для получения событий. Legalesign поддерживает HMAC-SHA256 верификацию - используйте её.

Шаг 5 - маппинг данных. Из полей сделки Kommo извлекаете: имя клиента, компанию, email, сумму сделки, дату начала контракта. Подставляете в шаблон.

Шаг 6 - хранение связки. После создания документа сохраняете document_id в кастомном поле сделки Kommo и в вашей БД (document_id -> lead_id). Это нужно для обратного маппинга при получении вебхука.

Реальный кейс: юридическое агентство, Лондон

Агентство корпоративного права с 18 сотрудниками. Ведут B2B-клиентов, в среднем 30-40 новых контрактов в месяц. Все документы - в Legalesign из-за UK eIDAS compliance.

До интеграции: менеджер вручную открывал Legalesign, загружал шаблон, вводил данные клиента, отправлял. 15-20 минут на каждый контракт. При ошибке в данных - отзыв и повторная отправка.

После интеграции: менеджер переводит сделку на этап «Контракт» в Kommo. Через 45 секунд клиент получает письмо с ссылкой на подписание. Все данные подставлены автоматически из карточки сделки. При подписании сделка автоматически переходит на «Онбординг».

Результат: экономия 7-8 часов в неделю на административной работе. Ошибки в данных контракта снизились с 8% до 0 - данные берутся напрямую из CRM, а не вводятся вручную.

Для кого подходит

Интеграция Kommo с Legalesign актуальна для:

  • Компаний на UK/EU рынке, где важна eIDAS-совместимость подписи
  • Агентств и консалтинга с потоком 20+ контрактов в месяц
  • B2B-команд, где задержка отправки контракта влияет на конверсию
  • Организаций, уже использующих Legalesign и не готовых переходить на другую платформу

Если вы рассматриваете другие платформы подписи, в реестре Exceltic есть разборы интеграций с Kommo + Dropbox Sign и Kommo + Yousign - последний также ориентирован на EU-рынок.

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

Можно ли отправлять контракт нескольким подписантам с определённым порядком?

Да. Legalesign поддерживает sequential signing - порядковая подпись. В payload вы указываете массив signers с параметром signing_order. Пока первый не подписал, второй не получит уведомление. Это типичный сценарий для корпоративных контрактов, где сначала подписывает менеджер со стороны клиента, затем - директор.

Как хранится подписанный документ?

Legalesign хранит подписанный PDF на своих серверах и предоставляет защищённую ссылку. При получении события document_signed вебхук содержит signed_pdf_url. Наша интеграция скачивает PDF и прикрепляет его к заметке в Kommo - так менеджер видит документ прямо в карточке сделки, не переходя в Legalesign.

Что делать, если клиент потерял ссылку на подписание?

Legalesign API поддерживает повторную отправку напоминания через эндпоинт POST /api/v1/document/{id}/remind/. В интеграции можно настроить автоматическое напоминание через X дней если документ не подписан. Или - кнопку в Kommo для ручного запроса напоминания.

Какой юридический статус имеет подпись Legalesign в UK?

Legalesign создаёт electronic signatures, соответствующие UK Electronic Communications Act 2000 и EU eIDAS Regulation. Для большинства коммерческих контрактов это достаточно. Для документов, требующих qualified electronic signature (QES), Legalesign предлагает интеграцию с certified trust services. Уточняйте требования у вашего юридического советника.

Работает ли интеграция с кастомными PDF-шаблонами?

Da. Legalesign позволяет загружать PDF с anchor-тегами для размещения полей подписи. Вы загружаете свой брендированный шаблон, расставляете поля подписи и переменные. API создаёт документ на основе этого шаблона с подставленными данными. Это гибче, чем стандартные редакторы шаблонов.

Следующий шаг

Если вам нужна интеграция Kommo с Legalesign - опишите задачу команде Exceltic.dev. Разберём ваш шаблон документа, маппинг полей и требования к compliance. Стандартный проект занимает 1-2 недели.

Ещё статьи

Все →