Salebot.pro
Search…
Функции (API) в калькуляторе
Упрощенные вызовы API из калькулятора

API Salebot

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

Чтобы отправить колбек используется функция:
callback(client_id, callback_message)
client_id - идентификатор клиента
callback_message - сообщение в колбеке
Клиенту с указанным id придет уведомление, которое можно отловить:
Для Телеграма можно использовать свою функцию колбека:
tg_callback(platform_id, callback_message)

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

Чтобы отправить клиенту текст или блок из воронки, используется функция:
message(client_id, text, message_id)
client_id - идентификатор клиента
text - сообщение в колбеке (None если используется message_id )
message_id - идентификатор блока (необязательный параметр)
Для отправки сообщения не через ID, а по номеру телефона через whatsapp есть функция: whatsapp_message(phone, text, message_id)

API Telegram

Подробно о подключении и использовании Телеграм ТУТ
Работает только на тарифе "Премиум"
Как прикреплять голосовые сообщения, фото, видео, анимацию и стикеры не ссылками, а внутренними файлами Телеграм, читайте тут
Подробнее о требованиях в файлам, видео и т.д. читайте тут

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

tg_send_document(platform_id, document, caption, reply_markup, parse_mode,reply_to_message_id, protect_content)
где platform_id — id клиента в мессенджере, document — ссылка на отправляемый документ, caption — описание (необязательный параметр), reply_markup — настройки кнопок (необязательный параметр), parse_mode — выделение текста в описании жирным или курсивом (необязательный параметр), reply_to_message_id - id цитируемого сообщения (необязательный параметр), protect_content — для защиты от копирования(необязательный параметр, если нужно включить, то передайте в качестве параметра 1)

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

tg_send_voice(platform_id, voice, caption, reply_markup, parse_mode, reply_to_message_id, protect_content)
где platform_id — id клиента в мессенджере, voice — ссылка на голосовое сообщение в формате .OGG, caption — описание до 1024 символов (необязательный параметр), reply_markup — настройки кнопок (необязательный параметр), parse_mode — выделение текста в описании жирным или курсивом (необязательный параметр), reply_to_message_id - id цитируемого сообщения (необязательный параметр), protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1)

Как отправить анимацию

tg_send_animation(platform_id, animation, caption, reply_markup, parse_mode, reply_to_message_id, protect_content)
где platform_id — id клиента в мессенджере, animation — ссылка на анимацию, caption — описание до 1024 символов (необязательный параметр), reply_markup — настройки кнопок (необязательный параметр), parse_mode — выделение текста в описании жирным или курсивом (необязательный параметр), reply_to_message_id - id цитируемого сообщения (необязательный параметр), protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1)

Как отправить видео

tg_send_video(platform_id, video, caption, reply_markup, parse_mode, reply_to_message_id, protect_content)
где
platform_id — id клиента в мессенджере, video — ссылка на видео, caption — описание до 1024 символов (необязательный параметр), reply_markup — настройки кнопок (необязательный параметр), parse_mode — выделение текста в описании жирным или курсивом (необязательный параметр), reply_to_message_id - id цитируемого сообщения (необязательный параметр), protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1)

Как отправить геоточку

tg_send_venue(platform_id, latitude, longitude, title, address, protect_content)
где вводятся данные: platform_id — id клиента в мессенджере, latitude —широта, longitude — долгота, title — название, address — адрес, protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1).

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

tg_send_contact(platform_id, phone, first_name, last_name, protect_content)
где phone — номер телефона в международном формате. Например, для РФ это +7XXXXXXXXXX, first_name и last_name вводятся вручную, protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1).

Как отправить стикер

tg_send_sticker(platform_id, sticker_id, protect_content)
где platform_id — id клиента в мессенджере, sticker_id — id стикера. Его можно получить, отправив нужный стикер боту https://t.me/RawDataBot . В ответ бот присылает данные, нам нужен последний параметр file_id, protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1). Его можно получить, отправив нужный стикер боту https://t.me/RawDataBot . В ответ бот присылает данные, нам нужен последний параметр file_id.

Как отправить круглое видео

tg_send_video_note(platform_id, video_note, reply_markup, protect_content)
где platform_id — id клиента в мессенджере, video_note — id видео. Его можно получить, отправив нужное видео боту https://t.me/RawDataBot. В ответ бот присылает данные, нам нужен последний параметр file_id, reply_markup — настройки кнопок (необязательный параметр), protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1), reply_to_message_id - идентификатор сообщения, в ответ на которое отправляется круглое видео.

Как отправить картинку:

tg_send_photo(platform_id, photo, caption, reply_markup, parse_mode, reply_to_message_id, protect_content)
где platform_id — id клиента в мессенджере, photo — ссылка на картинку или file_id, полученный у бота RawDataBot, caption — описание до 1024 символов (необязательный параметр), reply_markup — настройки кнопок (необязательный параметр), parse_mode — выделение текста в описании жирным или курсивом (необязательный параметр), reply_to_message_id - идентификатор сообщения, в ответ на которое отправляется несколько фото, protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1)

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

tg_send_some_photo(platform_id, image_list, disable_notification=0, reply_to_message_id=0) где platform_id — id клиента в мессенджере image_list - массив картинок (подробнее ниже) disable_notification - необязательный параметр, по умолчанию 0 - отключить нотификацию при получении, передать 1 reply_to_message_id - идентификатор сообщения, в ответ на которое отправляется несколько фото
Пример image_list:
'[["Ссылка на картинку 1", "caption", "parse_mode"], ["Ссылка на картинку 2"], ["Ссылка на картинку 3", "caption"]]'
Пример данных одной картинки: ["Ссылка на картинку 1", "caption", "parse_mode"]
Важен порядок параметров. Достаточно одного параметра - ссылки на картинку, остальные по желанию.
Описание параметров:
1 - ссылка на картинку
caption — подпись (не обязателен)
parse_mode — разметка описания (не обязателен)

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

