На территории Российской Федерации запрещена деятельность социальных сетей Facebook и Instagram, принадлежащих компании Meta Platforms Inc., признанной экстремистской.

Функции API работают только на тарифах «Бизнес» и «Инфобиз».

API Salebot

Обозначения: ! — обязательные параметры.

Как отправить Callback

Callback можно отправить только другому клиенту.

Себе отправить callback нельзя.

Описание

callback(client_id, callback_message)

Параметры

  • ! client_id — идентификатор клиента.
  • ! callback_message — текст сообщения в callback.

Примеры

Callback — в программировании это функция, предназначенная для отложенного выполнения. То есть это отправка сообщения, которое бот распознаёт как команду для исполнения. Клиент при этом не видит данное сообщение, оно отображается только в карточке клиента.

Отправим callback клиенту с client_id = 73704021.

Скрин карточки клиента:

Далее просто настраиваем реакцию на данный callback в блоке с условием.

Пример кода для копирования

callback('73704021', 'callback TEST123')

Как отправить Callback в Telegram

Описание

tg_callback(platform_id, callback_message, group_id, business_connection_id)

Параметры

  • ! platform_id — идентификатор клиента Telegram.
  • ! callback_message — текст сообщения в callback.
  • group_id — идентификатор Telegram-бота.
  • tg_business — для работы с бизнес-клиентами передаётся значение "1".

Пример кода для копирования

tg_callback('73704021', 'callback TEST123')

Видеоразбор

https://www.youtube.com/watch?v=Py_sQ8Rfgho

Разбор функции callback().

Как в реакции на callback-кнопку добавить переход в бота с тегом

tg_callback_url_open(callback_query_id, url)

Параметры

  • ! callback_query_id — ID, позволяющий идентифицировать пользователя, нажавшего кнопку, и показать ему Alert-уведомление.
  • ! url — URL-адрес, указывающий бота и параметр.

Пример:

t.me/your_bot?start=XXXX

Вместо your_bot укажите имя бота.

Как отправить клиенту сообщение

message()
platform_message()
whatsapp_message()

Чтобы записать в переменную текст с переносами строк, укажите значение следующим образом:

text = "Текст первой строки" + "\n" + "Текст второй строки" + "\n" + "Третья строка"

Функция message()

message(client_id, text, message_id, timeout)

Параметры

  • ! client_id — идентификатор клиента.
  • ! text — текст сообщения.
  • message_id — идентификатор блока. Если оставить параметр text пустым (''), а message_id заполнить, клиенту будет отправлен текст из указанного блока.
  • timeout — время отправки или задержка.

Если в функцию message() передать параметр message_id, блок всё равно отработает полностью, а клиент, указанный в client_id, будет перемещён в блок, переданный в параметре message_id.

В параметре timeout можно указать:

  1. Задержку в секундах до 3600.

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

    Пример:

    timeout = 50
    
  2. Дату отправки в формате дд.мм.гггг чч:мм.

    Пример:

    timeout = '03.04.2022 15:00'
    

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

Функция platform_message()

platform_message(
    platform_id,
    text,
    client_type,
    message_id,
    timeout,
    group_id
)

Параметры

  • ! platform_id — идентификатор клиента в мессенджере.
  • ! text — текст сообщения.
  • client_type — тип мессенджера. Если не указан, клиент будет найден в том же мессенджере, из которого бот отправляет сообщение. Если указан, поиск будет выполняться среди клиентов выбранного мессенджера.
  • message_id — идентификатор блока. Если указан, клиент получит сообщение из указанного блока вместо значения из text.
  • timeout — время отправки или задержка. Работает так же, как одноимённый параметр функции message().
  • group_id — идентификатор бота.

Используемые значения client_type можно посмотреть в этой статье.

Функция whatsapp_message()

whatsapp_message(phone, text, message_id)

Параметры

  • ! phone — номер телефона клиента, на котором зарегистрирован WhatsApp.
  • ! text — текст сообщения.
  • message_id — идентификатор блока. Если оставить text пустым (''), а этот параметр заполнить, клиенту будет отправлен текст из указанного блока.

К проекту должен быть подключён WhatsApp-бот.

Примеры

Простой пример отправки сообщения по client_id:

Разные варианты отправки сообщения по client_id:

