Manual do usuárioFluxos de trabalhoCampos de fórmula

Campos de fórmula

Crie campos de fórmula usando fluxos de trabalho.

O Vecta Desk ainda não oferece suporte nativo a campos de fórmula, mas você pode obter o mesmo resultado usando fluxos de trabalho. Esta solução alternativa permite calcular e preencher automaticamente os valores dos campos — de concatenações simples a lógica de negócios complexa.

Casos de uso comuns

Caso de usoExemplo de fórmula
Nome completoNome + ” ” + Sobrenome
Valor esperadoValor × Probabilidade
Dias até o vencimentoData de vencimento - hoje
Dias na etapaHoje - Data de entrada na etapa
Pontuação de leadPontos com base em vários critérios

Fórmula básica: concatenação

Exemplo: preencher automaticamente o nome completo

Objetivo: combinar automaticamente nome e sobrenome em um campo de nome completo.

Configuração

  1. Gatilho: Registro é criado ou atualizado (Pessoas).
  2. Filtro: verifique se o nome ou o sobrenome foi alterado.
  3. Ação de código:
export const main = async (params) => {
  const { firstName, lastName } = params;
 
  const fullName = [firstName, lastName]
    .filter(Boolean)
    .join(' ');
 
  return { fullName };
};
  1. Atualizar registro: definir Nome completo como {{code.fullName}}.

Fórmula numérica: valor esperado

Exemplo: calcular a receita esperada

Objetivo: multiplicar o valor da oportunidade pela probabilidade para obter o valor esperado.

Configuração rápida

  1. Gatilho: Registro é atualizado (Oportunidades, campo Valor OU Probabilidade).
  2. Ação de código:
export const main = async (params) => {
  const { amount, probability } = params;
 
  const expectedAmount = (amount || 0) * (probability || 0) / 100;
 
  return { expectedAmount };
};
  1. Atualizar registro: definir Valor esperado como {{code.expectedAmount}}.

Fórmula de data: cálculo de dias

Exemplo: dias até o vencimento da tarefa

Objetivo: calcular quantos dias faltam até a data de vencimento de uma tarefa.

Configuração

  1. Gatilho: Registro é criado ou atualizado (Tarefas, campo Data de vencimento).
  2. Ação de código:
export const main = async (params) => {
  const { dueDate } = params;
 
  if (!dueDate) {
    return { daysUntilDue: null };
  }
 
  const due = new Date(dueDate);
  const today = new Date();
  const diffTime = due - today;
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
 
  return { daysUntilDue: diffDays };
};
  1. Atualizar registro: definir Dias até o vencimento como {{code.daysUntilDue}}.

Valores negativos indicam tarefas em atraso. Você pode usar este campo para filtrar ou classificar tarefas por urgência.

Fórmula condicional: pontuação de lead

Exemplo: calcular a pontuação de lead com base em critérios

Objetivo: pontuar leads com base no porte da empresa, setor e engajamento.

Configuração

  1. Gatilho: Registro é atualizado (Pessoas ou Empresas).
  2. Ação de código:
export const main = async (params) => {
  const { companySize, industry, hasEmail, hasPhone, source } = params;
 
  let score = 0;
 
  // Pontuação por porte da empresa
  if (companySize === 'Enterprise') score += 30;
  else if (companySize === 'Mid-Market') score += 20;
  else if (companySize === 'SMB') score += 10;
 
  // Pontuação por setor
  const targetIndustries = ['Tecnologia', 'Finanças', 'Saúde'];
  if (targetIndustries.includes(industry)) score += 25;
 
  // Pontuação por dados de contato
  if (hasEmail) score += 10;
  if (hasPhone) score += 15;
 
  // Pontuação por origem
  if (source === 'Indicação') score += 20;
  else if (source === 'Site') score += 10;
 
  return { leadScore: score };
};
  1. Atualizar registro: definir Pontuação de lead como {{code.leadScore}}.

Fórmula de texto: extração de domínio

Exemplo: extrair domínio do e-mail

Objetivo: extrair e armazenar automaticamente o domínio do e-mail.

Configuração

  1. Gatilho: Registro é atualizado (Pessoas, campo E-mail).
  2. Ação de código:
export const main = async (params) => {
  const { email } = params;
 
  if (!email) return { domain: null };
 
  const domain = email.split('@')[1]?.toLowerCase();
 
  return { domain };
};
  1. Atualizar registro: definir o campo Domínio como {{code.domain}}.

Melhores práticas

Desempenho

  • Acione apenas em alterações de campos relevantes.
  • Use filtros para ignorar registros que não precisam de cálculo.
  • Evite cálculos complexos em fluxos de trabalho de alto volume.

Tratamento de erros

  • Verifique valores null/undefined antes dos cálculos.
  • Use valores padrão quando faltarem dados.
  • Retorne mensagens de erro claras quando os cálculos falharem.

Testes

  • Teste com casos extremos (campos vazios, valores zero).
  • Verifique os cálculos manualmente antes de ativar.
  • Monitore as execuções de fluxos de trabalho para resultados inesperados.

Relacionados