Чтобы отправить сообщение нужно использовать одну из этих функций:
tg_send_message(platform_id, text, client_message_id=None, reply_markup=None, parse_mode=None, disable_web_page_preview=0, protect_content=False)
или
tg_send_message_1(token, platform_id, text, client_message_id=None, reply_markup=None, parse_mode=None, disable_web_page_preview=0, protect_content=False) - отправка сообщения в телеграмм с указанием бота
Функция tg_send_message_1 отличается от tg_send_message первым параметром token - токен Телеграм бота из BotFather platform_id — id в Телеграм, куда нужно прислать сообщение client_message_id - идентификатор сообщения, которое необходимо процитировать (необязательный параметр) reply_markup — настройки кнопок (необязательный параметр) parse_mode — выделение текста в описании жирным или курсивом (необязательный параметр) protect_content — для защиты от копирования. Если нужно включить, то передайте в качестве параметра 1 выделение текста в описании жирным или курсивом (необязательный параметр)
Где взять platform_id для отправки уведомлений:
  1. 1.
    У вас должен быть подключен телерам-бот к проекту
  2. 2.
    В этого бота нужно прислать любое сообщение с того телеграм-аккаунта, куда должны приходить сообщения о заявках
  3. 3.
    Далее переходите в раздел Клиенты в Salebot
  4. 4.
    В списке диалогов выбираете диалог с телеграм-аккаунтом, которому будете отправлять заявки
  5. 5.
    Копируете значение ID в мессенджере
Пример отправки курсивного текста: tg_send_message(47615196, "<i>курсив</i>",None,None,"html")
Пример отправки жирного текста: tg_send_message(platform_id, '*test*', None, None, 'markdown')
Пример отправки сообщения с кнопками:
opts = {"keyboard": [[{"text": "Налево"}, {"text": "Направо"}]]}
r = tg_send_message(platform_id, "Налево пойдешь - коня потеряешь, направо пойдешь - себя потеряешь, прямо пойдешь - счастье найдешь", None, opts, None, 0)
Важно помнить, что reply_markup забирает формат json, а калькулятор распознает только линейную запись текста (без Enter), по этому следите чтобы не было переносов строки
Для более подробного изучения возможностей работы с кнопками при отправке сообщений читайте документацию Телеграм https://tlgrm.ru/docs/bots/api#keyboardbutton

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

tg_forward_message(platform_id, from_chat_id, message_id, protect_content)
где platform_id — куда пересылать сообщение, from_chat_id — значение #{platform_id}, откуда пересылать сообщение, message_id —id пересылаемого сообщения, protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1).

Как создать ссылку на вступление в чат:

tg_create_chat_invite_link(platform_id, member_limit=None, hours=None, request=None)
где platform_id — id чата в мессенджере, member_limit - лимит на количество участников, hours - количество часов, которое будет действовать ссылка, request - будет при переходе формироваться запрос на вступление или нет.
При передаче параметра member_limit значение параметра request автоматически заменится на False. Если же нужно принимать заявки на вступление, то параметр member_limit оставляем пустым.

Как удалить ссылку на вступление в чат

tg_revoke_chat_invite_link(platform_id, invite_link)
где platform_id — id чата в мессенджере, invite_link - ссылка, которую надо удалить

Как заблокировать пользователя

tg_ban_chat_member(platform_id, user_id, hours=99999, revoke_messages=True)
где platform_id — id чата в мессенджере, user_id - id пользователя для блокировки, hours - на сколько часов блокировка, revoke_messages — необязательный параметр, означает, удалять все сообщения пользователя или нет

Как разблокировать пользователя

tg_unban_chat_member(platform_id, user_id, only_if_banned=True)
где platform_id — id чата в мессенджере, user_id - id пользователя для блокировки

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

result = tg_get_chat_member(platform_id, user_id) - получить пользователя из канала\группы (использовать для проверки подписки) см. пример ниже
где platform_id — id чата в мессенджере (можно передать через переменную #{platform_id}), user_id - id пользователя, которого проверяем
Результат: Если есть в канале\группе {"ok":true,"result":{"user":{"id":613182600,"is_bot":false,"first_name":"NAME","last_name":"LAST_NAME"},"status":"member","until_date":0}}
Результат: Если нет в канале\группе {"ok":true,"result":{"user":{"id":123456,"is_bot":false,"first_name":"Имя","username":"username","language_code":"ru"},"status":"left"}} Тут особенность самого Telegram, если клиент напрямую не контактировал с ботом, то при отсутствии его в группе\канале метод возвращает 400 ответ {"ok":false,"error_code":400,"description":"Bad Request: user not found"}
поэтому мы его форматируем под общий вид, для удобства, и отправляем следующий ответ: {"ok":true,"result":{"user":{"id":123456,"status":"left"}} , где 123456 - id пользователя.
Примеры, как можно получить значения:
result = tg_get_chat_member('-10015109988', '613182600') res = get(result, 'result') member_status = get(res, 'status') member_status - left - не состоит в группе\канале в member_status запишется статус пользователя (member, kicked, creator, administrator и тд) или None если пользователь не найден либо возникла ошибка.

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

Функция some_client_in_list(list_id, recepient), где: list_id - номер списка; recepient - это значение id в мессенджере проверяемого. Для чатов значение переменной chat_member_id.
Возвращаемый результат: True - клиент есть в списке; False - клиента нет в указанном списке.
Пример: r = some_client_in_list(123456, chat_member_id)

Как редактировать сообщения

Редактировать можно только инлайн-клавиатуру.
  • Редактирование текста в сообщении: tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview) где: Параметры parse_mode, reply_markup, disable_web_page_preview необязательные для включения disable_web_page_preview в этом параметре нужно передать 1, а для выключения - 0.
  • Редактирование описания: tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode) где: Параметр reply_markup необязательный. Параметр parse_mode — выделение текста в описании жирным или курсивом(необязательный параметр)
  • Редактирование сообщения с медиа: tg_edit_message_media(platform_id, message_id, media, reply_markup) Параметр media представляет собой словарь вида '{"type": "photo", "media": "<файл для отправки>"}', где в качестве <файл для отправки> рекомендуется указать file_id, полученный через @RawDataBot, или URL-адрес HTTP для Telegram. подробнее читайте тут Параметр reply_markup необязательный
  • Редактировать только инлайн-клавиатуру в сообщении: tg_edit_message_reply_markup(platform_id, message_id, reply_markup). Все параметры обязательны

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

