ℝ𝕖𝕒𝕕𝕪 𝕊𝕠𝕝𝕦𝕥𝕚𝕠𝕟
405 subscribers
28 photos
14 videos
52 links
Канал, где каждый найдет что-то новое для своих проектов!
Здесь мы делимся готовыми решениями и собираем самые лучшие "фишки" в разработке, которые помогут вам воплотить в жизнь любые технические идеи.
Кейсы ботов: https://fullbiz-dev.ru/kejsy
Download Telegram
🏆 » 🅰️ » 🏆

Еще одно классное решение.
Задача, скорее всего редкая, но имеет место быть 😏

Запрос:

заказы менеджер скидывает в чат с рабочим аккаунтом WA или TG. Необходимо создавать сделку в АМО, но при этом, чтобы сообщение которое содержит данные заказа помечалось как примечание в карточке сделки.

Сложность: в том, что в АМО необходимо отключить бота с приветственным сообщением, иначе сделки могу создаваться постоянно по кругу, при любом сообщении отправленным через Wazzup. Как менеждером (ботом), так и клиентом.

USEcases:

при отправке сообщения содержащее слово "Заказ" в чат компании, в АМО создается сделка с этим заказом и данные из сообщения заносятся в примечание к сделке.

Решение:

- создаем подключение Wazzup с Albato ( ссылочку приложу тут );
- делаем связку Wazzup и АМО из 1 триггера и 3 действий;
- в триггере, которым является Wazzup, обязательно настраиваем фильтр на содержание слова "Заказ" в тексте сообщения;
- далее как и обычно при создании сделок в АМО из любого сервиса: создаем контакт, создаем сделку. Момент - на действии создания контакта обязательно настройте проверку дублей на "не создавать при наличии дубликата", а на создании сделки оставляем неизменным.
- после создания сделки добавляем действие "Новое примечание" и настраиваем: устанавливаем принадлежность примечания "Сделка", id сделки получаем из предыдущего шага, а текст примечания из первого шага "Текст сообщения".

Вот и все. Теперь при любом входящем сообщении со словом заказ сделка будет создаваться в АМО с примечанием. Так же можно сделать и заполнение полей сделки. Порезать сообщение и вкидывать отрезки в нужные поля.

🗣🗣🗣🗣🗣🗣 Используйте в фильтре другие слова, а не "Заказ", поскольку данное слово довольно распространенное и может использоваться в переписке.

⚠️🟢Напоминаем, что при интеграции с АМО, всегда используется сначала "Создание нового контакта", а потом "Создание сделки»
#альбато #амо #wazzup
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🌎 » 🅰️ » 🏆

Очередная интересная задачка от наших партнеров 🙈

Запрос:

при изменении ячейки, а в нашем случае это чек-бокс, менять статус сделки в АМОcrm.

Сложность:

в том, что любое изменение в сделке можно провести только при наличии ID сделки. Да оно есть в таблице, но находится в другом столбце

USEcases:

при выборе статуса в таблице (нажатием на чек), сделка перемещается на этот статус, только в АМО. И так от статуса к статусу, по всему пути сделки.

Решение:

- Ну про подключение всех сервисов к Albato уже писать не буду 😎
- Триггером назначим как раз Google Sheets с действием "Следить за обновлениями на листе"
- Далее необходимо получить ID сделки, который находится в другом столбце с помощью действия "Найти строку по номеру", поскольку триггер нам такой информации не дает.
- Далее просто начинаем выставлять условия, поскольку статусов много и перемещать сделку необходимо в разные этапы АМО.
- При настройке действия "Обновление сделки по ID" в поле ID выбираем значение из действия "Найти строку по номеру" и выбираем необходимый столбец
- Инструмент "Роутер" позволяет обработать разные условия и переводить на соответствующий этап связки при их выполнении.
#альбато #амо #sheets
Please open Telegram to view this post
VIEW IN TELEGRAM
🔤🔤🔤🔤

