С установкой javascript кода Нютона на сайт
Callback.CreateRequest - инициация обратного звонка
Сallback.SetLeadPrice - Установка стоимости лида
Callback.ApplicationRequest - инициация создания заявки
Callback.CreateCrmLead - инициация создания сделки
Callback.GetRecords - статистика по звонкам
Назначение интеграции
Вы можете интегрировать Ньютон с любым сайтом или сервисом, который поддерживает API.
Например, с помощью API можно передавать в Ньютон звонки и заявки из:
- Форм на сайте
- Сервисов лидогенерации
- Базы номеров для прозвона
Или выгружать статистику по звонкам и заявкам в:
- CRM системы
- Собственные базы
С установкой javascript кода Нютона на сайт
Если javascript код установлен на сайте (сама кнопка может быть скрыта), то на каждой странице сайта инициализируется javascript объект newtonCallback, который определяет источник, ставит куки, регистрирует касания.
Существует 2 javascript метода:
1) newtonCallback.sendCallRequest(options) - инициирует обратный звонок, в качестве параметра принимает объект
- options.client_phone - номер телефона - обязательное поле
- options.department_id - идентификатор филиала - необязательное поле
- options.delay_date - дата отложенного вызова - необязательное поле
- options.delay_hours - время отложенного вызова - необязательное поле
- options.callback - функция, которая вызывается после инициации звонка, в нее передаются 2 переменные (status, errors) - статус true/false (успешно инициировался или нет) и массив ошибок в случае неудачи
- все остальные необходимые параметры (идентификатор виджета, страница источника, страница на которой заказан звонок и тп) Ньютон подставит сам
2) newtonCallback.sendApplicationRequest(options) - инициирует создание заявки, в качестве параметра принимает объект
- options.client_phone - номер телефона - обязательное поле
- options.name - имя - обязательное поле
- options.email - email - необязательное поле
- options.comment - комментарий - необязательное поле
- options.department_id - идентификатор филиала - необязательное поле
- options.callback - функция, которая вызывается после создания заявки, в нее передаются 2 переменные (status, errors) - статус true/false (успешно создалась или нет) и массив ошибок в случае неудачи
- все остальные необходимые параметры (идентификатор виджета, страница источника, страница на которой заказана заявка и тп) Ньютон подставит сам
Без установки javascript кода
Получив у менеджера API токен, можно инициировать звонки и создавать заявки отправляя данные запросом на наш сервер.
Запрос отправляется на url https://eyenewton.ru/api/v1/json. Параметры передаются в теле запроса. Формат входных и выходных данных - JSON.
Пример запроса:
POST /api/v1/json HTTP/1.1
User-Agent: curl/7.37.0
Host: eyenewton.ru
Content-Length: 199
{"action":"callback.CreateRequest","params":{"token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0","widgetId":"aaaabbbbccccddddeeeeffff00001111","clientPhone":"+78120000000","departmentId":"0","referer":"http://eyenewton.ru/"}}
Пример выполнения запроса с помощью curl:
curl --data '{"action":"callback.CreateRequest","params":{"token":"aaaabbbbccccddddeeeeffff00001111","userId":"0", "widgetId":"aaaabbbbccccddddeeeeffff00001111","clientPhone":"+78120000000","departmentId":"0","referer":"http://eyenewton.ru/"}}' http://eyenewton.ru/api/v1/json
Пример ответа:
HTTP/1.1 200 OK
Date: Tue, 11 Aug 2015 11:00:38 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
{"result":"ok"}
Callback.CreateRequest - инициация обратного звонка
{ "action":"callback.CreateRequest", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", "clientPhone":"+79991234567", "departmentId":"99999", "referer":"http://eyenewton.ru/", "widgetId":"aaaabbbbccccddddeeeeffff00001111", "comment": "test test test", "delayDate":"2019-01-01", "delayHours":"10", "landingPageReferrer":"http://google.ru/", "landingPageUrl":"http://eyenewton.ru/", "name":"Ivan"}}
Параметры:
- token - токен, полученный в личном кабинете - обязательное поле
- userId - идентификатор пользователя из личного кабинета - обязательное поле
- clientPhone - номер в формате +7XXXXXXXXXX - обязательное поле
- departmentId - идентификатор филиала (из редактирования виджета) - обязательное поле, если есть несколько филиалов
- referer - страница звонка - обязательное поле
- widgetId - хэш виджета - обязательное поле
- comment - текстовый комментарий - необязательное поле
- delayDate - дата отложенного вызова - необязательное поле
- delayHours - время отложенного вызова - необязательное поле
- landingPageReferrer - страница, с которой произошел переход на сайт - необязательное поле
- landingPageUrl - страница, на которую произошел переход на сайт - необязательное поле
- name - имя - необязательное поле
Пример успешного выполнения запроса:
{ "result":"ok" }
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{ "errors":{ "clientPhone":"Номер введен неверно" }}
Сallback.SetLeadPrice - Установка стоимости лида
Устанавливает цену лида для звонка.
id - идентификатор звонка, найти его можно в подробной информации по звонку price
цена лида звонка, целое число Пример запроса:
{ "action":"callback.CreateRequest", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", "Id":"9999", "Price":"5000" } }
Пример успешного выполнения запроса:
{ "result":"ok" }
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{"error":("price":"invalid price value")}
Callback.ApplicationRequest - инициация создания заявки
{ "action":"callback.ApplicationRequest", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", "clientPhone":"+79991234567", "departmentId":"99999", "referer":"http://eyenewton.ru/", "widgetId":"aaaabbbbccccddddeeeeffff00001111", "landingPageReferrer":"http://google.ru/", "landingPageUrl":"http://eyenewton.ru/", "name":"Ivan", "email":"ivan@example.com", "text":"Call me" }}
Параметры:
- token - токен, полученный в личном кабинете - обязательное поле
- userId - идентификатор пользователя из личного кабинета - обязательное поле
- clientPhone - номер в формате +7XXXXXXXXXX - обязательное поле
- departmentId - идентификатор филиала (из редактирования виджета) - обязательное поле, если есть несколько филиалов
- referer - страница звонка - обязательное поле
- widgetId - хэш виджета - обязательное поле
- landingPageReferrer - страница, с которой произошел переход на сайт - необязательное поле
- landingPageUrl - страница, на которую произошел переход на сайт - необязательное поле
- name - имя - обязательное поле
- email - email - необязательное поле
- text - текст заявки - необязательное поле
Пример успешного выполнения запроса:
{ "result":"ok" }
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{ "errors":{ "clientPhone":"Номер введен неверно" }}
Callback.CreateCrmLead - инициация создания сделки
Создает сделку на основе лида в Ньютоне
Пример запроса:
{ "action":"callback.GetRecords", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", "Phone":"+79991234567", "Price":"220", "Date":"2015-09-01 06:58:49",}}
Параметры:
- token - токен, полученный в личном кабинете - обязательное поле
- userId - идентификатор пользователя из личного кабинета - обязательное поле
- phone - номер в формате +7XXXXXXXXXX - обязательное поле
- price - сумма сделки в рублях - обязательное поле
- date - дата сделки в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС (в UTC) - обязательное поле
Пример успешного выполнения запроса:
{ "result":"ok" }
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{"error":"По номеру не нашелся звонок"}
Callback.GetRecords - статистика по звонкам
Возвращает статистику по звонкам. Параметры опциональны, все даты принимаются в формате ГГГГ-ММ-ДД, либо ГГГГ-ММ-ДД ЧЧ:ММ:СС (в UTC).
Пример запроса:
{ "action":"callback.GetRecords", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", "requestDateFrom":"2015-08-30", "callStatus":"1" }}
Параметры:
- token - токен, полученный в личном кабинете - обязательное поле
- userId - идентификатор пользователя из личного кабинета - обязательное поле
- requestDateFrom - дата запроса от
- requestDateTo - дата запроса до
- callStartDateFrom - дата звонка от
- callStartDateTo - дата звонка до
- callEndDateFrom - дата окончания звонка от
- callEndDateTo - дата окончания звонка до
- requestStatus - 1 - запрос на звонок отправлен на АТС, 0 - не отправлен
- callStatus - 1 - успешный звонок, 0 - не успешный
Пример успешного выполнения запроса:
{
"records":[
{
"id":"117066",
"widgetId":"5",
"widgetName":"site.ru",
"departmentId":"5",
"requestDate":"2015-09-01 06:58:49",
"requestStatus":"success",
"callStatus":"CLIENT_ANSWER",
"callStatusText":"Клиент не отвечает",
"callDate":"2015-09-01 06:58:51",
"callDurationOperator":"110",
"callDurationClient":"93",
"delayDate":null,
"conversationFile":"https://newton-callback.s3-eu-west-1.amazonaws.com/2015/09/01/201509010659-1441090731.229465-666.mp3",
"callAttempt":"1",
"callSequenceNumber":"0",
"clientPhone":"+79117894563",
"callbackPhone":"+79999555555",
"refererHost":"www.example.com",
"refererPath":"http://www.example.com/page",
"landingReferrerType":"yandex.search",
"landingReferrerTypeLabel":"Яндекс",
"landingReferrer":"http://yandex.ru/search",
"landingUrl":"http://www.example.com/page",
"landingSearchPhrase":"",
"landingUtmSource":null,
"landingUtmMedium":null,
"landingUtmTerm":null,
"landingUtmContent":null,
"landingUtmCampaign":null,
"landingOpenstatService":null,
"landingOpenstatCampaign":null,
"landingOpenstatAd":null,
"landingOpenstatSource":null,
"userAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
"userAgentBrowser":"Firefox 40.0",
"userAgentOs":"Windows 7",
"userAgentDevice":null,
"userAgentDeviceType":"0",
"ip":"94.243.242.246",
"ipCountry":"RU",
"ipCity":"Гатчина",
"comment":null,
"adminComment":null,
"leadPrice":null,
"type":"callback",
"externalId":null,
"outOfAttempts":true,
"tags":["целевой"],
"isTargeted":"0",
"name":null,
"feedbackSmsSendDate":null,
"feedbackSmsAnswerDate":null,
"feedbackSmsAnswer":null
}
]
}
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{"error":"Invalid param `requestStartDate`"}
Callback.GetWidgets - список виджетов
Возвращает список виджетов обратного звонка
Пример запроса:
{ "action":"callback.GetWidgets", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0" } }
Параметры:
- token - токен, полученный в личном кабинете - обязательное поле
- userId - идентификатор пользователя из личного кабинета - обязательное поле
Пример успешного выполнения запроса:
{ "widgets":[ { "id":"aaaabbbbccccddddeeeeffff00001111", "name":"widget", "departments":{ "id":"0", "name":"department" } } ] }
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{"error":"Invalid credentials"}
Chat.GetHistory - история чата
Возвращает историю чата
Пример запроса:
{ "action":"chat.GetHistory", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", "dateFrom":"2015-08-30" } }
Параметры:
- token - токен, полученный в личном кабинете - обязательное поле
- userId - идентификатор пользователя из личного кабинета - обязательное поле
- dateFrom - дата разговора от
- dateTo - дата разговора до
Даты принимаются в формате ГГГГ-ММ-ДД, либо ГГГГ-ММ-ДД ЧЧ:ММ:СС (в UTC)
Пример выполнения запроса:
{ "startTime": "2017-01-01 10:19:47", "clientId": "2|1234567890|abcde|12345678|abcdef", "operator": "Оператор 1", "ip": "127.0.0.1", "messages": [ { "from": false, "text": "Сообщение оператора", "time": "2017-01-01 10:19:47", }, { "from": true, "text": "Сообщение клиента", "time": "2017-01-01 10:19:48", }, ], }
Если произошла ошибка, то ответ будет содержать поле error с текстом ошибки:
{"error":"Invalid value '' for param 'widgetId'"}
Если нужного вам метода не оказалось в документации, напишите нам.