tg_delete_message(platform_id, message_id)
где где platform_id — id клиента в мессенджере, message_id — id сообщения

Как установить parse_mode

parse_mode выделяет весь текст/его часть курсивом или жирным шрифтом. Может иметь значения html или markdown.
Если выбираете html:
для жирного шрифта используете "<b>caption</b>"
для курсива "<i>caption</i>"
Для Markdown:
для жирного шрифта используете "*caption*"
для курсива "_caption_"
Пример:

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

Для работы этой функции ваш бот должен быть администратором канала/чата.
Для определения числа участников в калькуляторе используйте функцию tg_get_chat_member_count(platform_id)
где platform_id - это идентификатор группы. Присвойте переменной значение этой функции как показано в примере:
count = tg_get_chat_member_count(-100160754137668)
В данную переменную попадет ответ сервера такого вида: {"ok":true,"result":6} Где result и есть число пользователей в группе вместе с админами и ботами.

Как показать пользователю действия бота (печатает/выбирает стикер и т.д)

Для работы этой функции ваш бот должен быть администратором канала/чата.
Для того, чтобы показать действия бота в данный момент (сделать некий анонс следующего сообщения), используйте функцию:
tg_send_chat_action(platform_id, bot_action),
где platform_id - это идентификатор группы, а bot_action - действие бота из списка. В приведенном примере пока обрабатывается запрос, будет выводится уведомление “бот печатает”, так как действие написано с ошибкой.
tg_send_chat_action(-100160754137668, 'choose_sticker') - правильное написание
Выберите одно из действий в зависимости от того, что по итогу придет пользователю:
typing для текстовых сообщений upload_photo для фотографий record_video или upload_video для видео record_voice или upload_voice для голосовых заметок upload_document для общих файлов choose_sticker для стикеров find_location для данных о местоположении record_video_note или upload_video_note для видеозаметки.
Данное уведомление будет отображаться пока не придет какой либо ответ от бота, но не более 5 секунд.

Общие ограничения для обычных пользователей чата или для отдельных пользователей

Для работы описанных функций ваш бот должен быть администратором канала/чата.
Для ограничения возможностей всех пользователей (кроме админов) в калькуляторе можно использовать функцию
tg_chat_permission(platform_id, permission)
platform_id - идентификатор чата, а permission - массив значений для списка ограничений, приведенного ниже. В массиве значение 1 разрешает действие, а 0 - запрещает. Порядковый номер соответствует позиции в массиве
1. can_send_messages - разрешение отправлять текстовые сообщения, контакты, местоположения и места проведения
2. can_send_media_messages - разрешение отправлять аудио, документы, фотографии, видео, видеозаметки и голосовые заметки, подразумевается наличие разрешения can_send_messages
3. can_send_polls - разрешение отправлять опросы, подразумевается наличие разрешения can_send_messages
4. can_send_other_messages - разрешение отправлять анимацию, игры, стикеры и использовать встроенных ботов, подразумевается наличие разрешения can_send_media_messages
5. can_add_web_page_previews - разрешение добавлять превью веб-страницы к своим сообщениям, подразумевается наличие разрешения can_send_media_messages
6. can_change_info - разрешение изменять название чата, фото и другие настройки. Игнорируется в публичных супер группах
7. can_invite_users - разрешение приглашать пользователей
8. can_pin_messages - разрешение закреплять сообщения. Игнорируется в публичных супер группах
В этом примере пользователям запрещаются любые действия:
permission = [0, 0, 0, 0, 0, 0, 0, 0] tg_chat_permission(-10016071312347668, permission)
В этом примере разрешается абсолютно все:
permission = [1, 1, 1, 1, 1, 1, 1, 1] tg_chat_permission(-10016071312347668, permission)
Массив с разрешениями лучше поместить в отдельную переменную.
Также для того, чтобы ограничить какого либо пользователя, есть возможность прописать ему персональные ограничения через функцию
tg_restrict_chat_member(platform_id, user_id, minutes, permission).
platform_id - идентификатор чата
user_id - идентификатор пользователя
minutes - кол-во минут, в течении которого будет действовать ограничение (если не указать явно, по умолчанию будет применено значение 3600, что соответствует 60 часам, а если указать 0, то ограничения будут действовать бессрочно)
permission - массив значений для списка ограничений, аналогичный такому в функции tg_chat_permission
Пример применения функции, в котором пользователю запретили все на 3 минуты:
permission = [0, 0, 0, 0, 0, 0, 0, 0] tg_restrict_chat_member(-1001607137668, 473737685, 3, permission)
При входе в чат пользователю будет показано уведомление о невозможности писать в чат и если ограничение по времени было выставлено, то он увидит срок действия данного ограничения.