Формируем пригласительную ссылку с UTM-меткой в боте LeadTex

Запрос:

обработать переменную и удалить пробелы из нее, так как в ЮТКУ попадает название команды, в которую приглашают для совместного использования бота, то название могут писать совершенно разными способами.

Сложность:

в том что пользователи могут писать названия с пробелами, а URL не принимает пробелы и разрывает ссылку на месте пробела.

USEcases:

в момент создания команды при заполнении названии в боте, пользователь может указать любое название и с пробелами и на латинице, бот понимает что название нужно вставить в ссылку и обработать эту переменную. Выполняется функция JS, которая преобразует текст и заменяет пробелы на "_", формируя ссылку. При переходе по ссылке бот считывает UTM и преобразует переменную в обратном порядке, меняя "_" на проблы.

Решение:

- Добавляем блок HTTP-запрос в сценарий бота LeadTex после необходимого блока при создании пригласительной ссылки (у нас это блок "Название команды")
- Вставляем JS-код (в конце поста вставлю сам код)
- В коде указываем необходимые переменные которые нужно назначать или подставлять
- Добавляем финальный блок с выводом ссылки и добавляем в текст сообщения статичную часть ссылки по примеру https://ap.leadteсh.ru/w/dTDc?utm_team={{$team}}
где переменная локальная содержит измененное название и выглядит это так: https://ap.leadteсh.ru/w/dTDc?utm_team=тук_так
- Добавляем блок HTTP-запрос в сценарий бота LeadTex после необходимого блока при переходе по пригласительной ссылки для определения переменной и конвертации ее в начальный вид

👩‍💻 Убираем пробелы
var team = getContactVariable("nameteam");
team = team.replace(/\s/gm, '_');
setContactVariable("team", team)


👩‍💻 Возвращаем пробелы
var team = getContactVariable("team");
team = team.replace(/_/gm, ' ');
setContactVariable("Название команды", team)


⚠️🟢В нашем примере мы используем дополнительно блоки "Операция над переменной", поскольку этого требует логика бота 👉 @Quick_taskBOT

#leadtex
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔤🔤🔤🔤» 🅰️ » 🏆 » 🅰️ »🔤🔤🔤🔤

Клиенты фантанируют хотелками, что собственно и толкает на поиск крутых решений 😃

Сложность:

Никакой) особенно, если знаете, что такое АPI-запрос)
Главное не забыть передать в АМО значение contact_id, потому что по нему будут обновляться данные в боте

USEcases:

Пользователь проходит хук в боте LeadTex (заявка), сразу создается контакт в АМО и на его основе создается сделка. При изменении статуса сделки, в боте пользователю прописываются теги и переменные.

Решение:

- Ну про подключение всех сервисов к Albato уже писать не буду 😎
- В 👉этом посте описано👈 подключение вебхука LeadTex в Albato;
- Еще нам нужно сделать подключение "HTTP Запрос/Исходящий webhook" по документации API (в данном случае метод attachTagToContact- который назначает тег контакту);
- Далее настраиваем обратный проброс из АМО в бота. Делаем это отдельной связкой, выставляем условия запуска связки (например при смене статуса на "Закрыто и реализовано");

⚠️🟢Напоминаем, что при интеграции с АМО, всегда используется сначала "Создание нового контакта", а потом "Создание сделки».
⚠️🟢Не забывайте про токен сервиса LeadTex, иначе не будет работать.

#альбато #амо #leadtex
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
Media is too big
VIEW IN TELEGRAM
🔤🔤🔤🔤» 🏆🏆🏆

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

Сложность:

Сначала надо получить информацию о проекте. Все id проекта (колонки, доски)

USEcases:

Поставлена задача в боте, она дублируется в задачнике. В нужном проекте, в нужном этапе и нужному сотруднику.

Решение:

Инструкция по настройки интеграции в документации API.
Видео приложили.

👩‍💻 API WEEEK

