## 1. Для чего это нужно
Эта инструкция нужна, чтобы:
- входящие сообщения из Wazzup приходили в CRM;
- исходящие из CRM корректно отправлялись через Wazzup;
- webhook не уходил в другую базу (например, `copytest` вместо боевой базы);
- быстро диагностировать, почему сообщения не появляются в CRM.
---
## 2. Что важно понимать заранее
1. Настройка webhook хранится в **Wazzup** и привязана к **API-токену**.
2. Один токен = один `webhooksUri`.
3. Если использовать другой токен, webhook может указывать на другую базу.
4. Для попадания входящих в CRM должно быть включено `messagesAndStatuses: true`.
---
## 3. Минимальные требования
- Есть рабочий API-токен Wazzup.
- Есть публичный URL вашей 1С базы для webhook (пример: `https://gds.4dev.app/api/hs/extint/wazzup/test`).
- Этот URL при проверке Wazzup возвращает HTTP `200`.
- В 1С настроена учетная запись Wazzup (токен, каналы, права).
---
## 4. Проверить текущую настройку webhook
Запрос:
```http
GET https://api.wazzup24.com/v3/webhooks
Authorization: Bearer <WAZZUP_API_KEY>
```
Ожидаем в ответе:
- `webhooksUri` — куда сейчас уходят события;
- `subscriptions.messagesAndStatuses` = `true`.
Если здесь указан `copytest` или другая база — webhook уходит не туда.
---
## 5. Установить правильный webhook URL
Запрос:
```http
PATCH https://api.wazzup24.com/v3/webhooks
Authorization: Bearer <WAZZUP_API_KEY>
Content-Type: application/json
```
Тело:
```json
{
"webhooksUri": "https://gds.4dev.app/api/hs/extint/wazzup/test",
"subscriptions": {
"messagesAndStatuses": true,
"contactsAndDealsCreation": false,
"channelsUpdates": false,
"wabaTemplatesStatus": false
}
}
```
### Если получили ошибку `WEBHOOKS_REQUEST_NOT_VALID`
Описание обычно: `Response status must be 200`.
Это значит Wazzup проверил указанный URL и получил не `200`.
Что делать:
1. Подставить endpoint, который точно отвечает `200` (часто это `/test`).
2. Проверить этот URL вручную (GET/POST) и убедиться в `200`.
3. Повторить PATCH.
---
## 6. Проверить каналы и channelId
Запрос:
```http
GET https://api.wazzup24.com/v3/channels
Authorization: Bearer <WAZZUP_API_KEY>
```
Проверьте:
- нужный канал активен (`state=active`);
- зафиксирован `channelId`;
- понимаете `transport` (например, `tgapi`) для диагностики маппинга в 1С.
---
## 7. Тест исходящего сообщения (через Wazzup API)
Запрос:
```http
POST https://api.wazzup24.com/v3/message
Authorization: Bearer <WAZZUP_API_KEY>
Content-Type: application/json
```
Тело (пример):
```json
{
"channelId": "<CHANNEL_ID>",
"chatType": "max",
"chatId": "289480261",
"text": "Тест исходящего"
}
```
Успех:
- HTTP `201`;
- в ответе есть `messageId` и `chatId`.
Важно:
- это только факт приема Wazzup;
- чтобы CRM обновилась, должен прийти webhook обратно в 1С.
---
## 8. Тест входящего сообщения
Правильный тест:
1. Написать в подключенный канал **с внешнего личного аккаунта**.
2. Проверить, что сообщение видно в Wazzup.
3. Проверить, что webhook ушел в вашу базу (`webhooksUri`).
4. Проверить, что событие записалось в CRM.
Важно:
- не тестировать "сам с собой" на сервисный канал;
- входящее может не дойти до CRM из-за фильтрации в обработчике (тип канала, channelId, права).
---
## 9. Проверки в 1С CRM
Проверьте в конфигурации/данных:
1. Учетная запись Wazzup:
- `Справочник.CRM_УчетныеЗаписиМессенджеров`
- корректный токен, активная учетка.
2. Распределение каналов (если включено):
- `Константа.РазделятьЧатыПоОтветственным`
- `РегистрСведений.CRM_WazzupОтветственныеПоКаналам`
- `Константа.ПользовательНеразобранныхЧатовWazzup`
3. Логи обмена:
- `РегистрСведений.Дев_ЖурналОбменаМессенджеры`
- проверка факта входа webhook/ошибок.
4. Документ сообщений:
- `Документ.CRM_СообщениеМессенджера`
- проверка, создаются ли записи по входящим.
---
## 10. Частые причины "в Wazzup есть, в CRM нет"
1. `webhooksUri` указывает на другую базу (например, `copytest`).
2. Используется другой API-токен, где webhook настроен иначе.
3. `messagesAndStatuses` выключен.
4. Endpoint webhook не возвращает `200`.
5. В 1С включено распределение, но channelId не назначен и нет fallback-пользователя.
6. Тип канала из webhook не маппится в ожидаемый тип в 1С.
---
## 11. Быстрый чек-лист перед сдачей
- [ ] `GET /v3/webhooks` показывает правильный `webhooksUri` (боевая база).
- [ ] `messagesAndStatuses = true`.
- [ ] `PATCH /v3/webhooks` выполняется без 400.
- [ ] `GET /v3/channels` показывает активный канал и нужный `channelId`.
- [ ] Входящее от внешнего аккаунта видно в Wazzup.
- [ ] В 1С фиксируется webhook и создается сообщение.
- [ ] В UI CRM чат/лента обновляются.
---
## 12. Шаблон для техподдержки Wazzup
Здравствуйте.
По каналу `<CHANNEL_ID>` входящие сообщения видны в Wazzup, но webhook в нашу CRM не приходит.
Просим проверить:
1. delivery log webhook по времени `<TIME_WINDOW>`;
2. активность подписки `messagesAndStatuses`;
3. фактический payload и статус отправки webhook;
4. причину, если webhook по inbound не отправляется.
Наш текущий `webhooksUri`: `<WEBHOOK_URL>`