Как сделать неактивными все существующие ссылки и заменить их на одну

Использовать с осторожностью. Все существующие ссылки для входа в вашу группу станут неактивными.
tg_export_chat_link(platform_id)
где platform_id — id группы в Телеграм, в которой нужно сделать все существующие ссылки неактивными. В случае успеха будет возвращена ссылка, которая будет единственным способом попасть в группу до тех пор, пока вновь не будут созданы дополнительные ссылки прочими способами.

Как закрепить сообщение

tg_pin_chat_message(platform_id, message_id, disable_notification) где platform_id — id группы в Телеграм, в которой нужно закрепить сообщение, message_id – id сообщения которое нужно закрепить, disable_notification – параметр определяет нужно ли отправлять уведомление всем участникам чата о новом закрепленном сообщении (уведомления всегда отключены в каналах и приватных чатах). Если не нужно отправлять уведомления, то в качестве значения параметра disable_notification передайте 1, если нужно - 0.

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

tg_unpin_chat_message(platform_id, message_id)
где platform_id — id группы в Телеграм, в которой нужно открепить сообщение, а message_id (необязательный параметр) – id сообщения которое нужно открепить. Если message_id не указано, то самое последнее закрепленное сообщение (по дате отправки) будет откреплено.

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

tg_unpin_all(platform_id) где platform_id — id группы в Телеграм, в которой нужно открепить все сообщения.

Как установить аватарку на группу/чат

tg_set_chat_photo(platform_id, photo), где platform_id — идентификатор чата, в котором Вы хотите установить аватарку, photo — ссылка на фото.
Фото по ссылке не должно иметь объем свыше 10 МБ
tg_set_chat_photo(-1001607137668123, 'https://static10.tgstat.ru/channels/_0/f8/f8198fa2a902c0538ef425f284f03e9d.jpg')

Как удалить аватарку группы/чата

tg_delete_chat_photo(platform_id), где platform_id — идентификатор чата, в котором Вы хотите удалить аватарку.
tg_delete_chat_photo(-1001607137668123)

Как показывать пользователю Alert-уведомления

Данные уведомления показываются только в результате нажатия на callback-кнопку в телеграмме.
Для примера будут использоваться следующие кнопки: [{"line":0,"index_in_line":0,"text":"111","type":"inline","callback":"первая"}, {"line":1,"index_in_line":0,"text":"222","type":"inline","callback":"вторая"}, {"line":2,"index_in_line":0,"text":"333","type":"inline","callback":"третья"}]
После нажатия на такую кнопку приходит callback с текстом, содержащимся в соответствующем поле.
При нажатии на кнопку “111” придет callback с текстом “первая”. Далее создаем блок с первостепенной проверкой условия и в условие пишем желаемый текст. В нашем случае “первая”:
Если в поле Выбор соответствия выбрать Игнорируя ошибки и неточности, то в дальнейшем можно будет такой блок использовать для всех вариантов, которые отличаются на 1-2 символа. Например, благодарить за поставленную такой кнопкой оценку работы.
Далее в калькуляторе используйте функцию tg_answer_callback_query и в нее поместите такие параметры: callback_query_id - данный id позволяет идентифицировать нажавшего кнопку и продемонстрировать ему Alert-уведомление, text - текст Alert-уведомления.
tg_answer_callback_query('#{callback_query_id}', "Вы нажали кнопку 111")
Важно! Параметр callback_query_id нужно передавать так, как показано в примере, т.е. в '#{}'
Если все подготовлено правильно, то результатом нажатия на кнопку будет Alert-уведомление с заданным текстом. В мобильной версии имя бота будет как заголовок над текстом.

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

Для установки команд

tg_set_command(commands, language, scope, platform_id, user_id), где
commands — команды для бота в виде списка списков, каждый вложенный список состоит из 2 элементов из которых 1 - наименование команды, а 2 - ее описание (существует ограничение в 100 команд),
language – двухбуквенный код языка ISO 639-1, например 'ru' или 'en' (необязательный параметр, если не указан, то команды будут применяться ко всем пользователям из заданной области, для языка которых нет выделенных команд),
scope – параметр описывающий круг пользователей, для которых создаются команды(необязательный параметр, если не используете, то по умолчанию будет применено значение 'default'),
platform_id - идентификатор чата (необязательный параметр, применяется только при определенных значениях параметра scope),
user_id – идентификатор пользователя (необязательный параметр, применяется только при определенных значениях параметра scope).
command = [["count", "return count of user"],["unpin", "unpin all message"]] tg_set_command(command, '', 'all_chat_administrators')
В этом примере команды вынесены в отдельную переменную. Также можно добавить эти команды прямо в функцию:
tg_set_command('[["count", "return count of user"],["unpin", "unpin all message"]]', '', 'all_chat_administrators')
Для дальнейшего вызова команд в поле ввода сообщения введите символ '/'. Если все было сделано верно, то увидите подсказку в виде списка команд. Жирным шрифтом выделены команды, правее их описание.
Для использования команд настройте реакцию на сообщения содержащие команды.
Для команд в переписке с ботом реагировать нужно на сообщения вида: '/command_name' – в этом примере command_name – команда.
для команд в чатах при вводе команды будут приходить сообщения вида:
Для команд в группах и чатах реагировать нужно на сообщения вида:
'/[email protected]_username' – в этом примере command_name – команда, а @bot_username – username бота.
Варианты параметра scope:
'default' - параметр по-умолчанию, подразумевает что команды будут работать в личных сообщениях с ботом.
'all_private_chats' – все закрытые чаты, команды доступны всем в закрытых чатах, в которых добавлен бот.
'all_group_chats' – все групповые и супергрупповые чаты, команды доступны всем в указанных видах чатов, в которых добавлен бот.
'all_chat_administrators' – команды для администраторов всех групповых и супергрупповых чатов, в которых добавлен бот.
'chat' – команды для определенного чата (если выбрали данный вариант, то необходимо указать platform_id).
'chat_administrators' – команды для администраторов определенного чата (если выбрали данный вариант, то необходимо указать platform_id).
'chat_member' – команды для конкретного участника определенного чата (если выбрали данный вариант, то необходимо указать platform_id и user_id, указанный пользователь должен состоять в указанном чате).
Если Вы не хотите использовать параметр language, но при этом используете параметр scope, то не забудьте указать после команд пустой параметр, как в примере: tg_set_command(command, '', scope)

