Этот метод добавляет контакт в базу 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} Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| token | string | Да | API-токен канала в разделе «Настройки > Управление > API». Токен должен относиться к активному каналу. |
| phone | string | Да | Идентификатор контакта: номер в международном формате (например, 79001234567), для Telegram/MAX — ID чата или никнейм. Можно передать в URL или GET phone. |
| name | string | Да | Имя контакта, до 250 символов, UTF-8. Передаётся в GET (рекомендуется urlencode). |
| info | string | Нет | Заметка к контакту. Перенос строки: %0A. При обновлении значение - очищает поле. |
| string | Нет | Email, до 150 символов. При обновлении - очищает поле. | |
| web | string | Нет | 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 150 | URL длиннее 150 символов |
| email fail, more 150 | Email длиннее 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);