Crear, gestionar y utilizar etiquetas para categorizar registros utilizando la API de Blue.
Resumen
Las etiquetas son una forma poderosa de categorizar y organizar registros en Blue. El sistema de etiquetas proporciona una funcionalidad integral para crear, gestionar y filtrar etiquetas, con soporte para operaciones en masa y filtrado avanzado.
Listar Etiquetas
Recuperar etiquetas de proyectos con opciones de filtrado y ordenamiento flexibles.
Ejemplo Básico
query ListTags {
tagList(
filter: {
projectIds: ["project-123"]
excludeArchivedProjects: false
}
first: 50
orderBy: title_ASC
) {
items {
id
uid
title
color
project {
id
name
}
createdAt
updatedAt
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
totalCount
}
}
Ejemplo de Filtrado Avanzado
query FilterTags {
tagList(
filter: {
projectIds: ["project-123", "project-456"]
search: "urgent"
colors: ["#ff0000", "#ffaa00"]
excludeArchivedProjects: true
}
orderBy: createdAt_DESC
first: 20
) {
items {
id
title
color
todos {
id
title
}
}
totalCount
}
}
Crear Etiquetas
Crear nuevas etiquetas dentro de un proyecto.
mutation CreateTag {
createTag(
input: {
title: "High Priority"
color: "#ff0000"
}
) {
id
uid
title
color
project {
id
name
}
createdAt
}
}
Actualizar Etiquetas
Modificar propiedades de etiquetas existentes.
mutation UpdateTag {
editTag(
input: {
id: "tag-123"
title: "Critical Priority"
color: "#cc0000"
}
) {
id
title
color
updatedAt
}
}
Eliminar Etiquetas
Eliminar etiquetas del sistema. Esto también eliminará la etiqueta de todos los registros asociados.
mutation DeleteTag {
deleteTag(id: "tag-123")
}
Etiquetar Registros
Asociar etiquetas con registros (todos) utilizando etiquetas existentes o crear nuevas.
Usando Etiquetas Existentes
mutation TagRecord {
setTodoTags(
input: {
todoId: "todo-123"
tagIds: ["tag-456", "tag-789"]
}
)
}
Crear Etiquetas Mientras Etiquetas
Puedes crear nuevas etiquetas sobre la marcha proporcionando títulos de etiquetas:
mutation TagRecordWithNewTags {
setTodoTags(
input: {
todoId: "todo-123"
tagIds: ["existing-tag-id"]
tagTitles: ["New Tag", "Another New Tag"]
}
)
}
Sugerencias de Etiquetas AI
Obtener sugerencias de etiquetas impulsadas por IA para un registro:
mutation GetTagSuggestions {
aiTag(
input: {
todoId: "todo-123"
suggestionsCount: 5
}
) {
suggestions {
title
confidence
color
}
}
}
Parámetros de Entrada
Filtro de Lista de Etiquetas
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
projectIds |
[String!] | No | Filtrar etiquetas por IDs o slugs de proyectos |
excludeArchivedProjects |
Boolean | No | Excluir etiquetas de proyectos archivados |
search |
String | No | Buscar títulos de etiquetas (sin distinción entre mayúsculas y minúsculas) |
titles |
[String!] | No | Filtrar por títulos de etiquetas específicos |
colors |
[String!] | No | Filtrar por colores específicos (formato hex) |
tagIds |
[String!] | No | Filtrar por IDs de etiquetas específicos |
Entrada para Crear Etiqueta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
title |
String | No | Título de la etiqueta (generado automáticamente si no se proporciona) |
color |
String! | ✅ Sí | Color de la etiqueta en formato hex (por ejemplo, "#ff0000") |
Entrada para Editar Etiqueta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
id |
String! | ✅ Sí | ID de la etiqueta a actualizar |
title |
String | No | Nuevo título de la etiqueta |
color |
String | No | Nuevo color de la etiqueta en formato hex |
Entrada para Establecer Etiquetas de Tarea
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
todoId |
String! | ✅ Sí | ID del registro a etiquetar |
tagIds |
[String!] | No | IDs de etiquetas existentes a aplicar |
tagTitles |
[String!] | No | Títulos de nuevas etiquetas a crear y aplicar |
Valores de Entrada para Ordenar Etiquetas
| Valor | Descripción |
|---|---|
id_ASC / id_DESC |
Ordenar por ID de etiqueta |
uid_ASC / uid_DESC |
Ordenar por identificador único |
title_ASC / title_DESC |
Ordenar alfabéticamente por título |
color_ASC / color_DESC |
Ordenar por valor de color |
createdAt_ASC / createdAt_DESC |
Ordenar por fecha de creación |
updatedAt_ASC / updatedAt_DESC |
Ordenar por fecha de última actualización |
Campos de Respuesta
Tipo de Etiqueta
| Campo | Tipo | Descripción |
|---|---|---|
id |
ID! | Identificador único para la etiqueta |
uid |
String! | Identificador único amigable para el usuario |
title |
String! | Título/nombre de la etiqueta |
color |
String! | Color de la etiqueta en formato hex |
project |
Project! | Proyecto al que pertenece esta etiqueta |
todos |
[Todo!]! | Registros asociados con esta etiqueta |
createdAt |
DateTime! | Cuándo se creó la etiqueta |
updatedAt |
DateTime! | Cuándo se actualizó por última vez la etiqueta |
Respuesta de Paginación de Etiquetas
| Campo | Tipo | Descripción |
|---|---|---|
items |
[Tag!]! | Array de registros de etiquetas |
pageInfo |
PageInfo! | Información de paginación |
totalCount |
Int! | Número total de etiquetas que coinciden con los filtros |
Campos de Información de Página
| Campo | Tipo | Descripción |
|---|---|---|
totalPages |
Int | Número total de páginas |
totalItems |
Int | Número total de elementos en todas las páginas |
page |
Int | Número de página actual |
perPage |
Int | Número de elementos por página |
hasNextPage |
Boolean! | Si hay una página siguiente |
hasPreviousPage |
Boolean! | Si hay una página anterior |
Permisos Requeridos
Gestión de Etiquetas
| Acción | Rol Requerido |
|---|---|
| Create tags | OWNER, ADMIN, MEMBER, or CLIENT |
| Edit tags | OWNER, ADMIN, MEMBER, or CLIENT |
| Delete tags | OWNER, ADMIN, MEMBER, or CLIENT |
| Apply tags to records | OWNER, ADMIN, MEMBER, or CLIENT |
Visibilidad de Etiquetas
Las etiquetas son visibles para todos los usuarios que tienen acceso al proyecto donde se creó la etiqueta. Puede aplicarse filtrado basado en roles para ciertas operaciones.
Respuestas de Error
Etiqueta No Encontrada
{
"errors": [{
"message": "Tag not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Formato de Color Inválido
{
"errors": [{
"message": "Color must be in hex format (e.g., #ff0000)",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Permiso Denegado
{
"errors": [{
"message": "You do not have permission to modify tags in this project",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Registro No Encontrado
{
"errors": [{
"message": "Todo not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Mejores Prácticas
- Usar Colores Consistentes: Establecer un sistema de codificación de colores para tu equipo
- Títulos Descriptivos: Usar nombres de etiquetas claros y descriptivos que los miembros del equipo entenderán
- Operaciones por Lotes: Usar
setTodoTagspara aplicar múltiples etiquetas a la vez - Buscar y Filtrar: Usar la funcionalidad de búsqueda para encontrar etiquetas existentes antes de crear nuevas
- Gestión de Etiquetas: Revisar y limpiar regularmente etiquetas no utilizadas
- Convenciones de Color: Considerar usar colores estándar para tipos de etiquetas comunes (rojo para urgente, verde para completado, etc.)
Características Avanzadas
Valores Predeterminados para la Creación de Etiquetas
- Las nuevas etiquetas creadas a través de
setTodoTagscontagTitlespredeterminan al color#4a9fff - Las etiquetas sin colores especificados recurren a
#00a0d2 - Los títulos de las etiquetas se recortan automáticamente de espacios en blanco
Integración de Automatización
Las etiquetas pueden ser:
- Aplicadas automáticamente por reglas de automatización
- Usadas como desencadenantes para flujos de trabajo de automatización
- Modificadas a través de acciones de automatización
Actualizaciones en Tiempo Real
Los cambios en las etiquetas se transmiten a través de suscripciones de GraphQL, permitiendo actualizaciones en tiempo real en los clientes conectados.
Notas Importantes
- Eliminar una etiqueta la quita de todos los registros asociados
- Las etiquetas son específicas del proyecto y no se pueden compartir entre proyectos
- Los valores de color deben ser códigos hex válidos (por ejemplo, "#ff0000", "#00aa00")
- Los títulos de las etiquetas son sensibles a mayúsculas y minúsculas
- Se pueden aplicar un máximo de 100 etiquetas a un solo registro
- Las etiquetas admiten búsqueda de texto completo en los títulos