Методы ботов (Bot API)

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 с экспоненциальной задержкой.

Дальнейшие шаги