Функции (API) в калькуляторе

Упрощенные вызовы API из калькулятора

API Salebot

ОБОЗНАЧЕНИЯ: ! - Обязательные параметры

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

callback()

callback(client_id, callback_message)

Параметры:

! client_id - идентификатор клиента

! callback_message - текст сообщение в колбеке

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

tg_callback()

tg_callback(platform_id , callback_message,group_id, business_connection_id)

Параметры:

! platform_id - идентификатор клиент Telegram

! callback_message - текст сообщение в колбеке

group_id - идентификатор бота Telegram

tg_business - для работы с бизнес-клиентами, передается значение "1".

Как в реакции на 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 по значению 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 - обязательный, если подключено более одного бота для мессенджера.

Функции для 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_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

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

Сделка

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

Was this helpful?