La suppression d'un tag d'un ticket Zoho Desk via l'API est une opération DELETE simple qui nécessite à la fois l'identifiant du ticket et l'identifiant spécifique du tag. Cet article présente l'endpoint exact, les paramètres requis et les scopes OAuth nécessaires pour effectuer cette opération correctement.
Pourquoi c'est important
Les tags dans Zoho Desk aident les équipes à catégoriser et filtrer les tickets, mais des tags obsolètes ou incorrects peuvent fausser les rapports et la logique de routage. Si vous créez une automatisation, un script de migration ou un workflow de nettoyage, vous aurez besoin d'un moyen fiable de détacher des tags individuels de tickets par programmation. C'est également utile lors de la synchronisation des métadonnées de tickets entre Zoho Desk et un système externe. Notez que Beam Help est un support expert indépendant — nous ne sommes pas le support officiel de Zoho.
Étape par étape
Étape 1. Vérifiez que vos scopes OAuth sont en place.
Avant d'effectuer tout appel API, assurez-vous que votre application connectée dispose des scopes OAuth Zoho Desk corrects et autorisés. Vous avez au minimum besoin de Desk.tickets.ALL ou de la combinaison Desk.tickets.READ et Desk.tickets.DELETE dans votre configuration de scopes. [2]
Étape 2. Rassemblez les identifiants requis.
Vous avez besoin de deux informations avant d'appeler l'endpoint :
ticketId— l'identifiant unique du ticket dont vous souhaitez supprimer le tag.tagId— l'identifiant unique du tag spécifique que vous souhaitez détacher.
Les deux valeurs sont des chaînes de caractères. Vous pouvez récupérer le ticketId depuis n'importe quel appel de liste ou de détail de ticket, et le tagId depuis les métadonnées du tag associé à ce ticket. [1]
Étape 3. Appelez l'endpoint de suppression de tag.
Envoyez une requête DELETE vers le chemin suivant, en substituant vos valeurs réelles :
DELETE /api/v1/tickets/{ticketId}/tags/{tagId}
Un paramètre optionnel p (un dictionnaire) peut être transmis pour tout paramètre de requête supplémentaire requis par votre intégration. [1]
Étape 4. Implémentez l'appel en Python.
Si vous utilisez un client Zoho Desk basé sur Python, la signature de la méthode ressemble à ceci :
def remove_tags_from_ticket(self, ticketId: str, tagId: str, p: dict = None):
return self.c.request("DELETE", f"/api/v1/tickets/{ticketId}/tags/{tagId}", p, None)
Passez le ticketId et le tagId comme arguments de chaîne positionnels. Le corps de la requête est None pour une opération DELETE — seul le chemin URL contient les informations d'identification. [1]
Étape 5. Vérifiez la réponse.
Une suppression réussie retournera un statut HTTP 200 ou 204. Si vous recevez un 404, vérifiez que le ticketId et le tagId sont corrects et que le tag est bien associé à ce ticket. Si vous recevez un 401 ou 403, revoyez la configuration de vos scopes OAuth de l'étape 1. [2]
Étape 6. (Optionnel) Confirmez en ajoutant des tags si nécessaire.
Si votre workflow doit également ajouter des tags à un ticket, l'opération complémentaire est un POST vers le même chemin de base sans le segment tagId :
POST /api/v1/tickets/{ticketId}/tags
Cet endpoint accepte un dictionnaire data dans le corps de la requête contenant les détails du tag. [6]
Erreurs courantes
- Niveau de scope incorrect. Utiliser uniquement
Desk.tickets.READbloquera les opérations DELETE. Assurez-vous queDesk.tickets.DELETEouDesk.tickets.ALLest inclus dans votre chaîne de scopes OAuth. [2] - Confusion entre la suppression de tag et la suppression de modèle ou de pièce jointe. L'API Zoho Desk dispose d'endpoints DELETE distincts pour les modèles de tickets (
/api/v1/ticketTemplates/{templateId}) et les pièces jointes de tickets (/api/v1/tickets/{ticketId}/attachments/{attachmentId}). Ce sont des ressources entièrement différentes — ne confondez pas les chemins d'endpoint. [4][5] tagIdmanquant dans le chemin. L'identifiant du tag doit apparaître dans le chemin URL lui-même, et non dans le corps de la requête ou en tant que paramètre de requête. Envoyer un DELETE vers/api/v1/tickets/{ticketId}/tagssans le segmenttagIdne ciblera pas un tag spécifique. [1]
Ce qu'il faut vérifier
- Confirmez que le scope
Desk.tickets.DELETEouDesk.tickets.ALLest présent et autorisé dans votre configuration OAuth avant d'exécuter la requête. [2] - Vérifiez que le
tagIdque vous transmettez appartient bien au ticket cible — tenter de supprimer un tag qui n'est pas attaché à ce ticket retournera une erreur. [1] - Après que l'appel DELETE retourne un statut de succès, récupérez optionnellement la liste des tags du ticket pour confirmer que le tag n'apparaît plus, afin de vous assurer que votre logique en aval reflète l'état mis à jour. [6]