Files
crm.clientright.ru/TELEGRAM_AI_NOTIFICATIONS.md
Fedor 75d3f7942b feat: Обновлены все URL Nextcloud с office.klientprav.tech на office.clientright.ru
Обновленные файлы:
- crm_extensions/nextcloud_api.php (2 места)
- modules/Documents/actions/NcPrepareEdit.php
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- crm_extensions/file_storage/api/get_edit_urls.php
- crm_extensions/file_storage/api/simple_edit.php
- crm_extensions/README.md
- NEXTCLOUD_EDIT_BUTTON_IMPLEMENTATION.md
- crm_extensions/docs/NEXTCLOUD_EDITOR.md
- test_syntax_check.html
- crm_extensions/tests/test_edit_button.html

Все ссылки теперь указывают на новый сервер office.clientright.ru
Backup файлы и тестовые директории не изменены
2025-10-20 17:17:34 +03:00

188 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Система уведомлений для Telegram AI бота
**Дата:** 16 октября 2025
**Статус:** ✅ Реализовано и протестировано
## Описание
Интегрирована система уведомлений в endpoint `telegram_ai_qa.php` для сохранения AI-диалогов из Telegram. Теперь при общении клиента с AI ботом автоматически создается уведомление для ответственного по проекту.
## Как это работает
### 1. Процесс обработки диалога
1. **Клиент пишет в Telegram** → AI бот отвечает → бот вызывает `telegram_ai_qa.php`
2. **Система находит контакт** по TGID (Telegram ID в поле phone)
3. **Система находит проект** (активный или указанный)
4. **Создаются 2 комментария:**
- Вопрос клиента (от имени ответственного, customer=contactid)
- Ответ AI бота (от пользователя AI Bot ID=23)
5. **🆕 Создается уведомление** для ответственного по проекту
### 2. Структура уведомления
```sql
INSERT INTO vtiger_vdnotifierpro (
userid, -- Ответственный по проекту
modulename, -- 'Project'
crmid, -- ID проекта
link, -- Ссылка на проект
title, -- "Telegram AI: [ФИО] - [вопрос]"
status -- 5 (непрочитанное)
)
```
### 3. Пример уведомления
- **Текст:** "Telegram AI: Дария Сатюкова - Я уже получила письмо от Гагаринского районного суда"
- **Ссылка:** `module=Project&view=Detail&record=379166`
- **Получатель:** Ответственный по проекту (пользователь 8)
## Технические детали
### Функция `createTelegramAINotification()`
```php
function createTelegramAINotification($projectId, $contactId, $contactName, $questionPreview) {
// 1. Получаем ответственного по проекту
// 2. Формируем текст уведомления (обрезаем вопрос до 80 символов)
// 3. Проверяем существующие непрочитанные уведомления от AI
// 4. Обновляем существующее или создаем новое
}
```
### Интеграция в основной процесс
```php
// После создания комментариев с вопросом и ответом
$contactName = $firstname . ' ' . $lastname;
$notificationId = createTelegramAINotification($projectid, $contactid, $contactName, $question);
```
### Обработка дубликатов
- **Логика:** Если есть непрочитанное уведомление от AI для этого проекта → обновляется заголовок и время
- **Преимущество:** Не засоряет панель уведомлений множественными сообщениями от одного клиента
- **Результат:** Ответственный всегда видит последний вопрос клиента
### Формат заголовка
```php
// Вопрос обрезается до 80 символов для краткости
$shortQuestion = mb_strlen($questionPreview) > 80 ? mb_substr($questionPreview, 0, 80) . '...' : $questionPreview;
$notificationTitle = "Telegram AI: " . $contactName . " - " . $shortQuestion;
```
## Результаты тестирования
### ✅ Тест прошел успешно
```
=== Тест уведомлений Telegram AI ===
Тестовые данные:
- Contact ID: 379165 (Дария Сатюкова)
- Project ID: 379166
- Вопрос: "Я уже получила письмо от Гагаринского районного суда"
✅ Создано уведомление ID: 6870
✅ Пользователь: 8 (ответственный по проекту)
✅ Модуль: Project
✅ Ссылка: module=Project&view=Detail&record=379166
✅ Заголовок: Telegram AI: Дария Сатюкова - Я уже получила письмо от Гагаринского районного суда
✅ Статус: 5 (непрочитанное)
```
### Проверка в CRM
1. **Войти в CRM** под ответственным за проект
2. **Посмотреть панель уведомлений** (справа вверху)
3. **Увидеть уведомление:** "Telegram AI: [Имя клиента] - [вопрос]"
4. **Кликнуть на уведомление** → откроется проект с комментариями
## Логирование
Все действия логируются в `logs/tg_ai_qa.log`:
```
2025-10-16 16:19:26 - Создаем уведомление для проекта 379166 о диалоге с AI ботом
2025-10-16 16:19:26 - Ответственный по проекту: пользователь 8
2025-10-16 16:19:26 - ✅ Создано новое уведомление ID: 6870 для пользователя 8
```
## Формат запроса
### Endpoint
`POST https://crm.clientright.ru/telegram_ai_qa.php`
### Тело запроса (JSON)
```json
{
"tgid": "663733547",
"projectid": 379166,
"question": "Я уже получила письмо от Гагаринского районного суда",
"answer": "Если вы не можете присутствовать на судебном заседании...",
"botname": "klientprav_bot"
}
```
### Ответ (JSON)
```json
{
"status": "success",
"contact_id": "379165",
"project_id": 379166,
"question_comment_id": 395300,
"answer_comment_id": 395301,
"notification_id": 6870,
"botname": "klientprav_bot"
}
```
## Преимущества
1. **Мгновенное оповещение** - ответственный сразу видит обращение клиента
2. **Контекст в заголовке** - сразу видно имя клиента и суть вопроса
3. **Прямая ссылка** - клик ведет сразу к проекту с комментариями
4. **Умная дедупликация** - обновление существующих уведомлений вместо создания новых
5. **Интеграция с VDNotifierPro** - использует существующую систему уведомлений
6. **Полное логирование** - все действия записываются в лог
## Отличия от уведомлений о письмах
| Характеристика | Письма (Documents) | Telegram AI (Project) |
|----------------|--------------------|-----------------------|
| **Модуль** | Documents | Project |
| **Триггер** | Поступление судебного письма | Диалог с AI ботом |
| **Ссылка на** | Документ | Проект |
| **Заголовок** | "Письмо от [ФИО] - [тип документа]" | "Telegram AI: [ФИО] - [вопрос]" |
| **Дедупликация** | По documentId | По projectId + префикс "Telegram AI:" |
| **Обновление** | Только время | Заголовок + время |
## Файлы
### Измененные файлы:
-`telegram_ai_qa.php` - добавлена функция уведомлений
### Логи:
-`logs/tg_ai_qa.log` - все операции
## Использование
Система работает автоматически при каждом запросе к `telegram_ai_qa.php`. Никаких дополнительных действий не требуется.
### Telegram бот должен:
1. Получить вопрос от клиента
2. Сгенерировать ответ через AI
3. Отправить POST запрос к `telegram_ai_qa.php` с вопросом и ответом
4. **Автоматически создастся уведомление** для ответственного
---
**Статус:** ✅ Готово к использованию
**Автор:** AI Assistant + Фёдор
**Дата:** 16 октября 2025