Для просмотра команд

tg_get_command(language, scope, platform_id, user_id), где
language – двухбуквенный код языка ISO 639-1, например 'ru' или 'en' (необязательный параметр, если не указан, то будут показаны команды, применяемые ко всем пользователям из заданной области, для языка которых нет выделенных команд),
scope – параметр описывающий круг пользователей, для которых должны быть показаны команды(необязательный параметр, если не используете, то по умолчанию будет применено значение 'default'),
platform_id - идентификатор чата (необязательный параметр, применяется только при определенных значениях параметра scope),
user_id – идентификатор пользователя (необязательный параметр, применяется только при определенных значениях параметра scope).
command = tg_get_command('', 'all_chat_administrators')
Переменной присваиваем в качестве значения эту функцию и внутри переменной после выполнения будет ответ сервера с командами для заданного в параметре scope круга пользователей.
{"ok":true,"result":[{"command":"count","description":"return count of user"},{"command":"unpin","description":"unpin all message"}]}
Если вызвать функцию без параметров, то scope по умолчанию примет значение 'default'.
command = tg_get_command()
Если Вы не хотите использовать параметр language, но при этом используете параметр scope, то не забудьте указать в начале пустой параметр, как в примере:
tg_get_command('', scope)

Для удаления команд

tg_delete_command(language, scope, platform_id, user_id), где
language – двухбуквенный код языка ISO 639-1, например 'ru' или 'en' (необязательный параметр, если не указан, то будут удалены команды, которые применяться ко всем пользователям из заданной области, для языка которых нет выделенных команд),
scope – параметр описывающий круг пользователей, для которых удаляются команды(необязательный параметр, если не используете, то по умолчанию будет применено значение 'default'),
platform_id - идентификатор чата (необязательный параметр, применяется только при определенных значениях параметра scope),
user_id – идентификатор пользователя (необязательный параметр, применяется только при определенных значениях параметра scope).
tg_delete_command('', 'all_chat_administrators')
Если Вы не хотите использовать параметр language, но при этом используете параметр scope, то не забудьте указать в начале пустой параметр, как в примере:
tg_delete_command('', scope)
Команда вида tg_delete_command() удалит команды без указания параметра language из параметра scope по-умолчанию.

Как отправить файлы внутри Telegram

В методах send_document, send_voice, send_animation, send_video, send_photo можно не вставлять ссылки на внешние ресурсы, а пользоваться файлами в Telegram.
Например, нам нужно отправить голосовое сообщение. Для этого мы воспользуемся ботом https://t.me/mp3toolsbot. Отправляем ему нужный файл, который нужно сконвертировать в OGG формат. Далее нажимаем Voice Converter, а потом Save.
На выходе получаем:
Далее мы пересылаем это сообщение своему боту, а оттуда пересылаем в https://t.me/RawDataBot. Нам приходит ответ, где нужно скопировать последнее значение file_id
Его мы вставляем сюда:
И получаем
Если вы будете пересылать файл напрямую из бота mp3 Tools в Telegram bot Raw, то будет ошибка:
Поэтому сначала необходимо отправить в своего бота, а из него —Telegram bot Raw,
Если нужно отправить видео, фото, документ, то отправляете нужный файл своему боту и оттуда пересылаете в Telegram bot Raw. Далее копируете file_id и т.д., как описано выше.

API ВКонтакте

Подробно о подключении и использовании ВК ТУТ
Работает только на тарифе "Премиум"

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

