Назначение интеграции

Вы можете интегрировать Ньютон с любым сайтом или сервисом, который поддерживает 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 http://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", "delayDate":"2019-01-01",  "delayHours":"10", "landingPageReferrer":"http://google.ru/", "landingPageUrl":"http://eyenewton.ru/" }}

Параметры:

  •     token - токен, полученный в личном кабинете - обязательное поле
  •     userId - идентификатор пользователя из личного кабинета - обязательное поле
  •     clientPhone - номер в формате +7XXXXXXXXXX - обязательное поле
  •     departmentId - идентификатор филиала (из редактирования виджета) - обязательное поле, если есть несколько филиалов
  •     referer - страница звонка - обязательное поле
  •     widgetId - хэш виджета - обязательное поле
  •     delayDate - дата отложенного вызова - необязательное поле
  •     delayHours - время отложенного вызова - необязательное поле
  •     landingPageReferrer - страница, с которой произошел переход на сайт - необязательное поле
  •     landingPageUrl - страница, на которую произошел переход на сайт - необязательное поле

Пример успешного выполнения запроса:

{ "result":"ok" }


Если произошла ошибка, то ответ будет содержать имя ошибочного поля и текст ошибки:

{ "errors":{ "clientPhone":"Номер введен неверно" }}


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" }


Если произошла ошибка, то ответ будет содержать имя ошибочного поля и текст ошибки:

{ "errors":{ "clientPhone":"Номер введен неверно" }}

 

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 - не успешный

Пример успешного выполнения запроса:

{ "result":"ok" }


Если произошла ошибка, то ответ будет содержать имя ошибочного поля и текст ошибки:

{ "errors":{ "clientPhone":"Номер введен неверно" }}

 

Callback.GetWidgets - список виджетов

Возвращает список виджетов обратного звонка

Пример запроса:

{ "action":"callback.GetWidgets", "params":{ "token":"aaaabbbbccccddddeeeeffff00001111", "userId":"0", } }

Параметры:

  • token - токен, полученный в личном кабинете - обязательное поле
  • userId - идентификатор пользователя из личного кабинета - обязательное поле

 

Пример успешного выполнения запроса:

{ "widgets":[ { "id":"aaaabbbbccccddddeeeeffff00001111", "name":"widget", "departments":{ "id":"0", "name":"department" } } ] }


Если произошла ошибка, то ответ будет содержать имя ошибочного поля и текст ошибки:

{ "errors":{ "userId":"id введен неверно" }}

 

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", }, ], }

 

Если произошла ошибка, то ответ будет содержать имя ошибочного поля и текст ошибки:

{ "errors":{ "userId":"id введен неверно" }}

 

 

Если нужного вам метода не оказалось в документации, напишите нам.