Creando proyectos utilizando la API de Blue.
Crear un Nuevo Proyecto
Para crear un nuevo proyecto, puedes usar la siguiente mutación:
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
}
}
Recuerda incluir los encabezados requeridos en tu solicitud:
- `X-Bloo-Token-ID`: Tu ID de token de API
- `X-Bloo-Token-Secret`: Tu secreto de token de API
- `X-Bloo-Company-ID`: Tu ID de empresa
- `Content-Type: application/json`
Ejemplo de Respuesta
Al tener éxito, la mutación devolverá los detalles del proyecto recién creado:
{
"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"
}
}
}
Crear desde una Plantilla
Para crear un proyecto a partir de una plantilla existente, puedes agregar un templateId
opcional a la mutación.
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
Ejemplo Avanzado con Plantilla
Aquí hay un ejemplo completo que muestra todas las opciones disponibles al crear desde una plantilla:
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
}
}
El `coverConfig` parámetro actualmente solo funciona al crear un proyecto a partir de una plantilla. Para proyectos creados desde cero, necesitarás usar la mutación `editProject` después de la creación para configurar las imágenes de portada de todo.
Verificar el Estado de Creación
Para verificar el estado de la creación de tu proyecto en la cola, puedes usar la siguiente consulta:
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
Esta consulta devolverá el estado de la creación de tu proyecto en la cola.
Parámetros de Entrada
CreateProjectInput
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
name |
String | ✅ Sí | El nombre del proyecto. Se eliminarán las URL del nombre. |
companyId |
String | ✅ Sí | El ID o slug de la empresa donde se creará el proyecto. |
description |
String | No | Una descripción del proyecto. |
color |
String | No | Color del proyecto en formato hex (por ejemplo, "#3B82F6"). |
icon |
String | No | Identificador de icono para el proyecto (por ejemplo, "maletín", "cohete"). |
category |
ProjectCategory | No | Categoría del proyecto. Por defecto es GENERAL si no se especifica. |
templateId |
String | No | ID de un proyecto existente para usar como plantilla. |
coverConfig |
TodoCoverConfigInput | No | Configuración para las imágenes de portada de todo (actualmente solo funciona con la creación basada en plantillas). |
Valores de ProjectCategory
Valor | Descripción |
---|---|
CRM |
Proyectos de Gestión de Relaciones con Clientes |
CROSS_FUNCTIONAL |
Proyectos de equipos multifuncionales |
CUSTOMER_SUCCESS |
Iniciativas de éxito del cliente |
DESIGN |
Proyectos de diseño y creatividad |
ENGINEERING |
Proyectos de ingeniería y desarrollo |
GENERAL |
Proyectos generales (por defecto) |
HR |
Proyectos de Recursos Humanos |
IT |
Proyectos de Tecnología de la Información |
MARKETING |
Campañas e iniciativas de marketing |
OPERATIONS |
Proyectos de operaciones y logística |
PRODUCT |
Proyectos de gestión de productos |
SALES |
Proyectos de ventas y desarrollo de negocios |
TodoCoverConfigInput
Si deseas configurar cómo funcionan las imágenes de portada de todo en tu proyecto, puedes proporcionar el parámetro coverConfig
:
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
enabled |
Boolean | ✅ Sí | Si las imágenes de portada están habilitadas para los todo |
fit |
ImageFit | ✅ Sí | Cómo deben ajustarse las imágenes en el área de portada |
imageSelectionType |
ImageSelectionType | ✅ Sí | Qué imagen seleccionar de las opciones disponibles |
source |
ImageSource | ✅ Sí | De dónde obtener las imágenes |
sourceId |
String | No | Identificador de fuente específico (por ejemplo, ID de campo personalizado) |
Valores de ImageFit: COVER
, CONTAIN
, FILL
, SCALE_DOWN
Valores de ImageSelectionType: FIRST
(primera imagen), LAST
(última imagen)
Valores de ImageSource: DESCRIPTION
(de la descripción del todo), COMMENTS
(de comentarios), CUSTOM_FIELD
(de un campo personalizado)
Campos de Respuesta
La mutación createProject devuelve un objeto Project con los siguientes campos disponibles:
Campo | Tipo | Descripción |
---|---|---|
id |
ID! | Identificador único para el proyecto |
name |
String! | Nombre del proyecto |
slug |
String! | Identificador del proyecto amigable con URL |
description |
String | Descripción del proyecto |
color |
String | Color del proyecto en formato hex |
icon |
String | Identificador de icono |
category |
ProjectCategory | Valor enum de categoría del proyecto |
companyId |
String! | ID de la empresa |
createdAt |
DateTime! | Marca de tiempo de creación |
updatedAt |
DateTime! | Marca de tiempo de última actualización |
archived |
Boolean! | Si el proyecto está archivado |
isTemplate |
Boolean! | Si este es un proyecto de plantilla |
Nota: Puedes solicitar cualquier combinación de estos campos en tu respuesta.
Notas Importantes
- Debes tener acceso de nivel
OWNER
,ADMIN
, oMEMBER
a la empresa para crear proyectos - Al crear desde una plantilla, la plantilla no puede tener más de 250,000 todos
- El usuario que crea se asigna automáticamente como el
OWNER
del proyecto - Los nombres de los proyectos se recortan automáticamente de espacios en blanco
- El
coverConfig
parámetro actualmente solo es funcional al crear desde una plantilla
Respuestas de Error
Empresa No Encontrada
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Plantilla No Encontrada
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Plantilla Demasiado Grande
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Permiso Denegado
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}