Ветка

Ветка

Документация для пользователей и интеграторов

API и интеграции

Здесь собраны все практические сценарии подключения: как встроить виджет, как отправлять сообщения в платформу, как принимать обновления в своем backend и как подключить WordPress-формы без ручной сборки логики.

Сценарий

Widget для сайта

Добавьте embed-код на сайт, получайте сообщения в Inbox и подключайте свой backend, когда будете готовы.

Подходит для онлайн-чата и лидов с сайта.

Сценарий

WordPress / Contact Form 7

Отправляйте заявки из форм прямо в платформу и обрабатывайте их как обычные диалоги.

Подходит для агентств и сайтов клиентов на WordPress.

Сценарий

Backend / API

Используйте Bot API в своем приложении: принимайте входящие, отвечайте через send-message и читайте get-updates.

Подходит для кастомной логики и CRM-интеграций.

Путь подключения

Как использовать платформу

1. Создайте бота в кабинете и откройте его карточку.
2. Выберите способ интеграции: Widget, WordPress или API.
3. Скопируйте нужный ключ: API Token, Widget Key или Integration Key.
4. Подключите свой сайт, backend или WordPress по примерам ниже.
5. Проверьте, что входящие появились в Inbox, а ответы уходят обратно в канал.

Ключи доступа

Что для чего нужно

API Token

Основной токен бота. Нужен вашему backend, Python SDK или Node.js SDK для методов send-message, get-updates и webhook.

Widget Key

Публичный ключ для сайта. Используется только для встраивания виджета и получения его конфигурации.

Integration Key

Ключ интеграции WordPress. Передается плагином Contact Form 7, чтобы заявка попала в нужного бота.

Auth Token пользователя

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

Что выбрать

Быстрый выбор сценария

Нужен чат на сайте

Используйте Widget Key и embed-код из карточки бота.

Нужно принимать заявки из форм

Используйте WordPress-канал и Integration Key.

Есть свой backend или CRM

Используйте API Token, `get-updates`, `send-message` и webhook.

Нужен единый операторский центр

Все входящие попадают в Inbox, независимо от канала.

Taplink

Архитектура интеграции с Taplink

Интеграцию с Taplink можно реализовать по двум техническим сценариям: как живой чат через HTML-код или как сбор лидов через webhook-адаптер. Первый сценарий подходит для общения в реальном времени, второй — для записи на услуги, квалификации заявок и передачи их в Inbox.

Сценарий AДоступно сейчас

Виджет через HTML-код

Если у клиента тариф Taplink Business, он может добавить блок “HTML-код” и встроить чат-виджет Ветки прямо поверх страницы. Пользователь увидит привычный пузырек чата, а входящие сообщения попадут в Inbox и Android-приложение операторов.

1. В кабинете Ветки клиент копирует готовый widget script.

2. Вставляет его в блок HTML внутри Taplink.

3. Виджет рендерится поверх Taplink-страницы без отдельного сайта.

1class="text-[#ff7ab8]"><class="text-[#7ee787]">script
2 src="https://vetkabot.ru/bot-widget.js"
3 data-widget-key="widget_xxxxxxxxx"
4 data-api-url="https://api.vetkabot.ru"
5 data-title="Онлайн-запись"
6 data-subtitle="Ответим сразу"
7>class="text-[#ff7ab8]"></class="text-[#7ee787]">script>
Сценарий BЧерез backend-адаптер

Сбор заявок через webhooks

Если в Taplink настроена форма сбора контактов, ее можно связать с Веткой через webhook-адаптер: Taplink отправляет HTTP POST, ваш backend принимает имя, телефон и email, после чего создает лид, пишет в Inbox и отправляет push-уведомление оператору в Android-приложение.

1. Клиент включает webhooks в настройках Taplink.

2. Указывает URL вашего adapter endpoint.

3. Adapter пересылает лид в Ветку через API или в CRM по вашей логике.

1Taplink form
2 -> webhook adapter / backend
3 -> POST /api/messages
4 -> Inbox / Android app / CRM
5 
6POST /api/messages
7{
8 "bot_id": "{bot_id}",
9 "channel": "custom_api",
10 "text": "Новая заявка из Taplink",
11 "external_chat_id": "taplink-lead-42",
12 "external_user_id": "taplink-user-42",
13 "user": {
14 "first_name": "Анна"
15 },
16 "metadata": {
17 "source": "taplink",
18 "phone": "+7 900 000-00-00",
19 "email": "client@example.com"
20 }
21}