vk_send_message(platform_id, message, keyboard, reply_to, forward_messages, sticker_id, dont_parse_links)
где platform_id — id клиента в мессенджере, message — текст сообщения, keyboard — кнопки в сообщении (необязательный параметр), reply_to — id сообщения для ответа/цитаты (необязательный параметр), forward_messages — id пересылаемых сообщений (перечисляются в виде "{#айдипервогосообщения}, #{второго}, #{итакдалее}", sticker_id — id стикера (необязательный параметр), dont_parse_links — создавать сниппет или нет, может принимать значение 1 — создавать, 0 — нет (необязательный параметр)

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

vk_delete_last_message()
в скобках ничего не указывается. Произойдёт удаление последнего сообщения в беседе. На личные сообщения не распространяется

Как отправить стикер

vk_send_sticker(platform_id, sticker_id)
где platform_id — id клиента в мессенджере, sticker_id — id стикера.
Как узнать id стикера? Тот, кто подключал бота ВК, отправляет в бота нужный стикер. Его id при этом записывается в переменную. Значение переменной копируете из раздела Клиенты (см скрин:)
Результат

Как получить имя пользователя

vk_get_name(platform_id, full)
где full может принимать значение True (вы получите имя и фамилию) и False (получите только имя)
Если вы собираетесь использовать vk_get_name в беседе сообщества, вместо platform_id нужно указать from_id
Чтобы иметь возможность отвечать под комментариями, нужно вручную добавить токен.
Для этого заходите в вашу группу ВК, открываете Управление / Работа с API.

Как отправить комментарий к записи:

Чтобы иметь возможность отвечать под комментариями, нужно вручную добавить токен.
Для этого заходите в вашу группу ВК, открываете Управление / Работа с API.
Нажимаете "Создать ключ" и копируете его.
Дальше переходите в Salebot, раздел Мессенджеры и чаты, в подключении ВК выбираете "Показать токены". Сюда вставляете скопированный токен и жмете "Добавить".
Токен для создания комментариев не добавляется к общему списку токенов, а остаётся в строке, куда вы его вставили

Как оставить комментарий к записи:

Для оставления комментария используйте в поле "Калькулятор" следующий метод: vk_create_comment(post_id, message, reply_to_comment, sticker_id)
где post_id — id комментируемого поста, message — текст комментария, reply_to_comment — id комментария, на который отвечаем (необязательный параметр), sticker_id — id стикера (необязательный параметр)

Как сохранить текст комментария:

Для сохранения текста комментария используйте в поле "Калькулятор" следующий метод:
comment_text()
Пример:

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

Для проверки подписки используйте в поле "Калькулятор" следующий метод:
check_vk_subscription()
В ответ возвращается значение True, если подписан, и False, если не подписан.
В поле "Калькулятор" пишем result = check_vk_subscription()
Вместо result вы можете использовать свое название переменной. Дальше сравниваем значение нашей переменной: в одну стрелку пишем в поле "Переменная для сравнения" result == True , а в другую result == False
Если вам не нужно разделять пользователей по разным цепочкам в боте, можно сделать проверку и выдачу ответа одним блоком с помощью оператора if. Пример:
result = check_vk_subscription()
otvet = if (result == True, "Подписка есть", if (result == False, "подписки нет", "Не могу проверить, сорян"))

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

Для отправки нескольких картинок используйте в поле "Калькулятор" следующий метод:
vk_send_some_photo(platform_id, image_list, text)
platform_id — id клиента в мессенджере
image_list - массив картинок (подробнее ниже)
text - необязательный параметр, текст сообщения с картинками
Пример:
image_list: '["Ссылка на картинку 1", "Ссылка на картинку 2", "Ссылка на картинку 3"]'
Пример запроса: vk_send_some_photo('55741919977', '["https://mobimg.b-cdn.net/v3/fetch/5e/5e65ccfa836667c2747afed39c530952.jpeg", "https://mobimg.b-cdn.net/v3/fetch/c7/c7218e3b6c4aa73c29e356d80473648f.jpeg"]', 'Сообщение над картинками')

Как закрепить/открепить сообщения в чатах сообщества

Для закрепления сообщения нужно вызвать функцию: vk_pin_message(platform_id, conversation_message_id), где: platform_id - идентификатор чата conversation_message_id - идентификатор сообщения.
Пример:
vk_pin_message(2000000001, 83)
Чтобы получить platform_id, в разделе Клиенты найдите карточку требуемого чата. Нужное значение platform_id Вы найдете среди переменных клиента в переменной ID в мессенджере.
Could not load image
Сохраните значение platform_id чата в отдельную переменную, чтобы избежать возможной путаницы с подстановкой вместо нужного значения platform_id клиента.
conversation_message_id находится также среди переменных в разделе Информация о клиенте. В эту переменную записывается порядковый номер последнего сообщения от клиентов в этом чате.
Ранее закрепленное сообщение будет заменено новым сообщением.
Для открепления сообщения нужно вызвать функцию vk_unpin_message(platform_id), где platform_id - идентификатор чата, который получаете также, как для функции vk_pin_message.
Пример:
vk_unpin_message(2000000001)

Как показать пользователю действия бота (печатает, записывает аудио)

Для того, чтобы показать действия бота в данный момент (сделать некий анонс следующего сообщения), используйте функцию: vk_send_chat_action(platform_id, bot_action), где platform_id – идентификатор назначения (групповой чат или переписка клиента с сообществом), bot_action – действие бота. Возможные значения bot_action: typing – печатает, audiomessage – записывает аудио. В случае опечатки в названии действия будет использовано действие бота typing.
Пример:
vk_send_chat_action(2000000001, 'audiomessage')
Данное уведомление будет отображаться пока не придет какой-либо ответ от бота, но не более 10 секунд.

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

Для определения числа участников используйте функцию vk_get_chat_member_count(platform_id), где platform_id - это идентификатор чата.
Пример: count = vk_get_chat_member_count(2000000001)
После выполнения функции переменная count примет значение количества участников, в т.ч. +1 - бот.

Как получить ссылку-приглашение в чат

vk_export_chat_link(platform_id, new), где: platform_id – это идентификатор чата, new – необязательный параметр, при передаче в него любого значения прежняя ссылка перестает работать и будет возвращена новая ссылка, если же его не передавать, то вернет актуальную ссылку.
Пример: url = vk_export_chat_link(2000000001, 1)

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

vk_delete_message(platform_id, message_ids), где platform_id — id чата, message_ids – список из conversation_message_id Вы можете удалить как одно сообщение, так и несколько. Для удаления нескольких сообщений передайте перечень conversation_message_id сообщений, которые хотите удалить, через запятую в общих кавычках, как это показано в примере: vk_delete_messages(2000000001, "217, 215")
Согласно представленному примеру будут удалены сообщения с ид 215 и 217, а 216 останется.

Как отметить в сообществе диалог, как важный/отвеченный/прочитанный

vk_mark_conversation(platform_id, mark_type), где platform_id — id пользователя, диалог с которым нужно отметить, mark_type — необязательный параметр, тип отметки ('important' - важный (если параметр не передан, будет использован этот), 'answered' - отвеченный, 'read' - прочитанный).
Пример:
vk_mark_conversation(154275822) vk_mark_conversation(154275822, 'answered')
Пометить диалог меткой "Важный"
Отметка диалога меткой "Отмеченный"

Как снять отметку “важно” с диалога или обозначить диалог непрочитанным в сообществе

vk_unmark_conversation(platform_id, mark_type), где platform_id — id пользователя, для которого требуется снять отметку с диалога, mark_type — необязательный параметр, тип отметки ('important' - важный (если параметр не передан, будет использован этот), 'answered' - отвеченный.
Пример: vk_unmark_conversation(154275822) vk_unmark_conversation(154275822, 'answered')
Снятие отметки "Важный" с диалога
Снятие отметки "Отвеченный" с диалога

Как получить персональный токен доступа

Для некоторых методов калькулятора для ВК может потребоваться токен пользователя. Для его получения перейдите по ссылке: https://vkhost.github.io. Далее прочтите инструкцию и выберите пункт настройки:
Далее удостоверьтесь, что активированы пункты, как на скриншоте ниже.
Нажмите Получить, далее в открывшемся окне нажмите Разрешить. После этого для удобства скопируйте все из адресной строки в любой текстовый редактор, она будет иметь такой вид: https://oauth.vk.com/blank.html#access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&expires_in=0&user_id=xxxxxxx&email=xxxxxxxxxxxxxxxx Для извлечения токена найдите в ссылке ‘access_token=’ и удалите все, что идет до знака равенства, затем найдите ‘&expires_in’ и оставьте только то, что идет до знака &. В итоге останется только токен.
Внимание! Персональный токен ни в коем случае нельзя передавать кому-либо, так как он может быть использован для получения полного доступа к странице, для которой он был получен.
Полученный токен можете сохранить в любую удобную переменную и передавать ее в качестве параметра. Все действия, совершенные с помощью этого токена, будут отмечены как совершенные Вами (отправка в бан, принятие в группу).

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

Для принятия в группу по заявке используется функция: vk_approve_request(platform_id, user_id, token), где platform_id – идентификатор группы, в которую оставили заявку на вступление, user_id – идентификатор пользователя, оставившего заявку, token – персональный токен администратора.
Пример:
vk_approve_request(214443311, 154666822, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

Колбеки для группы:

client_group_join request - подан запрос на вступление в группу client_group_join approved - клиент принят в группу

Как работать с черным списком группы

Для добавления пользователя или сообщества в черный список используется функция: vk_ban_by_id(platform_id, user_id, token, end_date, reason, comment, visible), где platform_id – идентификатор группы, в черный список которой нужно добавить пользователя или сообщество, user_id – идентификатор пользователя или сообщества (если передаете идентификатор сообщества, то в перед идентификатором нужно поставить символ “-”), token – персональный токен администратора, end_date – дата окончания бана (необязательный параметр, если не использовать, то бан будет перманентный. Максимальный возможный срок окончания бана, который можно указать, — один год с его начала), reason – код причины блокировки (необязательный параметр), comment – комментарий администратора (необязательный параметр, может содержать пояснения по блокировке), visible – виден ли комментарий администратора забаненному (необязательный параметр, может принимать любое значение). По умолчанию комментарий забаненному клиенту не виден.
Дата окончания блокировки передается в виде D.M.Y, где D - число, M - месяц, Y - год. Также можно использовать current_date. Помимо этого может быть передана дата со временем в виде D.M.Y H:M, где D - число, M - месяц, Y - год, H - часы, M – минуты. Причины блокировки закодированы следующим образом: 0 — другое (по умолчанию) 1 — спам 2 — оскорбление участников 3 — нецензурные выражения 4 — сообщения не по теме В комментарии можно дать какие-либо разъяснения только для администраторов или доступные пользователю, если передан параметр видимости.
Пример: vk_ban_by_id(214443311, 154666822, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "25.05.2022 22:30", 3, "разбана до срока не будет", 1)
Для удаления пользователя или сообщества из черного списка используется функция: vk_unban_by_id(platform_id, user_id, token), где platform_id – идентификатор группы, из черного списка которой нужно убрать пользователя или сообщество, user_id – идентификатор пользователя или сообщества (если передаете идентификатор сообщества, то перед идентификатором нужно поставить символ “-”), token – персональный токен администратора.
Пример: vk_unban_by_id(214443311, 154666822, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

Как удалить пользователя из группы и всех бесед, созданных в группе

Для того чтобы удалить пользователя из группы и бесед в ней созданных используется функция: vk_remove_group_user(platform_id, user_id, token), где platform_id – идентификатор группы, в черный список которой нужно добавить пользователя или сообщество, user_id – идентификатор пользователя, token – персональный токен администратора.
Пример: vk_remove_group_user(214443311, 154666822, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
Could not load image

Как назначить/разжаловать администратора группы и указать/убрать его в списке контактов

Для назначения администратора и указания его в списке контактов используется функция: vk_edit_manager(platform_id, user_id, token, role, is_contact, position, phone, email), где platform_id – id целевой группы, user_id – назначаемый пользователь, token - персональный токен администратора, role - роль назначаемого администратора (если оставить пустым или указать должность с ошибкой, то будет лишен прав администратора), is_contact – будет ли отображаться администратор в списке контактов группы (если оставить пустым, то отображаться не будет и если отображался, то будет убран из списка контактов), position – необязательный параметр, передается только при заполненном параметре is_contact, отображаемая должность (любой текст для должности в списке контактов), phone – необязательный параметр, передается только при заполненном параметре is_contact, телефон, отображаемый в списке контактов, email – необязательный параметр, передается только при заполненном параметре is_contact, email, отображаемый в списке контактов.
В параметре role можно передать один из 4 вариантов роли администратора: moderator — модератор; editor — редактор; administrator — администратор; advertiser — рекламодатель.
Примеры использования: 1) для назначения администратора без добавления его в список контактов группы. В данном примере пользователь 33362211 будет назначен на должность модератора в группу 212223322 и не будет добавлен в список контактов.
Пример: 1)для назначения администратора без добавления его в список контактов группы. В данном примере пользователь 33362211 будет назначен на должность модератора в группу 212223322 и не будет добавлен в список контактов. vk_edit_manager(212223322, 33362211, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'moderator')
Назначение пользователя модератором группы
2)для назначения администратора с добавлением его в список контактов группы. В данном примере пользователь 33362211 будет назначен на должность модератора в группу 212223322 и будет добавлен в список контактов с указанием должности test_moder, телефона +79991111111 и электронной почты [email protected] vk_edit_manager(212223322, 33362211, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'moderator', 1, 'test_moder', '+79991111111', '[email protected]')
Could not load image
Назначение пользователя администратором группы
3)для разжалования администратора. В данном примере пользователь 33362211 будет разжалован в группе 212223322 и будет удален из списка контактов, если он там находился vk_edit_manager(212223322, 33362211, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
Could not load image
Удаление из администраторов группы
4)для добавления пользователя без прав администратора в список контактов группы. В данном примере пользователь 33362211 добавится в список контактов группы 212223322 с указанием должности test_contact, телефона +79991111111 и электронной почты [email protected], но не получит прав администратора. vk_edit_manager(212223322, 33362211, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', '', 1, 'test_contact', '+79991111111', '[email protected]')
Добавление пользователя в список контактов группы

Как получить полный вебхук от ВКонтакте

Для получения полного вебхука от ВКонтакте достаточно присвоить любое значение переменной save_webhook (переменная может быть как константой проекта, так и переменной сделки). При этом запрос от ВКонтакте будет записан в переменную vk_request.

API AmoCRM

Подробно о подключении и использовании 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=None, pipeline_id=None)
Параметры:
status_id — id этапа воронки, на который надо перенести бота,
lead_id — id сделки, которую необходимо передвинуть(необязательный параметр, по умолчанию берется из переменной amo_lead_id)
pipeline_id — ID воронки, если сделка находится в другой воронке амо (необязательный параметр)
Если номер сделки подтягивается из стандартной переменной amo_lead_id, тогда его можно не передавать: amo_change_state(status_id, "", pipeline_id)
Ид состояния необходимо взять из исходников страницы AmoCRM:

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

amo_get_lead_info(lead_id=None)
где lead_id — id сделки (необязательный параметр, по умолчанию берется из переменной amo_lead_id).

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

amo_get_lead_custom_field(var_id, lead_id=None)
где lead_id — id сделки (необязательный параметр, по умолчанию берется из переменной amo_lead_id). var_id — номер кастомного поля или его название, из которого нужно получить значение
Узнать номер кастомного поля можно, открыв ссылку в браузере: вашдомен.amocrm.ru/api/v4/leads/custom_fields

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

Передача одного значения в кастомное поле:
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=None)
где amo_contact_id — id сделки, информацию о которой необходимо получить(необязательный параметр, по умолчанию берется из переменной amo_contact_id).

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

