контент
продукт
подкаст
Слушать последний подкаст:
Ссылки:
наши соцсети
ТГ каналы
инструменты

API Sensei

1. Получение данных для авторизации

Для чего нужны данные авторизации?
Данные авторизации нужны для использования API-методов Sensei извне, а не внутри amoCRM. Самым простым примером здесь будет использование тестовых запросов по API из Postman.

Для авторизации при использовании API-методов нужен API-ключ Sensei: X-Auth-Sensei-Token
Для получения API-ключа обратитесь в поддержку Sensei по адресу help@sensei.plus с почты администратора аккаунта amoCRM. В письме укажите ваш запрос API-ключа Sensei и ID аккаунта.

2. Получение списка процессов

Получить список процессов можно в Postman или через консоль с помощью JavaScript.
Для получения списка процессов в аккаунте следует использовать GET-запрос: GET api.sensei.plus/v1/process/list/

Как получить список процессов в Postman:
Для этого вам нужно:
  1. Указать метод GET
  2. Вставить ссылку запроса
  3. Указать авторизационные данные
Ответом будет список процессов с их параметрами (id, группа, число запусков, включён ли).
Как получить список процессов через консоль с помощью JavaScript

var sensei_api = function() {
        var baseUrl = 'https://api.sensei.plus/v1/';
        var self = this;
        this.send = function (url, method, data) {
            data = data || {};
            var params = {
                url: baseUrl + url,
                data: data,
                method: method,
                dataType: 'json',
                headers: {
                    'X-Auth-Sensei-Token': 'Ваш Sensei-токен'
                },
                success: function(data) {
                    console.log(data);                
            	}
	     };
            return new $.ajax(params);
        };
        this.getProcesses = function () {
            self.send('process/list', 'GET');
        };
};
api = new sensei_api;
api.getProcesses();
После ввода кода и нажатия клавиши Enter, в консоли отобразится список процессов:

3. Запуск процесса

Запустить процесс также можно с помощью Postman или через консоль с помощью JavaScript.

Как запускать процесс в Postman

При помощи метода POST. Важно, что ID запускаемого процесса нужно указывать непосредственно в ссылке. Его можно получить консольными командами, либо в адресной строке браузера, открыв нужный процесс в конструкторе.

Число сделок, в которых одновременно можно запустить процесс не ограничено, но при массовых пусках мы рекомендуем делать это группами по 100 сделок.

  • entity_id в данных означает ID сделки.
  • entity_type будет означать тип сущности, с которым мы работаем (отличается от ID сущностей amoCRM). Для нас это всегда сделка и потому entity_type всегда равен 1.

POST https://api.sensei.plus/v1/process/start/(Id процесса)
{
"data": [ 
      {"entity_id":30188325, "entity_type":1},
      {"entity_id":30188323, "entity_type":1},
      {"entity_id":30188321, "entity_type":1},
      {"entity_id":30188319, "entity_type":1},
      {"entity_id":30188315, "entity_type":1},
      {"entity_id":30188313, "entity_type":1},
      {"entity_id":30188291, "entity_type":1}
       ]
}
Запрос из Postman выглядит так:
Как запускать процессы через консоль с помощью JavaScript

var sensei_api = function() {
        var baseUrl = 'https://api.sensei.plus/v1/';
        var self = this;
        this.send = function (url, method, data) {
            data = data || {}
            var params = {
                url: baseUrl + url,
                data: data,
                method: method,
                dataType: 'json',
                headers: {
                    'X-Auth-Sensei-Token': 'Ваш Sensei-токен'
                },
                success: function(data) {
                    console.log(data);                
            	}
	     };
            return new $.ajax(params);
        };
};
api = new sensei_api;
api.send('process/start/Ваш ID процесса', 'POST', { "data":[
{"entity_type":1, "entity_id":AMOCRM.constant('card_id')}
]
}
)

4. Запуск процесса с заданными локальными параметрами

Можно реализовать через Postman или консоль с помощью JavaScript.
Запуск процесса осуществляется при указании ID сделки (entity_id), Id процесса, локальных параметров (name) и значений этих параметров (value). При отправке таких запросов важно, чтобы в процессе уже был создан указанный параметр. Запрос с несуществующими параметрами не будет выполнен.
Как запустить в Postman

POST https://api.sensei.plus/v1/process/start/(Id процесса)
{
"data": [
{
"entity_id": "31211609",
"entity_type": "1"
}
],
"param_values": {
"local": [
    {"name": "name", "value": "Иван Петров"},
    {"name": "phone", "value": "+79001234567"},
    {"name": "email", "value": "tеst@mail.ru"}
]
}
}
Как запустить через консоль с помощью JavaScript

var sensei_api = function() {
        var baseUrl = 'https://api.sensei.plus/v1/';
        var self = this;
        this.send = function (url, method, data) {
            data = data || {};
            var params = {
                url: baseUrl + url,
                data: data,
                method: method,
                dataType: 'json',
                headers: {
                    'X-Auth-Sensei-Token': 'Ваш Sensei-токен'
                },
                success: function(data) {
                    console.log(data);                
            	}
	     };
            return new $.ajax(params);
        };
};
api = new sensei_api;
api.send('process/start/22984', 'POST',{
"data": [
{
"entity_id": "31211609",
"entity_type": "1"
}
],
"param_values": {
"local": [
    {"name": "name", "value": "Иван Петров"},
    {"name": "phone", "value": "+79001234567"},
    {"name": "email", "value": "tеst@mail.ru"}
]
}
}
)