⚠️⚠️Данный пример реализован в нашем боте 👉 @Quick_taskBOT

#апи #leadtex #weeek
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
Media is too big
VIEW IN TELEGRAM
🔤🔤🔤🔤» 🌎
Решили сделать своего переводчика 🧐

Сложность:

Все API Yandex можно получить только через Yandex Cloud.
И еще в том, что мы решили сделать его многоязычным.

USEcases:

Кейс тут понятный)) отправляем текст в бота, получаем перевод на выбранный язык.

Решение:

- Ну конечно первое, что нужно сделать - зарегистрировать аккаунт в YC;
- Далее регистрируем сервисный аккаунт в пространстве;
- В LeadTex первым делом после старта получаем язык пользователя и записываем в переменную;
- Добавляем в глобальные переменные системные текста;
- Далее делаем запрос к YT для перевода первого системного текста на тот язык, на котором общается пользователь;
- После даем пользователю выбор на какой язык нужно переводить;
- Ну и далее запрашиваем у пользователя текст для перевода.


👩‍💻 Как начать работать с API Yandex
👩‍💻 API Translate


⚠️⚠️Создавайте сервисный аккаунт, с ним проще передать API key. Если нужна будет помощь с получением API key, пишите в комменты 🤓

⚠️⚠️Данный пример реализован в нашем боте 👉 @dasha_translator_bot

#апи #leadtex #yandex #translate
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🔤🔤🔤🔤» 🌎
Обработка абзацев в переводчике 🧐

Сложность:

Бот не принимает для перевода текста с абзацами.

USEcases:

Текст для перевода отправляем боту. Бот принимает текст и записывает в переменную. Далее JS обрабатывает полученный текст: удаляет переносы на 1 строку. Обработанный текст отправляется по запросу в Яндекс.Транслейтер. ЯТ возвращается переведенный текст, а затем бот обрабатывает по новой через JS, но теперь возвращает абзацы на места.

Решение:

Интеграцию LeadTex и Переводчика от Яндекс по API описывали ранее, в этом посте.

Теперь надо исправить несколько моментов, для удобного использования.
С помощью JS.

👩‍💻 Скрипт удаление абзацев ( переменные взяты из действующего бота)
var text4 = getContactVariable("text4").replace(/\n/g, "$");
// Ваш текст и сразу меняем перенос на $

setContactVariable("text4", text4)


👩‍💻 Скрипт возвращения абзацев ( переменные взяты из действующего бота)
var text4 = getContactVariable("text4").replace(/\$/g, "\n"); 
// Возвращаем переведенный текст и заменяем символ $ на абзац

setContactVariable("text4", text4)


⚠️⚠️Данный пример реализован в нашем боте 👉 @dasha_translator_bot

#апи #leadtex #yandex #translate
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
🚀 Мы всегда стремимся улучшать наши продукты и делать их еще более удобными для вас.
👀 Если вы хотите видеть новые интеграции или функциональные возможности, не стесняйтесь сообщать нам!
👇 Просто оставьте комментарий, и мы постараемся воплотить ваши идеи в жизнь. Новые задачи мотивируют нас 💡
Please open Telegram to view this post
VIEW IN TELEGRAM
4
This media is not supported in your browser
VIEW IN TELEGRAM
🔤🔤🔤🔤
Проверяем подписку на любой канал

Сложность:

Стандартным способом можно проверить тольно определенный канал, указанный в блоке "Условие".

USEcases

Проверять подписку на канал/группу по присланной ссылки.
Так же можно выбирать из списка канал и проверить подписку на него.

Решение