Пример отправки сообщения через platform_message():

Пример кода

# Отправка сообщения по client_id
message(73704021, 'Текст сообщения для клиента')

# Отправка сообщения по client_id с задержкой в 30 секунд
message(73704021, 'Привет! Спасибо, что написал.', '', 30)

# Отправка сообщения из блока 3190 по client_id 03.04.2022 в 15:00
message(73704021, '', 3190, '03.04.2022 15:00')

# Отправка сообщения в WhatsApp
whatsapp_message('79999999999', 'Текст сообщения для клиента')

Видеоразбор

https://www.youtube.com/watch?v=QSf86of1Bv8

Разбор функции message().

https://www.youtube.com/watch?v=pi5zkqSQhAo

Разбор функций platform_message() и whatsapp_message().

Получение client_id по значению platform_id

get_client_id_by_platform_id(client_type, platform_id, group)

Функция возвращает client_id, если клиент найден по заданным условиям. В противном случае возвращается None.

Параметры

  • ! client_type — тип мессенджера. Значения client_type можно посмотреть в этой статье.
  • ! platform_id — ID клиента в указанном мессенджере.
  • group — обязательный параметр, если для мессенджера подключено более одного бота.

Если в проекте подключено несколько мессенджеров одного типа, поиск будет выполняться по всем подключённым ботам этого типа.

В таком случае рекомендуется передавать параметр group.

HTTP-запросы

GET-запрос

Функция

requests_get(url, answer_type, headers, params, auth, proxy)

Параметры

Параметр Описание
! url Ссылка, по которой выполняется запрос.
answer_type Тип возвращаемого ответа.
headers Заголовки HTTP-запроса.
params Параметры GET-запроса (могут быть указаны непосредственно в URL).
auth Параметры авторизации. Если параметр пропускается, но необходимо использовать следующий параметр, передайте 0.
proxy Необязательный параметр. Принимает значение "de" — запрос будет выполнен с европейского IP-адреса.

Значения answer_type

Значение Результат
status Возвращает HTTP-код ответа.
json Возвращает JSON-ответ.
text Возвращает текст ответа.
любое другое значение или пустое Возвращает словарь вида {"status": status_code, "data": data}.

POST-запрос

Функция

requests_post(url, answer_type, headers, data, json_data, auth, proxy)

Параметры

Параметр Описание
! url Ссылка, по которой выполняется запрос.
answer_type Тип возвращаемого ответа.
headers Заголовки HTTP-запроса.
data Тело запроса в обычном формате.
json_data Тело запроса в формате JSON. Используется вместо data.
auth Параметры авторизации. Если параметр пропускается, но необходимо использовать следующий параметр, передайте 0.
proxy Необязательный параметр. Принимает значение "de" — запрос будет выполнен с европейского IP-адреса.

Некоторые варианты заголовков могут блокировать отправку запроса с определённым типом тела.


PUT-запрос

Функция

requests_put(url, answer_type, headers, data, auth, proxy)

Параметры

Параметр Описание
! url Ссылка, по которой выполняется запрос.
answer_type Тип возвращаемого ответа (status, json, text или словарь по умолчанию).
headers Заголовки HTTP-запроса.
data Тело запроса. Формат зависит от API.
auth Параметры авторизации. Если параметр пропускается, но необходимо использовать следующий параметр, передайте 0.
proxy Необязательный параметр. Принимает значение "de" — запрос будет выполнен с европейского IP-адреса.

PATCH-запрос

Функция

requests_patch(url, answer_type, headers, data, auth, proxy)

Параметры

Параметр Описание
! url Ссылка, по которой выполняется запрос.
answer_type Тип возвращаемого ответа (status, json, text или словарь по умолчанию).
headers Заголовки HTTP-запроса.
data Тело запроса. Формат зависит от API.
auth Параметры авторизации. Если параметр пропускается, но необходимо использовать следующий параметр, передайте 0.
proxy Необязательный параметр. Принимает значение "de" — запрос будет выполнен с европейского IP-адреса.

DELETE-запрос

Функция

requests_delete(url, answer_type, headers, data, json_data, auth, proxy)

Параметры