5. Завершение задачи с заданным результатом

Этот API-метод поможет завершить задачу с заданным результатом. Важно, чтобы указанный результат был в списке доступных результатов завершения задачи.

POST https://api.sensei.plus/v1/element/task/complete

Для этого метода result_caption будет означать название результата выполнения задачи, а task_id— ID задачи, которую требуется закрыть.

{
    "entity_id": 33123425,
    "entity_type": 1,
    "result_caption": "Ваш результат задачи", 
    "task_id": 27931775  
}
Как запустить через консоль с помощью JavaScript

var sensei_api = function() {
        var baseUrl = 'https://api.sensei.plus/v1/';
        var self = this;
        this.send = function (url, method, data) {
            data = data || {}
            var params = {
                url: baseUrl + url,
                data: data,
                method: method,
                dataType: 'json',
                headers: {
                    'X-Auth-Sensei-Token': 'Ваш Sensei-токен'
                },
                success: function(data) {
                    console.log(data);                
            	}
	     };
            return new $.ajax(params);
        };
};
api = new sensei_api;
api.send('element/task/complete', 'POST', { 
    "entity_id": AMOCRM.constant('card_id'),
    "entity_type": 1,
    "result_caption": "Перезвонить",
    "task_id": 14211113
}
)

6. Завершение процессов и задач по ним

Этот метод позволяет завершить выбранный процесс. Также с его помощью можно завершить задачу по этому процессу.

Завершение осуществляется методом POST. Важно указать ID завершаемого процесса непосредственно в ссылке. Его можно получить консольными командами, либо в адресной строке браузера, открыв нужный процесс в конструкторе.

Число сделок, в которых одновременно можно завершить процесс не ограничено, но мы рекомендуем делать это группами по 100 сделок.

entity_id в данных означает ID сделки.
entity_type будет означать тип сущности, с которым мы работаем (отличается от ID сущностей amoCRM). Для нас это всегда сделка и потому entity_type всегда равен 1.

Параметр «close_tasks»: true указывать не обязательно. Он означает, что в указанных сделках помимо завершения процесса, также будет завершена задача по процессу.

POST https://api.sensei.plus/v1/process/stop/(id)
{
"close_tasks": true,
"data":[
   {"entity_type":1, "entity_id":41130554},
   {"entity_type":1, "entity_id":41130956},
   {"entity_type":1, "entity_id":41131044},
   {"entity_type":1, "entity_id":41136110},
   {"entity_type":1, "entity_id":41136112},
   {"entity_type":1, "entity_id":41136114}
	]
}
Как завершать процессы и задачи по ним в Postman:
Завершение процессов и задач по ним через консоль с помощью JavaScript:

var sensei_api = function() {
        var baseUrl = 'https://api.sensei.plus/v1/';
        var self = this;
        this.send = function (url, method, data) {
            data = data || {};
            var params = {
                url: baseUrl + url,
                data: data,
                method: method,
                dataType: 'json',
                headers: {
                    'X-Auth-Sensei-Token': 'Ваш Sensei-токен'
                },
                success: function(data) {
                    console.log(data);                
            	}
	     };
            return new $.ajax(params);
        };
};
api = new sensei_api;
api.send('process/stop/13574', 'POST', {"close_tasks": true,
    "data":[
{"entity_type":1, "entity_id":AMOCRM.constant('card_id')}]})

7. Завершение всех процессов в сделке

Этот метод требуется для завершения всех процессов и задач по ним внутри одной сделки.
Также можно добавить в json запроса 'close_tasks': true, чтобы закрыть задачи и удалить ожидания процесса, как и в stop. В примере указанном ниже clost_tasks уже добавлен.
Завершение всех процессов в сделке через JavaScript:

var sensei_api = function() {
        var baseUrl = 'https://api.sensei.plus/v1/';
        var self = this;
        this.send = function (url, method, data) {
            data = data || {};
            var params = {
                url: baseUrl + url,
                data: data,
                method: method,
                dataType: 'json',
                headers: {
                    'X-Auth-Sensei-Token': 'Ваш Sensei-токен'
                },
                success: function(data) {
                    console.log(data);                
            	}
	     };
            return new $.ajax(params);
        };
};
api = new sensei_api;
api.send('process/stop-entity/123', 'POST', {"close_tasks": true,
    "data":[
{"entity_type":1, "entity_id":AMOCRM.constant('card_id')}]})
Для stop-entity/123 — необходимо изменить ID процесса.
Завершение всех процессов через Postman
Осуществляется методом POST.

Пример URL: https://api.sensei.plus/v1/process/stop-entity/123 или https://api.sensei.plus/v1/process/stop-entity

Пример заполнения body:
{ 'data': [{'entity_id': 456},{'entity_id': 789}],'close_tasks': true}

Работает так же, как и метод завершения процесса, но вместо id процесса можно указать id одной сделки. В json в массиве data можно указывать массив сделок так же, как в методе завершения процесса. В url либо в json должна быть указана хотя бы одна сделка.