Création de projets en utilisant l'API Blue.
Créer un nouveau projet
Pour créer un nouveau projet, vous pouvez utiliser la mutation suivante :
mutation {
createProject(
input: {
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
description: "Project description"
color: "#3B82F6"
icon: "briefcase"
category: GENERAL
}
) {
id
name
slug
description
color
icon
category
}
}
N'oubliez pas d'inclure les en-têtes requis dans votre demande :
- `X-Bloo-Token-ID` : Votre ID de jeton API
- `X-Bloo-Token-Secret` : Votre secret de jeton API
- `X-Bloo-Company-ID` : Votre ID d'entreprise
- `Content-Type: application/json`
Exemple de réponse
En cas de succès, la mutation renverra les détails du projet nouvellement créé :
{
"data": {
"createProject": {
"id": "newly-created-project-id",
"name": "YOUR PROJECT NEW NAME",
"slug": "your-project-new-name",
"description": "Project description",
"color": "#3B82F6",
"icon": "briefcase",
"category": "GENERAL"
}
}
}
Créer à partir d'un modèle
Pour créer un projet à partir d'un modèle existant, vous pouvez ajouter un templateId
optionnel à la mutation.
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
Exemple avancé avec modèle
Voici un exemple complet montrant toutes les options disponibles lors de la création à partir d'un modèle :
mutation {
createProject(
input: {
templateId: "marketing-template"
name: "Q1 Marketing Campaign"
companyId: "acme-corp"
description: "Marketing initiatives for Q1 2024"
color: "#10B981"
icon: "megaphone"
category: MARKETING
coverConfig: {
enabled: true
fit: COVER
imageSelectionType: FIRST
source: DESCRIPTION
}
}
) {
id
name
slug
description
color
icon
category
}
}
Le paramètre `coverConfig` ne fonctionne actuellement que lors de la création d'un projet à partir d'un modèle. Pour les projets créés de zéro, vous devrez utiliser la mutation `editProject` après la création pour configurer les images de couverture des tâches.
Vérifier l'état de création
Pour vérifier l'état de votre création de projet dans la file d'attente, vous pouvez utiliser la requête suivante :
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
Cette requête renverra l'état de votre création de projet dans la file d'attente.
Paramètres d'entrée
CreateProjectInput
Paramètre | Type | Requis | Description |
---|---|---|---|
name |
String | ✅ Oui | Le nom du projet. Les URL seront supprimées du nom. |
companyId |
String | ✅ Oui | L'ID ou le slug de l'entreprise où le projet sera créé. |
description |
String | Non | Une description du projet. |
color |
String | Non | Couleur du projet au format hexadécimal (par exemple, "#3B82F6"). |
icon |
String | Non | Identifiant d'icône pour le projet (par exemple, "briefcase", "rocket"). |
category |
ProjectCategory | Non | Catégorie du projet. Par défaut, cela sera GENERAL si non spécifié. |
templateId |
String | Non | ID d'un projet existant à utiliser comme modèle. |
coverConfig |
TodoCoverConfigInput | Non | Configuration pour les images de couverture des tâches (fonctionne actuellement uniquement avec la création basée sur un modèle). |
Valeurs de ProjectCategory
Valeur | Description |
---|---|
CRM |
Projets de gestion de la relation client |
CROSS_FUNCTIONAL |
Projets d'équipe interfonctionnelle |
CUSTOMER_SUCCESS |
Initiatives de succès client |
DESIGN |
Projets de design et créatifs |
ENGINEERING |
Projets d'ingénierie et de développement |
GENERAL |
Projets généraux (par défaut) |
HR |
Projets de ressources humaines |
IT |
Projets de technologie de l'information |
MARKETING |
Campagnes et initiatives de marketing |
OPERATIONS |
Projets d'opérations et de logistique |
PRODUCT |
Projets de gestion de produit |
SALES |
Projets de vente et de développement commercial |
TodoCoverConfigInput
Si vous souhaitez configurer le fonctionnement des images de couverture des tâches dans votre projet, vous pouvez fournir le paramètre coverConfig
:
Paramètre | Type | Requis | Description |
---|---|---|---|
enabled |
Boolean | ✅ Oui | Indique si les images de couverture sont activées pour les tâches |
fit |
ImageFit | ✅ Oui | Comment les images doivent s'adapter à la zone de couverture |
imageSelectionType |
ImageSelectionType | ✅ Oui | Quelle image sélectionner parmi les options disponibles |
source |
ImageSource | ✅ Oui | D'où tirer les images |
sourceId |
String | Non | Identifiant de source spécifique (par exemple, ID de champ personnalisé) |
Valeurs de ImageFit : COVER
, CONTAIN
, FILL
, SCALE_DOWN
Valeurs de ImageSelectionType : FIRST
(première image), LAST
(dernière image)
Valeurs de ImageSource : DESCRIPTION
(depuis la description de la tâche), COMMENTS
(depuis les commentaires), CUSTOM_FIELD
(depuis un champ personnalisé)
Champs de réponse
La mutation createProject renvoie un objet Projet avec les champs disponibles suivants :
Champ | Type | Description |
---|---|---|
id |
ID! | Identifiant unique pour le projet |
name |
String! | Nom du projet |
slug |
String! | Identifiant de projet compatible avec les URL |
description |
String | Description du projet |
color |
String | Couleur du projet au format hexadécimal |
icon |
String | Identifiant d'icône |
category |
ProjectCategory | Valeur enum de catégorie de projet |
companyId |
String! | ID de l'entreprise |
createdAt |
DateTime! | Horodatage de création |
updatedAt |
DateTime! | Horodatage de dernière mise à jour |
archived |
Boolean! | Indique si le projet est archivé |
isTemplate |
Boolean! | Indique si c'est un projet modèle |
Remarque : Vous pouvez demander n'importe quelle combinaison de ces champs dans votre réponse.
Remarques importantes
- Vous devez avoir un accès de niveau
OWNER
,ADMIN
ouMEMBER
à l'entreprise pour créer des projets - Lors de la création à partir d'un modèle, le modèle ne peut pas avoir plus de 250 000 tâches
- L'utilisateur créant est automatiquement assigné comme
OWNER
du projet - Les noms de projet sont automatiquement dépouillés des espaces
- Le paramètre
coverConfig
ne fonctionne actuellement que lors de la création à partir d'un modèle
Réponses d'erreur
Entreprise non trouvée
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Modèle non trouvé
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Modèle trop volumineux
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Permission refusée
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}