Этот метод добавляет контакт в базу WAMM.chat или обновляет имя и дополнительные поля существующего контакта с тем же идентификатором. Запись создаётся и хранится в WAMM.chat; отдельный чат в мессенджере этим запросом не открывается — для первого сообщения используйте отправку сообщений.

Метод удобен для синхронизации CRM с WAMM.chat, массового обновления карточек клиентов и подготовки данных перед рассылками. Перед сохранением выполняется проверка номера или ID чата в мессенджере (та же логика, что у проверки наличия аккаунта); отдельно вызывать проверку не обязательно. Прочитать карточку можно через получение информации о контакте, удалить — удаление контактов.

Если контакт с таким phone в организации уже есть, обновляются name и переданные поля info, email, web; иначе создаётся новая запись (result: insert / update).


Поддерживаемые мессенджеры

Метод доступен для всех каналов


Пример запроса:

GET https://wamm.chat/api2/contact_to/{token}/?phone={phone}&name={name}&info={info}&email={email}&web={web}

или

GET https://wamm.chat/api2/contact_to/{token}/{phone}/?name={name}

Параметры запроса
ПараметрТипОбязательныйОписание
tokenstringДаAPI-токен канала в разделе «Настройки > Управление > API». Токен должен относиться к активному каналу.
phonestringДаИдентификатор контакта: номер в международном формате (например, 79001234567), для Telegram/MAX — ID чата или никнейм. Можно передать в URL или GET phone.
namestringДаИмя контакта, до 250 символов, UTF-8. Передаётся в GET (рекомендуется urlencode).
infostringНетЗаметка к контакту. Перенос строки: %0A. При обновлении значение - очищает поле.
emailstringНетEmail, до 150 символов. При обновлении - очищает поле.
webstringНетURL, до 150 символов. При обновлении - очищает поле.

При обновлении необязательные поля меняются только если они переданы в запросе; непереданные поля остаются без изменений.


Ответ при успехе
{"err":0,"result":"insert"}

или

{"err":0,"result":"update"}

insert — контакт создан; update — обновлены данные существующего контакта с тем же phone в организации.


Возможные ошибки
Код ошибки, значение errОписание
token failТокен недействителен, отсутствует или канал не в статусе оплаты active
acc not authorizedКанал не готов к работе (нет состояния authorized или suspended)
phone failНекорректный или пустой идентификатор контакта
phone not checked for WhatsApp, please retryНе удалось проверить номер в WhatsApp — повторите запрос
phone not checked, please retryНе удалось проверить идентификатор для Telegram, MAX и др.
no WhatsApp on the numberНа номере нет WhatsApp
no Account on the numberАккаунт в мессенджере не найден (Telegram, MAX)
name failНе указано имя
name fail, more 250Имя длиннее 250 символов
web fail, more 150URL длиннее 150 символов
email fail, more 150Email длиннее 150 символов

Примеры использования
function addOrUpdateContact($token, $phone, $name, $info = '', $email = '', $web = '') {
    $url = 'https://wamm.chat/api2/contact_to/' . rawurlencode($token) . '/?phone=' . rawurlencode($phone)
        . '&name=' . rawurlencode($name);

    if ($info !== '') {
        $url .= '&info=' . rawurlencode($info);
    }
    if ($email !== '') {
        $url .= '&email=' . rawurlencode($email);
    }
    if ($web !== '') {
        $url .= '&web=' . rawurlencode($web);
    }

    $response = file_get_contents($url);
    if ($response === false) {
        echo 'Не удалось выполнить запрос к серверу';
        return false;
    }

    $json = json_decode($response, true);
    if (!isset($json['err'])) {
        echo 'Не удалось обработать ответ от сервера';
        return false;
    }

    if ($json['err'] === 0 && isset($json['result'])) {
        echo $json['result'] === 'insert' ? 'Контакт добавлен' : 'Контакт обновлён';
        return true;
    }

    echo 'Ошибка: ' . $json['err'];
    return false;
}

$token = 'YOUR_TOKEN';
$phone = '79001234567';
$name = 'Иван Петров';
$info = 'Новый клиент';
$email = 'ivan@example.com';
$web = 'https://example.com';

addOrUpdateContact($token, $phone, $name, $info, $email, $web);