Kommo + SignNow: автоматическая отправка документов на подпись из воронки
SignNow — платформа электронных подписей с REST API, соответствием eIDAS (EU) и ESIGN Act (US). По функциям сопоставима с DocuSign и Adobe Sign, но стоит значительно дешевле. Интеграция с Kommo закрывает паттерн «сделка на этапе -> документ подписан -> CRM обновлена» без ручного копирования данных и без перехода менеджера в другой интерфейс.
SignNow vs DocuSign vs Adobe Sign: когда выбирать SignNow
Все три платформы закрывают базовую задачу — отправить документ на подпись и получить юридически значимую подпись. Выбор определяется ценой, API-доступностью и экосистемой:
| Параметр | SignNow | DocuSign | Adobe Sign |
|---|---|---|---|
| Цена (бизнес-план) | от $8/мес/польз. | от $15/мес/польз. | от $14.99/мес/польз. |
| API-доступ | От Site License (~$146/мес) | Enterprise план | Enterprise план |
| Нативная интеграция с Kommo | Нет | Нет | Нет |
| eIDAS (EU) | Да | Да | Да |
| Шаблоны документов | Да | Да | Да |
| Embedded signing | Да | Да | Да |
SignNow проигрывает по экосистеме (у DocuSign больше нативных коннекторов), но выигрывает по цене при API-интеграции. Для компаний, которые строят кастомную связку с CRM, это ключевой параметр.
Аналогичные паттерны интеграции реализованы для DocuSign и Adobe Sign — архитектура идентична, меняется только API SignNow.
Что синхронизируется
Kommo -> SignNow:
— Имя и email контакта сделки -> получатель invite
— Название сделки -> subject письма с документом
— Данные кастомных полей -> подстановка в шаблон документа (merge fields)
— Дедлайн из поля Kommo -> срок подписания (expiration_days)
SignNow -> Kommo:
— Событие invite.update (статус signed) -> поле «Документ подписан» в сделке
— Перевод сделки на следующий этап воронки
— Ссылка на подписанный документ -> Note на сделке
— Дата подписания -> кастомное поле
Архитектура интеграции
Kommo Webhook: сделка перешла на этап «Подписание договора»
↓ Backend
1. GET /api/v4/leads/{id} + contacts
-> имя, email, сумма, кастомные поля
2. Генерация PDF из шаблона с данными клиента
3. SignNow API: POST /document (загрузка PDF)
-> получить document_id
4. SignNow API: POST /document/{id}/fieldinvite
-> отправить invite клиенту
5. Kommo: PATCH /leads/{id}
-> обновить поле signnow_document_id
SignNow Webhook: invite.update (status = signed)
↓ Backend
1. Извлечь document_id из payload
2. GET kommo_deal_id из custom field документа
3. SignNow API: GET /document/{id}/download
-> сохранить подписанный PDF
4. Kommo: PATCH /leads/{deal_id}
-> signed = true, этап -> «Договор получен»
5. Kommo: POST /leads/{deal_id}/notes
-> ссылка на документ + дата подписания
SignNow REST API: ключевые запросы
SignNow использует OAuth 2.0 (Password Grant для сервисного аккаунта). Эндпоинт: api.signnow.com.
Получение токена:
import requests
import base64
credentials = base64.b64encode(f'{CLIENT_ID}:{CLIENT_SECRET}'.encode()).decode()
response = requests.post(
'https://api.signnow.com/oauth2/token',
headers={
'Authorization': f'Basic {credentials}',
'Content-Type': 'application/x-www-form-urlencoded'
},
data={
'username': SN_USER,
'password': SN_PASS,
'grant_type': 'password',
'scope': '*'
}
)
access_token = response.json()['access_token']
Загрузка документа:
with open(pdf_path, 'rb') as f:
response = requests.post(
'https://api.signnow.com/document',
headers={'Authorization': f'Bearer {access_token}'},
files={'file': (filename, f, 'application/pdf')}
)
document_id = response.json()['id']
Отправка на подпись (field invite):
invite_data = {
'from': SENDER_EMAIL,
'to': [
{
'email': client_email,
'role': 'Signer 1',
'order': 1,
'reassign': '0',
'decline_by_signature': '0',
'reminder': 3,
'expiration_days': expiration_days or 14,
'subject': f'Договор по сделке {deal_name}',
'message': f'Уважаемый {client_name}, направляем договор для подписания.'
}
]
}
requests.post(
f'https://api.signnow.com/document/{document_id}/fieldinvite',
headers={'Authorization': f'Bearer {access_token}'},
json=invite_data
)
Регистрация webhook:
requests.post(
'https://api.signnow.com/api/v2/events',
headers={
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json'
},
json={
'event': 'invite.update',
'entity_id': document_id,
'action': 'callback',
'attributes': {
'callback': 'https://yourbackend.com/signnow/webhook',
'use_tls_12': True
}
}
)
Шаблоны документов и merge fields
SignNow поддерживает шаблоны с заполняемыми полями. Workflow с шаблонами эффективнее загрузки нового PDF при каждой сделке:
- Создать шаблон в UI SignNow с полями:
{{client_name}},{{company}},{{amount}},{{date}} - При создании документа использовать
POST /template/{template_id}/copy— SignNow создаёт копию с новым document_id - Обновить текстовые поля через
PUT /document/{id}с данными из Kommo - Отправить field invite
Такой подход исключает генерацию PDF на стороне backend’а — данные подставляются прямо в шаблон SignNow.
Обработка нескольких подписантов
Если договор требует подписи с обеих сторон (клиент + менеджер), field invite поддерживает несколько получателей с порядком подписания:
'to': [
{
'email': client_email,
'role': 'Client',
'order': 1, # подписывает первым
'expiration_days': 14,
...
},
{
'email': manager_email,
'role': 'Company Representative',
'order': 2, # получает invite после подписания клиентом
'expiration_days': 7,
...
}
]
Webhook invite.update срабатывает при каждом подписании. Комплектный статус «все подписали» определяется по событию document.complete.
Реальный кейс
Юридическая компания (EU-рынок, 30–40 контрактов в месяц, клиенты в 5 странах):
- До: менеджер вручную загружал PDF в SignNow, вводил email клиента, отправлял. После подписания — вручную обновлял этап в Kommo. Среднее время от Won до отправки документа — 2 дня.
- После: Won в Kommo -> через 2 минуты клиент получает письмо с договором -> после подписания Kommo автоматически переходит на этап «Договор получен» с примечанием и датой.
- Дополнительный эффект: менеджер получает Kommo-уведомление сразу после подписания и может сразу выставить счёт. Цикл от Won до инвойса сократился с 5 дней до нескольких часов.
Аналогичный паттерн реализовывали для PandaDoc и Kommo — там интеграция нативная, но SignNow выгоднее по стоимости при объёме 30+ документов в месяц.
Для кого актуально
- Используется SignNow (или рассматривается как более дешёвая альтернатива DocuSign/Adobe Sign)
- 10+ контрактов в месяц, которые сейчас отправляются вручную
- Клиенты в EU или US — eIDAS и ESIGN Act обязательны
- Нужна полная трассировка: кто подписал, когда, в каком статусе сделка
- Важен двусторонний цикл: Won -> документ -> подпись -> следующий этап воронки
Часто задаваемые вопросы
Есть ли нативная интеграция SignNow и Kommo?
Нативной интеграции нет. SignNow не представлен в Kommo Marketplace. Интеграция строится через REST API SignNow и Kommo webhook — это 2–3 недели разработки. Отличие от Zapier-подхода: полный контроль над логикой, merge fields из шаблонов, многоэтапное подписание и двусторонняя синхронизация статусов.
SignNow API — на каком тарифе доступен?
API SignNow доступен через Site License или отдельный API-план. Стартовый API-план — около $146/мес за 1,000 invite в год. Для тестирования есть бесплатный trial с 250 invite. Обычные тарифы (Business, Business Premium) API не включают.
Как передать данные Kommo в шаблон SignNow?
Через механизм шаблонов SignNow: создаётся шаблон с заполняемыми полями, при каждой сделке создаётся копия шаблона (POST /template/{id}/copy), поля заполняются данными из Kommo через PUT /document/{id}. Это исключает необходимость генерировать PDF на стороне сервера.
Можно ли отправить напоминание о неподписанном документе?
Да. Параметр reminder в field invite задаёт интервал напоминаний в днях. Дополнительно можно реализовать логику на стороне Kommo: если поле «Документ подписан» пустое через N дней — отправить задачу менеджеру или автоматически продублировать invite через API.
SignNow поддерживает встроенное подписание (embedded signing)?
Да. SignNow поддерживает embedded signing — документ можно открыть для подписания прямо внутри вашего интерфейса (например, в личном кабинете клиента). Используется endpoint POST /document/{id}/session для получения временного URL iframe. Это актуально если клиент работает с вашим порталом и переход на сторонний сайт нежелателен.
Итого
- SignNow REST API: OAuth 2.0, загрузка документа, field invite с несколькими подписантами, webhook на
invite.updateиdocument.complete - Шаблоны с merge fields — данные из Kommo подставляются без генерации PDF на backend
- Цикл: Won -> документ -> подпись -> обновление этапа в Kommo — полностью автоматически
- SignNow дешевле DocuSign и Adobe Sign при сопоставимом функционале для кастомных интеграций
- Типовой срок разработки — 2–3 недели
Если вы используете SignNow и хотите автоматизировать отправку документов из Kommo — опишите структуру ваших шаблонов и схему подписания. Exceltic.dev разберёт маппинг полей и предложит архитектуру.