Метод user_chats_completed возвращает список завершённых чатов канала, к которому привязан API-токен. В выборку попадают только чаты со статусом «завершён» в WAMM.chat (не отображаются среди открытых в интерфейсе). Удобен для выгрузки закрытых обращений в CRM, отчётов по операторам, сверки архива диалогов и постраничной синхронизации с внешней системой.
Завершить чат можно в интерфейсе или методом установки статуса «завершён». Открытые чаты того же аккаунта — в получении открытых чатов пользователя (user_chats). Идентификаторы операторов — в получении списка пользователей. В отличие от user_chats, этот метод всегда ограничен одним каналом — тем, для которого выдан токен.
Результаты отсортированы по дате последнего сообщения в чате (сначала новые). За один запрос можно получить не более 100 чатов; для следующих страниц используйте параметры offset и limit.
Поддерживаемые мессенджеры
Метод доступен для любого канала с API-токеном: WhatsApp, MAX Personal, Telegram Personal, Telegram Bot, MAX Bot и другие.
Пример запроса
GET https://wamm.chat/api2/user_chats_completed/{token}/ Чаты конкретного оператора (в URL или GET):
GET https://wamm.chat/api2/user_chats_completed/{token}/{user_id}/?offset=0&limit=100 или
GET https://wamm.chat/api2/user_chats_completed/{token}/?user_id={user_id}&offset=0&limit=100 Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| token | string | Да | API-токен канала из раздела Настройки > Управление > API |
| user_id | integer | Нет | ID пользователя (ответственного). Можно передать в URL или GET. Если не указан — возвращаются завершённые чаты по всем операторам в рамках канала токена |
| offset | integer | Нет | Смещение для постраничной выборки. По умолчанию 0 |
| limit | integer | Нет | Количество записей в ответе. По умолчанию 100, максимум 100 |
Ответ при успехе
{
"err": 0,
"data": [
{
"chat_id": "12345",
"chat_name": "Иван Петров",
"phone": "79001234567",
"avatar": "https://wamm.chat/i/avatars/example.jpg",
"user_id": "8",
"date_msg": "2024-10-09 10:28:45",
"api_id": "100",
"msg_id": "1234567"
}
]
} Описание полей ответа
| Поле | Описание |
|---|---|
| chat_id | Идентификатор чата (контакта) в WAMM.chat |
| chat_name | Имя контакта или название чата |
| phone | Номер телефона или ID чата. Для Telegram и MAX — часто ID чата |
| avatar | URL аватара контакта (если есть) |
| user_id | ID пользователя, назначенного ответственным за чат |
| date_msg | Дата и время последнего сообщения в чате |
| api_id | Номер канала связи (совпадает с каналом токена) |
| msg_id | ID последнего сообщения, связанного с чатом на момент завершения |
Возможные ошибки
| Код ошибки | Описание |
|---|---|
| token fail | Неверный API-токен или канал недоступен для API |
| user_id fail | Указан user_id, но пользователь не найден в аккаунте |
| fail get data | Нет завершённых чатов по заданным условиям (пустой список) или не удалось определить канал по токену |
Пример использования (PHP)
/**
* Завершённые чаты канала токена (user_chats_completed).
*
* @return array>
*/
function getCompletedChats($token, $userId = null, $offset = 0, $limit = 100) {
$params = [
'offset' => max(0, (int) $offset),
'limit' => min(100, max(1, (int) $limit)),
];
if ($userId !== null && (int) $userId > 0) {
$params['user_id'] = (int) $userId;
}
$url = 'https://wamm.chat/api2/user_chats_completed/' . rawurlencode($token) . '/?' . http_build_query($params);
$response = @file_get_contents($url);
if ($response === false) {
throw new RuntimeException('Не удалось выполнить запрос к API');
}
$data = json_decode($response, true);
if (!is_array($data) || !array_key_exists('err', $data)) {
throw new RuntimeException('Некорректный ответ API');
}
if ($data['err'] === 0 || $data['err'] === '0') {
return isset($data['data']) && is_array($data['data']) ? $data['data'] : [];
}
throw new RuntimeException('API error: ' . (is_string($data['err']) ? $data['err'] : json_encode($data['err'])));
}
$token = 'YOUR_TOKEN';
$chats = getCompletedChats($token, null, 0, 100);
foreach ($chats as $chat) {
echo $chat['chat_name'] . ' — ' . $chat['date_msg'] . ' (msg_id: ' . $chat['msg_id'] . ')' . PHP_EOL;
}