Import ClientFlow production v4928.1.5.132.4
This commit is contained in:
1
app/business_knowledge/__init__.py
Normal file
1
app/business_knowledge/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""Structured BLIF business knowledge used by the reply assistant."""
|
||||
331
app/business_knowledge/blif_knowledge.json
Normal file
331
app/business_knowledge/blif_knowledge.json
Normal file
@@ -0,0 +1,331 @@
|
||||
{
|
||||
"version": "2026-06-12",
|
||||
"source": "Blif Conhecimentos.txt",
|
||||
"products": [
|
||||
{
|
||||
"code": "EV_7_4_MONO",
|
||||
"name": "Carregador EV monofásico 7,4 kW",
|
||||
"price_without_vat": 160,
|
||||
"currency": "EUR",
|
||||
"includes": [
|
||||
"cabo de 5 m"
|
||||
],
|
||||
"warranty_months": 24
|
||||
},
|
||||
{
|
||||
"code": "EV_11_TRI",
|
||||
"name": "Carregador EV trifásico 11 kW",
|
||||
"price_without_vat": 178,
|
||||
"currency": "EUR",
|
||||
"includes": [
|
||||
"cabo de 5 m"
|
||||
],
|
||||
"warranty_months": 24
|
||||
},
|
||||
{
|
||||
"code": "EV_22_TRI",
|
||||
"name": "Carregador EV trifásico 22 kW",
|
||||
"price_without_vat": 199,
|
||||
"currency": "EUR",
|
||||
"includes": [
|
||||
"cabo de 5 m"
|
||||
],
|
||||
"warranty_months": 24
|
||||
},
|
||||
{
|
||||
"code": "EV_DUAL_7_4",
|
||||
"name": "Carregador EV Dual 7,4 kW + 7,4 kW",
|
||||
"price_without_vat": 315,
|
||||
"currency": "EUR",
|
||||
"includes": [
|
||||
"cabo de 5 m"
|
||||
],
|
||||
"warranty_months": 24
|
||||
},
|
||||
{
|
||||
"code": "EV_DUAL_11",
|
||||
"name": "Carregador EV trifásico Dual 11 kW + 11 kW",
|
||||
"price_without_vat": 350,
|
||||
"currency": "EUR",
|
||||
"includes": [
|
||||
"cabo de 5 m"
|
||||
],
|
||||
"warranty_months": 24
|
||||
},
|
||||
{
|
||||
"code": "EV_DUAL_22",
|
||||
"name": "Carregador EV trifásico Dual 22 kW + 22 kW",
|
||||
"price_without_vat": 380,
|
||||
"currency": "EUR",
|
||||
"includes": [
|
||||
"cabo de 5 m"
|
||||
],
|
||||
"warranty_months": 24
|
||||
}
|
||||
],
|
||||
"accessories": [
|
||||
{
|
||||
"code": "PEDESTAL",
|
||||
"name": "Pedestal / Suporte Metálico",
|
||||
"price_without_vat": 109,
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"code": "BALANCER_MONO_MODBUS",
|
||||
"name": "Balanceador monofásico com fios (Modbus)",
|
||||
"price_without_vat": 45,
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"code": "BALANCER_TRI_MODBUS",
|
||||
"name": "Balanceador trifásico com fios (Modbus)",
|
||||
"price_without_vat": 55,
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"code": "BALANCER_MONO_ZIGBEE",
|
||||
"name": "Balanceador monofásico sem fios (Zigbee)",
|
||||
"price_without_vat": 55,
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"code": "BALANCER_TRI_ZIGBEE",
|
||||
"name": "Balanceador trifásico sem fios (Zigbee)",
|
||||
"price_without_vat": 65,
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"code": "RFID_READER",
|
||||
"name": "Leitor RFID",
|
||||
"price_without_vat": 16,
|
||||
"currency": "EUR"
|
||||
}
|
||||
],
|
||||
"topics": [
|
||||
{
|
||||
"id": "installation_policy",
|
||||
"title": "Instalação / âmbito do preço",
|
||||
"keywords": [
|
||||
"instalação",
|
||||
"instalacao",
|
||||
"instalar",
|
||||
"montagem",
|
||||
"eletricista",
|
||||
"inclui instalação",
|
||||
"sem instalação",
|
||||
"tomada"
|
||||
],
|
||||
"summary": "A BLIF fabrica/fornece carregadores e acessórios, mas não presta serviço direto de instalação.",
|
||||
"facts": [
|
||||
"Valores indicados para carregadores referem-se ao equipamento, sem instalação, salvo indicação explícita em documento comercial.",
|
||||
"A instalação é simples e pode ser feita por qualquer eletricista qualificado.",
|
||||
"A BLIF pode prestar suporte remoto ao eletricista do cliente.",
|
||||
"O carregador pode ser enviado pronto para ligação a tomada preparada quando aplicável."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não afirmar que a BLIF realiza a instalação.",
|
||||
"Não prometer preço de instalação sem orçamento/parceiro validado.",
|
||||
"Não dizer que a instalação está incluída se o documento não o indicar explicitamente."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_INSTALLATION_SCOPE"
|
||||
},
|
||||
{
|
||||
"id": "vat_policy",
|
||||
"title": "IVA / preços sem IVA",
|
||||
"keywords": [
|
||||
"iva",
|
||||
"sem iva",
|
||||
"com iva",
|
||||
"inclui iva",
|
||||
"preço final",
|
||||
"fatura",
|
||||
"factura"
|
||||
],
|
||||
"summary": "As comunicações comerciais indicam valores sem IVA; a fatura final apresenta valores com IVA.",
|
||||
"facts": [
|
||||
"Todos os preços de catálogo nesta base são sem IVA.",
|
||||
"A fatura final apresenta os valores com IVA incluído."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não afirmar que um valor específico inclui IVA se isso não vier do documento.",
|
||||
"Não calcular totais fiscais finais quando houver documento oficial disponível ou em falta."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_VAT_POLICY"
|
||||
},
|
||||
{
|
||||
"id": "delivery_payment",
|
||||
"title": "Entrega e pagamento",
|
||||
"keywords": [
|
||||
"entrega",
|
||||
"prazo",
|
||||
"envio",
|
||||
"pagamento",
|
||||
"iban",
|
||||
"transferência",
|
||||
"transferencia",
|
||||
"mb way",
|
||||
"comprovativo"
|
||||
],
|
||||
"summary": "Prazo padrão de entrega é 2–3 dias úteis após pagamento; condição padrão é pronto pagamento.",
|
||||
"facts": [
|
||||
"Prazo de entrega: 2–3 dias úteis após pagamento.",
|
||||
"Condição padrão: pronto pagamento.",
|
||||
"Métodos: transferência bancária e MB WAY quando solicitado.",
|
||||
"IBAN: PT50 0035 0761 0000 6421 930 22.",
|
||||
"A fatura é emitida após confirmação de pagamento."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não prometer envio antes da confirmação de pagamento.",
|
||||
"Não confirmar pagamento sem evidência financeira."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_DELIVERY_PAYMENT"
|
||||
},
|
||||
{
|
||||
"id": "rfid",
|
||||
"title": "Leitor RFID",
|
||||
"keywords": [
|
||||
"rfid",
|
||||
"cartão",
|
||||
"cartao",
|
||||
"acessos",
|
||||
"utilizador",
|
||||
"histórico",
|
||||
"historico",
|
||||
"consumos"
|
||||
],
|
||||
"summary": "Leitor RFID compatível com todos os carregadores BLIF; permite cartões ilimitados e separação de consumos por utilizador.",
|
||||
"facts": [
|
||||
"Leitor RFID: 16 € sem IVA.",
|
||||
"Compatível com todos os carregadores BLIF.",
|
||||
"Permite associar cartões RFID ilimitados.",
|
||||
"Útil para gestão de acessos e histórico individual por utilizador."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não prometer funcionalidades de faturação automática por RFID sem validar integração/solução aplicável."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_RFID"
|
||||
},
|
||||
{
|
||||
"id": "load_balancer",
|
||||
"title": "Balanceador dinâmico de carga",
|
||||
"keywords": [
|
||||
"balanceador",
|
||||
"balanceamento",
|
||||
"dinâmico",
|
||||
"dinamico",
|
||||
"disjuntor",
|
||||
"quadro",
|
||||
"modbus",
|
||||
"zigbee",
|
||||
"sobrecarga",
|
||||
"potência",
|
||||
"potencia"
|
||||
],
|
||||
"summary": "Balanceador ajusta automaticamente a potência conforme energia disponível e evita sobrecargas/disparos.",
|
||||
"facts": [
|
||||
"Disponível com fios (Modbus) e sem fios (Zigbee).",
|
||||
"Monofásico com fios: 45 € s/IVA; monofásico sem fios: 55 € s/IVA.",
|
||||
"Trifásico com fios: 55 € s/IVA; trifásico sem fios: 65 € s/IVA.",
|
||||
"Montagem no quadro elétrico, com alimentação fase + neutro.",
|
||||
"Alcance Zigbee típico em linha de vista: 20–30 m; paredes/betão reduzem alcance.",
|
||||
"Em edifícios com vários pisos ou estrutura densa, recomenda-se versão com fios."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não garantir alcance Zigbee sem conhecer o local.",
|
||||
"Não dispensar avaliação do eletricista quando há dúvidas de quadro/circuito."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_LOAD_BALANCER"
|
||||
},
|
||||
{
|
||||
"id": "local_history_no_internet",
|
||||
"title": "Sem Internet / histórico local",
|
||||
"keywords": [
|
||||
"internet",
|
||||
"sem internet",
|
||||
"wifi",
|
||||
"wi-fi",
|
||||
"bluetooth",
|
||||
"histórico local",
|
||||
"historico local",
|
||||
"offline"
|
||||
],
|
||||
"summary": "Histórico consultável localmente por Wi‑Fi/Bluetooth; mantém-se até reset/factory reset.",
|
||||
"facts": [
|
||||
"É possível consultar histórico localmente sem Internet.",
|
||||
"Histórico inclui datas, duração e kWh por sessão.",
|
||||
"Com RFID, permite ver por utilizador.",
|
||||
"Histórico perde-se em reset/factory reset."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não prometer sincronização cloud sem Internet."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_LOCAL_HISTORY"
|
||||
},
|
||||
{
|
||||
"id": "condominium_mobie_dpc",
|
||||
"title": "Condomínios / MOBI.E DPC",
|
||||
"keywords": [
|
||||
"condomínio",
|
||||
"condominio",
|
||||
"garagem",
|
||||
"box",
|
||||
"mobi.e",
|
||||
"mobie",
|
||||
"dpc",
|
||||
"faturação separada",
|
||||
"facturação separada",
|
||||
"consumo condomínio"
|
||||
],
|
||||
"summary": "É viável instalar em garagem de condomínio; para faturação separada pode ser analisada integração MOBI.E DPC.",
|
||||
"facts": [
|
||||
"Instalação em condomínio é viável em box ou lugar partilhado.",
|
||||
"Pode haver ligação ao quadro do condomínio ou tomada dedicada preparada.",
|
||||
"MOBI.E DPC permite autenticação, sessões e faturação ao utilizador, sem imputar consumo à fatura do condomínio.",
|
||||
"Solução ideal para garagens partilhadas/vários utilizadores."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não prometer elegibilidade fiscal sem análise do regime do utilizador.",
|
||||
"Não prometer aprovação/condições do condomínio sem validação do cliente."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_CONDOMINIUM_MOBIE"
|
||||
},
|
||||
{
|
||||
"id": "technical_features",
|
||||
"title": "Funcionalidades dos carregadores BLIF",
|
||||
"keywords": [
|
||||
"app",
|
||||
"aplicação",
|
||||
"aplicacao",
|
||||
"controlo",
|
||||
"monitorização",
|
||||
"monitorizacao",
|
||||
"corrente",
|
||||
"6a",
|
||||
"32a",
|
||||
"agendamento",
|
||||
"remoto",
|
||||
"mobi.e"
|
||||
],
|
||||
"summary": "Carregadores BLIF têm controlo de potência 6–32 A, gestão por app, controlo remoto e agendamento.",
|
||||
"facts": [
|
||||
"Carregamento rápido e seguro.",
|
||||
"Controlo de potência 6 A a 32 A via app ou equipamento.",
|
||||
"Gestão e monitorização via app.",
|
||||
"Controlo remoto e agendamento.",
|
||||
"Ajuste de corrente ajuda a evitar disparos do disjuntor."
|
||||
],
|
||||
"forbidden": [
|
||||
"Não garantir compatibilidade específica sem modelo/instalação confirmados."
|
||||
],
|
||||
"reply_type": "answer_without_attachment",
|
||||
"default_template_code": "CLARIFY_TECHNICAL_FEATURES"
|
||||
}
|
||||
]
|
||||
}
|
||||
114
app/business_knowledge/sales_management_knowledge.md
Normal file
114
app/business_knowledge/sales_management_knowledge.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# ClientFlow — conhecimento do assistente de gestão comercial
|
||||
|
||||
Versão: 1.2
|
||||
Release: v4928.1.5.125
|
||||
Idioma: português de Portugal
|
||||
|
||||
## Objetivo
|
||||
|
||||
Responder a perguntas internas sobre metas, desempenho, pipeline e ações comerciais. As regras deste ficheiro são estáveis; os números atuais devem ser fornecidos pelo backend através de `/api/internal/forecast` (`/api/internal/revenue-forecast` permanece como alias).
|
||||
|
||||
## Regra fundamental
|
||||
|
||||
Nunca inventar metas, valores, datas, taxas ou estados. Quando faltarem dados vivos, declarar que não existem dados suficientes para calcular com segurança.
|
||||
|
||||
## Conceitos
|
||||
|
||||
- **Meta mensal:** objetivo para um mês civil e uma métrica explícita.
|
||||
- **Realizado:** valor que já cumpre a métrica da meta no período.
|
||||
- **Comprometido:** valor praticamente assegurado, mas ainda não realizado segundo a métrica.
|
||||
- **Pipeline provável:** oportunidades ainda sujeitas a conversão, ponderadas por probabilidade e atividade.
|
||||
- **Previsão total:** realizado + comprometido não realizado + pipeline provável.
|
||||
- **Desvio:** meta − previsão total.
|
||||
- **Cumprimento previsto:** previsão total ÷ meta.
|
||||
- **Capacidade de recuperação:** pagamentos e conversões já existentes que podem ser antecipados para o mês.
|
||||
- **Desvio residual:** máximo(meta − previsão base − capacidade de recuperação, 0).
|
||||
- **Novo pipeline necessário:** desvio residual ÷ taxa de conversão esperada.
|
||||
|
||||
## Métricas suportadas
|
||||
|
||||
1. `invoiced` — faturação emitida no mês.
|
||||
2. `cash_received` — pagamentos confirmados no mês.
|
||||
3. `won_sales` — vendas ganhas no mês.
|
||||
|
||||
Não tratar as três métricas como equivalentes.
|
||||
|
||||
## Fim do mês e próximos 30 dias
|
||||
|
||||
- “Este mês” significa até ao último dia do mês civil.
|
||||
- “Próximos 30 dias” é uma janela móvel e pode incluir parte do mês seguinte.
|
||||
- Nunca usar diretamente o total de 30 dias para responder sobre o fim do mês.
|
||||
|
||||
## Prevenção de dupla contagem
|
||||
|
||||
Um processo comercial contribui apenas uma vez para a previsão total. Não somar separadamente orçamento, fatura, venda Odoo e pagamento da mesma compra. Um valor já realizado não volta a entrar no comprometido ou no pipeline provável.
|
||||
|
||||
## Confiança
|
||||
|
||||
Interpretar a cobertura de valor:
|
||||
|
||||
- 80% ou mais: boa.
|
||||
- 50% a 79%: moderada.
|
||||
- Menos de 50%: baixa.
|
||||
- Menos de 25%: previsão monetária muito incompleta.
|
||||
|
||||
Com qualidade baixa, usar “estimativa indicativa” e nunca apresentar o resultado como garantia.
|
||||
|
||||
## Semáforo
|
||||
|
||||
- **Meta suportada:** previsão ≥ meta e qualidade ≥ 60%.
|
||||
- **Suportada com baixa confiança:** previsão ≥ meta, mas qualidade < 60%.
|
||||
- **Meta recuperável:** previsão base abaixo da meta, mas capacidade de recuperação ponderada cobre o desvio.
|
||||
- **Risco moderado:** previsão entre 85% e 99% da meta e recuperação insuficiente ou incerta.
|
||||
- **Sem cobertura suficiente:** previsão base + recuperação conhecida continuam abaixo da meta.
|
||||
|
||||
## Estratégia recomendada
|
||||
|
||||
- Valor suficiente, mas bloqueado: priorizar pagamento, produção, expedição e tasks vencidas.
|
||||
- Muitas oportunidades sem valor: qualificar e associar documentos antes de aumentar campanhas.
|
||||
- Pipeline bruto insuficiente: gerar novas oportunidades e reativar clientes.
|
||||
- Muitos orçamentos e pouca conversão: rever proposta, preço, follow-up e objeções.
|
||||
|
||||
## Formato de resposta sobre a meta
|
||||
|
||||
Apresentar sempre, quando disponíveis:
|
||||
|
||||
- meta;
|
||||
- realizado;
|
||||
- comprometido;
|
||||
- pipeline provável;
|
||||
- previsão total;
|
||||
- desvio;
|
||||
- cumprimento previsto;
|
||||
- qualidade/cobertura;
|
||||
- principais riscos;
|
||||
- três ações prioritárias.
|
||||
|
||||
Distinguir claramente valor já realizado de valor adicional esperado a partir da data atual.
|
||||
|
||||
|
||||
## Política de follow-up e atividade comercial
|
||||
|
||||
O estado técnico `open` não significa, por si só, que a oportunidade esteja ativa. Usar os estados operacionais:
|
||||
|
||||
- `active` — existe atividade recente ou trabalho comercial em curso;
|
||||
- `awaiting_customer` — comunicação enviada e próximo contacto agendado;
|
||||
- `follow_up_due` — a data do próximo contacto chegou;
|
||||
- `recovery` — a sequência normal terminou sem resposta e requer decisão;
|
||||
- `nurture` — o cliente tem potencial, mas o timing é futuro.
|
||||
|
||||
Nunca usar `updated_at` técnico para concluir que o cliente esteve ativo. Preferir `last_customer_activity_at`, `last_operator_activity_at`, `last_commercial_activity_at` e `next_follow_up_at`.
|
||||
|
||||
### Cadência recomendada
|
||||
|
||||
- Informação: confirmar receção no dia útil seguinte; contactos adicionais após 2, 4 e 5 dias úteis.
|
||||
- Orçamento: confirmar receção no dia útil seguinte; esclarecer dúvidas após 2 dias úteis; decisão após 4; última tentativa após 5.
|
||||
- Pagamento: confirmar receção no dia útil seguinte; pedir data de pagamento após 2 dias úteis; lembrete após 3; contacto direto após mais 3; revisão final após mais 5.
|
||||
|
||||
A primeira etapa deve confirmar entrega, destinatário, documento/anexo e possíveis bounces. Não assumir que ausência de resposta significa falta de interesse.
|
||||
|
||||
### Recuperação, nurture e perda
|
||||
|
||||
Depois da última tentativa, mover para `recovery`; não marcar automaticamente como perdida. Na recuperação, escolher entre canal alternativo, nova abordagem, `nurture` ou perda.
|
||||
|
||||
Marcar como perdida apenas com motivo obrigatório. `future_timing` deve gerar nurture, não perda. Uma nova mensagem do cliente na mesma conversa pode reabrir automaticamente oportunidades fechadas como `LOST` ou `NO_INTEREST`; negócios entregues ou ganhos não são reabertos como a mesma venda.
|
||||
Reference in New Issue
Block a user