Kommo + Asana: проект по шаблону при закрытии сделки
Менеджер закрыл сделку в Kommo — и начинается ручная работа: создать проект в Asana, добавить секции, назначить задачи исполнителям, скопировать имя клиента и сумму контракта. Этот переход «продажи -> доставка» — узкое место в большинстве компаний. Интеграция Kommo и Asana автоматизирует его: Deal Won -> проект из шаблона с задачами, исполнителями и данными клиента.
Почему переход «продажи -> доставка» ломается вручную
Компании, где продажи и исполнение — разные команды, сталкиваются с одной проблемой: информация о клиенте теряется при передаче. Менеджер закрыл сделку — команда исполнения узнаёт о новом проекте из письма или разговора, а не из системы. Детали контракта, особые пожелания, бюджет — приходится запрашивать заново.
Автоматическое создание проекта в Asana при закрытии сделки решает это: вся информация из Kommo передаётся в проект сразу.
Что передаётся из Kommo в Asana
При создании проекта:
— Название проекта = название сделки (или шаблон: «[Company] - Onboarding»)
— Описание = данные клиента + контекст сделки (менеджер, сумма, особые условия)
— Дата начала и дедлайн из кастомных полей Kommo
— Кастомные поля Asana: crm_deal_id, client_email, contract_value
Задачи из шаблона:
Asana позволяет дублировать существующий проект как шаблон. Интеграция создаёт проект из шаблона (duplicateProject) и затем обновляет переменные поля.
Назначение исполнителей:
Ответственный менеджер Kommo -> assignee первой задачи. Другие участники сделки -> followers в Asana-проекте.
Архитектура интеграции
Kommo: сделка перешла на этап Won (status_id = 142)
↓ Webhook -> Backend
1. GET /api/v4/leads/{id} - детали сделки
2. GET /api/v4/contacts?lead_id={id} - контакт клиента
3. Asana API: duplicateProject(template_project_id)
-> Получить новый project_id
4. Asana API: updateProject(project_id) - вставить имя, описание, даты
5. Asana API: updateCustomField - crm_deal_id, client_email
6. Asana API: обновить assignee первой задачи по менеджеру Kommo
7. Kommo: создать примечание на сделке «Проект Asana создан: [ссылка]"
Asana API: ключевые методы
Asana API авторизуется через Personal Access Token или OAuth 2.0.
Дублирование проекта из шаблона:
import asana
client = asana.Client.access_token(ASANA_TOKEN)
# Дублировать шаблонный проект
result = client.projects.duplicate_project(
template_project_id,
{
'name': f'{client_name} - Onboarding',
'team': ASANA_TEAM_ID,
'schedule_dates': {
'should_skip_weekends': True,
'due_on': deadline_date # ISO 8601
}
}
)
new_project_id = result['new_project']['gid']
Обновление проекта данными из Kommo:
client.projects.update(
new_project_id,
{
'notes': (
f'Клиент: {contact_name}\n'
f'Email: {contact_email}\n'
f'Сумма контракта: ${deal_price:,}\n'
f'Менеджер: {manager_name}\n'
f'Особые условия: {custom_field_notes}'
)
}
)
Назначение исполнителя на первую задачу:
# Получить задачи нового проекта
tasks = list(client.tasks.find_by_project(new_project_id))
if tasks:
client.tasks.update(
tasks[0]['gid'],
{'assignee': asana_user_id} # Маппинг Kommo user -> Asana user GID
)
Маппинг пользователей Kommo -> Asana
Каждый менеджер в Kommo соответствует пользователю в Asana. Маппинг хранится на бэкенде:
USER_MAPPING = {
# kommo_user_id: asana_user_gid
"101": "1234567890", # Иван
"102": "0987654321", # Мария
"103": "1122334455", # Алексей
}
def get_asana_user(kommo_responsible_id: str) -> str | None:
return USER_MAPPING.get(str(kommo_responsible_id))
Если менеджер не найден в маппинге — задача создаётся без assignee и попадает в очередь команды.
Обратный поток: Asana -> Kommo
Asana поддерживает webhooks на события задач. Когда ключевая задача завершена — Kommo получает обновление:
Asana: task completed (task_id = «Подписан акт выполненных работ»)
↓ Webhook -> Backend
1. Найти deal_id по custom_field crm_deal_id
2. Kommo: создать Note «Акт подписан [дата]"
3. Kommo: перевести сделку на этап «Завершено"
Это закрывает круг: продажа в Kommo -> проект в Asana -> завершение в Asana -> обновление в Kommo.
Реальный кейс
IT-аутсорсинговая компания (10–15 новых проектов в месяц, команда 12 человек):
- До интеграции: PM получал информацию о новом клиенте от менеджера по продажам через Telegram. Создавал проект в Asana вручную. Часть данных терялась или искажалась при передаче.
- После: Won в Kommo -> проект в Asana за 5 секунд. Шаблон содержит 22 задачи для стандартного онбординга. PM получает уведомление Asana — заходит в готовый проект с данными клиента.
- Результат: среднее время от Won до начала работ сократилось с 2 дней до 4 часов. Ошибки передачи данных — нулевые.
Аналогичный сценарий мы реализовывали при интеграции Kommo и Notion и Kommo и ClickUp — паттерн «Won -> проект» универсален, меняется API назначения.
Для кого актуально
Интеграция Kommo + Asana имеет смысл если:
— Продажи (Kommo) и исполнение/доставка (Asana) — разные команды
— Каждая новая сделка требует создания стандартизированного проекта
— Важна прослеживаемость: менеджер по продажам должен видеть статус исполнения
— Команда использует Asana как основной инструмент управления проектами
Часто задаваемые вопросы
Asana Templates (шаблоны проектов) — это платная функция?
Asana Project Templates доступны на тарифах Premium и выше ($10.99+/пользователь/мес). На бесплатном тарифе дублирование проекта через API также работает — просто нет встроенного UI-редактора шаблонов. Для интеграции это не критично: дублирование через duplicateProject работает на любом тарифе.
Как обновлять задачи в Asana при изменении данных сделки в Kommo?
Kommo генерирует webhook при обновлении сделки (lead_update). Если изменилось критичное поле (например, сдвинулся дедлайн или сменился менеджер) — Asana обновляется по crm_deal_id, который хранится в кастомном поле проекта.
Что если шаблон проекта часто меняется?
Логика интеграции привязана к template_project_id. Когда шаблон обновляется в Asana — все новые проекты создаются с обновлённой структурой автоматически. Старые проекты не затрагиваются.
Можно ли создавать разные проекты Asana для разных воронок Kommo?
Да. Роутинг прост: pipeline_id из Kommo webhook определяет, какой шаблон использовать:
TEMPLATE_MAP = {
PIPELINE_SMB: ASANA_TEMPLATE_SMB,
PIPELINE_ENTERPRISE: ASANA_TEMPLATE_ENTERPRISE,
}
Итого
- Kommo + Asana: Won -> проект из шаблона с задачами, данными клиента и assignees за секунды
- Asana API
duplicateProjectкопирует шаблон с полной структурой секций и задач - Маппинг пользователей Kommo -> Asana хранится на бэкенде
- Обратный поток: завершение задачи в Asana -> Note и смена этапа в Kommo
- Типовой срок разработки — 2–3 недели
Если вы используете Kommo и Asana и хотите автоматизировать передачу данных при закрытии сделки — опишите структуру вашего шаблонного проекта. Exceltic.dev разберёт маппинг полей и настроит интеграцию.