Функции Sipuni

Функции Sipuni выполняются на сервере, они не связаны с интерфейсом пользователя. В них можно вызывать внешние API, например, отправлять данные в сервис аналитики или в amoCRM создавать сделки, контакты, задачи.

Как мне могут помочь Sipuni функции

Основная интеграция Sipuni c различными CRM это большой продукт, который учитывает пожелания большинства клиентов. В него сложно, а порой невозможно добавить доработку, необходимую одному клиенту.

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

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

Что необходимо для использования Sipuni функций

Вам потребуются знания JavaScript, базовые знания работы с promises и умение работать с API.

Самая простая функция

На странице с функциями в личном кабинете (opens new window) выберите событие «Входящий звонок на внешний» и нажмите «Создать функцию».

Создание функции

В результате, вы увидите редактор кода с примером, который выводит в логи сообщение «Hello from Sipuni function».

module.exports = async (args) => {
    console.log('Hello from Sipuni function');
};

Редактирование функции

Нажмите кнопку «Сохранить и выполнить». Через некоторое время, около 20 секунд, в окне «Логи» появится результат работы функции. В этот момент она еще не принимает звонки, это наш черновик.

Если нажать кнопку «Опубликовать» функция начнет принимать звонки, и параметры args будут содержать информацию о звонке, настройки и контекст звонка.

Параметры функции

При вызове функции она получает объект с информацией о звонке, настройках и контексте звонка. Вы можете использовать эту информацию для логики ваших функций.

Ниже показан пример объекта, передаваемого в параметры функции. Для разных событий объект немного отличается, например, при завершении звонка, call_args дополнительно содержит ссылку на запись разговора.

Здесь показан не полный объект, смотрите отдельную статью о параметрах функции и значениях полей.

{
    "call_args": {
        "call_id": "1606639657.7742",
        "dst_num": "74996470001",
        "src_num": "103",
        ...
    },
    "context": {
        "timestamp_start": "1606639657",
        "first_tree_name": "Исходящая",
        "first_tree_number": "00090005"
    },
    "settings": {
        "domain": "mycompany.amocrm.ru",
        "incoming_create_deal": true,
        "incoming_create_contact": true,
        "incoming_create_task": true,
        ...
    },
    "crm_auth": "XZY13123ZX..."
}