Assigner, ajouter ou retirer des utilisateurs des dossiers en utilisant l'API Blue


Gérer les Attributions de Dossier

L'API Blue fournit trois opérations pour gérer les attributions de dossier : définir des attributions (remplacement intelligent), ajouter des attributions et retirer des attributions. Ces opérations gèrent automatiquement le suivi des activités, les notifications, les webhooks et les mises à jour en temps réel.

Définir les Attributions de Dossier (Attribution Intelligente)

Remplace toutes les attributions actuelles par une nouvelle liste. Le système calcule intelligemment les changements nécessaires, retirant les utilisateurs qui ne figurent pas dans la nouvelle liste et ajoutant de nouveaux.

mutation SetRecordAssignees {
  setTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_123", "user_456", "user_789"]
  }) {
    success
    operationId
  }
}

Ajouter des Attributions de Dossier

Ajoute de nouvelles attributions sans retirer celles existantes. Seuls les utilisateurs non déjà attribués seront ajoutés.

mutation AddRecordAssignees {
  addTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_999", "user_111"]
  }) {
    success
    operationId
  }
}

Retirer des Attributions de Dossier

Retire des attributions spécifiques d'un dossier.

mutation RemoveRecordAssignees {
  removeTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_456"]
  }) {
    success
    operationId
  }
}

Paramètres d'Entrée

SetTodoAssigneesInput

Paramètre Type Requis Description
todoId String! ✅ Oui L'ID du dossier auquel assigner des utilisateurs
assigneeIds [String!]! ✅ Oui Tableau des IDs d'utilisateurs à assigner (remplace toutes les attributions actuelles)

AddTodoAssigneesInput

Paramètre Type Requis Description
todoId String! ✅ Oui L'ID du dossier auquel assigner des utilisateurs
assigneeIds [String!]! ✅ Oui Tableau des IDs d'utilisateurs à ajouter comme attributions

RemoveTodoAssigneesInput

Paramètre Type Requis Description
todoId String! ✅ Oui L'ID du dossier dont retirer les attributions
assigneeIds [String!]! ✅ Oui Tableau des IDs d'utilisateurs à retirer des attributions

Champs de Réponse

Champ Type Description
success Boolean! Indique si l'opération a été complétée avec succès
operationId String Identifiant unique pour le suivi de cette opération

Permissions Requises

Définir/Retirer des Attributions

Rôle Peut Assigner/Retirer
OWNER ✅ Oui
ADMIN ✅ Oui
MEMBER ✅ Oui
CLIENT ✅ Oui
VIEW_ONLY ❌ Non
COMMENT_ONLY ❌ Non

Ajouter des Attributions

Rôle Peut Ajouter des Attributions
OWNER ✅ Oui
ADMIN ✅ Oui
MEMBER ✅ Oui
CLIENT ✅ Oui
VIEW_ONLY ✅ Oui
COMMENT_ONLY ✅ Oui

Réponses d'Erreur

Dossier Non Trouvé

{
  "errors": [{
    "message": "Todo was not found.",
    "extensions": {
      "code": "TODO_NOT_FOUND"
    }
  }]
}

Permissions Insuffisantes

{
  "errors": [{
    "message": "You don't have permission to modify this record",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Entrée Invalide

{
  "errors": [{
    "message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
    "extensions": {
      "code": "GRAPHQL_VALIDATION_FAILED"
    }
  }]
}

Comparaison des Opérations

Fonctionnalité Définir des Attributions Ajouter des Attributions Retirer des Attributions
Logic Smart replacement Incremental addition Selective removal
Activity Tracking ✅ Oui ❌ Non ❌ Non
Notifications ✅ Oui ❌ Non ❌ Non
Webhooks ✅ Oui ❌ Non ❌ Non
Automations ✅ Oui ❌ Non ❌ Non
Permission Level Stricter More permissive Stricter

Logique Métier

Attribution Intelligente (setTodoAssignees)

Lorsque vous utilisez setTodoAssignees, le système :

  1. Compare les Listes : Analyse les attributions actuelles par rapport à la nouvelle liste d'attributions
  2. Calcule les Changements : Détermine qui retirer, garder et ajouter
  3. Retire les Utilisateurs : Désassigne les utilisateurs qui ne figurent pas dans la nouvelle liste
  4. Ajoute les Utilisateurs : Assigne les utilisateurs de la nouvelle liste qui n'étaient pas précédemment assignés
  5. Suit l'Activité : Crée des entrées de journal d'activité pour chaque changement
  6. Envoie des Notifications : Notifie les utilisateurs nouvellement assignés
  7. Déclenche des Webhooks : Active les webhooks d'attribution ajoutée/retirée
  8. Met à Jour les Graphiques : Marque les graphiques d'analytique pour rafraîchissement
  9. Mises à Jour en Temps Réel : Publie des mises à jour aux clients connectés

Opérations Simples (ajouter/retirer)

Les opérations addTodoAssignees et removeTodoAssignees fournissent des fonctionnalités de base sans les fonctionnalités complètes de suivi et de notification de setTodoAssignees.

Notes Importantes

  • Adhésion au Projet : Les attributions doivent être membres du projet contenant le dossier
  • Pas de Limites d'Attribution : Il n'y a pas de nombre maximum d'attributions par dossier
  • Auto-Attribution : Les utilisateurs peuvent s'assigner eux-mêmes s'ils ont les permissions appropriées
  • Tableaux Vides : Fournir un tableau assigneeIds vide à setTodoAssignees retire toutes les attributions
  • Prévention des Doublons : Le système empêche automatiquement les attributions en double
  • Efficacité de la Base de Données : Utilise une table de jonction (TodoUser) pour des relations plusieurs-à-plusieurs évolutives
  • Mises à Jour en Temps Réel : Tous les clients connectés reçoivent des mises à jour immédiates lorsque les attributions changent

Obtenir les Attributions Disponibles

Pour obtenir une liste d'utilisateurs qui peuvent être assignés à des dossiers dans un projet :

query GetAssignees {
  assignees(projectId: "project_abc123") {
    id
    name
    email
    avatar
  }
}

Cette requête retourne tous les membres du projet qui peuvent potentiellement être assignés à des dossiers.

Opérations Associées

Assistant IA

Les réponses sont générées par l'IA et peuvent contenir des erreurs.

Comment puis-je vous aider ?

Posez-moi toutes vos questions sur Blue ou cette documentation.

Entrez pour envoyer • Maj+Entrée pour une nouvelle ligne • ⌘I pour ouvrir