Параметр Описание
! url Ссылка, по которой выполняется запрос.
answer_type Тип возвращаемого ответа (status, json, text или словарь по умолчанию).
headers Заголовки HTTP-запроса.
data Тело запроса.
json_data JSON-тело запроса. Используется вместо data.
auth Параметры авторизации. Если параметр пропускается, но необходимо использовать следующий параметр, передайте 0.
proxy Необязательный параметр. Принимает значение "de" — запрос будет выполнен с европейского IP-адреса.

Получение названия блока по ID

Функция

get_block_name_by_id(block_id)

Параметры

Параметр Описание
! block_id Идентификатор блока.

Функции (API) для интеграции

AMOCRM

Внимание!

Данные функции являются устаревшими.

Подключение интеграции больше недоступно, так как виджет Salebot был удалён из AmoCRM.

Рекомендуется использовать Salebot CRM для интеграции сайтов и чат-ботов.

Как получить токен

Для получения токена используется функция:

amo_token = amo_get_token()

Как добавить новую сделку

Используйте функцию:

amo_add_lead(lead_data, contact_id)

Параметры

  • contact_id — необязательный параметр. По умолчанию используется значение переменной amo_client_id.
  • lead_data — словарь с параметрами новой сделки.

Максимальный набор параметров:

amo_add_lead(
    '{"name": "Новый ЛИД", "budget": бюджет, "responsible_id": идентификатор_ответственного}'
)

Минимальный пример:

amo_add_lead('{"name": "Новый ЛИД"}')

Если ответственный сотрудник не указан, будет назначен первый созданный сотрудник.


Как переименовать сделку

amo_set_lead_name(новое_название, lead_id)

Параметры

  • lead_id — необязательный параметр. По умолчанию используется значение переменной amo_lead_id.

Пример:

amo_set_lead_name("Новое название")

Как переместить сделку по воронке

amo_change_state(status_id, lead_id, pipeline_id)

Параметры

  • status_id — ID этапа воронки, на который необходимо переместить сделку.
  • lead_id — ID сделки, которую необходимо переместить. Необязательный параметр. По умолчанию используется значение переменной amo_lead_id. Чтобы пропустить параметр, передайте None или пустую строку "".
  • pipeline_id — ID воронки, если сделка находится в другой воронке AmoCRM. Необязательный параметр. Чтобы пропустить параметр, передайте None.

Пример без передачи lead_id:

amo_change_state(status_id, "", pipeline_id)

Пример без передачи обоих необязательных параметров:

amo_change_state(status_id)

Если ID сделки хранится в стандартной переменной amo_lead_id, передавать его необязательно.

ID этапа можно посмотреть в исходном коде страницы AmoCRM:


Как получить информацию по сделке

amo_get_lead_info(lead_id)

Параметры

  • lead_id — ID сделки. Необязательный параметр. По умолчанию используется значение переменной amo_lead_id.

Пример получения информации о текущей сделке:

amo_get_lead_info()

Как получить значение кастомного поля сделки

amo_get_lead_custom_field(var_id, lead_id)

Параметры

  • var_id — ID или название кастомного поля.
  • lead_id — ID сделки. Необязательный параметр. По умолчанию используется значение переменной amo_lead_id.

Пример

var_id = 682233

amo_get_lead_custom_field(var_id, None)

Узнать ID кастомного поля можно, открыв в браузере:

вашдомен.amocrm.ru/api/v4/leads/custom_fields

Также это описано в статье:

https://docs.salebot.pro/crm/integraciya-s-amocrm#kak-otpravit-kastomnye-polya-amocrm


Как отправить кастомные поля сделке

Передача одного значения

amo_add_lead_custom_fields("идентификатор поля", "Значение")

Также третьим параметром можно передать ID сделки вручную. Если параметр не указан, используется значение переменной amo_lead_id.

amo_add_lead_custom_fields(
    "идентификатор поля",
    "Значение",
    "идентификатор сделки"
)

Передача нескольких значений

amo_add_lead_custom_fields(
    '{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}'
)

Пример:

amo_add_lead_custom_fields(
    '{"582601": "222333333", "588091": "red"}'
)

Если ID сделки передаётся третьим параметром, вторым необходимо передать пустую строку:

amo_add_lead_custom_fields(
    '{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2"}',
    '',
    "идентификатор сделки"
)

Как получить информацию о клиенте

amo_get_contact_info(contact_id)

