Функции (API) в калькуляторе
*На территории Российской Федерации запрещена деятельность социальных сетей Facebook и Instagram, принадлежащих компании Meta Platforms Inc., признанная экстремистской!
Функции API работают только на тарифах "Бизнес" и "Инфобиз".
API Salebot
ОБОЗНАЧЕНИЯ: ! - Обязательные параметры
Как отправить Callback
Callback можно отправить только ДРУГОМУ клиенту.
СЕБЕ отправить callback НЕЛЬЗЯ!
callback(client_id, callback_message)
Параметры:
! client_id - идентификатор клиента
! callback_message - текст сообщение в колбеке
Колбек - в программировании это функция, предназначенная для отложенного выполнения. То есть это отправка сообщения, которое бот распознает как команду для исполнения. Клиент при этом не видит данное сообщение, оно видно только в карточке клиента.
Отправим колбек клиенту с client_id=73704021

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

Далее просто настраиваем реакцию на данный колбек в блоке с условием.
Как отправить Callback в Telegram
tg_callback(platform_id , callback_message,group_id, business_connection_id)
Параметры:
! platform_id - идентификатор клиент Telegram
! callback_message - текст сообщение в колбеке
group_id - идентификатор бота Telegram
tg_business - для работы с бизнес-клиентами, передается значение "1".
tg_callback('73704021', 'callback TEST123')Как в реакции на 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(client_id, text, message_id, timeout)
Параметры: ! client_id - идентификатор клиента ! text - текст сообщения message_id - идентификатор блока. Если оставить поле text пустым (''), а этот параметр заполнить, то клиенту будет отправлен текст из указанного блока.
Обратите внимание, если в функции message передать параметр message_id , блок все равно отработается полностью, а клиент, которого вы указали в client_id, будет перемещен в блок, который вы передали в параметре message_id
timeout - время отправки или задержки. Если нужно отправить сообщение с задержкой, можно указать время: а) задержка в секундах до 3600 секунд. Если указано большее количество секунд, то сообщение отправится через час, если указано отрицательное число, сообщение отправится мгновенно. Например, timeout = 50. б) дату отправки в виде дд.мм.гггг чч:мм, например: timeout = ‘03.04.2022 15:00’. Если указать уже прошедшее время, то сообщение отправится мгновенно.
platform_message(platform_id, text, client_type, message_id, timeout,group_id)
Параметры: ! platform_id - идентификатор клиента в мессенджере ! text - текст сообщения client_type - тип мессенджера, необязательный параметр. Если не указан, то клиента будут искать в том же мессенджере, из которого бот отправляет сообщение. Если указан, то клиент будет найден среди базы данных указанного мессенджера. Используемые типы мессенджеров можно найти тут. message_id - идентификатор блока. Если указан, то клиент получит сообщение из указанного блока, а не значение из text. timeout - время отправки или задержка. Аналогичен одноименному параметру функции message() group_id - идентификатор бота
whatsapp_message(phone, text, message_id)
Параметры: ! phone- номер телефона клиента, на котором зарегистрирован Whatsapp ! text - текст сообщения message_id - идентификатор блока. Если оставить поле text пустым (''), а этот параметр заполнить, то клиенту будет отправлен текст из указанного блока.
К проекту должен быть подключен Whatsapp-бот
Простой пример отправки сообщения по client_id:

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

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

