Les projets dans Blue forment le cadre fondamental pour organiser les utilisateurs et les données.
Lister tous les projets
La requête projectList
vous permet de récupérer des projets avec des options de filtrage, de tri et de pagination puissantes.
Exemple de base
query ProjectListQuery {
projectList(filter: { companyIds: ["ENTER COMPANY ID"] }) {
items {
id
uid
slug
name
description
archived
color
icon
createdAt
updatedAt
allowNotification
position
unseenActivityCount
todoListsMaxPosition
lastAccessedAt
isTemplate
automationsCount
totalFileCount
totalFileSize
todoAlias
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
}
}
Exemple avancé avec filtrage et tri
query FilteredProjectList {
projectList(
filter: {
companyIds: ["company-123", "company-456"]
archived: false
isTemplate: false
search: "marketing"
inProject: true
folderId: null # Get root-level projects only
}
sort: [position_ASC, name_ASC]
skip: 0
take: 50
) {
items {
id
name
slug
position
archived
}
totalCount
pageInfo {
totalItems
hasNextPage
}
}
}
Champs du projet
Le tableau suivant décrit tous les champs disponibles pour chaque projet dans le ProjectListQuery
:
Champ | Type | Description |
---|---|---|
id | ID! | Identifiant unique pour le projet |
uid | String! | Identifiant unique convivial pour le projet |
slug | String! | Nom du projet convivial pour les URL |
name | String! | Nom d'affichage du projet |
description | String | Brève description du projet |
archived | Boolean | Booléen indiquant si le projet est archivé |
color | String | Couleur associée au projet pour identification visuelle |
icon | String | Icône associée au projet pour identification visuelle |
image | Image | Objet d'image de couverture du projet |
createdAt | DateTime! | Horodatage lorsque le projet a été créé |
updatedAt | DateTime! | Horodatage lorsque le projet a été mis à jour pour la dernière fois |
allowNotification | Boolean! | Booléen indiquant si les notifications sont activées pour le projet |
position | Float! | Valeur numérique représentant la position du projet dans une liste |
unseenActivityCount | Int! | Nombre d'activités non vues dans le projet |
todoListsMaxPosition | Float! | Valeur maximale de position pour les listes de tâches dans le projet |
lastAccessedAt | DateTime | Horodatage lorsque le projet a été accédé pour la dernière fois |
isTemplate | Boolean! | Booléen indiquant si le projet est un modèle |
isOfficialTemplate | Boolean! | Booléen indiquant si c'est un modèle officiel de Blue |
automationsCount(isActive: Boolean) | Int! | Nombre d'automatisations associées au projet |
totalFileCount | Int | Nombre total de fichiers dans le projet |
totalFileSize | Float | Taille totale de tous les fichiers dans le projet (en octets) |
todoAlias | String | Alias personnalisé pour "todo" utilisé dans le projet |
category | ProjectCategory! | Catégorie du projet (CRM, MARKETING, etc.) |
hideEmailFromRoles | [UserAccessLevel!] | Tableau des rôles qui devraient cacher les adresses e-mail |
hideStatusUpdate | Boolean | Booléen pour cacher les mises à jour de statut |
company | Company! | Détails complets de l'objet entreprise |
accessLevel(userId: String) | UserAccessLevel | Obtenir le niveau d'accès de l'utilisateur pour le projet spécifique |
folder | Folder | Dossier contenant ce projet |
features | [ProjectFeature!] | Tableau des fonctionnalités de projet activées |
sequenceCustomField | CustomField | Champ personnalisé utilisé pour le numérotage de séquence |
coverConfig | TodoCoverConfig | Configuration pour les images de couverture des tâches |
hideRecordCount | Boolean | Que faire pour cacher les comptes d'enregistrement |
showTimeSpentInTodoList | Boolean | Que faire pour afficher le temps passé dans les listes de tâches |
showTimeSpentInProject | Boolean | Que faire pour afficher le temps passé dans le projet |
todoFields | [TodoField] | Définitions de champs de tâches personnalisées |
Note : Vous pouvez demander n'importe quelle combinaison de ces champs dans votre requête GraphQL.
Champs de pagination
L'objet pageInfo
fournit des détails de pagination pour les résultats de la requête :
Champ | Type | Description |
---|---|---|
totalPages | Int | Nombre total de pages de résultats |
totalItems | Int | Nombre total de projets correspondant à la requête |
page | Int | Numéro de la page actuelle |
perPage | Int | Nombre d'éléments par page |
hasNextPage | Boolean! | Booléen indiquant s'il y a une page suivante de résultats |
hasPreviousPage | Boolean! | Booléen indiquant s'il y a une page précédente de résultats |
Paramètres de requête
Options de filtrage (ProjectListFilter)
Paramètre | Type | Requis | Description |
---|---|---|---|
companyIds |
[String!]! | ✅ Oui | Tableau d'ID ou de slugs d'entreprise à rechercher |
ids |
[String!] | Non | Filtrer par ID de projet spécifiques |
archived |
Boolean | Non | Filtrer par statut archivé (vrai/faux) |
isTemplate |
Boolean | Non | Filtrer les projets modèles (vrai/faux) |
search |
String | Non | Rechercher des projets par nom (insensible à la casse) |
folderId |
String | Non | Filtrer par ID de dossier. Utilisez null pour les projets de niveau racine |
inProject |
Boolean | Non | Filtrer par adhésion utilisateur. Voir la note ci-dessous |
Note sur le filtre inProject
:
true
ouundefined
: Renvoie les projets dont l'utilisateur est membrefalse
: Renvoie les projets dans lesquels l'utilisateur n'est PAS (nécessite l'autorisation du propriétaire de l'entreprise)- Le filtrage par dossier (
folderId
) ne fonctionne que lorsqueinProject
n'est pasfalse
Options de tri (ProjectSort)
Valeur | Description |
---|---|
id_ASC |
Trier par ID croissant |
id_DESC |
Trier par ID décroissant |
name_ASC |
Trier par nom croissant (A-Z) |
name_DESC |
Trier par nom décroissant (Z-A) |
createdAt_ASC |
Trier par date de création (plus ancien d'abord) |
createdAt_DESC |
Trier par date de création (plus récent d'abord) |
updatedAt_ASC |
Trier par dernière mise à jour (plus ancien d'abord) |
updatedAt_DESC |
Trier par dernière mise à jour (plus récent d'abord) |
position_ASC |
Trier par position croissante* |
position_DESC |
Trier par position décroissante* |
*Le tri par position n'est disponible que lors de la visualisation de projets dont l'utilisateur est membre (inProject !== false
)
Paramètres de pagination
Paramètre | Type | Par défaut | Description |
---|---|---|---|
skip |
Int | 0 | Nombre d'enregistrements à ignorer |
take |
Int | 20 | Nombre d'enregistrements à retourner |
Notes importantes
-
Comportement par défaut pour les projets non membres (
inProject: false
) :- Exclut les projets archivés à moins que le filtre
archived
ne soit explicitement défini - Exclut les projets modèles à moins que le filtre
isTemplate
ne soit explicitement défini
- Exclut les projets archivés à moins que le filtre
-
Limitations du filtrage par dossier :
- Ne fonctionne que lors de l'affichage des projets de l'utilisateur
- Ne peut pas être utilisé avec
inProject: false
- Utilisez
folderId: null
pour obtenir des projets qui ne sont dans aucun dossier
-
Repli de tri :
- Le tri par position est ignoré lors de la visualisation de projets non membres
- Se replie sur le tri par nom dans de tels cas
-
Paramètres obsolètes :
orderBy
,after
,before
,first
,last
sont obsolètes- Utilisez
sort
,skip
, ettake
à la place