Добавляем канал:
- про текстовые блоки писать не буду, на видео они видны и не несут большой функциональной нагрузки;
- добавляем блок "Переключатель" в котором настраиваем проверку присланного сообщения, то была ссылка или юзер чата;
- добавляем http-блок и обрабатываем ответ с помощью JS (скрипты в конце поста) для получения "голого" юзернейма;
- добавляем http-блок для формирования запроса к Telegram, для получения данных о канале/группе;
- текстовый блок для вывода полученной информации;
- добавляем http-блок для формирования запроса к Telegram, для проверки статуса администратора нашего бота в том или ином канале/группе;
- текстовый блок с результатом проверки;
Проверяем подписку:
- добавляем http-блок для формирования запроса к Telegram, для получения статуса пользователя;
- ну и завершаем смысловую нагрузку любимым блоком "Условие".

PS дальнейшие блоки просто для красоты интерфейса 🥹

👩‍💻 API Telegram

👩‍💻 Выборка юзера из ссылки
var ret = getContactVariable("link_chat").replace('https://t.me/','');
setContactVariable("username_chat", ret)


👩‍💻 Выборка юзера из @/юзернейма
var ret = getContactVariable("link_chat").replace('@','');
setContactVariable("username_chat", ret)


⚠️🔥Не забудьте назначит локальную переменную LeadTex, прежде чем присваивать ей значение переменной JS.

🎞 Добавление канала и проверка подписки через бота на Leadtex

#leadtex
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🔤🔤🔤🔤
Записываем ответ Json в переменные

Сложность:

Умение работать с API. И правильно читать ответ.

USEcases:

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

Решение:

- строим необходимую логику и в http-блоке включаем тумблер "Выводить тело ответа в чат";
- удаляем или просто не делаем связь со следующим блоком;
- переходим в бота и двигаемся по логике до блока с запросом, чтобы получить ответ в чате с ботом;
- копируем полученный ответ и переходим на сервис JSON formatter;
- в левое поле вставляем скопированный ответ, автоматом в правом поле появляется структурированный ответ, который содержит все данные из запроса;
- переключаем режим редактора на "Дерево";
- выбираем необходимый элемент и выделяем его одним нажатием кнопкой мыши;
- над редактором, в "хлебных крошках" (путь к элементу) копируем все что справа от data (включительно);
- переходим на LeadTex и в http-блоке, из которого получали ответ, выключаем тумблер "Выводить тело ответа в чат" и включаем тумблер "Записать ответ json в переменные";
- по кнопке добавляем столько полей, сколько значений необходимо записать в переменные;
- вставляем, скопированное из форматтера, в левое поле и заменяем символы ▶️ на точки;
- в правое поле прописываем ту переменную, в которую надо записать данное значение;
- возвращаем или добавляем связи http-блока со следующим блоком и при повторном прохождении через http-блок, все нужные значения запишутся в переменные.

👩‍💻 JSON formatter

⚠️🟢Если в ответе вместо data, видите result, то в http-блоке в соотношении переменных, в левом поле между result и значением, НОЛЬ не ставится, а только одна точка.

⚠️🟢Если в http-блоке в соотношении переменных, в левом поле прописали data.0.[значение], а данные в переменную не записываются, то попробуйте убрать одну точку и ноль или заключить ноль в [ ] (квадратные скобки).

🎞 Записываем ответ JSON в переменные в блоке HTTP-запрос на LeadTex
❤️ Как записать ответ JSON в переменные на платформе #LeadTex

#leadtex #api
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔤🔤🔤🔤
Редактируем запись списка из бота по API

Сложность:

Умение работать с API. И правильно записать ответы в переменную

USEcases:

Очень много вопросов, как поменять запись нестандартными способами или как переписать значение списка в локальные переменные.
Кейс прост: записываем любые данные и бот сохраняет их в список. Но бывает момент, когда запись нужно изменить прямо из бота и в этом поможет API.

Решение:

