feat(gestao): skill /today v8.3.2 - fluxo IMAP com deteccao plataformas multi-fornecedor

This commit is contained in:
2026-02-24 11:28:07 +00:00
parent 62b118f394
commit e7741af16a

View File

@@ -5,7 +5,7 @@ description: >
Triagem emails 13 contas IMAP + deduplicação via imap_processed_emails (Supabase) + tickets CRM + despesas auto com PDF + health check MCPs (Sab/Dom) + sugestões workflows + nota diaria.
Use when "checkup", "hoje", "today", "rotina", início de dia.
author: Descomplicar® Crescimento Digital
version: 8.3.1
version: 8.3.2
quality_score: 92
user_invocable: true
category: productivity
@@ -247,10 +247,18 @@ Classificar cada email por ordem de prioridade:
- Remetente: *@marketing.*, *@news.*, *@promo.*
- EXCEPÇÃO: conta "rh" → imap_delete_email (sem pasta Promotions)
3. FACTURA/RECIBO → Auto-processar despesa (ver secção Auto-Despesas IMAP)
- Subject: factura, invoice, recibo, receipt, pagamento, paid
- Remetente de servico conhecido (ver mapeamento completo abaixo)
- Criar despesa + anexar PDF automaticamente
3. FACTURA/RECIBO → (2 sub-casos por ordem)
3a. REMETENTE = fornecedor conhecido (dominio na tabela de fornecedores):
- Subject: factura, invoice, recibo, receipt, pagamento, paid
- Dominio do remetente bate com entrada da tabela de fornecedores
→ Auto-processar despesa directamente (ver secção Auto-Despesas IMAP)
3b. REMETENTE = plataforma multi-fornecedor (toconline.pt, stripe.com, paypal.com, fastspring.com, payproglobal.com):
- Dominio do remetente e uma plataforma de faturacao (nao um fornecedor directo)
→ LER email completo → EXTRAIR emitente real (ver padroes abaixo)
→ SE emitente encontrado na tabela de fornecedores: processar como despesa desse fornecedor
→ SE emitente desconhecido: priority_flagged com nota "[Plataforma] - emitente desconhecido: [nome empresa]"
4. PRIORITARIO → Incluir no relatorio
- Remetente: cliente conhecido (verificar DeskCRM)
@@ -286,7 +294,14 @@ Classificar cada email por ordem de prioridade:
### Fluxo completo
```
1. DETECTAR: Email de fornecedor conhecido com subject de factura/recibo
1. DETECTAR origem:
1a. Fornecedor directo: dominio remetente bate tabela de fornecedores
→ fornecedor, categoria e moeda ja conhecidos, avancar para passo 2
1b. Plataforma multi-fornecedor: dominio remetente e toconline.pt, stripe.com, etc.
→ LER email (passo 2) → EXTRAIR emitente real (padroes da secção "Plataformas Multi-Fornecedor")
→ Procurar emitente na tabela "Emitentes Conhecidos por Plataforma"
→ SE encontrado: usar categoria/moeda dessa entrada, avancar para passo 3
→ SE desconhecido: registar action="priority_flagged", nota="[Plataforma] - emitente: [nome]", PARAR
2. LER: imap_read_email(account, uid) → conteudo HTML + anexos
3. EXTRAIR do HTML:
- Valor (procurar padroes: $XX.XX, XX,XX EUR, USD XX.XX)
@@ -381,21 +396,68 @@ CRITICO: currency=1 NAO existe e causa despesas invisiveis nos relatorios.
### Plataformas Multi-Fornecedor (protocolo especial)
> Algumas plataformas entregam faturas de qualquer empresa. NAO mapear para categoria fixa.
> Ler o email para identificar o emitente real, depois categorizar.
> Plataformas de faturacao sao intermediarios — nao sao fornecedores.
> O dominio do remetente identifica a plataforma; o CORPO do email identifica o fornecedor real.
> Activado pelo passo 3b da triagem IMAP.
| Plataforma | Dominio | Protocolo |
|-----------|---------|-----------|
| TOConline | toconline.pt | Ler email → extrair "Emitente: [empresa]" → mapear empresa → se desconhecida: flag priority |
| Stripe | stripe.com | Ler subject/corpo → identificar fornecedor (Cursor, Descript, OpenRouter...) → usar entrada do fornecedor real |
| PayPal | paypal.com | Ler corpo → identificar fornecedor → categorizar por fornecedor real |
| FastSpring | fastspring.com | Ler corpo → identificar fornecedor (BdThemes...) → categorizar por fornecedor real |
| PayPro Global | payproglobal.com | Ler corpo → identificar fornecedor (CapSolver...) → categorizar por fornecedor real |
#### Dominios de Plataformas Conhecidas
**Emitentes TOConline conhecidos:**
- CUBIC CHOICES LDA → cat 21 (Contabilidade), tax=1
```
toconline.pt → sistema faturacao electronica PT (e-fatura B2B)
stripe.com → processador pagamentos (Cursor, Descript, OpenRouter...)
paypal.com → processador pagamentos (Canva via PayPal...)
fastspring.com → loja software (BdThemes...)
payproglobal.com → loja software (CapSolver...)
```
**Emitentes TOConline desconhecidos:** flag `priority_flagged` com nota "TOConline - emitente desconhecido: [empresa]"
#### Padroes de Extracao do Emitente Real
**TOConline** (`toconline.pt`):
```
Procurar no HTML (por ordem):
1. "Emitido por:</strong> [NOME EMPRESA]"
2. "Emitente:</td><td>[NOME EMPRESA]"
3. "De:</strong> [NOME EMPRESA]"
Exemplo: "CUBIC CHOICES LDA" → procurar na tabela de fornecedores pelo nome
```
**Stripe** (`stripe.com`):
```
Procurar no subject: "[Nome Empresa] invoice" ou "Receipt from [Nome Empresa]"
Exemplo subject: "Your receipt from Cursor" → fornecedor = Cursor
```
**PayPal** (`paypal.com`):
```
Procurar no subject: "You paid [Nome Empresa]" ou "Receipt for your payment to [Nome Empresa]"
Exemplo: "You paid Canva" → fornecedor = Canva
```
**FastSpring** (`fastspring.com`):
```
Procurar no subject ou corpo: "Order from [Nome Empresa]" ou "purchased [Nome Produto] from [Nome Empresa]"
Exemplo: "purchased Element Pack from BdThemes" → fornecedor = BdThemes
```
**PayPro Global** (`payproglobal.com`):
```
Procurar no subject ou corpo: nome do produto/empresa
Exemplo: "CapSolver" no corpo → fornecedor = CapSolver
```
#### Emitentes Conhecidos por Plataforma
| Plataforma | Emitente | Fornecedor na Tabela | Cat | Notas |
|-----------|---------|---------------------|-----|-------|
| TOConline | CUBIC CHOICES LDA | — (nao esta na tabela) | 21 | Contabilidade GONDOOFFICE, tax=1, EUR |
| Stripe | Cursor | Cursor (#10) | 28 | — |
| Stripe | Descript | Descript (#9) | 28 | — |
| Stripe | OpenRouter | OpenRouter (#2) | 38 | — |
| PayPal | Canva | Canva (#7) | 28 | — |
| FastSpring | BdThemes | BdThemes (#15) | 14 | — |
| PayPro Global | CapSolver | CapSolver (#3) | 38 | — |
> **NOTA:** CUBIC CHOICES LDA nao tem entrada na tabela de fornecedores (nao e um servico digital recorrente com dominio proprio). Usar directamente cat 21, tax=1, EUR.
### Emails a IGNORAR (nao sao despesas)
@@ -1004,6 +1066,13 @@ send_invoice_to_customer = 0 → OBRIGATORIO na BD (sem default)
## Changelog
### v8.3.2 (2026-02-24)
- **FLUXO IMAP PASSO 3b:** Detecção de plataformas multi-fornecedor integrada na triagem IMAP
- **EXTRACAO EMITENTE:** Padroes HTML especificos por plataforma (TOConline, Stripe, PayPal, FastSpring, PayPro Global)
- **TABELA EMITENTES:** Mapeamento plataforma→emitente→fornecedor/categoria para 6 casos conhecidos
- **AUTO-DESPESAS:** Fluxo actualizado — passo 1 distingue fornecedor directo vs plataforma intermediaria
- **CUBIC CHOICES LDA:** Documentado fora da tabela de fornecedores (cat 21, tax=1, EUR, via TOConline)
### v8.3.1 (2026-02-24)
- **PLATAFORMAS MULTI-FORNECEDOR:** Protocolo para plataformas de faturação (TOConline, Stripe, PayPal, FastSpring, PayPro Global) — NAO sao fornecedores, sao sistemas de entrega de faturas
- **TOConline:** Detectar pelo dominio → ler email → extrair emitente real → categorizar pelo emitente (nao pela plataforma). CUBIC CHOICES LDA → cat 21. Emitente desconhecido → flag priority
@@ -1079,4 +1148,4 @@ send_invoice_to_customer = 0 → OBRIGATORIO na BD (sem default)
---
*Skill v8.3.1 | 2026-02-24 | Descomplicar®*
*Skill v8.3.2 | 2026-02-24 | Descomplicar®*