Los proyectos en Blue forman el marco fundamental para organizar usuarios y datos.
Listar todos los Proyectos
La consulta projectList
permite recuperar proyectos con potentes opciones de filtrado, ordenamiento y paginación.
Ejemplo Básico
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
}
}
}
Ejemplo Avanzado con Filtrado y Ordenamiento
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
}
}
}
Campos del Proyecto
La siguiente tabla describe todos los campos disponibles para cada proyecto en el ProjectListQuery
:
Campo | Tipo | Descripción |
---|---|---|
id | ID! | Identificador único para el proyecto |
uid | String! | Identificador único amigable para el usuario del proyecto |
slug | String! | Nombre del proyecto amigable para URL |
name | String! | Nombre para mostrar del proyecto |
description | String | Breve descripción del proyecto |
archived | Boolean | Booleano que indica si el proyecto está archivado |
color | String | Color asociado con el proyecto para identificación visual |
icon | String | Icono asociado con el proyecto para identificación visual |
image | Image | Objeto de imagen de portada del proyecto |
createdAt | DateTime! | Marca de tiempo cuando se creó el proyecto |
updatedAt | DateTime! | Marca de tiempo cuando se actualizó por última vez el proyecto |
allowNotification | Boolean! | Booleano que indica si las notificaciones están habilitadas para el proyecto |
position | Float! | Valor numérico que representa la posición del proyecto en una lista |
unseenActivityCount | Int! | Número de actividades no vistas en el proyecto |
todoListsMaxPosition | Float! | Valor máximo de posición para listas de tareas en el proyecto |
lastAccessedAt | DateTime | Marca de tiempo cuando se accedió por última vez al proyecto |
isTemplate | Boolean! | Booleano que indica si el proyecto es una plantilla |
isOfficialTemplate | Boolean! | Booleano que indica si esta es una plantilla oficial de Blue |
automationsCount(isActive: Boolean) | Int! | Número de automatizaciones asociadas con el proyecto |
totalFileCount | Int | Número total de archivos en el proyecto |
totalFileSize | Float | Tamaño total de todos los archivos en el proyecto (en bytes) |
todoAlias | String | Alias personalizado para "tarea" utilizado en el proyecto |
category | ProjectCategory! | Categoría del proyecto (CRM, MARKETING, etc.) |
hideEmailFromRoles | [UserAccessLevel!] | Array de roles que deben ocultar direcciones de correo electrónico |
hideStatusUpdate | Boolean | Booleano para ocultar actualizaciones de estado |
company | Company! | Detalles completos del objeto de la empresa |
accessLevel(userId: String) | UserAccessLevel | Obtener el nivel de acceso del usuario para el proyecto específico |
folder | Folder | Carpeta que contiene este proyecto |
features | [ProjectFeature!] | Array de características del proyecto habilitadas |
sequenceCustomField | CustomField | Campo personalizado utilizado para numeración secuencial |
coverConfig | TodoCoverConfig | Configuración para imágenes de portada de tareas |
hideRecordCount | Boolean | Si se deben ocultar los recuentos de registros |
showTimeSpentInTodoList | Boolean | Si se debe mostrar el tiempo dedicado en listas de tareas |
showTimeSpentInProject | Boolean | Si se debe mostrar el tiempo dedicado en el proyecto |
todoFields | [TodoField] | Definiciones de campos de tareas personalizados |
Nota: Puedes solicitar cualquier combinación de estos campos en tu consulta GraphQL.
Campos de Paginación
El objeto pageInfo
proporciona detalles de paginación para los resultados de la consulta:
Campo | Tipo | Descripción |
---|---|---|
totalPages | Int | Número total de páginas de resultados |
totalItems | Int | Número total de proyectos que coinciden con la consulta |
page | Int | Número de página actual |
perPage | Int | Número de elementos por página |
hasNextPage | Boolean! | Booleano que indica si hay una siguiente página de resultados |
hasPreviousPage | Boolean! | Booleano que indica si hay una página anterior de resultados |
Parámetros de Consulta
Opciones de Filtrado (ProjectListFilter)
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
companyIds |
[String!]! | ✅ Sí | Array de IDs de empresas o slugs para buscar dentro |
ids |
[String!] | No | Filtrar por IDs de proyectos específicos |
archived |
Boolean | No | Filtrar por estado archivado (true/false) |
isTemplate |
Boolean | No | Filtrar proyectos plantilla (true/false) |
search |
String | No | Buscar proyectos por nombre (sin distinguir mayúsculas y minúsculas) |
folderId |
String | No | Filtrar por ID de carpeta. Usa null para proyectos de nivel raíz |
inProject |
Boolean | No | Filtrar por membresía de usuario. Ver nota a continuación |
Nota sobre el filtro inProject
:
true
oundefined
: Devuelve proyectos de los que el usuario es miembrofalse
: Devuelve proyectos en los que el usuario NO está (requiere permiso de propietario de la empresa)- El filtrado por carpeta (
folderId
) solo funciona cuandoinProject
no estáfalse
Opciones de Ordenamiento (ProjectSort)
Valor | Descripción |
---|---|
id_ASC |
Ordenar por ID ascendente |
id_DESC |
Ordenar por ID descendente |
name_ASC |
Ordenar por nombre ascendente (A-Z) |
name_DESC |
Ordenar por nombre descendente (Z-A) |
createdAt_ASC |
Ordenar por fecha de creación (más antiguo primero) |
createdAt_DESC |
Ordenar por fecha de creación (más reciente primero) |
updatedAt_ASC |
Ordenar por última actualización (más antigua primero) |
updatedAt_DESC |
Ordenar por última actualización (más reciente primero) |
position_ASC |
Ordenar por posición ascendente* |
position_DESC |
Ordenar por posición descendente* |
*El ordenamiento por posición solo está disponible cuando se visualizan proyectos de los que el usuario es miembro (inProject !== false
)
Parámetros de Paginación
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
skip |
Int | 0 | Número de registros a omitir |
take |
Int | 20 | Número de registros a devolver |
Notas Importantes
-
Comportamiento predeterminado para proyectos no miembros (
inProject: false
):- Excluye proyectos archivados a menos que el filtro
archived
esté explícitamente establecido - Excluye proyectos plantilla a menos que el filtro
isTemplate
esté explícitamente establecido
- Excluye proyectos archivados a menos que el filtro
-
Limitaciones del filtrado por carpeta:
- Solo funciona al mostrar proyectos del usuario
- No se puede usar con
inProject: false
- Usa
folderId: null
para obtener proyectos que no estén en ninguna carpeta
-
Retroceso de ordenamiento:
- El ordenamiento por posición se ignora al visualizar proyectos no miembros
- Se retrocede al ordenamiento por nombre en tales casos
-
Parámetros obsoletos:
orderBy
,after
,before
,first
,last
están obsoletos- Usa
sort
,skip
, ytake
en su lugar