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 uso | Exemplo de fórmula |
|---|---|
| Nome completo | Nome + ” ” + Sobrenome |
| Valor esperado | Valor × Probabilidade |
| Dias até o vencimento | Data de vencimento - hoje |
| Dias na etapa | Hoje - Data de entrada na etapa |
| Pontuação de lead | Pontos 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
- Gatilho: Registro é criado ou atualizado (Pessoas).
- Filtro: verifique se o nome ou o sobrenome foi alterado.
- Ação de código:
export const main = async (params) => {
const { firstName, lastName } = params;
const fullName = [firstName, lastName]
.filter(Boolean)
.join(' ');
return { fullName };
};- 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
- Gatilho: Registro é atualizado (Oportunidades, campo Valor OU Probabilidade).
- Ação de código:
export const main = async (params) => {
const { amount, probability } = params;
const expectedAmount = (amount || 0) * (probability || 0) / 100;
return { expectedAmount };
};- 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
- Gatilho: Registro é criado ou atualizado (Tarefas, campo Data de vencimento).
- 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 };
};- 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
- Gatilho: Registro é atualizado (Pessoas ou Empresas).
- 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 };
};- 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
- Gatilho: Registro é atualizado (Pessoas, campo E-mail).
- 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 };
};- 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.