Assegna, aggiungi o rimuovi utenti dai record utilizzando l'API di Blue
Gestire gli Assegnatari dei Record
L'API di Blue fornisce tre operazioni per gestire gli assegnatari dei record: impostare gli assegnatari (sostituzione intelligente), aggiungere assegnatari e rimuovere assegnatari. Queste operazioni gestiscono automaticamente il tracciamento delle attività, le notifiche, i webhook e gli aggiornamenti in tempo reale.
Imposta Assegnatari dei Record (Assegnazione Intelligente)
Sostituisce tutti gli attuali assegnatari con un nuovo elenco. Il sistema calcola in modo intelligente quali cambiamenti sono necessari, rimuovendo gli utenti non presenti nel nuovo elenco e aggiungendo quelli nuovi.
mutation SetRecordAssignees {
setTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_123", "user_456", "user_789"]
}) {
success
operationId
}
}
Aggiungi Assegnatari dei Record
Aggiunge nuovi assegnatari senza rimuovere quelli esistenti. Saranno aggiunti solo gli utenti non già assegnati.
mutation AddRecordAssignees {
addTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_999", "user_111"]
}) {
success
operationId
}
}
Rimuovi Assegnatari dei Record
Rimuove specifici assegnatari da un record.
mutation RemoveRecordAssignees {
removeTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_456"]
}) {
success
operationId
}
}
Parametri di Input
SetTodoAssigneesInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
todoId |
String! | ✅ Sì | L'ID del record a cui assegnare gli utenti |
assigneeIds |
[String!]! | ✅ Sì | Array di ID utente da assegnare (sostituisce tutti gli attuali assegnatari) |
AddTodoAssigneesInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
todoId |
String! | ✅ Sì | L'ID del record a cui assegnare gli utenti |
assigneeIds |
[String!]! | ✅ Sì | Array di ID utente da aggiungere come assegnatari |
RemoveTodoAssigneesInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
todoId |
String! | ✅ Sì | L'ID del record da cui rimuovere gli assegnatari |
assigneeIds |
[String!]! | ✅ Sì | Array di ID utente da rimuovere dagli assegnatari |
Campi di Risposta
Campo | Tipo | Descrizione |
---|---|---|
success |
Boolean! | Se l'operazione è stata completata con successo |
operationId |
String | Identificatore unico per il tracciamento di questa operazione |
Permessi Richiesti
Imposta/Rimuovi Assegnatari
Ruolo | Può Assegnare/Rimuovere |
---|---|
OWNER |
✅ Sì |
ADMIN |
✅ Sì |
MEMBER |
✅ Sì |
CLIENT |
✅ Sì |
VIEW_ONLY |
❌ No |
COMMENT_ONLY |
❌ No |
Aggiungi Assegnatari
Ruolo | Può Aggiungere Assegnatari |
---|---|
OWNER |
✅ Sì |
ADMIN |
✅ Sì |
MEMBER |
✅ Sì |
CLIENT |
✅ Sì |
VIEW_ONLY |
✅ Sì |
COMMENT_ONLY |
✅ Sì |
Risposte di Errore
Record Non Trovato
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Permessi Insufficienti
{
"errors": [{
"message": "You don't have permission to modify this record",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Input Non Valido
{
"errors": [{
"message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED"
}
}]
}
Confronto delle Operazioni
Caratteristica | Imposta Assegnatari | Aggiungi Assegnatari | Rimuovi Assegnatari |
---|---|---|---|
Logic | Smart replacement | Incremental addition | Selective removal |
Activity Tracking | ✅ Sì | ❌ No | ❌ No |
Notifiche | ✅ Sì | ❌ No | ❌ No |
Webhooks | ✅ Sì | ❌ No | ❌ No |
Automations | ✅ Sì | ❌ No | ❌ No |
Permission Level | Stricter | More permissive | Stricter |
Logica Aziendale
Assegnazione Intelligente (setTodoAssignees)
Quando utilizzi setTodoAssignees
, il sistema:
- Confronta le Liste: Analizza gli attuali assegnatari rispetto al nuovo elenco di assegnatari
- Calcola i Cambiamenti: Determina chi rimuovere, mantenere e aggiungere
- Rimuove Utenti: Disassegna gli utenti non presenti nel nuovo elenco
- Aggiunge Utenti: Assegna gli utenti nel nuovo elenco che non erano precedentemente assegnati
- Traccia Attività: Crea voci di log delle attività per ogni cambiamento
- Invia Notifiche: Notifica gli utenti appena assegnati
- Attiva Webhook: Attiva i webhook per assegnatari aggiunti/rimossi
- Aggiorna Grafici: Segna i grafici analitici per il refresh
- Aggiornamenti in Tempo Reale: Pubblica aggiornamenti ai client connessi
Operazioni Semplici (aggiungi/rimuovi)
Le operazioni addTodoAssignees
e removeTodoAssignees
forniscono funzionalità di base senza le caratteristiche complete di tracciamento e notifica di setTodoAssignees
.
Note Importanti
- Appartenenza al Progetto: Gli assegnatari devono essere membri del progetto contenente il record
- Nessun Limite di Assegnazione: Non c'è un numero massimo di assegnatari per record
- Auto-Assegnazione: Gli utenti possono assegnare se stessi se hanno i permessi appropriati
- Array Vuoti: Fornire un array vuoto
assigneeIds
asetTodoAssignees
rimuove tutti gli assegnatari - Prevenzione dei Duplicati: Il sistema previene automaticamente le assegnazioni duplicate
- Efficienza del Database: Utilizza una tabella di giunzione (
TodoUser
) per relazioni molti-a-molti scalabili - Aggiornamenti in Tempo Reale: Tutti i client connessi ricevono aggiornamenti immediati quando le assegnazioni cambiano
Ottieni Assegnatari Disponibili
Per ottenere un elenco di utenti che possono essere assegnati a record in un progetto:
query GetAssignees {
assignees(projectId: "project_abc123") {
id
name
email
avatar
}
}
Questa query restituisce tutti i membri del progetto che possono essere potenzialmente assegnati ai record.
Operazioni Correlate
- Elenca Record - Ottieni record con i loro attuali assegnatari
- Aggiorna Record - Modifica altre proprietà del record
- Aggiungi Commento - Aggiungi commenti ai record assegnati