Параметры

  • contact_id — ID контакта. Необязательный параметр. По умолчанию используется значение переменной amo_contact_id.

Чтобы пропустить параметр, передайте None.


Как получить значение кастомного поля клиента

amo_get_contact_custom_field(var_id, contact_id)

Параметры

  • var_id — ID или название кастомного поля.
  • contact_id — ID контакта. Необязательный параметр. По умолчанию используется значение переменной amo_contact_id.

Узнать ID кастомного поля можно, открыв:

вашдомен.amocrm.ru/api/v4/contacts/custom_fields

Как отправить кастомное поле контакту

Передача одного значения

amo_add_contact_custom_fields(
    "идентификатор поля",
    "Значение"
)

Также можно передать ID контакта третьим параметром:

amo_add_contact_custom_fields(
    "идентификатор поля",
    "Значение",
    "идентификатор контакта"
)

Если ID не указан, используется значение переменной amo_client_id.

Передача нескольких значений

amo_add_contact_custom_fields(
    '{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2"}'
)

Пример:

amo_add_contact_custom_fields(
    '{"582601": "222333333", "588091": "red"}'
)

Если ID контакта передаётся третьим параметром, вторым необходимо передать пустую строку:

amo_add_contact_custom_fields(
    '{"582601": "222333333", "588091": "red"}',
    '',
    "идентификатор контакта"
)

Как создать задачу

amo_create_task(
    title,
    assigned_id,
    minutes_deadline,
    task_type_id,
    lead_id
)

Параметры

  • title — текст задачи.
  • assigned_id — ID ответственного сотрудника.
  • minutes_deadline — срок выполнения в минутах.
  • task_type_id — ID типа задачи.
  • lead_id — ID сделки. Необязательный параметр. По умолчанию используется значение переменной amo_lead_id.

Чтобы узнать ID типа задачи, откройте:

вашдомен.amocrm.ru/api/v4/tasks

Как установить теги

amo_set_tags(tags, lead_id)

Параметры

  • tags — список тегов через запятую.
  • lead_id — ID сделки. Необязательный параметр.

Как установить бюджет

amo_set_budget(budget, lead_id)

Параметры

  • budget — сумма сделки.
  • lead_id — ID сделки. Необязательный параметр.

Как добавить примечание

amo_add_notes(text, lead_id)

Параметры

  • text — текст примечания.
  • lead_id — ID сделки. Необязательный параметр.

Как добавить примечание к контакту

amo_add_contact_notes(text, contact_id)

Параметры

  • text — текст примечания.
  • contact_id — ID контакта. Необязательный параметр. По умолчанию используется значение переменной amo_client_id.

Чтобы пропустить параметр, передайте None.


Как изменить имя и фамилию контакта

amo_set_contact_name('Имя', 'Фамилия')

Первый параметр является обязательным.

Пример

amo_set_contact_name('Жульен', 'Агутин')

Также третьим параметром можно передать ID контакта вручную. Если второй параметр (фамилия) отсутствует, вместо него необходимо передать пустую строку.

Пример:

amo_set_contact_name('Жульен', '', '1234567')

Как задать контакту номер телефона и e-mail

Чтобы передать клиенту номер телефона и адрес электронной почты в AmoCRM, в блоке «Калькулятор» задайте переменные:

client.phone = Телефон
client.email = Email

Данные из этих переменных будут автоматически переданы в CRM при прохождении клиента через жёлтые и красные блоки.


Как назначить ответственного сотрудника для сделки

amo_set_lead_responsible_user(
    responsible_user_id,
    lead_id
)

Параметры

  • responsible_user_id — ID сотрудника, которого необходимо назначить ответственным.
  • lead_id — ID сделки. Необязательный параметр. По умолчанию используется значение переменной amo_lead_id.

Пример

amo_set_lead_responsible_user(5912572)

Где найти ID ответственного сотрудника:


Как найти идентификатор поля

ID поля можно найти в коде страницы, нажав правой кнопкой мыши по названию нужного поля.


Битрикс24

Внимание!

Устаревшие функции.

Подключение Битрикс24 больше недоступно.

Как добавить комментарий

Сделка

bitrix_add_deal_comment(text, bitrix_deal_id)