- добавляем запись в список стандартным блоком "Добавление записи в список";
- чтение записей организовываем также стандартным блоком "Чтение записей из списка" и обязательно включаем запись ответа в переменную;
- добавляем http-блок с запросом к спискам LeadTex и ответ записываем в переменные, как это сделать можно посмотреть в этом посте "Записываем ответ Json в переменные";
- добавляем блок "Цепочка сообщений" и в нем выводим переменные, в которые записали каждое значение элемента списка;
- далее добавляем необходимую логику для редактирования, в нашем примере Название и Описание;
- еще не маловажно добавить блок для получения ответа от пользователя и также ответ записываем в переменную;
- и финалим: добавляем блок http-блок с запросом на изменение записи в списке LeadTex.

👩‍💻 API LeadTex (списки)

⚠️🟢В блоке "Чтение записей из списка" в переменную ВСЕГДА записывается значение первого значения (колонки) в списке.

#leadtex #api
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍2
Media is too big
VIEW IN TELEGRAM
🔤🔤🔤🔤
Сообщение в тему чата и его изменение через бот (создание темы через бот)

Сложность:

Умение работать с API. И правильно записать ответы в переменную.
Определить наличие включенных тем в чате.
Также обязательно необходимо сохранять все id, а именно чата и сообщения.
Бот не записывает значение true в переменную из json.

USEcases:

Отправляем сообщение в чат, в созданный топик с помощью бота.
Бот сохраняет id чата и сообщения в список.
При необходимости изменяем отправленное сообщение в чате через бота, который получает данные для запроса из списка.

Решение:

Проверка чата описана тут "Проверяем подписку на любой канал".
Чтобы вписать информацию о наличии топиков в чате, необходимо использовать JS, ниже он представлен.
В случае, если в чате не включены темы, сообщение будет отправляться автоматически в общую ленту. А если темы включены, то бот создаст свой топик и будет отправлять сообщения в него.
Остальные решения описаны в видео, Все вопросы можете оставлять в комментариях 🤓

Time code

2:26 - проверяем наличия включенных тем;
3:06 - проверяем статус бота и права бота на возможность создавать темы;
3:20 - создаем топик в боте, если темы включены;
3:53 - проверяем наличие записи в списке о созданной теме перед отправкой сообщения;
4:08 - отправляем сообщение в чат, если запись о созданной теме не найдена;
4:15 - отправляем сообщение в тему чата, если запись о созданной теме найдена;
4:33 - записываем данные о сообщении в список (id сообщения и чата) после;
5:05 - получаем данные о сообщении из списка, для изменения отправленного сообщения;
5:22 - редактируем отправленное сообщение.

👩‍💻 API LeadTex (списки)
👩‍💻 API Telegram

⚠️🟢Пока нет метода в API Telegram, для определения количества и id топиков чата. Поэтому в нашем случае создаем свой топик.

🎞 Отправляем сообщение в топик и меняем его через бота на LeadTex

#leadtex #api #telegram_api
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🔤🔤🔤🔤+ 🧑‍💻
Для тех кому нужно генерить уникальный код для платежных систем на платформе LeadTex , подойдет данный код:

USEcases:

Для платежных систем (на примере 💵) необходимо указывать ключ идемпотентности (универсальный уникальный идентификатор). Данный код сгенерирует код и запишет его в локальную переменную.

Решение:

- добавляем блок http-блок или интерпретатор JS;
- для http-блока в поле url вводим любую ссылку на ресурс;
- для http-блока включаем обработку ответа с помощью JS и вставляем код.

🧑‍💻 Код JS
function generateUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}

var key = generateUUID();
setContactVariable("Idempotence-Key", key)


⚠️🟢Функция setContactVariable - это внутренняя функция LeadTex, предназначенная для присвоение переменной js локальной переменной пользователя бота.

⚠️⚠️Больше полезной информации можете узнать через нашего бота на базе ИИ 👉 @dasha_smartassistant_bot

#leadtex #js #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍111
This media is not supported in your browser
VIEW IN TELEGRAM
🔤🔤🔤🔤
Своя картинка в список через бот

Сложность:

Стандартным блоком пока нельзя добавить картинку в список, если эта картинка не была прислана пользователем.
Ну и как всегда знание API 👍

