Eliminar campos personalizados de proyectos con la limpieza adecuada y efectos en cascada
Eliminar un Campo Personalizado
Elimina permanentemente un campo personalizado de un proyecto junto con todos los datos, valores y configuraciones asociados. Esta operación no se puede deshacer y afectará a todos los registros que utilicen este campo.
Ejemplo Básico
mutation DeleteCustomField {
deleteCustomField(id: "field_abc123")
}
Ejemplo Avanzado
mutation DeleteCustomFieldWithResponse {
deleteCustomField(id: "field_abc123")
}
Parámetros de Entrada
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id |
String! | ✅ Sí | El identificador único del campo personalizado a eliminar |
Campos de Respuesta
Campo | Tipo | Descripción |
---|---|---|
deleteCustomField |
Boolean! | Siempre devuelve true cuando la eliminación tiene éxito |
Permisos Requeridos
Solo los propietarios de proyectos y los administradores pueden eliminar campos personalizados.
Rol | Puede Eliminar Campos Personalizados |
---|---|
OWNER |
✅ Sí |
ADMIN |
✅ Sí |
MEMBER |
❌ No |
CLIENT |
❌ No |
Efectos en Cascada
Cuando se elimina un campo personalizado, las siguientes operaciones de limpieza ocurren automáticamente:
Limpieza de Datos
- Valores del campo personalizado - Todos los valores para este campo se eliminan de todos los registros
- Opciones del campo - Todas las opciones de menú desplegable y configuraciones se eliminan
- Historial de actividad - Todos los registros de actividad relacionados con este campo se eliminan
- Configuraciones de búsqueda - Se limpian todas las referencias de campos de búsqueda
Manejo Especial para Campos de Botón
Si el campo eliminado es de tipo BUTTON
, se realiza limpieza adicional:
- Automatizaciones - Todas las automatizaciones activadas por este botón se eliminan
- Historial de automatización - Se elimina la actividad de automatización relacionada
Actualizaciones en Tiempo Real
- Gráficos - Los gráficos del proyecto se marcan para actualización para reflejar los cambios
- Fórmulas - Todos los campos de fórmula en el proyecto se recalculan
- Seguimiento del tiempo - Se actualizan los cálculos de duración del tiempo
- Suscripciones - Se envían notificaciones en tiempo real a los clientes conectados
- Webhooks - Se activan webhooks de integración con eventos de eliminación
Respuestas de Error
Campo Personalizado No Encontrado
{
"errors": [{
"message": "Custom field was not found.",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Permisos Insuficientes
{
"errors": [{
"message": "You don't have permission to perform this action",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Notas Importantes
Eliminación Permanente
- Sin deshacer - Los campos personalizados eliminados no se pueden recuperar
- Pérdida de datos - Todos los valores de campo en todos los registros se eliminan permanentemente
- Efecto inmediato - Los cambios tienen efecto inmediato en todos los usuarios del proyecto
Consideraciones de Rendimiento
- Proyectos grandes - La eliminación puede tardar más en proyectos con muchos registros
- Recalculo de fórmulas - Los proyectos con fórmulas complejas pueden experimentar breves retrasos en el procesamiento
- Actualizaciones de gráficos - Los gráficos del panel se actualizarán para reflejar los cambios
Mejores Prácticas
- Hacer una copia de seguridad de los datos - Exportar valores de campo importantes antes de la eliminación
- Comunicar cambios - Notificar a los miembros del equipo antes de eliminar campos
- Verificar dependencias - Asegurarse de que no haya automatizaciones o fórmulas que dependan del campo
- Revisar informes - Actualizar cualquier informe que haga referencia al campo eliminado
Operaciones Relacionadas
- Utilizar Listar Campos Personalizados para encontrar IDs de campos
- Considerar Crear Campo Personalizado para recrear campos similares
- Revisar Valores de Campos Personalizados para comprender el impacto en los datos
Casos de Uso Comunes
Eliminación de Campos No Utilizados
# First, list fields to identify unused ones
query ListCustomFields {
customFields(projectId: "project_123") {
id
name
type
createdAt
# Check usage in records
}
}
# Then delete the unused field
mutation DeleteUnusedField {
deleteCustomField(id: "field_to_remove")
}
Limpieza de Campos de Prueba
# Remove fields created during testing
mutation CleanupTestFields {
field1: deleteCustomField(id: "test_field_1")
field2: deleteCustomField(id: "test_field_2")
field3: deleteCustomField(id: "test_field_3")
}
Reestructuración de Campos del Proyecto
# When reorganizing field structure
mutation RestructureFields {
# Delete old fields
deleteOldPriorityField: deleteCustomField(id: "old_priority_field")
deleteOldStatusField: deleteCustomField(id: "old_status_field")
# Note: Create new fields in separate mutations
}
Eventos de Webhook
Cuando se elimina un campo personalizado, se activa el siguiente evento de webhook:
{
"event": "CUSTOM_FIELD_DELETED",
"projectId": "project_123",
"timestamp": "2024-01-15T10:30:00Z",
"previousValue": {
"id": "field_abc123",
"name": "Priority Level",
"type": "SELECT_SINGLE",
"projectId": "project_123"
},
"currentValue": null
}