MCP-сервер TukTuk отдаёт нейросети 48 инструментов: по одному на действие публичного API. Список собран из самого сервера, поэтому совпадает с тем, что агент увидит после подключения.
#Подключение за одну строку
Сервер запускается через stdio и требует только ключ API. Ключ выпускается в кабинете: Настройки проекта → API.
{
"mcpServers": {
"tuktuk": {
"command": "npx",
"args": [
"-y",
"https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz"
],
"env": {
"TUKTUK_API_KEY": "tuk_sk_…"
}
}
}
}| Клиент | Куда положить |
|---|---|
| Claude Desktop | claude_desktop_config.json → раздел mcpServers |
| Claude Code | claude mcp add tuktuk --env TUKTUK_API_KEY=tuk_sk_… -- npx -y https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz |
| Cursor, Windsurf, Cline | mcp.json рабочего пространства, тот же блок mcpServers |
| Свой агент | запустите npx -y https://docs.tuk-tuk.online/mcp/tuktuk-mcp.tgz и говорите с ним по stdio |
| Переменная | Обязательна | Значение |
|---|---|---|
TUKTUK_API_KEY | да | Ключ публичного API, формат tuk_sk_… |
TUKTUK_API_URL | нет | Базовый адрес API, по умолчанию https://back.tuk-tuk.online/api/v1 |
Без ключа сервер всё равно запустится и объяснит агенту, как ключ получить. Это лучше, чем молчаливый отказ на первом же вызове.
#С чего начать агенту
tuktuk_manifest: что доступно этому ключу прямо сейчас.tuktuk_list_channels: через какой канал вы вообще можете говорить.tuktuk_find_contactилиtuktuk_list_contacts: найти собеседника.tuktuk_read_messages: прочитать переписку перед ответом.tuktuk_send_message: ответить.
Полный разбор сценариев: Сценарии для агента.
#Все инструменты
| Инструмент | Что делает | Право |
|---|---|---|
tuktuk_manifest | Что умеет этот аккаунт TukTuk и что разрешено вашему ключу прямо сейчас. Вызовите первым, если не уверены, доступно ли нужное действие. | любой ключ |
tuktuk_account | Баланс, тариф, лимиты и расход сообщений рабочего пространства. Лимиты приходят фактические, с учётом расширений, докупленных сверх тарифа; в subscription видно, из чего складывается счёт: цена тарифа плюс расширения. Полезно перед массовой отправкой: если canSend=false, отправка не пройдёт. | account:read |
tuktuk_dashboard | Сводка рабочего стола за 30 дней одним запросом: деньги (расход по дням, прогноз), объёмы сообщений по дням и каналам, сегодняшний поток по часам, диалоги без ответа, пиковые час и день, сегментация обращений. Только цифры: текстов переписки здесь нет. | account:read |
tuktuk_list_channels | Список подключённых каналов связи со статусом: Telegram, VK, Instagram, Авито, MAX, Email, SMS, чат-виджет. Отсюда берётся channelId для отправки. Секреты каналов не отдаются. | messengers:read |
tuktuk_find_contact | Найти контакт по телефону или email. Возвращает карточку клиента или ошибку «не найден». | contacts:read |
tuktuk_list_contacts | Список контактов с фильтрами: поиск по тексту, тег, канал, статус диалога, наличие телефона или email. Используйте, чтобы собрать аудиторию или найти нужного клиента. | contacts:read |
tuktuk_get_contact | Карточка контакта целиком: имя, каналы, теги, произвольные поля, статус. | contacts:read |
tuktuk_create_contact | Завести карточку клиента. Нужен, когда клиент пришёл извне: из формы, из CRM, из вашей базы. Для отправки создавать контакт заранее не обязательно, tuktuk_send_message сделает это сам. | contacts:write |
tuktuk_update_contact | Обновить карточку: имя, телефон, email, теги, произвольные поля, статус диалога, архив. Установите chainsBlocked=true, если разговор ведёте вы и автоматические сценарии не должны вмешиваться. | contacts:write |
tuktuk_add_note | Внутренняя заметка в карточке клиента. Клиенту не уходит, видна команде. Хорошее место для выводов, которые вы сделали о клиенте. | contacts:write |
tuktuk_read_messages | История переписки с клиентом, свежие сверху. Содержит вложения и расшифровки голосовых. Читайте перед ответом, чтобы не повторять уже сказанное. | messages:read |
tuktuk_send_message | Отправить сообщение клиенту прямо сейчас: текст, картинку, голосовое, документ или письмо. Адресуйте по dialogId, либо по channelId вместе с phone, email или identifier: контакт найдётся или создастся. Отправка списывается с баланса рабочего пространства так же, как ответ оператора. | messages:send |
tuktuk_schedule_message | Поставить сообщение на конкретное время. Момент отправки держит платформа, поэтому вы можете завершиться сразу. Именно этот инструмент нужен для напоминаний, отложенных ответов и «напиши ему завтра в 9 утра». | messages:send |
tuktuk_list_scheduled | Что стоит в очереди и ещё не отправлено. | messages:send |
tuktuk_cancel_scheduled | Отменить отложенное сообщение до момента отправки. После отправки отменить уже нельзя. | messages:send |
tuktuk_upload_file | Положить файл по ссылке в постоянное хранилище TukTuk и получить URL, который не протухнет. Используйте перед отправкой вложения, если ваша ссылка временная или требует авторизации. | files:write |
tuktuk_preview_audience | Посчитать, сколько человек попадёт под фильтр и кому нельзя написать в выбранном канале. Делайте это до запуска рассылки: так вы не потратите деньги впустую. | broadcasts:read |
tuktuk_create_broadcast | Создать рассылку по сегменту клиентов. Создание не отправляет ничего: запуск отдельным вызовом tuktuk_start_broadcast. Темп задаётся delayMinSec и delayMaxSec, окно времени, windowFromMin и windowToMin. | broadcasts:write |
tuktuk_start_broadcast | Запустить рассылку. Если задан scheduledAt в будущем, она встанет в расписание. Работает только для черновика и запланированной: паузу продолжают через tuktuk_stop_broadcast с mode=pause и обратный вызов resume, завершённую повторяют через tuktuk_duplicate_broadcast. | broadcasts:write |
tuktuk_stop_broadcast | Остановить рассылку. mode=pause ставит на паузу, mode=cancel отменяет остаток без возможности продолжить. | broadcasts:write |
tuktuk_duplicate_broadcast | Копия рассылки. Завершённую или остановленную рассылку нельзя запустить заново: те, кому уже отправили, получили бы сообщение дважды. Чтобы повторить, сделайте копию и запустите её. | broadcasts:write |
tuktuk_list_broadcasts | Список рассылок с прогрессом: сколько отправлено, сколько не дошло. | broadcasts:read |
tuktuk_broadcast_report | Отчёт доставки по каждому получателю: кому ушло, кому нет и по какой причине. | broadcasts:read |
tuktuk_list_chains | Связки, это автоматические сценарии на входящее сообщение. Возвращает список с блоками и состоянием. | chains:read |
tuktuk_chain_block_types | Справочник типов блоков связки: что можно поставить в сценарий и ссылки на документацию. | chains:read |
tuktuk_chain_templates | Готовые сценарии связок: приветствие, автоответчик, дожим, вызов оператора и другие. Ключ шаблона отдайте в tuktuk_create_chain_from_template, чтобы не собирать блоки руками. | chains:read |
tuktuk_create_chain_from_template | Создать связку из готового шаблона. Блоки, триггер и условия запуска приходят собранными; дальше её можно править через tuktuk_save_chain. | chains:write |
tuktuk_save_chain | Создать или изменить связку. Без chainId создаётся новая. Блоки передаются массивом целиком, типы берите из tuktuk_chain_block_types. | chains:write |
tuktuk_toggle_chain | Включить или выключить связку. Выключенная связка не запускается на входящие сообщения, но сохраняет схему и историю запусков. | chains:write |
tuktuk_list_funnels | Воронки автопостинга: сторис и посты по расписанию, в том числе зациклённые. | funnels:read |
tuktuk_run_funnel | Запустить или остановить воронку автопостинга. action=stop останавливает. | funnels:write |
tuktuk_list_assistants | ИИ-ассистенты рабочего пространства: кто отвечает клиентам автоматически, со статистикой. | assistants:read |
tuktuk_pause_assistant | Забрать конкретный диалог себе: ассистент не будет отвечать указанное число минут. Вызывайте перед тем, как вести переписку самостоятельно, иначе клиент получит два ответа. | assistants:write |
tuktuk_resume_assistant | Вернуть диалог ИИ-ассистенту раньше срока паузы: он снова начнёт отвечать клиенту. | assistants:write |
tuktuk_pause_all_assistants | Замолчать всем ассистентам на N минут: отвечать будут только люди. Настройки ассистентов сохраняются, по истечении срока они сами вернутся в работу. | assistants:write |
tuktuk_resume_all_assistants | Вернуть всех ассистентов в работу до истечения паузы. | assistants:write |
tuktuk_ai_catalog | Каталог нейросетей платформы: какие модели существуют, что умеют (текст, картинки, вызов функций), сколько примерно стоят и какие из них работают из России без VPN. | ai:read |
tuktuk_ai_providers | Нейросети, подключённые у клиента: модель по умолчанию, состояние ключа (работает / не принят) и список моделей, доступных именно по его ключу. Ключи наружу не отдаются. | ai:read |
tuktuk_ai_test_provider | Проверить ключ нейросети и обновить список её моделей. Вызывайте, если ассистент молчит или в журнале появились ошибки авторизации. | ai:write |
tuktuk_ai_search_knowledge | Найти в базе знаний клиента точный ответ: цены, сроки, условия, характеристики. Тот же поиск, которым пользуется ассистент: цифры берите отсюда, а не из головы. | ai:read |
tuktuk_ai_add_knowledge | Добавить в базу знаний файл, по которому будут отвечать ассистенты: прайс, условия доставки, ответы на частые вопросы. Текст режется на фрагменты и индексируется сразу. | ai:write |
tuktuk_ai_logs | Журнал обращений к нейросети: что спросил клиент, что ответил ассистент, какие действия он выполнил, сколько токенов ушло и с какой ошибкой всё упало. Первое место для разбора жалоб. | ai:read |
tuktuk_ai_chat | Разовый запрос к нейросети клиента, на его ключе и его тарифе. Полезно, когда нужно обработать текст в стиле компании, не заводя собственных ключей. | ai:write |
tuktuk_list_tasks | Задачи CRM: статус, приоритет, исполнитель, дедлайн, привязка к клиенту. | tasks:read |
tuktuk_create_task | Поставить задачу человеку. Используйте, когда сами решить вопрос не можете: нужен звонок, документ, решение руководителя. | tasks:write |
tuktuk_event_types | Каталог событий платформы, на которые можно подписаться: входящие сообщения, диалоги, связки, каналы, оплаты. | webhooks:manage |
tuktuk_subscribe_events | Подписаться на события: входящие сообщения и другие изменения будут приходить на ваш URL. Секрет подписи возвращается один раз, сохраните его: им подписан заголовок X-Webhook-Signature. | webhooks:manage |
tuktuk_list_subscriptions | Действующие подписки на события. Секреты не возвращаются. | webhooks:manage |
#Параметры
#tuktuk_manifest
Что умеет этот аккаунт TukTuk и что разрешено вашему ключу прямо сейчас. Вызовите первым, если не уверены, доступно ли нужное действие.
Право: достаточно валидного ключа.
Параметров нет.
#tuktuk_account
Баланс, тариф, лимиты и расход сообщений рабочего пространства. Лимиты приходят фактические, с учётом расширений, докупленных сверх тарифа; в subscription видно, из чего складывается счёт: цена тарифа плюс расширения. Полезно перед массовой отправкой: если canSend=false, отправка не пройдёт.
Право: account:read.
Параметров нет.
#tuktuk_dashboard
Сводка рабочего стола за 30 дней одним запросом: деньги (расход по дням, прогноз), объёмы сообщений по дням и каналам, сегодняшний поток по часам, диалоги без ответа, пиковые час и день, сегментация обращений. Только цифры: текстов переписки здесь нет.
Право: account:read.
Параметров нет.
#tuktuk_list_channels
Список подключённых каналов связи со статусом: Telegram, VK, Instagram, Авито, MAX, Email, SMS, чат-виджет. Отсюда берётся channelId для отправки. Секреты каналов не отдаются.
Право: messengers:read.
Параметров нет.
#tuktuk_find_contact
Найти контакт по телефону или email. Возвращает карточку клиента или ошибку «не найден».
Право: contacts:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
phone | string | нет | Телефон получателя в международном формате, например +79991234567. |
email | string | нет | Email получателя. |
#tuktuk_list_contacts
Список контактов с фильтрами: поиск по тексту, тег, канал, статус диалога, наличие телефона или email. Используйте, чтобы собрать аудиторию или найти нужного клиента.
Право: contacts:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
search | string | нет | Поиск по имени, телефону, email и тексту последнего сообщения. |
tag | string | нет | Только контакты с этим тегом. |
channelId | string | нет | Только контакты этого канала. |
status | NEW · IN_PROGRESS · WAITING_CLIENT · CLOSED | нет | |
hasPhone | boolean | нет | |
hasEmail | boolean | нет | |
limit | integer | нет | От 1 до 100, по умолчанию 30. |
offset | integer | нет |
#tuktuk_get_contact
Карточка контакта целиком: имя, каналы, теги, произвольные поля, статус.
Право: contacts:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
contactId | string | да |
#tuktuk_create_contact
Завести карточку клиента. Нужен, когда клиент пришёл извне: из формы, из CRM, из вашей базы. Для отправки создавать контакт заранее не обязательно, tuktuk_send_message сделает это сам.
Право: contacts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
name | string | да | Имя клиента. |
phone | string | нет | Телефон получателя в международном формате, например +79991234567. |
email | string | нет | Email получателя. |
identifier | string | нет | Идентификатор клиента в канале: chat id, username и подобное. |
channelId | string | нет | ID канала отправки. Обязателен, если адресуете по телефону, email или identifier. |
source | string | нет | Откуда пришёл клиент. |
tags | array | нет | |
customFields | object | нет | Произвольные поля карточки, например {"город":"Москва"}. |
#tuktuk_update_contact
Обновить карточку: имя, телефон, email, теги, произвольные поля, статус диалога, архив. Установите chainsBlocked=true, если разговор ведёте вы и автоматические сценарии не должны вмешиваться.
Право: contacts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
contactId | string | да | |
name | string | нет | |
phone | string | нет | Телефон получателя в международном формате, например +79991234567. |
email | string | нет | Email получателя. |
tags | array | нет | Полная замена набора тегов. |
customFields | object | нет | Полная замена произвольных полей. |
status | NEW · IN_PROGRESS · WAITING_CLIENT · CLOSED | нет | |
archived | boolean | нет | |
chainsBlocked | boolean | нет |
#tuktuk_add_note
Внутренняя заметка в карточке клиента. Клиенту не уходит, видна команде. Хорошее место для выводов, которые вы сделали о клиенте.
Право: contacts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
contactId | string | да | |
text | string | да | |
expiresInMinutes | integer | нет | Через сколько минут заметка удалится сама. |
#tuktuk_read_messages
История переписки с клиентом, свежие сверху. Содержит вложения и расшифровки голосовых. Читайте перед ответом, чтобы не повторять уже сказанное.
Право: messages:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
contactId | string | да | |
limit | integer | нет | От 1 до 100, по умолчанию 30. |
offset | integer | нет |
#tuktuk_send_message
Отправить сообщение клиенту прямо сейчас: текст, картинку, голосовое, документ или письмо. Адресуйте по dialogId, либо по channelId вместе с phone, email или identifier: контакт найдётся или создастся. Отправка списывается с баланса рабочего пространства так же, как ответ оператора.
Право: messages:send.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
dialogId | string | нет | ID контакта в TukTuk. Самый надёжный способ адресации. |
channelId | string | нет | ID канала отправки. Обязателен, если адресуете по телефону, email или identifier. |
phone | string | нет | Телефон получателя в международном формате, например +79991234567. |
email | string | нет | Email получателя. |
identifier | string | нет | Идентификатор клиента в канале: chat id, username и подобное. |
name | string | нет | Имя, под которым завести контакт, если его ещё нет. |
text | string | нет | Текст сообщения. Можно опустить, если передаёте mediaUrl. |
mediaUrl | string | нет | Абсолютная ссылка на вложение. Если ссылка временная, сначала положите файл через tuktuk_upload_file. |
mediaType | photo · voice · audio · video · video_note · document · sticker | нет | Тип вложения. Для голосового сообщения используйте voice. |
subject | string | нет | Тема письма. Только для email-канала. |
transactional | boolean | нет | Только для email: письмо служебное, то есть чек, счёт, доступ к покупке, код входа или уведомление владельцу. Отписка от рассылки такие письма не глушит. Для рассылок и промо не ставьте: отправка отписавшемуся вернёт 422. |
#tuktuk_schedule_message
Поставить сообщение на конкретное время. Момент отправки держит платформа, поэтому вы можете завершиться сразу. Именно этот инструмент нужен для напоминаний, отложенных ответов и «напиши ему завтра в 9 утра».
Право: messages:send.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
dialogId | string | нет | ID контакта в TukTuk. Самый надёжный способ адресации. |
channelId | string | нет | ID канала отправки. Обязателен, если адресуете по телефону, email или identifier. |
phone | string | нет | Телефон получателя в международном формате, например +79991234567. |
email | string | нет | Email получателя. |
identifier | string | нет | Идентификатор клиента в канале: chat id, username и подобное. |
name | string | нет | Имя, под которым завести контакт, если его ещё нет. |
text | string | нет | Текст сообщения. Можно опустить, если передаёте mediaUrl. |
mediaUrl | string | нет | Абсолютная ссылка на вложение. Если ссылка временная, сначала положите файл через tuktuk_upload_file. |
mediaType | photo · voice · audio · video · video_note · document · sticker | нет | Тип вложения. Для голосового сообщения используйте voice. |
subject | string | нет | Тема письма. Только для email-канала. |
transactional | boolean | нет | Только для email: письмо служебное, то есть чек, счёт, доступ к покупке, код входа или уведомление владельцу. Отписка от рассылки такие письма не глушит. Для рассылок и промо не ставьте: отправка отписавшемуся вернёт 422. |
sendAt | string | да | Время отправки в ISO-8601, минимум на 30 секунд в будущем. Например 2026-09-10T09:00:00Z. |
label | string | нет | Метка для списка отложенных. |
#tuktuk_list_scheduled
Что стоит в очереди и ещё не отправлено.
Право: messages:send.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
includeBroadcasts | boolean | нет | Добавить в выдачу отложенные рассылки. |
#tuktuk_cancel_scheduled
Отменить отложенное сообщение до момента отправки. После отправки отменить уже нельзя.
Право: messages:send.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
scheduleId | string | да |
#tuktuk_upload_file
Положить файл по ссылке в постоянное хранилище TukTuk и получить URL, который не протухнет. Используйте перед отправкой вложения, если ваша ссылка временная или требует авторизации.
Право: files:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
url | string | да | Абсолютная ссылка http(s) на файл, до 50 МБ. |
filename | string | нет | Имя, под которым файл будет виден в разделе «Файлы». |
#tuktuk_preview_audience
Посчитать, сколько человек попадёт под фильтр и кому нельзя написать в выбранном канале. Делайте это до запуска рассылки: так вы не потратите деньги впустую.
Право: broadcasts:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
channelId | string | нет | |
audience | object | нет | Фильтр: tags, tagsMode, excludeTags, statuses, channelIds, activeWithinDays, silentOverDays. |
#tuktuk_create_broadcast
Создать рассылку по сегменту клиентов. Создание не отправляет ничего: запуск отдельным вызовом tuktuk_start_broadcast. Темп задаётся delayMinSec и delayMaxSec, окно времени, windowFromMin и windowToMin.
Право: broadcasts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
name | string | нет | |
channelId | string | нет | |
text | string | нет | |
mediaUrl | string | нет | Абсолютная ссылка на вложение. Если ссылка временная, сначала положите файл через tuktuk_upload_file. |
mediaType | photo · voice · audio · video · video_note · document · sticker | нет | Тип вложения. Для голосового сообщения используйте voice. |
subject | string | нет | Тема письма. Только для email-канала. |
audience | object | нет | Фильтр аудитории либо {"mode":"manual","dialogIds":["…"]}. |
delayMinSec | integer | нет | |
delayMaxSec | integer | нет | |
windowFromMin | integer | нет | Начало окна отправки в минутах от полуночи. |
windowToMin | integer | нет | |
dailyLimit | integer | нет | |
scheduledAt | string | нет | Когда запустить, ISO-8601. |
#tuktuk_start_broadcast
Запустить рассылку. Если задан scheduledAt в будущем, она встанет в расписание. Работает только для черновика и запланированной: паузу продолжают через tuktuk_stop_broadcast с mode=pause и обратный вызов resume, завершённую повторяют через tuktuk_duplicate_broadcast.
Право: broadcasts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
broadcastId | string | да |
#tuktuk_stop_broadcast
Остановить рассылку. mode=pause ставит на паузу, mode=cancel отменяет остаток без возможности продолжить.
Право: broadcasts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
broadcastId | string | да | |
mode | pause · cancel | нет | По умолчанию pause. |
#tuktuk_duplicate_broadcast
Копия рассылки. Завершённую или остановленную рассылку нельзя запустить заново: те, кому уже отправили, получили бы сообщение дважды. Чтобы повторить, сделайте копию и запустите её.
Право: broadcasts:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
broadcastId | string | да |
#tuktuk_list_broadcasts
Список рассылок с прогрессом: сколько отправлено, сколько не дошло.
Право: broadcasts:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
status | DRAFT · SCHEDULED · RUNNING · PAUSED · DONE · CANCELED | нет |
#tuktuk_broadcast_report
Отчёт доставки по каждому получателю: кому ушло, кому нет и по какой причине.
Право: broadcasts:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
broadcastId | string | да | |
status | PENDING · SENT · FAILED · SKIPPED | нет | |
limit | integer | нет | |
offset | integer | нет |
#tuktuk_list_chains
Связки, это автоматические сценарии на входящее сообщение. Возвращает список с блоками и состоянием.
Право: chains:read.
Параметров нет.
#tuktuk_chain_block_types
Справочник типов блоков связки: что можно поставить в сценарий и ссылки на документацию.
Право: chains:read.
Параметров нет.
#tuktuk_chain_templates
Готовые сценарии связок: приветствие, автоответчик, дожим, вызов оператора и другие. Ключ шаблона отдайте в tuktuk_create_chain_from_template, чтобы не собирать блоки руками.
Право: chains:read.
Параметров нет.
#tuktuk_create_chain_from_template
Создать связку из готового шаблона. Блоки, триггер и условия запуска приходят собранными; дальше её можно править через tuktuk_save_chain.
Право: chains:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
templateKey | string | да | Ключ из tuktuk_chain_templates. |
name | string | нет | Своё название вместо названия шаблона. |
triggerChannelIds | array | нет | Пустой массив, значит все каналы. |
sendChannelId | string | нет | Канал для блоков отправки шаблона. |
aiInstructionId | string | нет | ИИ-инструкция для AI-блоков шаблона. |
#tuktuk_save_chain
Создать или изменить связку. Без chainId создаётся новая. Блоки передаются массивом целиком, типы берите из tuktuk_chain_block_types.
Право: chains:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
chainId | string | нет | Пусто, если создаёте новую связку. |
name | string | нет | |
description | string | нет | |
blocks | array | нет | Схема блоков целиком: [{ id, type, config, next, x, y }]. У блока SEND_MESSAGE получатель задаётся config.recipientMode: "client" (по умолчанию, клиент связки), "dialog" (другой клиент базы, его id из tuktuk_find_contact или tuktuk_list_contacts кладите в config.recipientDialogId) или "external" (адрес в config.recipientIdentifier: Telegram chat ID оператора, телефон, почта; переменные работают). config.includeDialogLink=true добавляет ссылку на диалог с клиентом, чтобы оператор вошёл в переписку. |
runMode | EVERY_MESSAGE · ONCE_PER_CLIENT · MANUAL | нет | |
triggerChannelIds | array | нет | Пустой массив, значит все каналы. |
trigger | object | нет | Условие запуска: {"type":"keyword","value":"цена"}. |
launchConditions | object | нет | Ограничения запуска. Ключи: noReplyMinutes (клиент молчал столько минут перед сообщением), minDialogMessages, maxRunsPerClient, maxStepsPerClient, cooldownMinutes (перерыв между запусками), activeHoursFrom и activeHoursTo ("09:00" и "18:00", часы по поясу аккаунта, окно через полночь тоже можно), preventConcurrentRuns. Ключ отсутствует, значит ограничения нет. |
autoStopConditions | object | нет | Автоостановка запущенной связки: stopOnClientReply (клиент ответил) и stopOnTags (список стоп-тегов клиента). |
isActive | boolean | нет |
#tuktuk_toggle_chain
Включить или выключить связку. Выключенная связка не запускается на входящие сообщения, но сохраняет схему и историю запусков.
Право: chains:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
chainId | string | да |
#tuktuk_list_funnels
Воронки автопостинга: сторис и посты по расписанию, в том числе зациклённые.
Право: funnels:read.
Параметров нет.
#tuktuk_run_funnel
Запустить или остановить воронку автопостинга. action=stop останавливает.
Право: funnels:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
funnelId | string | да | |
action | run · stop | нет | По умолчанию run. |
#tuktuk_list_assistants
ИИ-ассистенты рабочего пространства: кто отвечает клиентам автоматически, со статистикой.
Право: assistants:read.
Параметров нет.
#tuktuk_pause_assistant
Забрать конкретный диалог себе: ассистент не будет отвечать указанное число минут. Вызывайте перед тем, как вести переписку самостоятельно, иначе клиент получит два ответа.
Право: assistants:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
dialogId | string | да | |
minutes | integer | да | На сколько минут отдать диалог, от 1 до 10080. |
#tuktuk_resume_assistant
Вернуть диалог ИИ-ассистенту раньше срока паузы: он снова начнёт отвечать клиенту.
Право: assistants:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
dialogId | string | да |
#tuktuk_pause_all_assistants
Замолчать всем ассистентам на N минут: отвечать будут только люди. Настройки ассистентов сохраняются, по истечении срока они сами вернутся в работу.
Право: assistants:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
minutes | integer | нет | На сколько минут, по умолчанию 60. |
#tuktuk_resume_all_assistants
Вернуть всех ассистентов в работу до истечения паузы.
Право: assistants:write.
Параметров нет.
#tuktuk_ai_catalog
Каталог нейросетей платформы: какие модели существуют, что умеют (текст, картинки, вызов функций), сколько примерно стоят и какие из них работают из России без VPN.
Право: ai:read.
Параметров нет.
#tuktuk_ai_providers
Нейросети, подключённые у клиента: модель по умолчанию, состояние ключа (работает / не принят) и список моделей, доступных именно по его ключу. Ключи наружу не отдаются.
Право: ai:read.
Параметров нет.
#tuktuk_ai_test_provider
Проверить ключ нейросети и обновить список её моделей. Вызывайте, если ассистент молчит или в журнале появились ошибки авторизации.
Право: ai:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
providerId | string | да |
#tuktuk_ai_search_knowledge
Найти в базе знаний клиента точный ответ: цены, сроки, условия, характеристики. Тот же поиск, которым пользуется ассистент: цифры берите отсюда, а не из головы.
Право: ai:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
query | string | да | Ключевые слова вопроса на русском. |
#tuktuk_ai_add_knowledge
Добавить в базу знаний файл, по которому будут отвечать ассистенты: прайс, условия доставки, ответы на частые вопросы. Текст режется на фрагменты и индексируется сразу.
Право: ai:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
name | string | да | Название файла: «Прайс-лист», «Условия доставки». |
content | string | да | Текст. Разделяйте темы пустой строкой. |
#tuktuk_ai_logs
Журнал обращений к нейросети: что спросил клиент, что ответил ассистент, какие действия он выполнил, сколько токенов ушло и с какой ошибкой всё упало. Первое место для разбора жалоб.
Право: ai:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
limit | integer | нет | Сколько записей вернуть, по умолчанию 50. |
assistantId | string | нет | |
onlyErrors | boolean | нет | true, чтобы показать только сбои. |
#tuktuk_ai_chat
Разовый запрос к нейросети клиента, на его ключе и его тарифе. Полезно, когда нужно обработать текст в стиле компании, не заводя собственных ключей.
Право: ai:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
message | string | да | |
instructionId | string | нет | Настройка готового ассистента, если нужен его стиль. |
providerId | string | нет | Нейросеть, если запрос без ассистента. |
system | string | нет | Системная инструкция для запроса без ассистента. |
#tuktuk_list_tasks
Задачи CRM: статус, приоритет, исполнитель, дедлайн, привязка к клиенту.
Право: tasks:read.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
status | BACKLOG · TODO · IN_PROGRESS · REVIEW · DONE | нет | |
dialogId | string | нет | Только задачи по этому контакту. |
#tuktuk_create_task
Поставить задачу человеку. Используйте, когда сами решить вопрос не можете: нужен звонок, документ, решение руководителя.
Право: tasks:write.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
title | string | да | |
description | string | нет | |
status | BACKLOG · TODO · IN_PROGRESS · REVIEW · DONE | нет | |
priority | LOW · MEDIUM · HIGH · URGENT | нет | |
dialogId | string | нет | К какому контакту привязать. |
assigneeId | string | нет | |
dueDate | string | нет | Срок в ISO-8601. |
#tuktuk_event_types
Каталог событий платформы, на которые можно подписаться: входящие сообщения, диалоги, связки, каналы, оплаты.
Право: webhooks:manage.
Параметров нет.
#tuktuk_subscribe_events
Подписаться на события: входящие сообщения и другие изменения будут приходить на ваш URL. Секрет подписи возвращается один раз, сохраните его: им подписан заголовок X-Webhook-Signature.
Право: webhooks:manage.
| Параметр | Тип | Обязателен | Назначение |
|---|---|---|---|
name | string | да | |
url | string | да | Куда слать события. |
events | array | да | Например ["message.inbound","dialog.created"]. |
#tuktuk_list_subscriptions
Действующие подписки на события. Секреты не возвращаются.
Право: webhooks:manage.
Параметров нет.
