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

  1. Backup de dados - Exporte valores de campo importantes antes da exclusão
  2. Comunicar mudanças - Notifique os membros da equipe antes de excluir campos
  3. Verificar dependências - Verifique se não há automações ou fórmulas que dependam do campo
  4. Revisar relatórios - Atualize quaisquer relatórios que referenciem o campo excluído

Operações Relacionadas

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
}

Assistente de IA

As respostas são geradas usando IA e podem conter erros.

Como posso ajudá-lo?

Pergunte-me qualquer coisa sobre o Blue ou esta documentação.

Digite para enviar • Shift+Enter para nova linha • ⌘I para abrir