На текущем MVP этот сценарий честно реализуется через промежуточный backend-слой. Если Taplink станет частым каналом у клиентов, следующим шагом можно выделить нативный endpoint внутри самой платформы.

OpenAPI

Swagger-совместимая спецификация

Для интеграторов доступен отдельный слой документации: машинописная OpenAPI-спека, которую можно открыть в JSON, скачать или использовать для генерации SDK и тестов.

Методы API

Основные endpoints

Для backend бота

GET/api/bots/{bot_id}/get-updates

Получить входящие события в формате, похожем на Bot API.

POST/api/bots/{bot_id}/send-message

Отправить сообщение пользователю из вашего кода.

POST/api/bots/{bot_id}/set-webhook

Указать webhook для событий бота.

Для сайта и каналов

POST/api/messages

Принять входящее сообщение из сайта, widget, web или custom API.

GET/api/widget/config?widget_key=...

Получить конфигурацию виджета по публичному ключу.

POST/api/integrations/wordpress/contact-form-7

Принять заявку из WordPress / Contact Form 7.

Для кабинета

GET/api/bots

Список ботов пользователя.

PATCH/api/bots/{bot_id}/channels

Включить канал и обновить его конфиг.

GET/api/inbox

Получить список диалогов в операторском inbox.

Пример

POST/api/bots/{id}/send-message

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

Используйте runtime API бота, чтобы отправить ответ в подключенный канал.

1curl -X POST "https://api.vetkabot.ru/api/bots/{bot_id}/send-message" \
2 -H "Authorization: Bearer {API_TOKEN}" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "chat_id": "client_123",
6 "text": "Здравствуйте! Чем могу помочь?",
7 "channel": "web"
8 }'

Пример

GET/api/bots/{id}/get-updates

Получить входящие обновления

Подходит для backend, который работает по polling-модели.

1curl "https://api.vetkabot.ru/api/bots/{bot_id}/get-updates?offset=0&limit=100" \
2 -H "Authorization: Bearer {API_TOKEN}"

Пример

POST/api/messages

Передать входящее сообщение с сайта

Позволяет отправлять лиды и сообщения из вашего frontend или прокси-сервиса.

1curl -X POST "https://api.vetkabot.ru/api/messages" \
2 -H "Content-Type: application/json" \
3 -d '{
4 "bot_id": "{bot_id}",
5 "text": "Хочу узнать стоимость",
6 "channel": "web",
7 "external_chat_id": "site-chat-42",
8 "external_user_id": "lead-42",
9 "user": {
10 "first_name": "Анна"
11 },
12 "metadata": {
13 "page_url": "https://example.ru/pricing",
14 "page_title": "Тарифы"
15 }
16 }'

Пример

POST/api/integrations/wordpress/contact-form-7

Принять заявку из WordPress

Используйте endpoint интеграции для Contact Form 7 и других WordPress-форм.

1curl -X POST "https://api.vetkabot.ru/api/integrations/wordpress/contact-form-7" \
2 -H "Content-Type: application/json" \
3 -d '{
4 "integration_key": "{integration_key}",
5 "site_url": "https://client-site.ru",
6 "page_url": "https://client-site.ru/contact",
7 "form_title": "Заявка с сайта",
8 "contact_name": "Иван",
9 "contact_email": "ivan@example.com",
10 "fields": {
11 "service": "Поддержка сайта",
12 "comment": "Нужна консультация"
13 }
14 }'

Важно

Как читать логику платформы

Любое входящее сообщение из `Widget`, `WordPress` или `API` создает или обновляет диалог. После этого диалог появляется в `Inbox`, где оператор может ответить вручную.
Если у вас есть backend, он может читать входящие через `get-updates` или webhook, генерировать ответ и отправлять его обратно через `send-message`.
`Widget Key` и `Integration Key` можно использовать в интеграциях, но `API Token` нужно хранить только на сервере. Не вставляйте его в публичный frontend.
Если хотите начать без кода, сначала подключите `Widget` или `WordPress`. Если нужна полная автоматизация, подключайте собственный backend и работайте через API.