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 недели.