Инструкция по загрузке сделок из CRM
Intro
Наименование | Описание |
---|---|
Сделка | Карточка продажи, которая идет по этапам воронки продаж. |
Контакт | Карточка клиента из вашей CRM системы. |
Воронка продаж | Состоит из этапов, которые проходит сделка от создания до успешного завершения (например, оплаты). |
Этап | Часть пути воронки продаж, который проходит сделка по процессу продажи в компании. |
Ответственный сотрудник | Сотрудник в CRM, ответственный за конкретную сделку. |
Для настройки интеграции через API необходимо:
- Создать структуру CRM в CoMagic
- Передать структуру каждой воронки продаж
- Передать список сотрудников и ответственных по каждой сделке
- Передать список контактов
- Загрузить историю сделок
- Произвести настройку сквозной аналитики
- Настроить необходимые данные для анализа в аналитических отчетах
Разберем на примере тестового клиента, как передать сделки и другие необходимые данные из вашей CRM.
Пример | Передача сделок и других данных из CRM |
---|---|
Описание | Название воронки: "Основная воронка".
Структура воронки продаж:
2 ответственных сотрудника 3 контакта
3 сделки:
У каждой сделки есть контакт и ответственный сотрудник.
|
1. Перенос структуры вашей CRM в CoMagic
1.1 Создание структуры воронки продаж:
Метод | create.sales_funnel |
---|---|
Описание | Создание воронки продаж и ее этапов |
Кому доступен | Агент, Клиент |
В запросе "Порядковый номер этапа" указан как 10, 20, 30, 40.
Это сделано, для того чтобы в будущем вы смогли добавить промежуточные этапы
без редактирования всей воронки.
Допустим, в CRM поменялась структура воронки, и добавился этап
"Подписание документов" между этапами "Подготовка Документов"
и "Счет на предоплату". Вы легко можете добавить этап "Подписание документов"
с порядковым номером от 21 до 29. Но лучше 25.
Максимальный номер этапа = 10000
JSON структура запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "create.sales_funnel",
"params": {
"access_token": "${#Project#auth_prod_4735}",
"ext_id": "1",
"name": "Основная воронка",
"stages": {
"success": {
"ext_id": "1000",
"name": "Успешно реализовано"
},
"failed": {
"ext_id": "10001",
"name": "Сделка провалена"
},
"in_process": [
{
"ext_id": "1",
"name": "Новая сделка",
"order": 10
},
{
"ext_id": "2",
"name": "Подготовка Документов",
"order": 20
},
{
"ext_id": "3",
"name": "Счет на предоплату",
"order": 30
},
{
"ext_id": "4",
"name": "Финальный счет",
"order": 40
}
]
}
}
}
В ответе вернется ID созданной воронки.
JSON структура ответа
{
"result": {
"metadata": {"limits": {
"minute_reset": 23,
"minute_remaining": 199,
"minute_limit": 200,
"day_reset": 35483,
"day_remaining": 3319,
"day_limit": 3500
}},
"data": {
"ext_id": "1"
}
},
"id": 1,
"jsonrpc": "2.0"
}
Проверка структуры воронки:
Метод | get.sales_funnel |
---|---|
Описание | Получение списка воронок продаж |
Кому доступен | Агент, Клиент |
JSON структура запроса
{
"jsonrpc":"2.0",
"id":"number",
"method":"get.sales_funnel",
"params":{
"access_token":"${#Project#auth_prod_4735}",
"filter":{
"field":"ext_id",
"operator":"=",
"value":"1"
}
}
}
JSON структура ответа
{
"result": {
"metadata": {
"limits": {
"minute_reset": 39,
"minute_remaining": 199,
"minute_limit": 200,
"day_reset": 35139,
"day_remaining": 3305,
"day_limit": 3500
},
"total_items": 1
},
"data": [ {
"ext_id": "1",
"name": "Основная воронка",
"stages": [
{
"stage_name": "Новая сделка",
"stage_ext_id": "1",
"stage_status": "in_process",
"stage_order": 10
},
{
"stage_name": "Подготовка Документов",
"stage_ext_id": "2",
"stage_status": "in_process",
"stage_order": 20
},
{
"stage_name": "Счет на предоплату",
"stage_ext_id": "3",
"stage_status": "in_process",
"stage_order": 30
},
{
"stage_name": "Финальный счет",
"stage_ext_id": "4",
"stage_status": "in_process",
"stage_order": 40
},
{
"stage_name": "Успешно реализовано",
"stage_ext_id": "1000",
"stage_status": "success",
"stage_order": 10010
},
{
"stage_name": "Сделка провалена",
"stage_ext_id": "10001",
"stage_status": "failed",
"stage_order": 10020
}
]
}]
},
"id": "number",
"jsonrpc": "2.0"
}
При необходимости можно переименовать воронку продаж методом update.sales_funnel и отредактировать этапы, используя метод update.sales_funnel_stages.
1.2 Создание списка сотрудников, ответственных за сделки
Если вы не хотите анализировать РК в разрезе по сотрудникам,
то можно пропустить этот пункт
Пример:
Добавления двух сотрудников
Метод | create.deal_employees |
---|---|
Описание | Создание/добавление ответственного сотрудника |
Кому доступен | Агент, Клиент |
JSON структура запроса
Запрос 1
{
"jsonrpc": "2.0",
"id": "1",
"method": "create.deal_employees",
"params": {
"access_token":"${#Project#auth_prod_4735}",
"ext_id": "EID_0007",
"name": "Иванов"
}
}
Запрос 2
{
"jsonrpc": "2.0",
"id": "2",
"method": "create.deal_employees",
"params": {
"access_token":"${#Project#auth_prod_4735}",
"ext_id": "EBdfID_0008",
"name": "Сидоров"
}
}
1.3 Создание контактов
Метод | create.deal_contacts |
---|---|
Описание | Создание контакта |
Кому доступен | Агент, Клиент |
Пример:
ID |
Имя |
телефон |
email |
---|---|---|---|
CID_0001 | Оловянный Олег | 79000000000, 79000000001 | test@example.com, test2@example.com |
CID_0002 | Петрович | 79000000003 | test3@example.com |
CID_0003 | Новый клиент | 79000000004 |
JSON структура запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "create.deal_contacts",
"params": {
"access_token": "${#Project#auth_prod_4735}",
"contacts": [
{
"ext_id": "CID_0001",
"name": "Оловянный Олег",
"created_date_time": "2019-08-02 21:00:01",
"phone_numbers": [
"79000000000",
"79000000001"
],
"emails": [
"test@example.com",
"test2@example.com"
]
},
{
"ext_id": "CID_0002",
"name": "Петрович",
"created_date_time": "2019-08-03 12:15:00",
"phone_numbers": [
"79000000003"
],
"emails": [
"test3@example.com"
]
},
{
"ext_id": "CID_0003",
"name": "Новый клиент",
"created_date_time": "2019-08-10 10:40:50",
"phone_numbers": [
"79000000004"
]
}
]
}
}
2. Загрузка истории сделок
Для построения корректной аналитики необходимо передавать все этапы, которые прошла сделка, а не только текущий её этап (на момент выгрузки).
- Передавать обновление по сделке в CRM по тригеру, т.е загружать ее в Comagic когда произошло одно из событий:
- Создание сделки
- Переход сделки в другой этап
- Обновление одного из параметров: контакта, ответственного, суммы сделки
-
Один раз за период (час, день, неделю) загружать сразу всю историю по всем сделкам. Для каждой сделки передать все пройденные этапы и время перехода в каждый этап.
Все переданные сделки отображаются в отчете "Сквозная аналитика" кумулятивно (т.е отображаются все этапы, которые прошла сделка, а не только текущий).
Если какой-нибудь из промежуточных этапов не был передан, то система автоматически его создаст с флагом is_generated = True, это необходимо для корректного отображения в аналитических отчетах. В показателях по этапам учитываются сделки, которые прошли через данный этап.
Отдельного метода по созданию и обновлению сделки у нас нет.
Сделка создается при передачи первой записи по ней, и обновляется
с каждым новым вызовом метода.
{
"jsonrpc": "2.0",
"id": 1,
"method": "upload.deals_history",
"params": {
"access_token": "${#Project#auth}",
"deals": [
{
"ext_id": "DID_0001",
"name": "Продажа аннигиляторной пушки",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-15 07:07:00",
"modified_stage_date_time": "2019-08-15 07:07:00",
"contact_ext_ids": [
"CID_0001"
],
"main_contact_ext_id": "CID_0001",
"employee_ext_id": "EID_0001",
"sales_funnel_ext_id": "SFID_0001",
"stage_ext_id": "1",
"comments": "Супер сделка"
},
{
"ext_id": "DID_0001",
"name": "Продажа аннигиляторной пушки",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-16 07:07:00",
"modified_stage_date_time": "2019-08-16 07:07:00",
"contact_ext_ids": [
"CID_0001"
],
"main_contact_ext_id": "CID_0001",
"employee_ext_id": "EID_0002",
"sales_funnel_ext_id": "SFID_0001",
"revenue": 5000,
"stage_ext_id": "2",
"comments": "Супер сделка"
},
{
"ext_id": "DID_0001",
"name": "Продажа аннигиляторной пушки",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-17 07:07:00",
"modified_stage_date_time": "2019-08-17 07:07:00",
"contact_ext_ids": [
"CID_0001"
],
"main_contact_ext_id": "CID_0001",
"sales_funnel_ext_id": "SFID_0001",
"stage_ext_id": "3",
"comments": "Супер сделка"
},
{
"ext_id": "DID_0001",
"name": "Продажа аннигиляторной пушки",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-18 07:07:00",
"modified_stage_date_time": "2019-08-18 07:07:00",
"contact_ext_ids": [
"CID_0001"
],
"main_contact_ext_id": "CID_0001",
"sales_funnel_ext_id": "SFID_0001",
"stage_ext_id": "4",
"comments": "Супер сделка"
},
{
"ext_id": "DID_0001",
"name": "Продажа аннигиляторной пушки",
"created_date_time": "2019-08-15 07:07:00",
"closed_date_time": "2019-08-19 10:07:00",
"modified_date_time": "2019-08-19 10:07:00",
"modified_stage_date_time": "2019-08-19 10:07:00",
"contact_ext_ids": [
"CID_0001"
],
"main_contact_ext_id": "CID_0001",
"sales_funnel_ext_id": "SFID_0001",
"stage_ext_id": "10000",
"comments": "Супер сделка"
}
]
}
}
Создание сделки, которая с первого этапа ушла в отказ:
JSON структура запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "upload.deals_history",
"params": {
"access_token": "${#Project#auth}",
"deals": [
{
"ext_id": "DID_0002",
"name": "Беговел Puky Pukylino",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-15 07:07:00",
"modified_stage_date_time": "2019-08-15 07:07:00",
"contact_ext_ids": [
"CID_0002"
],
"main_contact_ext_id": "CID_0002",
"employee_ext_id": "EID_0002",
"revenue": 4250,
"sales_funnel_ext_id": "SFID_0002",
"stage_ext_id": "1",
"comments": "Супер сделка"
},
{
"ext_id": "DID_0002",
"name": "Беговел Puky Pukylino",
"created_date_time": "2019-08-15 07:07:00",
"closed_date_time": "2019-08-19 10:07:00",
"modified_date_time": "2019-08-19 10:07:00",
"modified_stage_date_time": "2019-08-19 10:07:00",
"contact_ext_ids": [
"CID_0002"
],
"main_contact_ext_id": "CID_0002",
"sales_funnel_ext_id": "SFID_0002",
"stage_ext_id": "10002",
"comments": "Не выдерживает необходимый вес"
}
]
}
}
Создание сделки, которая дошла до этапа "Счет на предоплату":
JSON структура запроса
{
"jsonrpc": "2.0",
"id": 1,
"method": "upload.deals_history",
"params": {
"access_token": "${#Project#auth}",
"deals": [
{
"ext_id": "DID_0003",
"name": "Sony PlayStation 4 Slim 500 ГБ",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-15 07:07:00",
"modified_stage_date_time": "2019-08-15 07:07:00",
"contact_ext_ids": [
"CID_0003"
],
"main_contact_ext_id": "CID_0003",
"employee_ext_id": "EID_0003",
"sales_funnel_ext_id": "SFID_0003",
"stage_ext_id": "1"
},
{
"ext_id": "DID_0003",
"name": "Sony PlayStation 4 Slim 500 ГБ",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-16 07:07:00",
"modified_stage_date_time": "2019-08-16 07:07:00",
"contact_ext_ids": [
"CID_0003"
],
"main_contact_ext_id": "CID_0003",
"employee_ext_id": "EID_0002",
"sales_funnel_ext_id": "SFID_0003",
"revenue": 17350,
"stage_ext_id": "2"
},
{
"ext_id": "DID_0003",
"name": "Sony PlayStation 4 Slim 500 ГБ",
"created_date_time": "2019-08-15 07:07:00",
"modified_date_time": "2019-08-17 07:07:00",
"modified_stage_date_time": "2019-08-17 07:07:00",
"contact_ext_ids": [
"CID_0003"
],
"main_contact_ext_id": "CID_0003",
"sales_funnel_ext_id": "SFID_0003",
"stage_ext_id": "3",
"comments": "В ожидании оплаты"
}
]
}
}