Универсальный вариант. Подходит для любых внешних систем: AmoCRM, Bitrix24, своих сервисов или любого источника который умеет отправлять HTTP-запросы.

Webhook URL

После создания интеграции типа api вы получите URL в формате:
https://{домен}/api/upload-contacts-integrations/webhook/{webhookToken}

Формат данных

Отправляйте данные в формате JSON через HTTP POST. Поддерживаются как одиночный объект, так и массив. Единственное обязательное поле — phone.
[
  {
    "phone": "79001234567",
    "tags": ["тег1", "тег2"],
    "additionalFields": {
      "client_name": "Иван",
      "age": 30,
      "other_info": "значение"
    }
  }
]

Поля

ПолеОбязательноеЧто это
phoneдаНомер телефона. Нормализуется к формату 7XXXXXXXXXX. Поддерживаются добавочные номера: +79996480718,1034 или +79996480718 ext 1034
tagsнетМассив тегов контакта
additionalFieldsнетДополнительные поля в формате ключ-значение. Сохраняются вместе с контактом и доступны ИИ-оператору во время звонка

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

curl -X POST \
  https://platform.trysasha.ru/api/upload-contacts-integrations/webhook/ваш-токен \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "phone": "79001234567",
      "tags": ["лид", "сайт"],
      "additionalFields": {
        "источник": "реклама",
        "utm_source": "google"
      }
    }
  ]'

Формат ответа

{
  "success": true,
  "uploadedCount": 3,
  "skippedCount": 2,
  "skippedPhones": [
    {
      "phone": "+79991234567",
      "reason": "Номер уже существует в базе"
    },
    {
      "phone": "888",
      "reason": "Неверный формат номера"
    }
  ],
  "message": "Обработано 5 контактов для колл-листа \"Кампания\": загружено 3, пропущено 2"
}
ПолеТипОписание
successbooleanРезультат обработки запроса
uploadedCountnumberКоличество успешно загруженных контактов
skippedCountnumberКоличество пропущенных контактов
skippedPhonesarrayМассив пропущенных номеров с причинами
skippedPhones[].phonestringНомер телефона
skippedPhones[].reasonstringПричина пропуска (дубликат, неверный формат и т.д.)
messagestringЧеловекочитаемое описание результата