Remover campos personalizados de projetos com limpeza adequada e efeitos em cascata
Excluir um Campo Personalizado
Remove permanentemente um campo personalizado de um projeto junto com todos os dados, valores e configurações associados. Esta operação não pode ser desfeita e afetará todos os registros que utilizam este campo.
Exemplo Básico
mutation DeleteCustomField {
deleteCustomField(id: "field_abc123")
}
Exemplo Avançado
mutation DeleteCustomFieldWithResponse {
deleteCustomField(id: "field_abc123")
}
Parâmetros de Entrada
Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
id |
String! | ✅ Sim | O identificador único do campo personalizado a ser excluído |
Campos de Resposta
Campo | Tipo | Descrição |
---|---|---|
deleteCustomField |
Boolean! | Sempre retorna true quando a exclusão é bem-sucedida |
Permissões Necessárias
Apenas proprietários de projetos e administradores podem excluir campos personalizados.
Função | Pode Excluir Campos Personalizados |
---|---|
OWNER |
✅ Sim |
ADMIN |
✅ Sim |
MEMBER |
❌ Não |
CLIENT |
❌ Não |
Efeitos em Cascata
Quando um campo personalizado é excluído, as seguintes operações de limpeza ocorrem automaticamente:
Limpeza de Dados
- Valores do campo personalizado - Todos os valores para este campo são removidos de todos os registros
- Opções de campo - Todas as opções de dropdown e configurações são excluídas
- Histórico de atividades - Todos os registros de atividades relacionados a este campo são removidos
- Configurações de pesquisa - Quaisquer referências de campo de pesquisa são limpas
Tratamento Especial para Campos de Botão
Se o campo excluído for do tipo BUTTON
, uma limpeza adicional ocorre:
- Automações - Todas as automações acionadas por este botão são excluídas
- Histórico de automações - A atividade de automação relacionada é removida
Atualizações em Tempo Real
- Gráficos - Gráficos do projeto são marcados para atualização para refletir as mudanças
- Fórmulas - Todos os campos de fórmula no projeto são recalculados
- Rastreamento de tempo - Cálculos de duração de tempo são atualizados
- Assinaturas - Notificações em tempo real são enviadas para clientes conectados
- Webhooks - Webhooks de integração são acionados com eventos de exclusão
Respostas de Erro
Campo Personalizado Não Encontrado
{
"errors": [{
"message": "Custom field was not found.",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Permissões Insuficientes
{
"errors": [{
"message": "You don't have permission to perform this action",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Notas Importantes
Exclusão Permanente
- Sem desfazer - Campos personalizados excluídos não podem ser recuperados
- Perda de dados - Todos os valores de campo em todos os registros são removidos permanentemente
- Efeito imediato - As mudanças entram em vigor imediatamente para todos os usuários do projeto
Considerações de Desempenho
- Projetos grandes - A exclusão pode demorar mais em projetos com muitos registros
- Recalculo de fórmulas - Projetos com fórmulas complexas podem experimentar breves atrasos de processamento
- Atualizações de gráficos - Gráficos do painel serão atualizados para refletir as mudanças
Melhores Práticas
- Backup de dados - Exporte valores de campo importantes antes da exclusão
- Comunicar mudanças - Notifique os membros da equipe antes de excluir campos
- Verificar dependências - Verifique se não há automações ou fórmulas que dependam do campo
- Revisar relatórios - Atualize quaisquer relatórios que referenciem o campo excluído
Operações Relacionadas
- Use Listar Campos Personalizados para encontrar IDs de campo
- Considere Criar Campo Personalizado para recriar campos semelhantes
- Revise Valores de Campo Personalizado para entender o impacto dos dados
Casos de Uso Comuns
Removendo Campos Não 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")
}
Limpando Campos de Teste
# 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")
}
Reestruturando Campos do Projeto
# 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
Quando um campo personalizado é excluído, o seguinte evento de webhook é acionado:
{
"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
}