API для управления ботами: отправка сообщений, получение статистики, изменение настроек, управление сценариями.
Базовый URL: https://api.salebot.pro/v1/bots/
Аутентификация: Bearer Token (получить в личном кабинете → Настройки → API)
Основные методы
GET /bots — Список ботов
Возвращает список всех ваших ботов с основной информацией.
curl -X GET https://api.salebot.pro/v1/bots \
-H "Authorization: Bearer YOUR_TOKEN"
Ответ:
{
"success": true,
"data": [
{
"id": "bot_123",
"name": "Мой магазин",
"status": "active",
"created_at": "2025-01-15T10:30:00Z",
"channels": ["telegram", "whatsapp"]
}
]
}
POST /bots/{id}/messages — Отправка сообщения
Отправляет сообщение от имени бота указанному клиенту.
curl -X POST https://api.salebot.pro/v1/bots/bot_123/messages \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"client_id": "client_456",
"text": "Ваш заказ №789 готов к выдаче!",
"type": "text"
}'
GET /bots/{id}/stats — Статистика бота
Возвращает статистику за указанный период: количество сообщений, активных клиентов, конверсию.
curl -X GET "https://api.salebot.pro/v1/bots/bot_123/stats?from=2025-01-01&to=2025-01-31" \
-H "Authorization: Bearer YOUR_TOKEN"
PUT /bots/{id}/scenarios/{scenario_id}/activate — Активация сценария
Активирует сценарий для бота (например, приветственный сценарий для новых клиентов).
curl -X PUT https://api.salebot.pro/v1/bots/bot_123/scenarios/welcome/activate \
-H "Authorization: Bearer YOUR_TOKEN"
Практические примеры из опыта
Пример 1: Автоматическое уведомление о статусе заказа
Задача: При изменении статуса заказа в внутренней системе отправлять клиенту сообщение через бота.
Решение: Использовали метод POST /bots/{id}/messages в скрипте, который обрабатывает вебхук от CRM.
# Python пример
import requests
def send_order_status(bot_id, client_id, order_number, status):
url = f"https://api.salebot.pro/v1/bots/{bot_id}/messages"
headers = {"Authorization": "Bearer YOUR_TOKEN"}
message_map = {
"shipped": "🚚 Ваш заказ {order} отправлен",
"delivered": "✅ Заказ {order} доставлен",
"cancelled": "❌ Заказ {order} отменён"
}
text = message_map.get(status, "Статус заказа {order} изменён").format(order=order_number)
response = requests.post(url, json={
"client_id": client_id,
"text": text
}, headers=headers)
return response.json()
Результат: Клиенты получают мгновенные уведомления, количество обращений в поддержку снизилось на 35%.
Пример 2: Ежедневный отчёт в Telegram для менеджера
Задача: Каждый день в 9:00 отправлять менеджеру статистику по ботам в Telegram.
Решение: Настроили cron-задачу, которая вызывает GET /bots/{id}/stats, форматирует данные и отправляет через Telegram Bot API.
# Bash скрипт
#!/bin/bash
TOKEN="YOUR_SALEBOT_TOKEN"
BOT_ID="bot_123"
CHAT_ID="123456789"
# Получаем статистику
stats=$(curl -s -H "Authorization: Bearer $TOKEN" \
"https://api.salebot.pro/v1/bots/$BOT_ID/stats?from=$(date -d 'yesterday' '+%Y-%m-%d')")
# Парсим и отправляем в Telegram
message=$(echo $stats | jq -r '.data | "Новых клиентов: \(.new_clients)\nСообщений: \(.messages)"')
curl -s -X POST "https://api.telegram.org/botTELEGRAM_BOT_TOKEN/sendMessage" \
-d chat_id=$CHAT_ID -d text="$message"
Результат: Менеджер видит ключевые метрики без входа в личный кабинет, быстрее реагирует на изменения.
Ошибки и их обработка
| Код | Сообщение | Причина |
|---|---|---|
| 400 | Invalid client_id | Указан несуществующий ID клиента |
| 401 | Unauthorized | Неверный или просроченный токен |
| 403 | Bot is inactive | Бот отключен или заблокирован |
| 429 | Rate limit exceeded | Превышено количество запросов в минуту |
| 500 | Internal server error | Ошибка на стороне сервера Salebot |
Рекомендация: Всегда реализуйте повторные попытки (retry) для кодов 5xx и 429 с экспоненциальной задержкой.