Gerar um orçamento ou fatura no Vecta Desk
Crie faturas automaticamente em ferramentas externas quando os negócios forem fechados.
Envie automaticamente os dados do negócio para o seu sistema de faturamento quando uma oportunidade é ganha.
Estrutura do fluxo de trabalho
- Gatilho: Registro é atualizado (Oportunidade).
- Filtro: Etapa = Venda fechada.
- Pesquisar registro: obter detalhes da empresa.
- Código (opcional): formatar o payload.
- Requisição HTTP: enviar para o sistema de faturamento.
Etapa 1: configurar o gatilho
- Crie um novo fluxo de trabalho.
- Selecione o gatilho Registro é atualizado.
- Escolha Oportunidade como o objeto.
Etapa 2: filtrar por venda fechada
Adicione uma ação de Filtro para só continuar quando o negócio for ganho:
| Configuração | Valor |
|---|---|
| Campo | Etapa |
| Condição | Igual a |
| Valor | VENDA_FECHADA (ou o nome da sua etapa) |
O gatilho é acionado em qualquer atualização de Oportunidade. O filtro garante que o fluxo de trabalho só continue quando a etapa mudar para Venda fechada.
Etapa 3: obter detalhes da empresa
O registro de Oportunidade pode não incluir todos os campos da Empresa de que você precisa para a fatura. Adicione uma ação de Pesquisar registro:
| Configuração | Valor |
|---|---|
| Objeto | Empresa |
| Correspondência por | ID igual a {{trigger.object.companyId}} |
Isso obtém o registro completo da Empresa com endereço de faturamento, CNPJ, etc.
Etapa 4: formatar o payload (opcional)
Se o seu sistema de faturamento esperar um formato específico, adicione uma ação de Código:
export const main = async (params: {
opportunity: any;
company: any;
}): Promise<object> => {
const { opportunity, company } = params;
return {
invoice: {
// Dados do cliente, vindos da Empresa
customer_name: company.name,
customer_email: company.email || "",
billing_address: {
line1: company.address?.street || "",
city: company.address?.city || "",
postal_code: company.address?.postalCode || "",
country: company.address?.country || ""
},
tax_id: company.taxId || null,
// Detalhes da fatura, vindos da Oportunidade
amount: opportunity.amount,
currency: opportunity.currency || "BRL",
description: `Fatura referente a ${opportunity.name}`,
due_days: 30,
// Referência de volta ao Vecta Desk
metadata: {
opportunity_id: opportunity.id,
company_id: company.id
}
}
};
};Etapa 5: enviar para o sistema de faturamento
Adicione uma ação de Requisição HTTP:
| Configuração | Valor |
|---|---|
| Método | POST |
| URL | O endpoint da API do seu sistema de faturamento |
| Cabeçalhos | Authorization: Bearer SUA_API_KEY |
| Corpo | {{code.invoice}} ou faça o mapeamento dos campos diretamente |
Resumo completo do fluxo de trabalho
| Etapa | Ação | Finalidade |
|---|---|---|
| 1 | Gatilho: Registro atualizado | Dispara quando qualquer Oportunidade é alterada |
| 2 | Filtro | Só prossiga se Etapa = Venda fechada |
| 3 | Pesquisar registro | Obter detalhes completos da Empresa para faturamento |
| 4 | Código | Formatar dados para a API de faturamento |
| 5 | Requisição HTTP | Criar fatura no sistema externo |
Dicas
- Armazene IDs externos: guarde o ID da fatura retornado pela API na Oportunidade usando uma ação de Atualizar registro.
- Tratamento de erros: adicione uma ramificação para enviar uma notificação se a requisição HTTP falhar.
- Teste primeiro: use o modo sandbox/de teste do seu sistema de faturamento antes de ir para produção.
Relacionados
- Gerar um PDF a partir do Vecta Desk — anexar PDFs gerados aos registros.
- Gatilhos de fluxo de trabalho
- Ações de fluxo de trabalho
- Automações para venda fechada