Интеграция с другими CRM

У вас собственная CRM и вы хотите:

  • передавать из CoMagic в CRM обращения (звонки, чаты, заявки, цели) с помощью уведомлений (вебхуки/webhooks) по вашим рекламным каналам;
  • передавать из CRM в CoMagic теги по обращениям клиентов и данные о суммах сделок для анализа окупаемости привлеченных вами лидов по различным каналам обращений.

Тогда вам необходимо настроить взаимодействие между вашей CRM и CoMagic. Сделать это не сложно — воспользуйтесь нашей инструкцией!

Общий принцип представлен на схеме (цифрами обозначены пункты настройки в инструкции ниже):




1) Необходимо создать пользователя, от имени которого ваша CRM будет передавать информацию в CoMagic с помощью методов API.

Заходим в личный кабинет CoMagic — раздел «Управление пользователями»:


И добавляем CRM-пользователя: прописываем логин и пароль, которые в дальнейшем будут использоваться для авторизации по API:

2.png

2) Настраиваем уведомления через способ уведомления http-запрос на все обращения, которые вы хотите видеть в своей CRM (например: Звонки). При этом обязательно указываем URL и порт, который «слушает» ваша CRM,

6.png

выбираем параметры — ID обращения, ID сайта, ID посетителя для того, чтобы вы смогли сопоставить все обращения от ваших посетителей на сайте:



4.png


Таким образом, все оставленные звонки будут передаваться в вашу CRM с выбранными параметрами.

3) Дальше необходимо настроить передачу ваших меток или сумм сделок, к которым привели обращения, обратно в CoMagic. Можно воспользоваться нашим API напрямую (или с помощью другого языка — например, python).

ПРИМЕР 1:

Ваша цель — после начала работы над звонком менеджером в вашей CRM передать в CoMagic тег «Взято в работу» mark_id = 9504.

  • в CoMagic при этом уже созданы все ваши используемые теги, и вы знаете их id (mark_id ваших тегов можно извлечь с помощью метода API GET http://api.comagic.ru/api/v1/tag/?session_key= ).

В вашу CRM поступило уведомление (webhook) «Входящий звонок» (тип обращения = calls) с id обращения = 675049.

При взятии заявки в работу менеджером срабатывает метод API tag_communication

  • Подробнее о методе tag_communication в статье

Рассмотрим реализацию на  python:

fn = 'tag_communication' # Функция REST API
args = {
    'object_id': 183095657, # id вашего обращения, обязательный параметр 
    'object_type': "call", # тип обращения  ('cdr_in', 'sitephone', 'offline_message', 'chat', 'goal'), обязательный параметр
 
    'mark_id': 9504 # id вашего тега, обязательный параметр
}
method = 'post' # тип запрос POST или GET, обязательный параметр
 
import json
import urllib
import urllib2
 
def login(): # Этап авторизации
    auth = urllib.urlencode({'login': 'test@comagic', 'password': 'test'}) # логин и пароль по которой будет ходить ваша CRM 
 
    req = urllib2.Request('http://api.comagic.ru/api/login/', auth)
    req.add_header('Accept', 'application/json')
 
    resp = json.loads(urllib2.urlopen(req).read())
 
    print('login %s' % resp)
    return resp['data']['session_key']
 
def proc(asession_key, amethod, aproc, aargs): # Этап выполнения требуемого метода API
    if amethod.lower() == 'get':
        payload = {'action': 'GET', 'filters': aargs, 'session_key': asession_key}
    elif amethod.lower() == 'post':
        payload = {'action': 'POST', 'args': aargs, 'session_key': asession_key}
 
    req = urllib2.Request('http://api.comagic.ru/api/v1/%s/' % aproc, json.dumps(payload))
    req.add_header('Accept', 'application/json')
    req.add_header('Content-Type', 'application/json')
 
    resp = urllib2.urlopen(req).read()
    print('result %s' % resp)
 
def logout(): # Этап разлогирования , если необходимо нужно дописать.
    pass
 
session_key = login()
proc(session_key, method, fn, args)
logout()
 


В результате данному обращению будет присвоен тег «Взято в работу».

ПРИМЕР 2:

Ваша цель — после обработки менеджером  звонка в вашей CRM удалить в CoMagic  тег «Взято в работу» mark_id = 9504.  

При этом должен сработать метод API untag_communication

  • Подробнее о методе untag_communication в статье

Рассмотрим реализацию на  python:

Для этого меняем функцию в fn='untag_communication'

fn = 'untag_communication' # Функция REST API
args = {
    'object_id': 183095657, # id вашего обращения, обязательный параметр 
    'object_type': "call", # тип обращения  ('cdr_in', 'sitephone', 'offline_message', 'chat', 'goal'), обязательный параметр
 
    'mark_id': 9504 # id вашего тега, обязательный параметр
}
method = 'post' # тип запрос POST или GET, обязательный параметр
 
import json
import urllib
import urllib2
def login(): # Этап авторизации
    auth = urllib.urlencode({'login': 'test@comagic', 'password': 'test'}) # логин и пароль по которой будет ходить ваша CRM 
 
    req = urllib2.Request('http://api.comagic.ru/api/login/', auth)
    req.add_header('Accept', 'application/json')
 
    resp = json.loads(urllib2.urlopen(req).read())
 
    print('login %s' % resp)
    return resp['data']['session_key']
 
def proc(asession_key, amethod, aproc, aargs): # Этап выполнения требуемого метода API
    if amethod.lower() == 'get':
        payload = {'action': 'GET', 'filters': aargs, 'session_key': asession_key}
    elif amethod.lower() == 'post':
        payload = {'action': 'POST', 'args': aargs, 'session_key': asession_key}
 
    req = urllib2.Request('http://api.comagic.ru/api/v1/%s/' % aproc, json.dumps(payload))
    req.add_header('Accept', 'application/json')
    req.add_header('Content-Type', 'application/json')
 
    resp = urllib2.urlopen(req).read()
    print('result %s' % resp)
 
def logout(): # Этап разлогирования , если необходимо нужно дописать.
    pass
 
session_key = login()
proc(session_key, method, fn, args)
 
logout()
 


ПРИМЕР 3:

Ваша цель — после обработки  звонка менеджером в вашей CRM  и совершения сделки передать дату и сумму сделки данному обращению в CoMagic.

При этом должен сработать метод API tag_communication_sale

  • Подробнее о методе tag_communication_sale в статье

Рассмотрим реализацию на  python:

Для этого меняем функцию в fn='tag_communication_sale'

и добавляем два новых параметра: cost — сумма сделки и date_time — дата сделки:


fn = 'tag_communication_sale' # Функция REST API
args = {
    'object_id': 183095657, # id вашего обращения, обязательный параметр 
    'object_type': "call", # тип обращения  ('cdr_in', 'sitephone', 'offline_message', 'chat', 'goal'), обязательный параметр
    'cost': 218, # сумма сделки к которому привело данное обращение
    'date_time': "2016-07-18" # дата сделки
}
method = 'post' # тип запрос POST или GET, обязательный параметр
 
import json
import urllib
import urllib2
 
 
def login(): # Этап авторизации
    auth = urllib.urlencode({'login': 'test@comagic', 'password': 'test'}) # логин и пароль по которой будет ходить ваша CRM 
 
    req = urllib2.Request('http://api.comagic.ru/api/login/', auth)
    req.add_header('Accept', 'application/json')
 
    resp = json.loads(urllib2.urlopen(req).read())
 
    print('login %s' % resp)
    return resp['data']['session_key']
 
def proc(asession_key, amethod, aproc, aargs): # Этап выполнения требуемого метода API
    if amethod.lower() == 'get':
        payload = {'action': 'GET', 'filters': aargs, 'session_key': asession_key}
    elif amethod.lower() == 'post':
        payload = {'action': 'POST', 'args': aargs, 'session_key': asession_key}
 
    req = urllib2.Request('http://api.comagic.ru/api/v1/%s/' % aproc, json.dumps(payload))
    req.add_header('Accept', 'application/json')
    req.add_header('Content-Type', 'application/json')
 
    resp = urllib2.urlopen(req).read()
    print('result %s' % resp)
 
 
def logout(): # Этап разлогирования , если необходимо нужно дописать.
    pass
 
session_key = login()
proc(session_key, method, fn, args)
 
logout()
 



В CoMagic данному обращению будет присвоен тег «Продажа», а также будет передана сумма и дата сделки.

Вот и все. Воспользовавшись этим примером использования API CoMagic, вы сможете «подружить» с нашими аналитическими инструментами практически любую собственную CRM.

Нам интересно ваше мнение о CoMagic.
Пожалуйста, оставьте контакты для связи с менеджером
ФИО*:
E-mail*:
Телефон*:
* - Обязательные для заполнения поля