Получение client_id по значению platform_id
get_client_id_by_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
Функции для get-запросов
requests_get(url, answer_type, headers, params, auth, proxy)
! url - ссылка, по которой делается запрос,
answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')
headers - необязательный параметр, в нем передаете заголовки запроса,
params - параметры get запроса (могут быть указаны в url),
auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0
proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip
Функции для пост запросов
requests_post(url, answer_type, headers, data, json_data, auth, proxy)
! url - ссылка, по которой делается запрос,
answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')
headers - необязательный параметр, в нем передаете заголовки запроса
data - необязательный параметр, вариант тела запроса, если на стороне апи не работают с json
json_data - необязательный параметр, также является вариантом тела запроса, использовать нужно какой-то один
Будьте внимательны, некоторые варианты заголовков могут заблокировать отправку запроса с телом определенного вида
auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0
proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip
Функции для put-запросов
requests_put(url, answer_type, headers, data, auth, proxy)
! url - ссылка, по которой делается запрос
answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')
headers - необязательный параметр, в нем передаете заголовки запроса
data - необязательный параметр, для этого типа запроса важно знать требуемый апи формат данных
auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0
proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip
Функции для patch-запросов
requests_patch(url, answer_type, headers, data, auth, proxy)
! url - ссылка, по которой делается запрос
answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')
headers - необязательный параметр, в нем передаете заголовки запроса
data - необязательный параметр, для этого типа запроса важно знать требуемый апи формат данных
auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0
proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip
Функция для Delete запросов
requests_delete(url, answer_type, headers, data, json_data, auth, proxy)
! url - ссылка, по которой делается запрос
answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')
headers - необязательный параметр, в нем передаете заголовки запроса
proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip
data - необязательный параметр, для этого типа запроса важно знать требуемый апи формат данных
json_data - необязательный параметр, также является вариантом тела запроса, использовать нужно какой-то один
auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0
proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip
Функция для получения названия блока по его id
get_block_name_by_id(block_id)
! block_id — идентификатора (id) блока
Функции (API) для интеграции
AMOCRM
Внимание!
Устаревшие функции.
Подключение интеграции больше не доступно в связи с тем, что AMO был удален виджет Salebot.
Рекомендуем использовать SalebotCRM для интеграции с сайтами и чат-ботами.
Как получить токен
Для получения токена используется метод:
amo_token = amo_get_token()
Как добавить новую сделку
Для добавления новой сделки можно воспользоваться методом amo_add_lead(lead_data, идентификатор контакта) идентификатор контакта - необязательный параметр, автоматически берется из переменной amo_client_id.
lead_data - словарь с набором данных для нового лида. Параметр lead_data имеет вид словаря в одинарных кавычках, ключи и значения в двойных. Максимальный набор параметров:
amo_add_lead('{"name": "Новый ЛИД", "budget": бюджет, "responsible_id": идентификатор ответственного}')
Идентификатор ответственного - по умолчанию берется первый созданный сотрудник
Минимальный набор параметров: amo_add_lead('{"name": "Новый ЛИД"}')
Как переименовать сделку
Чтоб переименовать сделку клиента, достаточно вызвать функцию amo_set_lead_name(Новое название, идентификатор сделки) идентификатор сделки - необязательный параметр, автоматически берется из переменной 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 или на двойные кавычки "".
Пример как пропустить параметр: amo_change_state(status_id, "", pipeline_id)
pipeline_id — ID воронки, если сделка находится в другой воронке амо (необязательный параметр). Можно пропустить параметр, заменив на None.
Пример как пропустить два необязательных параметра: amo_change_state(status_id)
Если номер сделки подтягивается из стандартной переменной amo_lead_id, тогда его можно не передавать: amo_change_state(status_id, "", pipeline_id)
Ид состояния необходимо взять из исходников страницы AmoCRM:

