🤖 OctaCRM Chatbot API

WhatsApp Chatbot, Broadcast & Notifications Service

🤖 OctaCRM Chatbot Microservice

Микросервис для WhatsApp интеграции OctaCRM:

  • AI Chatbot - Автоматические ответы с использованием DeepSeek AI
  • Broadcast System - Массовые персонализированные рассылки
  • Booking Notifications - Автоматические напоминания о записях

🚀 Быстрый Старт

Установка

npm install

Конфигурация

# Database
DATABASE_URL=postgresql://user:password@host:5432/database

# DeepSeek AI
DEEPSEEK_API_KEY=sk-xxxxxxxx
DEEPSEEK_API_KEY_2=sk-xxxxxxxx

# WhatsApp API
WHATSAPP_ILOVESANZHAR_URL=https://ilovesanzhar.click

# Server
PORT=3001

Запуск

# Development
npm run dev

# Production
npm run build && npm start

🔧 Технологии

  • Runtime: Node.js + TypeScript
  • Database: PostgreSQL + Drizzle ORM
  • AI: DeepSeek API
  • WhatsApp: ilovesanzhar API

📡 Webhook API Documentation

Base URL: https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app

🔗 Регистрация WhatsApp аккаунта

POST /api/webhook/register

Регистрирует или обновляет WhatsApp аккаунт.

{
  "accountId": "whatsapp_account_id",
  "accountName": "Название аккаунта",
  "branch": { "id": "branch_1", "name": "Филиал" },
  "organisation": { "id": "org_1", "name": "Компания" },
  "systemPrompt": "Промпт для бота"
}

💬 Отправка сообщений

POST /api/webhook/send-message

{
  "branchId": "external_branch_id",
  "to": "77001234567",
  "message": "Текст сообщения"
}

📋 Получение чатов

GET /api/webhook/chats/{branchId}

Получает список чатов филиала.

GET /api/webhook/chats/{branchId}/{phone}/messages

Получает историю сообщений чата.

🤖 Управление ботом

POST /api/webhook/bot/pause

{ "branchId": "branch_1", "phone": "77001234567", "duration": 30 }

POST /api/webhook/bot/resume

⚙️ Настройка филиала

POST /api/webhook/branch/{branchId}/prompt

{ "prompt": "Системный промпт для AI бота..." }

POST /api/webhook/branch/{branchId}/manager-pause

{ "duration": 5 }

📢 Broadcast System

Base URL: https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app/api/broadcast

POST /api/broadcast/campaigns

{
  "name": "Новогодняя акция",
  "message": "Скидки до 50%!",
  "branchId": "branch_1"
}

GET /api/broadcast/campaigns

POST /api/broadcast/campaigns/{id}/start

GET /api/broadcast/campaigns/{id}/stats

🔔 Booking Notifications

Base URL: https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app/api/notifications

POST /api/notifications/confirmation

{
  "bookingId": "booking_123",
  "clientPhone": "77001234567",
  "service": "Маникюр",
  "date": "2025-12-26T14:00:00Z"
}

POST /api/notifications/reminder-2h

{ "bookingId": "booking_123" }

POST /api/notifications/reminder-1h

POST /api/notifications/test

{ "phone": "77001234567", "message": "Test" }

⚡ Quick Start Guide

1. Зарегистрируйте аккаунт

curl -X POST https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app/api/webhook/register \
  -H "Content-Type: application/json" \
  -d '{"accountId":"wa_1","branch":{"id":"b1","name":"Office"},"organisation":{"id":"o1","name":"Company"}}'

2. Настройте промпт бота

curl -X POST https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app/api/webhook/branch/b1/prompt \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Ты - виртуальный администратор салона."}'

3. Отправьте сообщение

curl -X POST https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app/api/webhook/send-message \
  -H "Content-Type: application/json" \
  -d '{"branchId":"b1","to":"77001234567","message":"Hello!"}'

4. Проверьте статус

curl https://sophisticated-priscella-promconsulting-5c0f5b4a.koyeb.app/health
💡 Совет: Используйте API Endpoints для интерактивного тестирования.