# ClientFlow v4.9.26.5 — Manual opportunity from fiscal customer Inclui também a hotfix `v4926.4.1_skip_duplicate_identity_suggestion`. ## Alterações principais - Página do cliente fiscal passa a ter formulário **Nova oportunidade**. - Permite criar oportunidade manual por telefone, WhatsApp, email, presencial ou manual. - A oportunidade nasce já ligada ao `customers.id` fiscal. - Opcionalmente cria uma task inicial para a próxima ação. - Guarda snapshot fiscal do cliente na metadata da oportunidade. - Regista evento `manual_opportunity_created` na timeline da oportunidade. - O assistente de identidade de email deixa de criar sugestão pendente duplicada quando o cliente sugerido já é o cliente fiscal atual. - O detalhe da oportunidade mostra mensagem específica quando a identidade extraída confirma o cliente fiscal atual. ## Configuração recomendada ```env EMAIL_IDENTITY_EXTRACTION_ENABLED=true EMAIL_IDENTITY_EXTRACTION_USE_LLM=true EMAIL_IDENTITY_LLM_MODEL=qwen/qwen3-235b-a22b-2507 EMAIL_IDENTITY_LLM_FALLBACK_MODEL=qwen/qwen3-max EMAIL_IDENTITY_LLM_TIMEOUT_SECONDS=20 EMAIL_IDENTITY_LLM_MAX_BODY_CHARS=3500 ``` ## Testes manuais recomendados ### Criar oportunidade a partir de cliente fiscal 1. Abrir `/customers`. 2. Abrir uma ficha de cliente. 3. Usar o formulário **Nova oportunidade**. 4. Confirmar que a nova oportunidade abre em `/opportunities/{id}`. 5. Confirmar que o cliente fiscal já está associado. 6. Confirmar que a task inicial aparece quando a checkbox está marcada. ### Validar skip duplicate identity suggestion ```bash PYTHONPATH=. python - <<'PY' from app.fiscal_enrichment_service import assist_email_identity_enrichment print(assist_email_identity_enrichment("OPPORTUNITY_ID", refresh=True, apply_safe=False)) PY ``` Se a identidade extraída apontar para o mesmo cliente fiscal já associado, o esperado é: ```json { "suggested": 0, "skipped": 1, "status": "email_identity_matches_current_fiscal_customer" } ```