Как получить информацию по сделке
amo_get_lead_info(lead_id)
где lead_id — id сделки (необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить параметр, заменив на None или не передавать.
Пример получения информации о текущей сделки: amo_get_lead_info()
Получить значение кастомного поля сделки
amo_get_lead_custom_field(var_id, lead_id)
где lead_id — id сделки (необязательный параметр, по умолчанию берется из переменной amo_lead_id). var_id — номер кастомного поля или его название, из которого нужно получить значение
Пример:
var_id = 682233
amo_get_lead_custom_field(var_id, None)
Узнать номер кастомного поля можно, открыв ссылку в браузере: вашдомен.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("идентификатор поля", "Значение")
Также третьим параметром можно передать вручную идентификатор сделки, в ином случае он автоматически подтягивается из переменной: 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"}')
Также третьим параметром можно передать вручную идентификатор сделки, в ином случае он автоматически подтягивается из переменной: amo_lead_id. При этом вторым нужно передать две одинарные кавычки!
amo_add_lead_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}', '', "идентификатор сделки")
Как получить информацию о клиенте
amo_get_contact_info(contact_id)
где amo_contact_id — id сделки, информацию о которой необходимо получить(необязательный параметр, по умолчанию берется из переменной amo_contact_id). Можно пропустить необязательный параметр, заменив его на None.
Как получить значение кастомного поля клиента
amo_get_contact_custom_field(var_id, contact_id)
где amo_contact_id — id контакта, информацию о котором необходимо получить(необязательный параметр, по умолчанию берется из переменной amo_contact_id). Можно пропустить необязательный параметр, заменив его на None. var_id — номер кастомного поля или его название, из которого нужно получить значение
Узнать номер кастомного поля можно, открыв ссылку в браузере: вашдомен.amocrm.ru/api/v4/contacts/custom_fields
Как отправить кастомное поле контакту
Передача одного значения в кастомное поле:
amo_add_contact_custom_fields("идентификатор поля", "Значение")
Также третьим параметром можно передать вручную идентификатор сделки, в ином случае он автоматически подтягивается из переменной клиента: amo_client_id
amo_add_contact_custom_fields("идентификатор поля", "Значение", "идентификатор сделки")
Передача нескольких значений одновременно:
amo_add_contact_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}')
Пример: amo_add_contact_custom_fields('{"582601": "222333333", "588091": "red"}')
Также третьим параметром можно передать вручную идентификатор контакта, в ином случае он автоматически подтягивается из переменной клиента: amo_client_id. При этом вторым нужно передать две одинарные кавычки!
amo_add_contact_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}', '', "идентификатор сделки")
Как создать задачу
amo_create_task(title, assigned_id, minutes_deadline, task_type_id, lead_id)
где lead_id — id сделки, для которой необходимо поставить задачу(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. deadline — время в минутах до завершения задачи, assigned_user_id — id ответственного, task_type_id — id типа задачи, title — текст задач
Чтобы получить id типа задачи необходимо в браузере открыть ссылку: вашдомен.amocrm.ru/api/v4/tasks
Как установить теги
amo_set_tags(tags, lead_id)
где lead_id — id сделки, для которой устанавливаются теги(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. tags — список тегов, перечисленных через запятую.
Как установить бюджет
amo_set_budget(budget, lead_id)
где lead_id — id сделки, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. budget — сумма сделки
Как вставить примечания
amo_add_notes(text, lead_id)
где: lead_id — id сделки, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. text — текст примечания

Как вставить примечание к контакту
amo_add_contact_notes(text, contact_id) где: contact_id— id контакта, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_client_id). Можно пропустить необязательный параметр, заменив его на None. text — текст примечания.
Как изменить имя, фамилию контакта
amo_set_contact_name('Имя', 'Фамилия')
Обязателен первый параметр!
Пример: amo_set_contact_name('Жульен', 'Агутин')
Также третьим параметром можно передать вручную идентификатор контакта, в ином случае он автоматически подтягивается из переменной клиента: amo_client_id. При этом, если не передан второй параметр (фамилия), то вместо него нужно передать две одинарные кавычки!
Пример: amo_set_contact_name('Жульен', '', '1234567')
Как задать контакту номер телефона и e-mail
Чтобы задать клиенту в AmoCRM номер телефона и е-мейл необходимо в поле «Калькулятор» задать переменные:
client.phone = Телефон
client.email = Емейл
Данные из этих переменных передадутся в желтых и красных блоках в CRM
Как задать ответственного сотрудника для сделки
amo_set_lead_responsible_user( responsible_user_id, lead_id)
где responsible_user_id – идентификатор назначенного пользователя
Пример: amo_set_lead_responsible_user(5912572)

Как найти идентификатор поля
Идентификатор поля можно найти в коде страницы, нажав правой кнопкой мыши на названии нужного поля:
Битрикс24
Внимание!
Устаревшие функции.
Подключение Битрикс24 больше недоступно.
Как добавить комментарий
Сделка
bitrix_add_deal_comment(text, bitrix_deal_id),где text - текст комментария bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id
Контакт
bitrix_add_contact_comment(text, bitrix_contact_id), где text - текст комментария bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id
Лид
bitrix_add_lead_comment(text, bitrix_lead_id), где text - текст комментария bitrix_lead_id - необязательный параметр, идентификатор лида, если не передан автоматически будет взят из переменной bitrix_lead_id
Как изменить ответственного
Сделка
bitrix_deal_responsible(assigned_by_id, bitrix_deal_id ), где assigned_by_id - идентификатор пользователя в битрикс bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id
Контакт
bitrix_contact_responsible(assigned_by_id, bitrix_contact_id), где assigned_by_id - идентификатор пользователя в битрикс bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id
Лид
bitrix_lead_responsible(assigned_by_id, bitrix_lead_id) assigned_by_id - идентификатор пользователя в битрикс bitrix_lead_id - необязательный параметр, идентификатор лида, если не передан автоматически будет взят из переменной bitrix_lead_id
Как изменить поля
Сделка
bitrix_deal_fields(fields, bitrix_deal_id), где fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id
Контакт
bitrix_contact_fields(fields, bitrix_contact_id), где fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id
Лид
bitrix_lead_fields(fields, bitrix_lead_id), где fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_lead_id - необязательный параметр, идентификатор лида, если не передан автоматически будет взят из переменной bitrix_lead_id
Параметр fields имеет вид словаря в одинарных кавычках, ключи и значения в двойных: '{"Название поля": "значение", "Название поля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 и вернуть для найденых сделок идентификатор, заголовок и пользовательское поле (как узнать идентификатор пользовательского поля читайте https://docs.salebot.pro/integracii/crm/integraciya-s-bitriks-24#kak-uznat-id-polzovatelskogo-polya )
В результате, если такие сделки найдены придет следующий ответ: {'result': [{'ID': '5', 'UF_CRM_1637142365873': 'значение поля'}, {'ID': '7', 'UF_CRM_1637142365873': None}], 'total': 2}
Как найти имена полей для сущностей
Ссылки на доступные стандартные поля можно найти по ссылке: https://docs.salebot.pro/integracii/crm/integraciya-s-bitriks-24#zapolnenie-polei-sdelok-i-lidov
Для закрытия чата оператором в Bitrix
Для закрытия чата оператором в bitrix используется функция bitrix_dialog_finish(chat_id), где chat_id — идентификатор чата в системе Битрикс.
Last updated