Метод 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

Параметры запроса
ПараметрТипОбязательныйОписание
tokenstringДаAPI-токен канала из раздела Настройки > Управление > API
user_idintegerНетID пользователя (ответственного). Можно передать в URL или GET. Если не указан — возвращаются завершённые чаты по всем операторам в рамках канала токена
offsetintegerНетСмещение для постраничной выборки. По умолчанию 0
limitintegerНетКоличество записей в ответе. По умолчанию 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 чата
avatarURL аватара контакта (если есть)
user_idID пользователя, назначенного ответственным за чат
date_msgДата и время последнего сообщения в чате
api_idНомер канала связи (совпадает с каналом токена)
msg_idID последнего сообщения, связанного с чатом на момент завершения

Возможные ошибки
Код ошибкиОписание
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;
}