Добавление тега к сделке в AMO CRM: пошаговая инструкция и частые ошибки
При интеграции с AMO CRM через API разработчики часто сталкиваются с проблемой добавления тегов к сделкам. В этой статье мы разберём корректный способ добавления тега, типичные ошибки и дадим готовый пример кода на PHP.
Почему ваш код не работает: основные ошибки
В исходном примере используется неверный метод HTTP и структура данных. Чтобы добавить тег к существующей сделке, нужно отправлять PATCH запрос, а не POST. Кроме того, массив тегов передаётся в неправильном формате.
Ошибка 1: неверный HTTP-метод
Для обновления сделки (добавления тега) используется метод PATCH, а не POST. POST применяется только для создания новых сущностей.
Ошибка 2: неправильная структура JSON
Теги в AMO CRM v4 передаются внутри объекта _embedded в виде массива объектов с полем name. Поле tags больше не используется - оно заменено на _embedded['tags'].
Правильный способ добавления тега к сделке через API
Для корректного добавления тега используйте следующий алгоритм:
- Выполните PATCH запрос к эндпоинту
/api/v4/leads/{id}. - Передайте тело запроса в формате JSON с правильной структурой.
- Убедитесь, что у тега нет дубликатов - API не создаст повторный тег с таким же именем.
Пример кода на PHP (cURL)
$leadId = 123456; // ID сделки
$tagName = 'Пример тега';
$subdomain = 'ваш_поддомен';
$accessToken = 'ваш_токен';
$data = [
'_embedded' => [
'tags' => [
['name' => $tagName]
]
]
];
$ch = curl_init("https://{$subdomain}.amocrm.ru/api/v4/leads/{$leadId}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $accessToken,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
echo 'Тег успешно добавлен';
} else {
echo 'Ошибка: ' . $response;
}Дополнительные рекомендации по работе с тегами в AMO CRM
При использовании API AMO CRM учитывайте следующие нюансы:
- Множественные теги: можно передать сразу несколько тегов в массиве
tags. - Удаление тегов: для удаления всех тегов передайте пустой массив
tags. - Лимиты: API имеет ограничение на количество запросов - 10 запросов в секунду на аккаунт.
- Обработка ошибок: всегда проверяйте HTTP-код ответа и тело ошибки для отладки.
Частые вопросы по добавлению тегов в AMO CRM
Ниже мы собрали ответы на вопросы, которые чаще всего задают разработчики при интеграции с AMO CRM.
Как добавить тег через API v2?
В API v2 теги добавляются через поле tags как строка с разделителями. Например: 'tags' => 'тег1,тег2'. Однако рекомендуется использовать API v4, так как v2 считается устаревшей.
Можно ли добавить тег без перезаписи существующих?
Да, при PATCH запросе существующие теги сохраняются, а новые добавляются к ним. Если нужно заменить все теги, используйте PUT запрос.
Что делать, если API возвращает ошибку 400?
Проверьте структуру JSON: убедитесь, что поле _embedded обязательно присутствует и массив tags содержит объекты с полем name. Также проверьте, что ID сделки существует и токен доступа актуален.