USEcasec:

На нашем примере - это добавление обложки для записи в списке.
Пользователь вводит данные. Бот сохраняет эти данные в список и в поле обложки подставляет свою картинку.

Решение:

- создаем список сбора данных, одно из полей делаем с типом картинка, для обложки;
- готовим сценарий по сбору необходимых данных;
- в конце добавляем http-блок и прописываем запрос на добавление записи в список;
- поле "картинка" прописываем массивом, в параметр url вставляем ссылку на картинку из общего доступа.

👩‍💻 API LeadTex (списки)

🧑‍💻 Тело запроса в формате json

{
"data": {
"imya": "{{$Имя}}",
"tekst": "{{$Текст}}",
"oblozka": {
"type": "image",
"mime_type": null,
"createdat": null,
"name": "oblozka_zapisi.png",
"size": 0,
"storage": "url",
"caption": null,
"meta": {
"width": null,
"height": null,
"duration": null,
"codec": null
},
"url": "https://utikadmd.ru/wp-content/uploads/2023/01/1-1200x849.png"
}
}
}


⚠️🟢В примере указаны поля списка для демонстрации, необходимо подставить свои названия полей.

⚠️🟢 В параметр name можно прописать любое название, с расширением png.

Обновленное видео https://t.me/Ready_solution/114

#leadtex #api
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Media is too big
VIEW IN TELEGRAM
🔤🔤🔤🔤» 🅰️ » 💵 » 🔤🔤🔤🔤
Рекуррентные платежи в боте LeadTex через Юkassa

Сложность:

Нельзя получить входящий хук в LeadTex. Так же есть сложности с запуском повторного платежа после таймера.
Ну надо быть максимально аккуратным, все таки это 🤑.
Ну и как всегда знание API 👍

USEcasec:

👥 Пользователь оформляет подписку в боте на определенный срок и делает первый платеж;
🤖 Бот сохраняет данные о платеже в таблицу;
🅰️ Albato получает данные после успешного платежа и создает метку об успешной оплате и переменную с id метода оплаты;
🤖 Бот отправляет рассылку пользователю об успешной оплате и инициирует запуск таймера;
👥 Пользователь получает рассылку и после завершения таймера его данные отправляются в Albato;
🅰️ Albato ловит входящий хук и запускает процесс списания средств у пользователя.

Решение:

Решение описано в видео 👇

👩‍💻 API LeadTex
👩‍💻 API ЮKassa (создание платежа)
👩‍💻 API ЮKassa (создание автоплатежа)
👩‍💻 JSON formatter
👩‍💻 Кодирование Base64 (для заголовка)

📌 Как настроить хук в магазине ЮKassa
📌 Как получить секретный ключ в ЮKassa

⚠️🟢Обязательно нужно предусмотреть логику отмены подписки, в нашем случае автоплатеж срабатывает, если у пользователя есть тег "Подписка".

⚠️🟢Не советуем использовать обычные и простые генераторы ключа идемпотентности, так как значение должно быть уникальным всегда.

🎞 Рекуррентные платежи в боте LeadTex через Юkassa
❤️ Рекуррентные платежи в боте LeadTex через Юkassa

⚽️⚽️⚽️ Актуальные запросы для создания платежей тут


#leadtex #ykassa #юkassa #api #платежи
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4
Хороший сервис для разработчика чат-ботов
Postman
Теперь не обязательно ждать ответа от блока и переводить все в форматоре 😏 Пользуетесь?
Final Results
28%
Да, пользуюсь
2%
Нет, мне не нужен
70%
Нет, нужен обзор
🔥2
По результатам недавнего опроса стало ясно, что многие из вас интересуются работой инструмента для тестирования API запросов – 🧑‍💻🧑‍💻🧑‍💻
Совсем скоро мы подготовим обзор в котором рассмотрим основы создания простых запросов к Telegram Bot API, чтобы вы смогли автоматизировать различные задачи ваших ботов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2