Как можно добавить тег к сделке в AMO CRM с помощью API?

Как правильно добавить тег к сделке в AMO CRM? <br/> Я отправляю заявку, но не могу найти пример использования API для добавления тега. В соответствии с документацией я пробую реализовать это следующим образом: <br/> <pre><code class="php">$tag = "Пример тега";
			
$response = $amoClient('POST', "/api/v4/leads/{$response['content'][0]['id']}", [
    [
        'tags' =&gt; [
            'name' =&gt; $tag
        ]
    ]
]);</code></pre> <br/> <br/> Где я допускаю ошибку?
  • 31 марта 2025 г. 16:24
Ответы на вопрос 2
Для того чтобы добавить тег к сделке в AMO CRM с помощью API, вам нужно правильно сформировать запрос. Вы пытаетесь добавить тег, но структура вашего запроса не соответствует требованиям API. 

Вам нужно использовать правильный формат для обновления сделки и добавления тегов. Теги должны быть переданы в массиве `tags` как список:

Пример правильного запроса для обновления сделки с добавлением тега:

```php
$tag = "Пример тега";
$leadId = $response['content'][0]['id']; // ID сделки, которую вы хотите обновить

$response = $amoClient('PATCH', "/api/v4/leads/{$leadId}", [
    'tags' => [$tag] // передаем массив с тегами
]);
```

Обратите внимание на следующие моменты:
1. Используйте метод `PATCH` для обновления существующей сделки.
2. Теги передаются в виде массива, даже если вы добавляете только один тег.

Также убедитесь, что ваше соединение с API работает корректно и вы авторизованы. Если у вас есть дополнительные вопросы или возникли ошибки, проверьте ответ от сервера на наличие информации о проблемах.
- Не POST, а PATCH. 
- Эндпоинт без id сделки: /api/v4/leads.
- Теги передаются как массив объектов внутри _embedded['tags'].
- Данные необходимо преобразовать в json.

Выглядеть это будет примерно так (я не силен в php):
$data = [
    [
        'id' => (int)$leadId,
        '_embedded' => [
            'tags' => [
                ['name' => 'tag_name'],
            ],
        ],
    ],
];

$res = $amoClient('PATCH', '/api/v4/leads', ['json' => $data]); 
echo $res['status'];
Похожие вопросы