Параметры

  • text — текст комментария.
  • bitrix_deal_id — ID сделки. Необязательный параметр. По умолчанию используется значение переменной bitrix_deal_id.

Контакт

bitrix_add_contact_comment(text, bitrix_contact_id)

Параметры

  • text — текст комментария.
  • bitrix_contact_id — ID контакта. Необязательный параметр. По умолчанию используется значение переменной bitrix_contact_id.

Лид

bitrix_add_lead_comment(text, bitrix_lead_id)

Параметры

  • text — текст комментария.
  • bitrix_lead_id — ID лида. Необязательный параметр. По умолчанию используется значение переменной bitrix_lead_id.

Как изменить ответственного

Сделка

bitrix_deal_responsible(
    assigned_by_id,
    bitrix_deal_id
)

Параметры

  • assigned_by_id — ID пользователя в Bitrix24.
  • bitrix_deal_id — ID сделки. Необязательный параметр.

Контакт

bitrix_contact_responsible(
    assigned_by_id,
    bitrix_contact_id
)

Параметры

  • assigned_by_id — ID пользователя в Bitrix24.
  • bitrix_contact_id — ID контакта. Необязательный параметр.

Лид

bitrix_lead_responsible(
    assigned_by_id,
    bitrix_lead_id
)

Параметры

  • assigned_by_id — ID пользователя в Bitrix24.
  • bitrix_lead_id — ID лида. Необязательный параметр.

Как изменить поля

Сделка

bitrix_deal_fields(fields, bitrix_deal_id)

Контакт

bitrix_contact_fields(fields, bitrix_contact_id)

Лид

bitrix_lead_fields(fields, bitrix_lead_id)

Параметры

  • fields — словарь с именами полей и значениями.
  • bitrix_*_id — идентификатор соответствующей сущности. Необязательный параметр.

Формат словаря:

'{

    "Название поля": "значение",
    "Название поля2": "значение2"
}'

Пример

bitrix_lead_fields(
    '{

        "ADDITIONAL_INFO": "Дополнительная информация",
        "UTM_CONTENT": "Содержание кампании"
    }'

)

Как выполнить поиск

Сделка

bitrix_deal_search(
    search_filter,
    select_fields,
    order
)

Контакт

bitrix_contact_search(
    search_filter,
    select_fields,
    order
)

Лид

bitrix_lead_search(
    search_filter,
    select_fields,
    order
)

Товар

bitrix_product_search(
    search_filter,
    select_fields,
    order
)

Параметры

search_filter

Словарь с условиями фильтрации.

Пример:

'{

    ">OPPORTUNITY": 0,
    "STAGE_ID": "NEW"
}'

В данном примере будут найдены сделки, у которых:

  • поле OPPORTUNITY больше 0;
  • поле STAGE_ID равно NEW.

Чтобы использовать отрицание, добавьте перед названием поля символ !.

Например:

'{

    "!STAGE_ID": "NEW"
}'

Такой фильтр найдет все сделки, у которых этап не равен NEW.


select_fields

Необязательный параметр.

Массив полей, которые необходимо вернуть.

Пример:

'[

    "ID",
    "TITLE"
]'


order

Необязательный параметр.

Используется для сортировки результатов поиска.


Возвращаемое значение

Функция возвращает словарь следующего вида:

{
    "result": [],
    "total": 0
}

где:

  • result — массив найденных объектов;
  • total — общее количество найденных записей.

Пример

result = bitrix_deal_search(
    '{"STAGE_ID":"NEW"}',
    '["ID","TITLE","UF_CRM_1637142365873"]'
)

В этом примере:

  • выполняется поиск сделок на стадии NEW;
  • возвращаются поля:
    • ID;
    • TITLE;
    • UF_CRM_1637142365873.

Если сделки найдены, функция вернет, например:

{
    "result": [
        {
            "ID": "5",
            "UF_CRM_1637142365873": "значение поля"
        },
        {
            "ID": "7",
            "UF_CRM_1637142365873": null
        }
    ],
    "total": 2
}

Как узнать имена полей сущностей

Список стандартных полей доступен в документации по интеграции с Битрикс24.


Как закрыть чат оператором в Битрикс24

Используйте функцию:

bitrix_dialog_finish(chat_id)

Параметры

Параметр Описание
chat_id Идентификатор чата в системе Битрикс24.