Что делает
Ищет в интернете по вашему запросу и отдаёт список найденных страниц.
Как работает
- Может стоять первым в цепочке — входящая связь не обязательна.
- Сервис выполняет поиск, затем передаёт результаты следующему узлу — обычно в «Обработку».
- Запрос можно собрать из переменных цепочки.
Настройки
- Что найти. Текст запроса обычным языком, например «вакансии Laravel за неделю».
- Период. Ограничение по свежести: час, сутки, неделя, месяц, год или любое время.
Что уходит дальше
Список результатов поиска (заголовки, ссылки, сниппеты). Следующий узел читает его как JSON.
Важно
- Поиск списывает credits по факту запроса.
- Чем уже запрос и период, тем меньше шума в выдаче.
Что делает
Отправляет текст в ИИ: сжать, отобрать, переписать или вернуть JSON по вашей схеме.
Как работает
- Берёт данные предыдущего узла и ваш промпт.
- Инструкция уходит модели как системное сообщение — необязательна.
- Если задан формат вывода, модель должна вернуть строго его.
- После ответа можно записать поля в переменные цепочки.
Настройки
- Режим. Быстрый — короткие ответы дешевле. Точный — сложнее рассуждение, дороже.
- Промпт. Задача своими словами. Переменные пишите как {{name}}, поля входа — как {{$field}}.
- Инструкция. Тон и правила: «отвечай кратко», «без вступлений».
- Формат вывода. JSON-схема или пример объекта. Если поле заполнено, ответ должен совпасть с ним.
- Максимальная стоимость. Верхняя граница credits на этот запуск. Меньший лимит может обрезать длинный ответ.
Что уходит дальше
Ответ модели: текст или JSON, если задан формат. Дальше его читают Telegram, Email, условие и другие узлы.
Важно
- Списывается только фактический расход, не весь лимит.
- Узел можно запускать отдельно кнопкой «Запустить» в панели справа.
Что делает
Вызывает любой HTTP API: CRM, курс валют, вашу админку.
Как работает
- Принимает только одну входящую связь.
- Тело настройки — JSON запроса. После подстановок он обязан остаться валидным JSON.
- Ответ API уходит дальше как JSON.
Настройки
- Данные запроса. method, url, headers, query, body — одним JSON. Подстановки {{$field}} читаются от корня предыдущего узла, {{name}} — из переменных.
Что уходит дальше
Ответ сервера в JSON. Если API вернул текст, он тоже попадёт в данные узла.
Важно
- Сначала проверьте запрос на «Проверить» в редакторе.
- Секреты лучше держать в переменных цепочки, а не вписывать в URL.
Что делает
Ветвит цепочку: если условие истинно — выход TRUE, иначе FALSE. Данные при этом не меняет.
Как работает
- Одна входящая связь.
- Два выхода: TRUE (условие выполнено) и FALSE (не выполнено). Достаточно подключить одну ветку — вторая просто завершит цепочку.
- На подключённый выход уходит тот же JSON, что пришёл на вход.
Настройки
- Условие. Сравнение полей предыдущего узла или переменных. Путь в фигурных скобках.
Что уходит дальше
Те же данные, что пришли. Меняется только ветка, по которой пойдёт цепочка.
Важно
- Число 12 и строка «12» считаются равными.
- Сравнения > и < только для чисел: если поля может не быть, сначала проверьте != null.
- Одиночное поле без оператора: пустое / null / нет ключа = FALSE.
Условие IF
Сравнивайте поля предыдущего узла: {{$score}} >= 0.8, {{$status}} == "active". Пустой / null / отсутствующее поле в одиночной проверке считается ложью.
Операторы: == != > < >= <=. Можно написать только поле — пустое, null или отсутствующее считается ложью.
Отправить сообщение
Telegram
Что делает
Отправляет сообщение в Telegram — вам или в указанный чат.
Как работает
- Одна входящая связь.
- Если текст пустой, уходит весь JSON или текст предыдущего узла, не только заголовки.
- В тексте и chat_id работают подстановки, JSON-пути и переменные.
Настройки
- Получатель. Пусто — ваш подключённый аккаунт. Иначе chat_id чата или канала. Можно {{field}} или {{$body.message.chat.id}}.
- Токен бота. Пусто — бот Ayakun. Если заполнен, сообщение уходит через этого бота на указанный chat_id.
- Текст сообщения. {{$}} — все входные данные, {{$field}} — поле, {{name}} — переменная. Массив удобно перечислить циклом.
Что уходит дальше
Служебный результат отправки. Обычно это последний узел цепочки.
Важно
- Telegram нужно подключить в профиле, если пишете «себе» без своего токена.
- Со своим токеном chat_id обязателен: бот Ayakun не подставит ваш личный чат.
- Чтобы явно отправить JSON, напишите {{$}} в тексте.
Что делает
Стартовый узел: внешний сервис вызывает URL — и цепочка запускается.
Как работает
- Не принимает входящие связи: вебхук сам начинает цепочку.
- Внешний сервис шлёт POST, PUT или PATCH на URL узла.
- Тело запроса доступно дальше как {{$body}}, плюс method, headers и query.
Настройки
- URL вебхука. Появляется после сохранения черновика. Его копируют в форму, оплату или другой сервис.
- Новый ключ. Перевыпускает секрет в адресе. Старый URL сразу перестаёт работать.
Что уходит дальше
JSON с полями method, headers, query и body. Следующие узлы читают, например, {{$body.email}}.
Важно
- Цепочка должна быть опубликована, иначе вызов не запустит автоматизацию.
- Заголовок Authorization в данные узла не попадает.
Строки таблицы
Google Таблицы
Что делает
Читает, добавляет или обновляет строки Google Таблицы.
Как работает
- Одна входящая связь.
- Чтение возвращает JSON rows — массив объектов по заголовкам листа.
- Для записи можно подставить данные предыдущего узла или задать значения вручную.
Настройки
- Действие. Читать, добавить или обновить строки.
- ID таблицы. Из адреса таблицы: между /d/ и /edit.
- Диапазон. Например Sheet1!A1:Z — лист и ячейки.
- Доступ. Нужен OAuth-токен, API-ключ (только чтение) или JSON сервисного аккаунта.
- Значения строк. Для записи: массив массивов или объектов. Пусто — взять данные предыдущего узла.
Что уходит дальше
При чтении — { rows, ... }. При записи — подтверждение операции и при необходимости новые строки.
Важно
- Первая строка диапазона при чтении считается заголовками колонок.
- Не храните ключи в открытом виде в чужих цепочках — это доступ к таблице.
Что делает
Отправляет письмо на указанный адрес через почтовый сервер сервиса.
Как работает
- Одна входящая связь.
- Узел только отправляет: входящую почту читать нельзя.
- В адресе, теме и тексте те же подстановки, JSON-пути и циклы, что в Telegram.
Настройки
- Кому. Адрес получателя. Можно подставить поле входа, например {{$email}}.
- Тема. Тема письма, тоже с подстановками.
- Сообщение. Текст письма. {{$}} — все входные данные, цикл — для списка.
Что уходит дальше
Результат отправки. Обычно завершает цепочку вместе с Telegram или вместо него.
Важно
- Отдельно подключать Google-почту не нужно.
- Проверьте адрес: ошибка в «Кому» остановит узел.
Что делает
Меняет JSON предыдущего шага: оставить поля, переименовать, отфильтровать, отсортировать или собрать новые объекты.
Как работает
- Одна входящая связь.
- «Путь к данным» указывает кусок входа: пусто — весь вход, data — массив внутри объекта.
- Если по пути массив, операция применяется к каждому элементу. Sort всегда ждёт массив.
Настройки
- Операция. Select, Rename, Set, Remove, Filter, Sort или Map — см. примеры ниже.
- Путь к данным. rows или body.items. Пусто = весь вход.
Что уходит дальше
Преобразованный JSON: обычно массив объектов, готовый для Telegram, таблицы или условия.
Важно
- Filter использует тот же синтаксис условий, что IF ELSE, но пути читаются от элемента, не от всего входа.
- Map задаёт новые имена полей и вложенные пути — в отличие от Select, который только отбрасывает ключи.
Пример входа для операций ниже (путь data):
{
"data": [
{ "id": 1, "name": "BTC", "symbol": "BTC", "score": 3, "secret": "x" },
{ "id": 2, "name": "ETH", "symbol": "ETH", "score": 1, "secret": "y" }
]
}
Select — оставить поля
Оставляет только перечисленные ключи. Остальные отбрасываются. Поля пишутся через запятую или JSON-массивом.
Поля: id, name, score
[
{ "id": 1, "name": "BTC", "score": 3 },
{ "id": 2, "name": "ETH", "score": 1 }
]
Rename — переименовать
Меняет имена ключей, значения не трогает. Строки вида старое=новое или JSON-объект.
name=title
score=points
[
{ "id": 1, "title": "BTC", "symbol": "BTC", "points": 3, "secret": "x" },
{ "id": 2, "title": "ETH", "symbol": "ETH", "points": 1, "secret": "y" }
]
Set — задать значения
Добавляет или перезаписывает поля. Справа можно писать константу или подстановку из текущего элемента.
status=active
label={{$name}}
[
{ "id": 1, "name": "BTC", "symbol": "BTC", "score": 3, "secret": "x", "status": "active", "label": "BTC" },
{ "id": 2, "name": "ETH", "symbol": "ETH", "score": 1, "secret": "y", "status": "active", "label": "ETH" }
]
Remove — удалить поля
Убирает перечисленные ключи, остальное сохраняет.
Поля: secret, symbol
[
{ "id": 1, "name": "BTC", "score": 3 },
{ "id": 2, "name": "ETH", "score": 1 }
]
Filter — отфильтровать
Оставляет элементы, для которых условие истинно. Синтаксис тот же, что у IF ELSE; пути читаются от элемента, не от всего входа.
Условие: {{$score}} >= 2
[
{ "id": 1, "name": "BTC", "symbol": "BTC", "score": 3, "secret": "x" }
]
Sort — сортировка
Сортирует массив по полю. Нужен именно массив: одиночный объект сюда не подходит. Направление — по возрастанию или убыванию.
Поле: score, направление: по возрастанию.
[
{ "id": 2, "name": "ETH", "symbol": "ETH", "score": 1, "secret": "y" },
{ "id": 1, "name": "BTC", "symbol": "BTC", "score": 3, "secret": "x" }
]
Map — преобразовать элементы
Строит новый объект по шаблону для каждого элемента. В отличие от Select, можно задать другие имена полей и брать вложенные пути.
{
"title": "{{$name}}",
"symbol": "{{$symbol}}",
"points": "{{$score}}"
}
[
{ "title": "BTC", "symbol": "BTC", "points": 3 },
{ "title": "ETH", "symbol": "ETH", "points": 1 }
]
Дальше массив можно отдать в Telegram целиком или перечислить циклом.
Что делает
Выполняет SQL к вашей PostgreSQL, MySQL или ClickHouse и отдаёт строки в цепочку.
Как работает
- Одна входящая связь.
- Подключение идёт к вашей базе, не к служебной базе Ayakun.
- В тексте запроса можно подставлять {{$field}} и {{name}}.
Настройки
- База данных. PostgreSQL, MySQL или ClickHouse.
- Строка подключения. DSN вида postgresql://user:pass@host:5432/dbname. Хранится как секрет.
- SQL-запрос. SELECT, или другой запрос, который вернёт строки. Лимитируйте выборку.
Что уходит дальше
Всегда JSON: rows — массив строк, row_count — число. Дальше путь {{$rows}} или {{$rows[0].email}}.
Важно
- Таймаут запроса ограничен. Не запускайте тяжёлые отчёты без LIMIT.
- Не вставляйте непроверенный ввод пользователя прямо в SQL — подстановки подставляют значения в текст запроса.