amo_get_contact_custom_field(var_id, contact_id=None)
где amo_contact_id — id контакта, информацию о котором необходимо получить(необязательный параметр, по умолчанию берется из переменной amo_contact_id). 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=None)
где lead_id — id сделки, для которой необходимо поставить задачу(необязательный параметр, по умолчанию берется из переменной amo_lead_id). deadline — время в минутах до завершения задачи, assigned_user_id — id ответственного, task_type_id — id типа задачи, title — текст задач
Чтобы получить id типа задачи необходимо в браузере открыть ссылку: вашдомен.amocrm.ru/api/v4/tasks

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

amo_set_tags(tags, lead_id=None)
где lead_id — id сделки, для которой устанавливаются теги(необязательный параметр, по умолчанию берется из переменной amo_lead_id). tags — список тегов, перечисленных через запятую.

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

amo_set_budget(budget, lead_id=None)
где lead_id — id сделки, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_lead_id). budget сумма сделки

Как вставить примечания

amo_add_notes(text, lead_id=None)
где: lead_id — id сделки, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_lead_id). text текст примечания

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

amo_add_contact_notes(text, contact_id=None) где: contact_id— id контакта, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_client_id). 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=None)
где responsible_user_id – идентификатор назначенного пользователя
Пример: amo_set_lead_responsible_user(5912572)
Где найти идентификатор ответственного (код страницы)

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

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

API Битрикс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_lead_id) assigned_by_id - идентификатор пользователя в битрикс bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id

Контакт

bitrix_contact_responsible(assigned_by_id, bitrix_lead_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_deal_id) fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id

Лид

bitrix_lead_fields(fields, bitrix_deal_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 — идентификатор чата в системе Битрикс.

API Google-таблиц

Подробно о подключении и использовании google-таблиц ТУТ
Каждая функция принимает первым параметром sheet_id идентификатор таблицы. Вы можете получить его из ссылки на вашу гугл таблицу (то что выделено жирным в ссылке ниже). https://docs.google.com/spreadsheets/d/1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYlc4/edit#gid=0
Для удобства идентификатор таблицы лучше записать в переменную и передавать ее в функции
Все функции, описанные ниже возвращают словарь с результатом работы. Он обязательно включает status, который в зависимости от результата либо true при успехе, либо false, при ошибке.
Если статус true, то могут присутствовать и другие параметры, которые можно получить воспользовавшись функцией get()
Если статус false, то присутствует параметр err, в котором описание ошибки.