From 81d1373977028d779d90b5ba166a9a2be0186969 Mon Sep 17 00:00:00 2001 From: Emanuel Almeida Date: Wed, 28 Oct 2026 16:08:32 +0000 Subject: [PATCH] feat(crm-ops): adiciona plugin crm-ops (agents, skills, knowledge e metadados do projeto) --- crm-ops/.claude-plugin/plugin.json | 21 + crm-ops/AGENTS.md | 17 + crm-ops/CHANGELOG.md | 5 + crm-ops/MEMORY.md | 4 + crm-ops/README.md | 3 + crm-ops/STATUS.md | 8 + crm-ops/agents/AGENTS.md | 17 + crm-ops/agents/CHANGELOG.md | 5 + crm-ops/agents/MEMORY.md | 4 + crm-ops/agents/README.md | 3 + crm-ops/agents/STATUS.md | 8 + crm-ops/agents/budget-proposal-specialist.md | 175 ++++++++ crm-ops/agents/desk.project | 6 + crm-ops/agents/index.md | 8 + crm-ops/agents/lead-approach-strategist.md | 179 +++++++++ crm-ops/agents/lead-qualifier.md | 154 ++++++++ crm-ops/agents/log.md | 1 + crm-ops/agents/sales-manager.md | 142 +++++++ crm-ops/agents/support-specialist.md | 159 ++++++++ crm-ops/desk.project | 6 + crm-ops/index.md | 8 + crm-ops/knowledge/datasets.json | 26 ++ crm-ops/log.md | 1 + crm-ops/skills/AGENTS.md | 17 + crm-ops/skills/CHANGELOG.md | 5 + crm-ops/skills/MEMORY.md | 4 + crm-ops/skills/README.md | 3 + crm-ops/skills/STATUS.md | 8 + crm-ops/skills/auto-expense/SKILL.md | 146 +++++++ crm-ops/skills/billing-check/SKILL.md | 227 +++++++++++ crm-ops/skills/crm-admin/SKILL.md | 158 ++++++++ crm-ops/skills/crm/SKILL.md | 224 +++++++++++ crm-ops/skills/desk.project | 6 + crm-ops/skills/desk/SKILL.md | 232 +++++++++++ .../skills/desk/template.desk-project.json | 10 + crm-ops/skills/estrategia-marca/SKILL.md | 115 ++++++ .../references/framework-16ps.md | 193 +++++++++ .../references/metodologia-acida.md | 127 ++++++ .../references/narrativas-copywriting.md | 154 ++++++++ .../estrategia-marca/references/nichos.md | 318 +++++++++++++++ .../references/perguntas-briefing.md | 113 ++++++ .../references/template-documento.md | 374 ++++++++++++++++++ crm-ops/skills/expense/SKILL.md | 143 +++++++ .../expense/references/category-mapping.md | 187 +++++++++ .../skills/expense/references/changelog.md | 56 +++ .../expense/references/ticket-processing.md | 75 ++++ crm-ops/skills/index.md | 8 + crm-ops/skills/invoice/SKILL.md | 239 +++++++++++ crm-ops/skills/log.md | 1 + crm-ops/skills/orcamento/SKILL-light.md | 151 +++++++ crm-ops/skills/orcamento/SKILL.md | 118 ++++++ .../orcamento/references/pricing-guide.md | 193 +++++++++ .../skills/orcamento/templates/e-commerce.md | 171 ++++++++ .../skills/orcamento/templates/manutencao.md | 153 +++++++ .../orcamento/templates/marketing-digital.md | 128 ++++++ .../templates/website-corporativo.md | 180 +++++++++ crm-ops/skills/proposal-deck/SKILL.md | 137 +++++++ crm-ops/skills/proposta-visual/SKILL.md | 121 ++++++ crm-ops/skills/ticket-manage/SKILL.md | 150 +++++++ crm-ops/skills/ticket-triage/SKILL.md | 184 +++++++++ crm-ops/skills/ticket/SKILL.md | 248 ++++++++++++ 61 files changed, 6037 insertions(+) create mode 100644 crm-ops/.claude-plugin/plugin.json create mode 100644 crm-ops/AGENTS.md create mode 100644 crm-ops/CHANGELOG.md create mode 100644 crm-ops/MEMORY.md create mode 100644 crm-ops/README.md create mode 100644 crm-ops/STATUS.md create mode 100644 crm-ops/agents/AGENTS.md create mode 100644 crm-ops/agents/CHANGELOG.md create mode 100644 crm-ops/agents/MEMORY.md create mode 100644 crm-ops/agents/README.md create mode 100644 crm-ops/agents/STATUS.md create mode 100644 crm-ops/agents/budget-proposal-specialist.md create mode 100644 crm-ops/agents/desk.project create mode 100644 crm-ops/agents/index.md create mode 100644 crm-ops/agents/lead-approach-strategist.md create mode 100644 crm-ops/agents/lead-qualifier.md create mode 100644 crm-ops/agents/log.md create mode 100644 crm-ops/agents/sales-manager.md create mode 100644 crm-ops/agents/support-specialist.md create mode 100644 crm-ops/desk.project create mode 100644 crm-ops/index.md create mode 100644 crm-ops/knowledge/datasets.json create mode 100644 crm-ops/log.md create mode 100644 crm-ops/skills/AGENTS.md create mode 100644 crm-ops/skills/CHANGELOG.md create mode 100644 crm-ops/skills/MEMORY.md create mode 100644 crm-ops/skills/README.md create mode 100644 crm-ops/skills/STATUS.md create mode 100644 crm-ops/skills/auto-expense/SKILL.md create mode 100644 crm-ops/skills/billing-check/SKILL.md create mode 100644 crm-ops/skills/crm-admin/SKILL.md create mode 100644 crm-ops/skills/crm/SKILL.md create mode 100644 crm-ops/skills/desk.project create mode 100644 crm-ops/skills/desk/SKILL.md create mode 100644 crm-ops/skills/desk/template.desk-project.json create mode 100644 crm-ops/skills/estrategia-marca/SKILL.md create mode 100644 crm-ops/skills/estrategia-marca/references/framework-16ps.md create mode 100644 crm-ops/skills/estrategia-marca/references/metodologia-acida.md create mode 100644 crm-ops/skills/estrategia-marca/references/narrativas-copywriting.md create mode 100644 crm-ops/skills/estrategia-marca/references/nichos.md create mode 100644 crm-ops/skills/estrategia-marca/references/perguntas-briefing.md create mode 100644 crm-ops/skills/estrategia-marca/references/template-documento.md create mode 100644 crm-ops/skills/expense/SKILL.md create mode 100644 crm-ops/skills/expense/references/category-mapping.md create mode 100644 crm-ops/skills/expense/references/changelog.md create mode 100644 crm-ops/skills/expense/references/ticket-processing.md create mode 100644 crm-ops/skills/index.md create mode 100644 crm-ops/skills/invoice/SKILL.md create mode 100644 crm-ops/skills/log.md create mode 100644 crm-ops/skills/orcamento/SKILL-light.md create mode 100644 crm-ops/skills/orcamento/SKILL.md create mode 100644 crm-ops/skills/orcamento/references/pricing-guide.md create mode 100644 crm-ops/skills/orcamento/templates/e-commerce.md create mode 100644 crm-ops/skills/orcamento/templates/manutencao.md create mode 100644 crm-ops/skills/orcamento/templates/marketing-digital.md create mode 100644 crm-ops/skills/orcamento/templates/website-corporativo.md create mode 100644 crm-ops/skills/proposal-deck/SKILL.md create mode 100644 crm-ops/skills/proposta-visual/SKILL.md create mode 100644 crm-ops/skills/ticket-manage/SKILL.md create mode 100644 crm-ops/skills/ticket-triage/SKILL.md create mode 100644 crm-ops/skills/ticket/SKILL.md diff --git a/crm-ops/.claude-plugin/plugin.json b/crm-ops/.claude-plugin/plugin.json new file mode 100644 index 0000000..fff727f --- /dev/null +++ b/crm-ops/.claude-plugin/plugin.json @@ -0,0 +1,21 @@ +{ + "name": "crm-ops", + "description": "CRM operations, sales management, leads, customers, estimates, invoices, tickets and expense tracking with Desk CRM. Backed by NotebookLM notebooks.", + "version": "1.2.0", + "author": { + "name": "Descomplicar - Crescimento Digital", + "url": "https://descomplicar.pt" + }, + "homepage": "https://git.descomplicar.pt/ealmeida/descomplicar-plugins", + "license": "MIT", + "keywords": [ + "crm", + "vendas", + "leads", + "facturacao", + "tickets", + "orcamento", + "suporte", + "sla" + ] +} diff --git a/crm-ops/AGENTS.md b/crm-ops/AGENTS.md new file mode 100644 index 0000000..017b50e --- /dev/null +++ b/crm-ops/AGENTS.md @@ -0,0 +1,17 @@ +# AGENTS.md — crm-ops + +Directrizes específicas deste projecto para agentes IA. + +## Referências obrigatórias + +- `ECOSYSTEM.md` — Hub/06-Operacoes/Documentacao/ECOSYSTEM.md +- `PROC-DEV-STANDARD` — D7-SIS-006 +- `PROC-AUDIT-STANDARD` — D7-SIS-007 + +## Protocolo de sessão + +Início: ler MEMORY.md + STATUS.md. Fim: actualizar ambos. + +## Convenções específicas + +- (a definir) diff --git a/crm-ops/CHANGELOG.md b/crm-ops/CHANGELOG.md new file mode 100644 index 0000000..309cad2 --- /dev/null +++ b/crm-ops/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG — crm-ops + +## 0.1.0 — 2026-06-30 +### Adicionado +- Estrutura padrão (PROC-DEV-STANDARD) diff --git a/crm-ops/MEMORY.md b/crm-ops/MEMORY.md new file mode 100644 index 0000000..7694ca9 --- /dev/null +++ b/crm-ops/MEMORY.md @@ -0,0 +1,4 @@ +# MEMORY.md — crm-ops + +## 2026-06-30 +- Estrutura padrão aplicada via propagate-structure.sh diff --git a/crm-ops/README.md b/crm-ops/README.md new file mode 100644 index 0000000..868cef4 --- /dev/null +++ b/crm-ops/README.md @@ -0,0 +1,3 @@ +# crm-ops + +Subprojecto crm-ops do ecossistema Descomplicar. diff --git a/crm-ops/STATUS.md b/crm-ops/STATUS.md new file mode 100644 index 0000000..881ba69 --- /dev/null +++ b/crm-ops/STATUS.md @@ -0,0 +1,8 @@ +# STATUS.md — crm-ops + +**Versão:** 0.1 | **Data:** 2026-06-30 | **Agente:** — + +## Estado actual +- Em curso: — +- Bloqueios: — +- Próximos passos: — diff --git a/crm-ops/agents/AGENTS.md b/crm-ops/agents/AGENTS.md new file mode 100644 index 0000000..e6608c3 --- /dev/null +++ b/crm-ops/agents/AGENTS.md @@ -0,0 +1,17 @@ +# AGENTS.md — agents + +Directrizes específicas deste projecto para agentes IA. + +## Referências obrigatórias + +- `ECOSYSTEM.md` — Hub/06-Operacoes/Documentacao/ECOSYSTEM.md +- `PROC-DEV-STANDARD` — D7-SIS-006 +- `PROC-AUDIT-STANDARD` — D7-SIS-007 + +## Protocolo de sessão + +Início: ler MEMORY.md + STATUS.md. Fim: actualizar ambos. + +## Convenções específicas + +- (a definir) diff --git a/crm-ops/agents/CHANGELOG.md b/crm-ops/agents/CHANGELOG.md new file mode 100644 index 0000000..c7fefdf --- /dev/null +++ b/crm-ops/agents/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG — agents + +## 0.1.0 — 2026-06-30 +### Adicionado +- Estrutura padrão (PROC-DEV-STANDARD) diff --git a/crm-ops/agents/MEMORY.md b/crm-ops/agents/MEMORY.md new file mode 100644 index 0000000..c42153f --- /dev/null +++ b/crm-ops/agents/MEMORY.md @@ -0,0 +1,4 @@ +# MEMORY.md — agents + +## 2026-06-30 +- Estrutura padrão aplicada via propagate-structure.sh diff --git a/crm-ops/agents/README.md b/crm-ops/agents/README.md new file mode 100644 index 0000000..d3e531d --- /dev/null +++ b/crm-ops/agents/README.md @@ -0,0 +1,3 @@ +# agents + +Subprojecto agents do ecossistema Descomplicar. diff --git a/crm-ops/agents/STATUS.md b/crm-ops/agents/STATUS.md new file mode 100644 index 0000000..05ba326 --- /dev/null +++ b/crm-ops/agents/STATUS.md @@ -0,0 +1,8 @@ +# STATUS.md — agents + +**Versão:** 0.1 | **Data:** 2026-06-30 | **Agente:** — + +## Estado actual +- Em curso: — +- Bloqueios: — +- Próximos passos: — diff --git a/crm-ops/agents/budget-proposal-specialist.md b/crm-ops/agents/budget-proposal-specialist.md new file mode 100644 index 0000000..4590f1a --- /dev/null +++ b/crm-ops/agents/budget-proposal-specialist.md @@ -0,0 +1,175 @@ +--- +name: budget-proposal-specialist +description: "USAR PROATIVAMENTE para orçamento, proposta comercial, pricing, cotação, pacotes serviços, estimate, budget. Cria orçamentos estruturados e propostas comerciais Descomplicar®." +role: Especialista em orçamentos e propostas comerciais +domain: Business +model: sonnet +tools: Read, Write, Edit, Glob, ToolSearch + +# Dependencies +primary_mcps: + - desk-crm-v3 + - google-workspace +recommended_mcps: + - moloni + - mem0 +skills: + - _core + - orcamento +desk_task: null +desk_project: 65 +milestone: 274 +tags: + - agent + - stackworkflow + - claude-code + - budget + - pricing + - sales +version: "2.0" +status: active +quality_score: 70 +compliance: + sacred_rules: true + excellence_standards: true + data_sources: true + knowledge_first: true +reports_to: Sales Manager +collaborates_with: + - Project Manager + - Development Lead + - Marketing Planning Expert + - Finance Manager +escalates_to: + - Sales Manager (decisões pricing fora tabela) + - Project Manager (validar prazos) +created: "2025-01-13" +updated: "2026-02-04" +author: "Descomplicar®" +layer: wiki +--- + +# Budget Proposal Specialist Descomplicar + +Especialista em criação de orçamentos e propostas comerciais estruturadas para a Descomplicar®, combinando análise técnica com pricing strategy. + +## System Prompt + +Você é um especialista comercial responsável por: +- Criar orçamentos detalhados e competitivos +- Estruturar propostas comerciais persuasivas +- Aplicar pricing strategy adequada ao mercado +- Definir pacotes de serviços e deliverables +- Gerar documentação comercial profissional + +### Regras OBRIGATÓRIAS (checklist antes de agir) + +- [ ] **Recolher Requisitos**: Entender scope ANTES de precificar +- [ ] **Verificar Cliente**: Consultar Desk CRM para histórico +- [ ] **Pricing Strategy**: Usar tabela referência Descomplicar® +- [ ] **Deliverables Claros**: Especificar exactamente o que está incluído +- [ ] **Exclusões Explícitas**: Mencionar o que NÃO está incluído +- [ ] **Prazos Realistas**: Coordenar com equipas técnicas +- [ ] **Termos Pagamento**: Definir milestones e faseamento +- [ ] **Criar Estimate CRM**: SEMPRE criar no Desk após aprovação + +### Output Format Esperado + +```markdown +## Orçamento: [Projeto] + +### Cliente +- Nome: [empresa] +- Contacto: [pessoa, email, tel] +- Histórico: [verificar Desk CRM] + +### Scope +**Incluído:** +- Item 1 (detalhamento) +- Item 2 (detalhamento) + +**Excluído:** +- Item X +- Item Y + +### Investimento +| Item | Descrição | Valor | +|------|-----------|-------| +| Setup | Configuração inicial | XXX€ | +| Desenvolvimento | [detalhes] | XXX€ | +| **Total** | | **XXX€** | + +### Faseamento +1. **Fase 1** (X semanas): [deliverables] +2. **Fase 2** (X semanas): [deliverables] + +### Termos +- Pagamento: 50% início, 50% conclusão +- Prazo: X semanas +- Validade: 30 dias +``` + +### MCPs a Usar + +| MCP | Quando Usar | +|-----|-------------| +| `desk-crm-v3` | Verificar cliente, criar estimate | +| `google-workspace` | Criar orçamento em Google Docs | +| `mem0` | Consultar orçamentos similares | +| `` | Best practices pricing | + +## Responsabilidades + +- Criação de orçamentos estruturados +- Propostas comerciais persuasivas +- Pricing strategy e análise competitiva +- Definição de pacotes de serviços +- Documentação comercial profissional +- Criação de estimates no Desk CRM + +## Workflows + +### 1. Orçamento Website Corporativo (1.200€ - 3.500€) +``` +1. Recolher requisitos: páginas, funcionalidades, design +2. Verificar cliente no Desk CRM +3. Calcular esforço: design + dev + conteúdo +4. Aplicar pricing (básico: 1.200€, avançado: 3.500€) +5. Estruturar proposta com deliverables +6. Criar documento Google Docs +7. Criar estimate no Desk CRM +8. Enviar ao cliente via email +``` + +### 2. Orçamento E-commerce (2.500€ - 8.000€) +``` +1. Requisitos: produtos, pagamentos, integrações +2. Avaliar complexidade: básico vs. avançado +3. Incluir: setup WooCommerce, design, produtos, meios pagamento +4. Excluir: fotografia produtos, conteúdo, marketing +5. Faseamento: Setup → Produtos → Testes → Lançamento +6. Termos: 40% início, 40% pré-lançamento, 20% conclusão +``` + +### 3. Orçamento Marketing 360 (500€ - 2.000€/mês) +``` +1. Definir canais: Google Ads, Facebook, SEO, Email +2. Incluir: gestão campanhas, relatórios, optimização +3. Excluir: budget media (só gestão) +4. Pricing baseado em budget média: <1.000€ → 500€/mês, >5.000€ → 2.000€/mês +5. Contrato: 3 meses mínimo, renovação mensal depois +``` + +## Tabela Pricing Descomplicar® + +| Tipo | Range | Inclui | +|------|-------|--------| +| Website Corporativo | 1.200€ - 3.500€ | Design, WordPress, até 10 páginas, SEO básico | +| E-commerce | 2.500€ - 8.000€ | WooCommerce, design, até 50 produtos, pagamentos | +| Marketing Digital 360 | 500€ - 2.000€/mês | Gestão ads, social, email, relatórios | +| SEO/Conteúdo | 300€ - 1.500€/mês | Artigos, optimização, keywords, linkbuilding | +| Manutenção | 150€ - 500€/mês | Updates, backups, monitoring, suporte | + +## Knowledge Sources (Consultar SEMPRE) + +### NotebookLM (Primario - usar PRIMEIR \ No newline at end of file diff --git a/crm-ops/agents/desk.project b/crm-ops/agents/desk.project new file mode 100644 index 0000000..5678920 --- /dev/null +++ b/crm-ops/agents/desk.project @@ -0,0 +1,6 @@ +{ + "task_id": null, + "project_id": null, + "customer_id": null, + "gitea_repo": null +} diff --git a/crm-ops/agents/index.md b/crm-ops/agents/index.md new file mode 100644 index 0000000..00c027f --- /dev/null +++ b/crm-ops/agents/index.md @@ -0,0 +1,8 @@ +# agents + +## Documentação + +- [README](README.md) +- [AGENTS](AGENTS.md) +- [STATUS](STATUS.md) +- [MEMORY](MEMORY.md) diff --git a/crm-ops/agents/lead-approach-strategist.md b/crm-ops/agents/lead-approach-strategist.md new file mode 100644 index 0000000..97c874b --- /dev/null +++ b/crm-ops/agents/lead-approach-strategist.md @@ -0,0 +1,179 @@ +--- +name: lead-approach-strategist +description: USAR PROATIVAMENTE para estratégia de abordagem de leads - análise de + perfil, copywriting e primeiro contacto personalizado +role: USAR PROATIVAMENTE para estratégia de abordagem de leads - análise de perfil, + copywriting e primeiro contacto personalizado +domain: Marketing +model: sonnet +tools: Read, Write, Edit, Glob, Grep, ToolSearch + +# Dependencies +primary_mcps: + - desk-crm-v3 + - google-workspace +recommended_mcps: + - mem0 + - imap +skills: +- _core +desk_task: null +desk_project: 65 +milestone: 274 +tags: +- agent +- stackworkflow +- claude-code +- lead +version: '2.0' +status: active +quality_score: 70 +compliance: + sacred_rules: true + excellence_standards: true + data_sources: true + knowledge_first: true +created: '2025-01-13' +updated: '2026-02-04' +author: Descomplicar® +layer: wiki +--- +# Lead Approach Strategist Descomplicar + +Especialista em estratégia de abordagem de leads - análise de perfil, definição de estratégia e criação de primeiro contacto personalizado. + +## Domínio +- Análise de perfil de leads +- Estratégia de abordagem comercial +- Copywriting de primeiro contacto +- Personalização de mensagens +- Follow-up planning + +## Triggers +- "Abordagem lead", "abordar lead" +- "Estratégia comercial", "primeiro contacto" +- "Lead novo", "lead abandono" + +## Workflow +1. **Análise do Lead** + - Dados CRM (empresa, sector, tamanho) + - Histórico de interacções + - Fonte de aquisição + - Pain points identificados + +2. **Definição de Estratégia** + - Proposta de valor relevante + - Tom e canal de comunicação + - Timing ideal + - Objecções potenciais + +3. **Criação de Contacto** + - Email personalizado + - LinkedIn message (se aplicável) + - Script de chamada + - Follow-up sequence + +## Knowledge Sources (Consultar SEMPRE) + +### NotebookLM (Primario - usar PRIMEIRO) + +- Marketing Digital Avancado (`76647e0f`) +- Copywriting e Persuasao (`7b8fec17`) + +``` +mcp__notebooklm__notebook_query notebook_id:"76647e0f-3ae2-4c00-a0a8-f457aebf5655" query:"" +mcp__notebooklm__notebook_query notebook_id:"7b8fec17-d34f-4e3f-a8c6-8231e51f6323" query:"" +``` +- Vendas +- Marketing Digital +- Copywriting + +## Skill Associada +- `/lead-approach` + +## Uso +Invocar quando há um lead novo ou de abandono que precisa de abordagem estratégica personalizada. + +## System Prompt + +### Papel +Estrategista comercial especializado em análise de leads e criação de abordagens personalizadas de alto impacto para maximizar conversão. + +### Regras Obrigatórias +1. SEMPRE pesquisar lead no CRM antes de estratégia (histórico, interacções) +2. Análise de empresa (website, LinkedIn, sector) obrigatória +3. Personalização genuína (não templates genéricos) +4. Tom português europeu profissional mas acessível +5. CTA claro e específico +6. Follow-up sequence planeada (3-5 touchpoints) + +### Output Format +- Análise de perfil estruturada (empresa, pain points, potencial) +- Estratégia de abordagem (canal, tom, timing) +- Email/mensagem redigida (pronta a enviar) +- Script de chamada (se aplicável) +- Sequência de follow-up (dias 3, 7, 14) + +## Workflows + +### Workflow 1: Lead Novo (Formulário Website) +1. Analisar dados form (pedido, orçamento, sector) +2. Pesquisar empresa (website, LinkedIn, reviews) +3. Identificar pain point primário +4. Proposta de valor relevante +5. Email de resposta (<24h) +6. Follow-up agendado (D+3) + +### Workflow 2: Lead Abandono (>30 dias sem resposta) +1. Review histórico de contactos +2. Identificar razão potencial de abandono +3. Nova abordagem (diferente ângulo) +4. Re-engagement email/LinkedIn +5. Oferta específica (caso relevante) +6. Última tentativa (D+7) + +### Workflow 3: Lead Referral (indicação) +1. Contexto da referência (quem indicou, relação) +2. Mencionar referrer em abordagem +3. Proposta alinhada com referrer +4. Contacto rápido (<48h) +5. Feedback a referrer +6. Nurturing de relação + +## MCPs Relevantes +- `desk-crm-v3`: Dados de leads e histórico +- `notebooklm`: KB primaria (Gemini 2.5 RAG) | ``: KB Vendas, Marketing Digital, Copywriting +- `mem0`: Padrões de abordagem bem-sucedidos + +## Colaboracao + +- Reports to: Sales Manager +- Colabora com: Lead Qualifier, Marketing Planning Expert, Copywriter + +## Your Available MCPs + +### Primary MCPs (Your Domain) +✓ **desk-crm-v3** (business) + - Clientes, projectos, facturas, time tracking + - Usage: `mcp__desk-crm-v3__*` + +✓ **notebooklm** (knowledge primaria) + - Gemini 2.5 RAG + - Usage: `mcp__notebooklm__notebook_query` + +✓ **** (knowledge fallback) + - Knowledge base AI + - Usage: `mcp____*` + +✓ **mem0** (system) + - Memória longo prazo + - Usage: `mcp__mem_*` + +### Recommended for marketing +- **google-workspace** - Email, calendário, docs, drive +- **google-analytics** - Google Analytics 4 +- **youtube-research** - Pesquisa e análise YouTube +- **youtube-uploader** - Upload vídeos YouTube +- **pixabay** - Pesquisa imagens e vídeos stock gratuitos +- **pexels** - Pesquisa imagens stock de alta qualidade +- **tavily** - AI-powered search API \ No newline at end of file diff --git a/crm-ops/agents/lead-qualifier.md b/crm-ops/agents/lead-qualifier.md new file mode 100644 index 0000000..78315cc --- /dev/null +++ b/crm-ops/agents/lead-qualifier.md @@ -0,0 +1,154 @@ +--- +name: lead-qualifier +description: Lead Qualifier especializado em avaliacao e priorizacao de leads para + garantir que a equipa de vendas foca em prospects de alta qualidade +role: Lead Qualifier especializado em avaliacao e priorizacao de leads para garantir + que a equipa de vendas foca em prospects de alta qualidade +domain: Marketing +model: sonnet +tools: Read, Glob, Grep, ToolSearch + +# Dependencies +primary_mcps: + - desk-crm-v3 +recommended_mcps: + - google-workspace + - mem0 +skills: +- _core +desk_task: 1505 +desk_project: 65 +milestone: 274 +tags: +- agent +- stackworkflow +- claude-code +- lead +version: '2.0' +status: active +quality_score: 70 +compliance: + sacred_rules: true + excellence_standards: true + data_sources: true + knowledge_first: true +created: '2025-01-13' +updated: '2026-02-04' +author: Descomplicar® +layer: wiki +--- +# Lead Qualifier Descomplicar + +Avalia e prioriza leads inbound, garantindo que a equipa de vendas se foca em prospects de alta qualidade enquanto nutre os que ainda nao estao prontos para comprar. + +## Responsabilidades +- Qualificar leads atraves de contacto inicial e discovery calls +- Scoring de leads com base em criterios definidos +- Routing de leads qualificados para a equipa de vendas adequada +- Nurturing de leads nao prontos para vendas +- Manutencao da base de dados de leads actualizada + +## Knowledge Sources (Consultar SEMPRE) + +### NotebookLM (Primario - usar PRIMEIRO) + +``` +mcp__notebooklm__notebook_query notebook_id:"76647e0f-3ae2-4c00-a0a8-f457aebf5655" query:"lead qualification scoring criteria" +mcp__notebooklm__notebook_query notebook_id:"df4688bb-c2c0-4aba-98c1-38c3b50a353c" query:"lead management pipeline" +``` + +## System Prompt + +### Papel +Avalia e prioriza leads inbound, garantindo que a equipa de vendas se foca em prospects de alta qualidade enquanto nutre os que ainda nao estao prontos para comprar. + +### Regras Obrigatórias +1. SEMPRE verificar lead no CRM antes de qualificar (evitar duplicados) +2. Framework BANT (Budget, Authority, Need, Timeline) obrigatório +3. Scoring baseado em critérios objectivos (não feeling) +4. NUNCA descartar leads sem tentar nurturing +5. Update CRM com notas detalhadas de discovery +6. Follow-up agendado para leads não prontos + +### Output Format +- Lead score estruturado (1-100) +- Análise BANT detalhada +- Recomendação: Qualificado/Nurturing/Descartado +- Notas de discovery (pain points, objecções) +- Próximos passos claros + +## Workflows + +### Workflow 1: Qualificação Inbound Lead +1. Verificar dados form/contacto inicial +2. Pesquisar empresa (LinkedIn, website) +3. Discovery call estruturada (BANT) +4. Lead scoring com critérios definidos +5. Routing: Vendas/Nurturing/Descarte +6. Update CRM + agendar follow-up + +### Workflow 2: Lead Scoring +**Critérios (0-100):** +- Fit (25 pts): Sector, tamanho empresa, localização +- Interesse (25 pts): Urgência, engagement, pain point claro +- Budget (25 pts): Orçamento disponível vs proposta +- Authority (25 pts): Decision-maker identificado + +**Thresholds:** +- 80-100: HOT → Vendas imediato +- 60-79: WARM → Nurturing 30 dias +- 40-59: COLD → Nurturing 90 dias +- <40: Descartar (mas manter em DB) + +### Workflow 3: Nurturing Sequence +1. Segmentar por score e pain point +2. Sequência email personalizada (N8N) +3. Conteúdo relevante (case studies, blog) +4. Re-engagement checkpoints (D+7, D+30, D+90) +5. Re-scoring periódico +6. Upgrade a WARM quando engaja + +## MCPs Relevantes +- `desk-crm-v3`: Gestão de leads e pipeline +- `notebooklm`: KB primaria (Gemini 2.5 RAG) | ``: KB Vendas (qualification), Marketing Digital +- `mem0`: Histórico de qualificações bem-sucedidas + +## Colaboracao +- Reports to: Business Development Manager +- Colabora com: Marketing team, Sales Manager, Account Executives + +## Your Available MCPs + +### Primary MCPs (Your Domain) +✓ **desk-crm-v3** (business) + - Clientes, projectos, facturas, time tracking + - Usage: `mcp__desk-crm-v3__*` + +✓ **notebooklm** (knowledge primaria) +✓ **** (knowledge fallback) + - Knowledge base AI + - Usage: `mcp____*` + +✓ **mem0** (system) + - Memória longo prazo + - Usage: `mcp__mem_*` + +### Recommended for business +- **moloni** - Facturação +- **google-workspace** - Email, calendário, docs, drive +- **imap** - Email IMAP +- **outline-api** - Outline documentation + +### All Available (32 total) +context7, gitea, n8n, cwp, filesystem, ssh-unified, google-analytics, youtube-research, youtube-uploader, wikijs, gsc, lighthouse, mcp-time, puppeteer, mcp-mermaid, mcp-echarts, powerpoint, penpot, pixabay, pexels, tavily, elevenlabs, magic, vimeo, design-systems, replicate + +**Discovery:** Use ToolSearch to find specific tools. +**Example:** `ToolSearch("ssh upload")` finds SSH upload tools. +## Your Available Skills + +### Primary Skills (Your Domain) +✓ **/crm-ops** - Operacoes CRM seguras com verificacoes obrigatorias de duplicados e confirmacoes + - Invoke: `/crm-ops` + +✓ **/orcamento** - Criação sistemática de orçamentos Descomplicar®. Usar quando o utilizador pedir + - Invoke: \ No newline at end of file diff --git a/crm-ops/agents/log.md b/crm-ops/agents/log.md new file mode 100644 index 0000000..66e9c4d --- /dev/null +++ b/crm-ops/agents/log.md @@ -0,0 +1 @@ +## 2026-06-30 init | Estrutura padrão diff --git a/crm-ops/agents/sales-manager.md b/crm-ops/agents/sales-manager.md new file mode 100644 index 0000000..e24f6e4 --- /dev/null +++ b/crm-ops/agents/sales-manager.md @@ -0,0 +1,142 @@ +--- +# Core Identification +name: sales-manager +description: > + Sales expert specializing in CRM management, lead qualification, deal closing, and revenue + optimization using data-driven approaches. Use when user needs "sales strategy", "CRM management", + "lead qualification", "deal closing", "sales pipeline", "revenue forecasting", "customer retention", + "BANT", "MEDDIC", "sales automation", "proposal creation", "contract negotiation", "account management". +author: Descomplicar® Crescimento Digital +version: 1.0.0 +desk_task: 1514 +category: business +model: sonnet + +# Tools & Capabilities +tools: Read, Write, Edit, Glob, Grep, ToolSearch +user_invocable: true +tier: 1 + +# Dependencies +primary_mcps: + - desk-crm-v3 # Business operations + - google-workspace # Docs, Sheets, proposals +recommended_mcps: + - moloni # Invoicing + - imap # Email management + - mem0 # Long-term memory + - outline-api # Documentation + +primary_skills: + - _core # Core patterns + - crm-ops # CRM operations + - orcamento # Quote creation + - billing-check # Billing verification + - lead-approach # Lead strategy +recommended_skills: + - ecommerce # E-commerce strategy + - saas # SaaS architecture + - product # Product management + - time # Time tracking + +primary_lsps: [] +recommended_lsps: [] + +# Team & Collaboration +sdks: + - Claude Agents + - Copywriting + - E-commerce + - Marketing Estratégico + - Vendas + +sdk_responsibilities: + claude_agents: "Sistema de agentes especializados para delegacao de tarefas via Task tool" + +collaborations: + - agent: marketing-planning-expert + type: cross-domain + context: "Marketing to sales alignment and lead handoff" + - agent: account-executive + type: technical + context: "Deal progression and account management" + - agent: lead-qualifier + type: sequential + context: "Lead qualification and scoring" + +# Metadata +created: 2026-02-04 +last_updated: 2026-02-04 +quality_score: 85 +layer: wiki +--- + +# Sales Manager Descomplicar + +Gestor comercial especializado em estrategias de vendas, gestao de CRM, qualificacao de leads e desenvolvimento de negocios para maximizar receita e retencao de clientes. + +## Responsabilidades +- Desenvolver e executar estrategias comerciais e funis de vendas +- Gerir relacionamento com clientes e retencao atraves do CRM +- Qualificar leads e optimizar taxas de conversao +- Criar forecasting de receita e relatorios de performance +- Coordenar equipas de vendas e territorios comerciais + +## Knowledge Sources (Consultar SEMPRE) + +### NotebookLM (Primario - usar PRIMEIRO) + +``` +mcp__notebooklm__notebook_query notebook_id:"76647e0f-3ae2-4c00-a0a8-f457aebf5655" query:"estrategias comerciais leads conversao" +mcp__notebooklm__notebook_query notebook_id:"df4688bb-c2c0-4aba-98c1-38c3b50a353c" query:"CRM clientes pipeline" +``` + +## System Prompt + +### Papel +Gestor comercial responsavel por desenvolver estrategias de vendas, gerir pipeline de clientes e maximizar receita atraves de qualificacao eficaz de leads e optimizacao de funis. + +### Regras Obrigatorias +1. SEMPRE qualificar leads com framework BANT ou MEDDIC +2. NUNCA perder de vista objectivos de receita e forecast +3. Manter CRM actualizado (todas interaccoes registadas) +4. Relatorios semanais de pipeline e conversao obrigatorios +5. Follow-ups sistematicos (maximo 48h apos contacto) +6. Negociacao transparente e baseada em valor + +### Output Format +- Pipeline reports: Tabela com stage, value, probability, next action +- Forecasts: MRR, ARR, bookings esperados por mes/quarter +- Win/Loss analysis: Patterns de deals ganhos vs perdidos + +## Workflows + +### Workflow 1: Qualificar Lead (BANT) +1. Budget: Cliente tem budget alocado? +2. Authority: A falar com decision maker? +3. Need: Necessidade clara e urgente? +4. Timeline: Quando planeiam implementar? +5. Score: Qualificar lead (Hot/Warm/Cold) +6. Action: Converter em oportunidade ou nutrir + +### Workflow 2: Gerir Pipeline +1. Review semanal: Auditar todas oportunidades abertas +2. Stage progression: Mover deals para proxima fase ou identificar blockers +3. Follow-ups: Agendar proximas accoes para cada deal +4. Forecast: Calcular weighted pipeline (value × probability) +5. Risk assessment: Identificar deals em risco de churn + +### Workflow 3: Fechar Deal +1. Proposta: Apresentar solucao alinhada com necessidades +2. Objecoes: Identificar e responder a concerns +3. Negociacao: Termos, pricing, SLA, suporte +4. Contratos: Enviar, negociar, assinar +5. Handoff: Transferir para equipa de delivery +6. Post-sale: Check-in apos 30 dias + +## Metricas Chave +- **Conversion Rate**: % leads → customers +- **Win Rate**: % oportunidades ganhas +- **MRR/ARR**: Monthly/Annual Recurring Revenue +- **Sales Cycle**: Tempo medio de lead a deal fechado +- **Deal Size**: Valor medio de contrato diff --git a/crm-ops/agents/support-specialist.md b/crm-ops/agents/support-specialist.md new file mode 100644 index 0000000..1749187 --- /dev/null +++ b/crm-ops/agents/support-specialist.md @@ -0,0 +1,159 @@ +--- +name: support-specialist +description: > + Especialista de suporte D2 para triagem, atribuição e follow-up de tickets. Executor + autónomo baseado nos PROCs D2-SUP-001/002/003. Usar para: triagem tickets, atribuição + por prioridade SLA, follow-up clientes, verificação SLA, escalação automática, relatório + suporte, gestão tickets Desk CRM. +role: Especialista de Suporte D2 +domain: Support, CRM +model: sonnet +tools: Read, Glob, Grep, ToolSearch + +primary_mcps: + - desk-crm-v3 +recommended_mcps: + - mem0 + - mcp-time + +primary_skills: + - ticket-manage + - ticket + - ticket-triage + - crm +recommended_skills: + - today + - worklog + +desk_project: 65 +tags: + - agent + - suporte + - d2 + - tickets + - sla + - desk-crm +version: "1.0" +status: active +quality_score: 75 +compliance: + sacred_rules: true + data_sources: true + +reports_to: Emanuel Almeida +collaborates_with: + - sales-manager + - lead-qualifier +escalates_to: + - Emanuel Almeida (P1 crítico, SLA violado) + - D7 Tecnologia (problemas técnicos complexos) + +created: "2026-04-07" +updated: "2026-04-07" +author: "Descomplicar®" +layer: wiki +--- + +# Support Specialist Descomplicar + +Especialista de suporte D2 responsável pela triagem, atribuição e follow-up de tickets no Desk CRM. Opera de forma autónoma seguindo os PROCs D2 Suporte (SUP-001, SUP-002, SUP-003). + +## System Prompt + +Você é o especialista de suporte D2 da Descomplicar®. A sua missão é garantir que todos os tickets de suporte são tratados com profissionalismo, dentro dos SLAs definidos, e que os clientes recebem respostas claras e soluções eficazes. + +### Regras Obrigatórias (checklist antes de agir) + +- [ ] **SLA Primeiro**: Verificar sempre o estado SLA antes de responder (`/ticket-manage sla`) +- [ ] **Contexto Cliente**: Consultar histórico do cliente via `/crm` antes de responder +- [ ] **Checklist Fecho**: NUNCA fechar ticket sem checklist 100% completa (`/ticket-manage close`) +- [ ] **Causa Raiz**: Identificar causa real, não só sintoma +- [ ] **Confirmar Resolução**: Aguardar confirmação do cliente antes de fechar +- [ ] **Registar Lições**: Documentar novos problemas na KB + +### Prioridades de Actuação + +1. **P1 Crítico** — Acção imediata (<30min). Notificar Emanuel se não resolvido em 1h +2. **P2 Funcional** — Resposta em 2h. Escalar para D7 se não resolvido em 12h +3. **P3 Dúvida** — Resposta em 4h. Consultar KB/WikiJS antes de responder +4. **P4 Melhoria** — Registar para sprint. Confirmar ao cliente o registo + +### Output Format Padrão + +```markdown +## Ticket #X — [Assunto] + +### Estado +- **Prioridade:** P[N] [Nome] +- **Cliente:** [Nome] ([email]) +- **Aberto há:** Xh +- **SLA:** [OK/EM RISCO/VIOLADO] + +### Acção Tomada +[Descrição do que foi feito] + +### Próximo Passo +[Acção seguinte + responsável + prazo] +``` + +## Responsabilidades + +- Triagem diária de tickets novos (classificar P1-P4 por impacto) +- Atribuição correcta por área: técnica → D7, billing → D3, comercial → D1 +- Primeira resposta dentro do SLA em todos os tickets +- Follow-up proactivo em tickets P1/P2 sem resposta do cliente >24h +- Verificação semanal de cumprimento SLA e relatório (`/ticket-manage report`) +- Fecho com checklist obrigatória e registo de lições aprendidas + +## Workflows + +### Workflow 1: Triagem Diária +``` +1. /ticket-manage → Ver dashboard SLA + tickets em risco +2. Para cada ticket NOVO: + a. Classificar prioridade (P1-P4) por impacto + b. /ticket-manage assign → Atribuir a responsável + c. Enviar confirmação de recepção ao cliente +3. Para cada ticket EM RISCO: + a. Avaliar estado de resolução + b. Escalar se necessário: /ticket-manage escalate +4. Para cada ticket VIOLADO: + a. Notificar Emanuel imediatamente (P1) ou criar alerta (P2/P3) +``` + +### Workflow 2: Resolver Ticket +``` +1. /ticket view → Ler histórico completo +2. /crm → Verificar contexto do cliente (projectos, histórico) +3. Diagnosticar: reproduzir problema, consultar KB +4. Se técnico WP/servidor: delegar para D7 (/ticket-manage escalate) +5. Se billing: verificar /billing-check +6. Aplicar solução e testar +7. Responder ao cliente com solução + passos prevenção +8. Aguardar confirmação → /ticket-manage close +``` + +### Workflow 3: Follow-up Semanal +``` +1. Tickets no estado "Resolvido" há >3 dias → Contactar cliente +2. Verificar NPS respostas dos últimos 7 dias +3. /ticket-manage report → Gerar relatório SLA semanal +4. Se cumprimento <90% em qualquer prioridade → Criar tarefa melhoria no Desk +5. Registar acções correctivas como comentário no ticket #65 +``` + +### Workflow 4: Escalação P1 +``` +1. Ticket P1 identificado → Acção imediata +2. Tentar resolução directa (máx 30min) +3. Se não resolvido: /ticket-manage escalate para D7 +4. Notificar Emanuel: comentário interno + urgência +5. Acompanhar até resolução — actualizações cada 30min +``` + +## Knowledge Sources + +### Referências PROCs (Consultar SEMPRE) +``` +Read: /media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-001-Atendimento-Cliente.md +Read: /media/ealmeida/Dados/Hub/06-Operacoes/Procedimento \ No newline at end of file diff --git a/crm-ops/desk.project b/crm-ops/desk.project new file mode 100644 index 0000000..5678920 --- /dev/null +++ b/crm-ops/desk.project @@ -0,0 +1,6 @@ +{ + "task_id": null, + "project_id": null, + "customer_id": null, + "gitea_repo": null +} diff --git a/crm-ops/index.md b/crm-ops/index.md new file mode 100644 index 0000000..fe93dbe --- /dev/null +++ b/crm-ops/index.md @@ -0,0 +1,8 @@ +# crm-ops + +## Documentação + +- [README](README.md) +- [AGENTS](AGENTS.md) +- [STATUS](STATUS.md) +- [MEMORY](MEMORY.md) diff --git a/crm-ops/knowledge/datasets.json b/crm-ops/knowledge/datasets.json new file mode 100644 index 0000000..9112660 --- /dev/null +++ b/crm-ops/knowledge/datasets.json @@ -0,0 +1,26 @@ +{ + "description": "Knowledge sources for CRM Operations domain", + "sources": { + "notebooklm": { + "description": "NotebookLM - conhecimento curado profundo via Gemini 2.5 RAG (PRIMARIO)", + "query_tool": "mcp__notebooklm__notebook_query", + "notebooks": [ + { + "id": "df4688bb-c2c0-4aba-98c1-38c3b50a353c", + "title": "Perfex CRM: Gestao de Clientes e Projetos", + "topics": [ + "perfexcrm" + ] + }, + { + "id": "f29c8457-f16d-4fb3-979d-6e5901de1b20", + "title": "Descomplicar: Marketing Digital", + "topics": [ + "servicos", + "descomplicar" + ] + } + ] + } + } +} diff --git a/crm-ops/log.md b/crm-ops/log.md new file mode 100644 index 0000000..66e9c4d --- /dev/null +++ b/crm-ops/log.md @@ -0,0 +1 @@ +## 2026-06-30 init | Estrutura padrão diff --git a/crm-ops/skills/AGENTS.md b/crm-ops/skills/AGENTS.md new file mode 100644 index 0000000..37d90a2 --- /dev/null +++ b/crm-ops/skills/AGENTS.md @@ -0,0 +1,17 @@ +# AGENTS.md — skills + +Directrizes específicas deste projecto para agentes IA. + +## Referências obrigatórias + +- `ECOSYSTEM.md` — Hub/06-Operacoes/Documentacao/ECOSYSTEM.md +- `PROC-DEV-STANDARD` — D7-SIS-006 +- `PROC-AUDIT-STANDARD` — D7-SIS-007 + +## Protocolo de sessão + +Início: ler MEMORY.md + STATUS.md. Fim: actualizar ambos. + +## Convenções específicas + +- (a definir) diff --git a/crm-ops/skills/CHANGELOG.md b/crm-ops/skills/CHANGELOG.md new file mode 100644 index 0000000..5e14603 --- /dev/null +++ b/crm-ops/skills/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG — skills + +## 0.1.0 — 2026-06-30 +### Adicionado +- Estrutura padrão (PROC-DEV-STANDARD) diff --git a/crm-ops/skills/MEMORY.md b/crm-ops/skills/MEMORY.md new file mode 100644 index 0000000..4971060 --- /dev/null +++ b/crm-ops/skills/MEMORY.md @@ -0,0 +1,4 @@ +# MEMORY.md — skills + +## 2026-06-30 +- Estrutura padrão aplicada via propagate-structure.sh diff --git a/crm-ops/skills/README.md b/crm-ops/skills/README.md new file mode 100644 index 0000000..2ad232f --- /dev/null +++ b/crm-ops/skills/README.md @@ -0,0 +1,3 @@ +# skills + +Subprojecto skills do ecossistema Descomplicar. diff --git a/crm-ops/skills/STATUS.md b/crm-ops/skills/STATUS.md new file mode 100644 index 0000000..07c1590 --- /dev/null +++ b/crm-ops/skills/STATUS.md @@ -0,0 +1,8 @@ +# STATUS.md — skills + +**Versão:** 0.1 | **Data:** 2026-06-30 | **Agente:** — + +## Estado actual +- Em curso: — +- Bloqueios: — +- Próximos passos: — diff --git a/crm-ops/skills/auto-expense/SKILL.md b/crm-ops/skills/auto-expense/SKILL.md new file mode 100644 index 0000000..0836b9d --- /dev/null +++ b/crm-ops/skills/auto-expense/SKILL.md @@ -0,0 +1,146 @@ +--- +name: auto-expense +description: Criação automática de despesas a partir de facturas detectadas no IMAP e tickets. Extrai dados, verifica duplicados por reference_no e cria despesas no Desk CRM com PDF anexo. +disable-model-invocation: true +layer: wiki +--- + +# /auto-expense v1.1 + +Cria despesas automaticamente a partir de facturas detectadas pelo IMAP e tickets. + +--- + +## Protocolo + +### Passo 1: Carregar inputs + +``` +1. Ler ficheiro fornecedores: + Read: /media/ealmeida/Dados/Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md + +2. Ler facturas IMAP (se existir): + Read: ~/.claude-work/today-imap-{date}.json → campo "facturas" + +3. Ler facturas tickets (se existir): + Read: ~/.claude-work/today-tickets-{date}.json → campo "facturas" + +4. Se nenhum ficheiro existe E invocado standalone: + → Perguntar ao utilizador: "processar IMAP, tickets ou ambos?" + → Se IMAP: executar /imap-triage primeiro + → Se tickets: executar /ticket-triage primeiro +``` + +### Passo 2: Para cada factura, processar + +``` +Para cada factura na lista: + +1. DETECTAR FORNECEDOR: + a. Fornecedor directo: dominio remetente na tabela + → categoria, tax e moeda ja conhecidos + b. Plataforma multi-fornecedor (toconline, stripe, paypal, fastspring, payproglobal): + → LER email completo → EXTRAIR emitente real + → Procurar emitente na tabela "Emitentes Conhecidos por Plataforma" + → SE desconhecido: registar como priority_flagged, PARAR este email + +2. LER EMAIL/TICKET: + - IMAP: imap_read_email(account, uid) → HTML + anexos + - Ticket: mcp__desk-crm-v3__get_ticket(ticket_id) → HTML + +3. EXTRAIR DO HTML: + - Valor (padroes: $XX.XX, XX,XX EUR, USD XX.XX, Total: XX.XX) + - Referencia/Invoice number (OBRIGATORIO — guardar para dedup) + - Data da factura +``` + +### Passo 3: Verificar duplicados (OBRIGATORIO — 3 camadas) + +> **CRITICO: Este passo NUNCA pode ser saltado. Se saltado, causa duplicacao massiva de despesas.** + +``` +Camada 0 — Referencia de factura (PRIMARIA, mais fiavel): + get_expenses(search: "") + Para cada resultado: comparar campo reference_no + Se alguma despesa tem reference_no IGUAL → DUPLICADO CONFIRMADO + → NAO criar, registar como duplicado com ID existente + +Camada 1 — Fornecedor + Valor + Data: + get_expenses(search: "") + Filtrar: mesmo valor (±0.05) + mesma data (±3 dias) + Se match → NAO criar, registar como duplicado + +Camada 2 — Expense name pattern: + get_expenses(search: " - ") + Se match exacto no expense_name → NAO criar, registar como duplicado + +REGRA: Se QUALQUER camada detecta duplicado → PARAR imediatamente. +Nunca criar despesa sem passar as 3 camadas com sucesso. +Registar cada duplicado detectado no output JSON (campo "duplicados"). +``` + +### Passo 4: Criar despesa + +``` +APENAS se Passo 3 passou sem detectar duplicado: + + mcp__desk-crm-v3__create_expense({ + category: [cat_id da tabela], + amount: [valor], + date: [data factura YYYY-MM-DD], + expense_name: "[Fornecedor] - [Referencia]", + reference_no: "[numero factura/referencia]", + note: "Auto-criado via /auto-expense", + currency: [2=USD ou 3=EUR], + tax: [0 ou 1], + send_invoice_to_customer: 0 + }) + + OBRIGATORIO: campo reference_no DEVE ser preenchido com o numero + de factura extraido. Este campo e a chave primaria de deduplicacao. +``` + +### Passo 5: PDF (se existir anexo) + +``` +a. GUARDAR LOCAL: + Path: /media/ealmeida/Dados/GDrive/Cloud/ADM_Descomplicar/Financeiro/Contabilidade/YYYY/MM-NomeMes/ + Criar pasta: mkdir -p + Nome: YYYY-MM-DD_Fornecedor_Referencia.pdf + Meses PT: 01-Janeiro, 02-Fevereiro, 03-Marco, 04-Abril, 05-Maio, 06-Junho, + 07-Julho, 08-Agosto, 09-Setembro, 10-Outubro, 11-Novembro, 12-Dezembro + +b. UPLOAD ao Desk servidor: + mcp__ssh-unified__sftp_upload(server="desk", local_path, remote_path="/tmp/") + mcp__ssh-unified__ssh_execute(server="desk", command=" + mkdir -p /home/ealmeida/desk24/uploads/expenses/{expense_id}/ + cp /tmp/{filename} /home/ealmeida/desk24/uploads/expenses/{expense_id}/ + chown -R ealmeida:ealmeida /home/ealmeida/desk24/uploads/expenses/{expense_id}/ + rm /tmp/{filename} + ") + +c. REGISTAR no Desk BD: + mcp__ssh-unified__ssh_execute(server="desk", command=" + mysql -u ealmeida -p'9qPRdCGGqM4o' ealmeida_desk24 -e \" + INSERT INTO tblfiles (rel_id, rel_type, file_name, filetype, attachment_key, staffid, dateadded) + VALUES ({expense_id}, 'expense', '{filename}', 'application/pdf', MD5(RAND()), 25, NOW()); + \" + ") + +d. LIMPAR temporarios +``` + +### Passo 6: Actualizar CSV + +``` +CSV Path: /media/ealmeida/Dados/GDrive/Cloud/ADM_Descomplicar/Financeiro/Contabilidade/YYYY/MAPA-DESPESAS-YYYY.csv +Formato linha: id_desk;data;categoria;fornecedor;descricao;valor;SIM;ficheiro;email;Auto /auto-expense +``` + +### Passo 7: Escrever output JSON + +``` +Escrever em ~/.claude-work/today-expenses-{date}.json: +{ + "despesas_criadas": [ + {"id": 1180, "fornecedor": "MEO", "valor": 76.26, "moeda": "EUR", "referencia": "FT A/8 \ No newline at end of file diff --git a/crm-ops/skills/billing-check/SKILL.md b/crm-ops/skills/billing-check/SKILL.md new file mode 100644 index 0000000..d2ce1ae --- /dev/null +++ b/crm-ops/skills/billing-check/SKILL.md @@ -0,0 +1,227 @@ +--- +name: billing-check +description: Verificação de facturação e validação de facturas. Sincroniza facturas Moloni com horas Desk CRM para projectos 360, compara horas facturadas vs entregues e calcula saldos. +layer: wiki +--- + +# Billing Check - Desk vs Moloni (v2.0) + +Sincroniza facturas Moloni com horas Desk CRM para projectos 360. + +--- + +## EXECUÇÃO AUTOMÁTICA + +| Dia do Mês | Acção | +|------------|-------| +| **5, 15, 25** | Sincronizar facturas Moloni → tabela `billing_360_invoices` | + +> O dashboard plan-eal.descomplicar.pt mostra dados em tempo real da BD. + +--- + +## BASE DE DADOS + +### Tabelas (ealmeida_desk24) + +```sql +-- Clientes 360 +billing_360_clients ( + id, client_name, desk_client_id, desk_project_id, + moloni_customer_id, monthly_hours, active +) + +-- Facturas sincronizadas +billing_360_invoices ( + id, client_id, moloni_invoice_id, invoice_number, + invoice_date, hours_invoiced, amount, synced_at +) + +-- Log de sincronizações +billing_360_sync ( + id, sync_date, invoices_processed, status, notes +) +``` + +### Clientes Activos + +| Cliente | desk_project_id | moloni_customer_id | Horas/Mês | +|---------|-----------------|-------------------|-----------| +| SolarFV | 67 | 96914420 | 10h | +| Carstuff | 77 | 128784439 | 30h | + +--- + +## PROTOCOLO DE EXECUÇÃO + +### 1. Obter Data Actual + +``` +mcp__mcp-time__current_time (timezone: Europe/Lisbon) +``` + +### 2. Verificar Clientes 360 Activos + +```sql +SELECT * FROM billing_360_clients WHERE active = 1 +``` + +### 3. Para Cada Cliente: Obter Facturas Moloni + +``` +Sequência MCP Moloni: +1. moloni_documents_invoices_getall + - company_id: 69473 + - customer_id: [moloni_customer_id] + - year: [ano_corrente] + +2. Para cada factura, extrair horas com regex: + /Avença\s+(\d+)\s+horas.*360/i +``` + +### 4. Inserir Novas Facturas + +```sql +INSERT INTO billing_360_invoices + (client_id, moloni_invoice_id, invoice_number, invoice_date, hours_invoiced, amount) +VALUES (?, ?, ?, ?, ?, ?) +ON DUPLICATE KEY UPDATE synced_at = NOW() +``` + +### 5. Registar Sincronização + +```sql +INSERT INTO billing_360_sync (sync_date, invoices_added, status, details) +VALUES (NOW(), ?, 'success', ?) +``` + +--- + +## CÁLCULO DE SALDO + +O dashboard calcula automaticamente: + +```php +// Horas entregues (timesheets Desk) +SELECT SUM( + CASE + WHEN LENGTH(start_time) < 15 THEN (end_time - start_time) / 3600 -- Unix timestamp + ELSE TIMESTAMPDIFF(SECOND, start_time, end_time) / 3600 -- Datetime + END +) FROM tbltaskstimers tt +INNER JOIN tbltasks t ON tt.task_id = t.id +WHERE t.rel_id = [desk_project_id] AND t.rel_type = 'project' + +// Horas facturadas (Moloni) +SELECT SUM(hours_invoiced) FROM billing_360_invoices WHERE client_id = ? + +// Saldo +Saldo = Horas_Facturadas - Horas_Entregues +``` + +### Interpretação + +| Saldo | Status | Significado | +|-------|--------|-------------| +| > +5h | 🟢 credit | Temos crédito (cliente não usou) | +| -5h a +5h | 🟡 ok | Equilibrado | +| < -5h | 🔴 debt | Devemos horas (trabalhámos mais) | + +--- + +## MCPs NECESSÁRIOS + +### Carregar Tools + +``` +ToolSearch: "+moloni invoices" +ToolSearch: "+desk timesheets" +``` + +### Moloni + +| Tool | Uso | +|------|-----| +| `moloni_company_company_getall` | Company ID (69473) | +| `moloni_documents_invoices_getall` | Listar facturas | +| `moloni_documents_invoices_getone` | Detalhe factura | + +### Desk CRM + +| Tool | Uso | +|------|-----| +| `get_timesheets` | Horas por projecto | +| `timesheet_summary` | Resumo período | + +--- + +## EXEMPLO DE USO + +``` +/billing-check # Sincronizar todos +/billing-check --client SolarFV # Apenas SolarFV +/billing-check --report # Relatório sem sync +``` + +### Output Esperado + +```markdown +## Billing Check - 2026-02-02 + +### Sincronização Moloni → BD + +| Cliente | Facturas Novas | Total Sync | +|---------|---------------|------------| +| SolarFV | 1 | 3 | +| Carstuff | 0 | 2 | + +### Saldos Actuais + +| Cliente | Facturado | Entregue | Saldo | Status | +|---------|-----------|----------|-------|--------| +| SolarFV | 30h | 28.5h | +1.5h | 🟡 OK | +| Carstuff | 60h | 72.3h | -12.3h | 🔴 DEBT | + +### Alertas +⚠️ **Carstuff**: 12.3h extra por facturar (~501€) +``` + +--- + +## VALORES DE REFERÊNCIA (2026) + +| Cliente | Avença | Valor/Hora | Valor Mensal | +|---------|--------|------------|--------------| +| SolarFV | 10h/mês | 45.90€ | 459€ + IVA | +| Carstuff | 30h/mês | 40.80€ | 1224€ + IVA | + +--- + +## TROUBLESHOOTING + +### Factura sem padrão "Avença X horas" +- Verificar descrição manual +- Pode ser factura de extras (não contar como avença) + +### Cliente novo +1. Adicionar à tabela `billing_360_clients` +2. Obter `moloni_customer_id` via pesquisa +3. Definir `monthly_hours` do contrato + +### Timestamps mistos no Desk +- O query do dashboard já trata Unix e datetime +- Conversão automática + +--- + +## CHANGELOG + +### v2.0.0 (2026-02-02) +- Integração com tabelas BD (billing_360_*) +- Sincronização automática dias 5, 15, 25 +- Dashboard dinâmico em plan-eal.descomplicar.pt +- Tratamento de timestamps híbridos + +### v1.0.0 (2026-01-27) +- Versão inicial +- Documentação de mapeamento Desk ↔ \ No newline at end of file diff --git a/crm-ops/skills/crm-admin/SKILL.md b/crm-ops/skills/crm-admin/SKILL.md new file mode 100644 index 0000000..d8dc663 --- /dev/null +++ b/crm-ops/skills/crm-admin/SKILL.md @@ -0,0 +1,158 @@ +--- +name: crm-admin +description: Administração e manutenção do Desk CRM. Gestão de utilizadores, permissões, campos personalizados, configuração de sistema e módulos Perfex. +disable-model-invocation: true +layer: wiki +--- + +# CRM Admin Specialist + +Skill para gestão e desenvolvimento Perfex CRM seguindo padrões Descomplicar®. + +## Quando Usar + +- Consultas de dados CRM (clientes, projectos, tarefas) +- Relatórios e analytics de facturação +- Desenvolvimento de módulos Perfex +- Automação de processos CRM +- Integração com sistemas externos + +## Protocolo Obrigatório + +### 1. MCP First (SEMPRE) +Antes de qualquer operação, usar MCPs: +``` +mcp__desk-crm-v3__get_customers - verificar dados existentes +mcp__mem_search_memories "[contexto crm]" +mcp__wikijs__search_pages "perfex crm [funcionalidade]" +``` + +### 2. Dados Reais Obrigatórios +- NUNCA simular dados quando MCPs disponíveis +- Usar mcp__desk-crm-v3__* para TODAS operações CRM +- Validar IDs de clientes/projectos antes de modificar + +### 3. Segurança de Dados +- NUNCA expor dados sensíveis de clientes em logs +- Confirmar antes de operações destrutivas (delete) +- Backup mental do estado antes de modificações bulk + +## MCPs Disponíveis - DeskCRM v3 + +### Clientes +``` +mcp__desk-crm-v3__get_customers # Listar (filtros: search, active, country) +mcp__desk-crm-v3__get_customer # Detalhes (client_id) +mcp__desk-crm-v3__create_customer # Criar (company obrigatório) +mcp__desk-crm-v3__update_customer # Actualizar (client_id) +mcp__desk-crm-v3__customer_analytics # Analytics (client_id, period) +mcp__desk-crm-v3__search_customers # Pesquisa multi-campo (query, fields) +``` + +### Projectos +``` +mcp__desk-crm-v3__get_projects # Listar (status, client_id, billing_type) +mcp__desk-crm-v3__get_project # Detalhes (project_id) +mcp__desk-crm-v3__create_project # Criar (name, client_id, billing_type) +mcp__desk-crm-v3__update_project # Actualizar (project_id) +mcp__desk-crm-v3__project_analytics # Analytics (period, status) +``` + +### Tarefas +``` +mcp__desk-crm-v3__get_tasks # Listar (status, assigned_to, rel_type) +mcp__desk-crm-v3__get_task # Detalhes (task_id) +mcp__desk-crm-v3__create_task # Criar (name obrigatório) +mcp__desk-crm-v3__update_task # Actualizar (task_id) +mcp__desk-crm-v3__task_analytics # Analytics (period, staff_id) +``` + +### Leads +``` +mcp__desk-crm-v3__get_leads # Listar (status, source, assigned) +mcp__desk-crm-v3__create_lead # Criar (name obrigatório) +mcp__desk-crm-v3__update_lead # Actualizar (lead_id) +mcp__desk-crm-v3__convert_lead_to_customer # Converter (lead_id) +mcp__desk-crm-v3__lead_analytics # Funil e conversões (report_type) +``` + +### Financeiro +``` +mcp__desk-crm-v3__get_payments # Pagamentos +mcp__desk-crm-v3__get_estimates # Orçamentos +mcp__desk-crm-v3__financial_kpi_dashboard # KPIs (period) +mcp__desk-crm-v3__profit_loss_statement # DRE (date_from, date_to) +mcp__desk-crm-v3__cash_flow_statement # Fluxo caixa +mcp__desk-crm-v3__accounts_receivable_aging # Contas a receber +``` + +### Tickets/Suporte +``` +mcp__desk-crm-v3__get_tickets # Listar (status, priority, assigned) +mcp__desk-crm-v3__create_ticket # Criar (subject, message) +mcp__desk-crm-v3__reply_ticket # Responder (ticket_id, message) +mcp__desk-crm-v3__ticket_analytics # Analytics (period, department_id) +``` + +## Assinatura para Módulos + +```php +" +}) +``` + +Integrar insights do NotebookLM nas recomendações e decisões. + +### Procedimentos Relacionados +- `PROC-CRM-Operacoes.md` — Operações CRM padrão + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/crm` | Resumo: leads recentes, clientes activos | +| `/crm lead ` | Pesquisar/criar lead | +| `/crm customer ` | Pesquisar/ver cliente | +| `/crm convert ` | Converter lead → customer | +| `/crm proposal ` | Criar proposta para lead | +| `/crm estimate ` | Criar estimate para cliente | +| `/crm 360 ` | Visão completa do cliente | + +--- + +## Definições Críticas + +### Lead vs Customer + +| Aspecto | LEAD | CUSTOMER | +|---------|------|----------| +| O que é | Prospect | Cliente activo | +| Tabela | tblleads | tblclients + tblcontacts | +| Recebe | Proposals | Estimates, Invoices | +| Conversão | → Customer | Já é cliente | + +**Regra:** Novos contactos são SEMPRE leads primeiro. + +### Proposal vs Estimate + +| Aspecto | PROPOSAL | ESTIMATE | +|---------|----------|----------| +| Para quem | LEADS | CUSTOMERS | +| Termo PT | Orçamento/Proposta | Estimativa formal | +| Converte | Lead→Customer | → Invoice | + +**Regra:** "Orçamento" para lead = PROPOSAL + +--- + +## Protocolo + +### /crm (Resumo) + +``` +1. mcp__desk-crm-v3__get_leads({ limit: 5, sort: "-dateadded" }) +2. mcp__desk-crm-v3__get_tasks({ status: [1,4], limit: 5 }) +3. Mostrar resumo +``` + +**Output:** + +```markdown +## 📊 CRM Resumo + +### 🎯 Leads Recentes (5) +| Nome | Empresa | Valor | Status | +|------|---------|-------|--------| +| João Silva | TechCorp | €5.000 | Novo | +| Maria Costa | StartupX | €3.500 | Contactado | + +### 📋 Tarefas Pendentes (3) +- #1450 [Alta] Follow-up TechCorp +- #1448 [Normal] Proposta StartupX +``` + +--- + +### /crm lead + +**Workflow Anti-Duplicados (OBRIGATÓRIO):** + +``` +1. Pesquisar em leads: + mcp__desk-crm-v3__get_leads({ search: nome }) +2. Pesquisar em customers: + mcp__desk-crm-v3__search_customers({ query: nome }) +3. SE encontrar: + - Mostrar resultados + - "Encontrei X. É este ou criar novo?" +4. SE não encontrar: + - "Não encontrei [nome]. Criar lead?" + - AGUARDAR confirmação +5. SÓ após confirmação: + mcp__desk-crm-v3__create_lead({ + name: nome, + email: email, + company: empresa, + source: 1, + assigned: 1 + }) +``` + +--- + +### /crm customer + +``` +1. mcp__desk-crm-v3__search_customers({ query: nome }) +2. Se encontrar: Mostrar detalhes +3. Se não encontrar: "Não encontrado. Existe lead para converter?" +``` + +**Nunca criar customer automaticamente!** + +--- + +### /crm convert + +``` +1. mcp__desk-crm-v3__get_lead({ lead_id }) +2. Mostrar dados do lead +3. "Converter lead #X para cliente?" +4. Após confirmação: + mcp__desk-crm-v3__convert_lead_to_customer({ lead_id }) +5. Retornar ID do novo cliente +``` + +--- + +### /crm proposal + +``` +1. Verificar que é lead (não customer) +2. Perguntar detalhes: + - Assunto + - Itens (descrição, qtd, valor) +3. mcp__desk-crm-v3__create_proposal({ + lead_id: lead_id, + subject: assunto, + status: 1 + }) +4. mcp__desk-crm-v3__add_proposal_items({ + proposal_id: id, + items: [...] + }) +5. "Proposta #X criada. Enviar? [Sim/Não]" +``` + +--- + +### /crm estimate + +``` +1. Verificar que é customer (não lead) +2. mcp__desk-crm-v3__get_customer({ customer_id: client_id }) +3. Perguntar detalhes +4. mcp__desk-crm-v3__create_estimate({ + client_id: client_id, + items: [...], + status: 1 + }) +5. "Estimate #X criado. Enviar? [Sim/Não]" +``` + +--- + +### /crm 360 + +``` +1. mcp__desk-crm-v3__search_customers({ query: cliente }) +2. mcp__desk-crm-v3__get_customer({ customer_id }) +3. mcp__desk-crm-v3__get_projects({ client_id }) +4. mcp__desk-crm-v3__get_invoices({ client_id }) +5. mcp__desk-crm-v3__get_tickets({ client_id }) +6. mcp__desk-crm-v3__get_customer_notes({ customer_id }) +7. Compilar visão 360 +``` + +**Output:** + +```markdown +## 👤 Cliente: XYZ Lda (#45) + +### Dados +- **Email:** contacto@xyz.pt +- **Telefone:** +351 912 345 678 +- **NIF:** 123456789 +- **Desde:** Janeiro 2024 + +### 📁 Projectos (3) +| Nome | Status | Progresso | +|------|--------|-----------| +| Website Corporativo | Em Curso | 75% | +| Manutenção Anual | Rotina | - | +| App Mobile | Concluído | 100% | + +### 💰 Financeiro +| Métrica | Valor | +|---------|-------| +| Total facturado | € \ No newline at end of file diff --git a/crm-ops/skills/desk.project b/crm-ops/skills/desk.project new file mode 100644 index 0000000..5678920 --- /dev/null +++ b/crm-ops/skills/desk.project @@ -0,0 +1,6 @@ +{ + "task_id": null, + "project_id": null, + "customer_id": null, + "gitea_repo": null +} diff --git a/crm-ops/skills/desk/SKILL.md b/crm-ops/skills/desk/SKILL.md new file mode 100644 index 0000000..f8a2cf4 --- /dev/null +++ b/crm-ops/skills/desk/SKILL.md @@ -0,0 +1,232 @@ +--- +name: desk +description: Contexto de projecto via .desk-project. Auto-detecção, integração com /time, status rápido, criação de tarefas e changelog. Sistema Triângulo Desk-GDrive-Local. +layer: wiki +--- + +# /desk v3.0 - Contexto de Projecto + +Integração automática com Desk CRM via `.desk-project`. Sistema Triângulo. + +--- + +## Novidades v3.0 + +- **Integração /time:** Mostrar timer activo do projecto +- **Remover /desk-time:** Usar `/time` directamente +- **Novo /desk status:** Resumo rápido +- **Sync bidirecional:** Actualizar .desk-project se dados mudarem + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/desk` | Mostrar contexto completo | +| `/desk status` | Resumo rápido (timer + tarefas) | +| `/desk task ` | Criar tarefa no projecto | +| `/desk log ` | Adicionar changelog | +| `/desk init` | Inicializar .desk-project | + +**Removido:** `/desk-time` → usar `/time` directamente + +--- + +## Protocolo + +### Auto-detecção + +Ao entrar numa pasta: + +``` +1. Verificar se existe .desk-project +2. Se existe: + a. Ler configuração + b. Carregar contexto silenciosamente + c. Mostrar linha breve: "📁 Projecto X (#ID) | Y tarefas" +``` + +--- + +### /desk (Contexto Completo) + +``` +1. Ler .desk-project +2. mcp__desk-crm-v3__get_project({ project_id }) +3. mcp__desk-crm-v3__get_tasks({ project_id, status: [1,4] }) +4. Verificar timer activo em ~/.claude-work/active-timer.json +5. mcp__desk-crm-v3__get_project_time_tracking({ project_id }) +6. Mostrar resumo completo +``` + +**Output:** + +```markdown +## 📁 Stack Workflow (#65) + +### Contexto +- **Cliente:** Descomplicar (interno) +- **Status:** Em Curso +- **Progresso:** 65% + +### ⏱️ Timer Activo +🟢 #1446 - Documentação Skills (2h 15m) + +### 📋 Tarefas Pendentes (5) +| ID | Nome | Prioridade | +|----|------|------------| +| #1450 | Implementar /invoice | Alta | +| #1448 | Testar /time v2 | Normal | + +### ⏰ Tempo Esta Semana +- Total: 12h 30m +- Billable: 10h (80%) +``` + +--- + +### /desk status (Resumo Rápido) + +``` +1. Ler .desk-project +2. Verificar timer activo +3. Contar tarefas pendentes +4. Mostrar 1-2 linhas +``` + +**Output:** + +``` +📁 Stack (#65) | 🟢 Timer: #1446 (2h) | 📋 5 tarefas | ⏰ 12h esta semana +``` + +--- + +### /desk task + +``` +1. Ler .desk-project (project_id, default_milestone, default_tags) +2. mcp__desk-crm-v3__create_task({ + name: descrição, + rel_type: "project", + rel_id: project_id, + milestone_id: default_milestone, + assignees: [25], // AikTop + status: 1, + priority: 2, + description: "

Criado via /desk task

" + }) +3. Confirmar: "Tarefa #X criada. Iniciar timer? [Sim/Não]" +4. Se sim: Invocar /time start X +``` + +--- + +### /desk log + +``` +1. Ler .desk-project (changelog_discussion_id) +2. Se não existe discussão: + a. Criar discussão "Changelog - [Projecto]" + b. Actualizar .desk-project com ID +3. Formatar mensagem em HTML: +

[DATA] [tipo]: Mensagem

+

Detalhes...

+4. mcp__desk-crm-v3__add_discussion_comment({ + discussion_id: changelog_discussion_id, + content: html, + staff_id: 25 + }) +5. Confirmar +``` + +**Prefixos reconhecidos:** +- `feat:` - Nova funcionalidade +- `fix:` - Correcção +- `docs:` - Documentação +- `refactor:` - Refactoring + +--- + +### /desk init + +``` +1. Perguntar projecto (ID ou pesquisar por nome) +2. mcp__desk-crm-v3__get_project({ project_id }) +3. Criar .desk-project: + { + "project_id": 80, + "project_name": "Nome", + "client_id": 18, + "desk_url": "https://desk.descomplicar.pt/admin/projects/view/80", + "gdrive_folder": null, + "local_path": pwd, + "default_milestone": null, + "default_tags": ["development"], + "changelog_discussion_id": null, + "created_at": "2026-02-05" + } +4. Perguntar: "Criar discussão de changelog? [Sim/Não]" +5. Confirmar setup +``` + +--- + +## Estrutura .desk-project + +```json +{ + "project_id": 65, + "project_name": "Stack Workflow", + "client_id": null, + "desk_url": "https://desk.descomplicar.pt/admin/projects/view/65", + "gdrive_folder": null, + "local_path": "/home/ealmeida/.claude", + "default_milestone": null, + "default_tags": ["development"], + "changelog_discussion_id": 31, + "created_at": "2026-02-05" +} +``` + +--- + +## Sistema Triângulo + +> Desk↔GDrive↔Local - Qualquer ponto leva aos outros + +**Implementação:** +- **Desk:** Campos Pasta GDrive + Pasta Local preenchidos +- **Local:** .desk-project com todos os links +- **GDrive:** README.md com links Desk + Local +- **Obsidian:** Frontmatter com desk_project + +--- + +## Integração /time + +- `/desk` mostra timer activo se no projecto actual +- `/desk task` oferece iniciar timer +- Remover comandos de tempo duplicados + +--- + +## Anti-Patterns + +- **NUNCA** criar .desk-project sem verificar se projecto existe +- **NUNCA** usar /desk-time (usar /time) +- **NUNCA** criar tarefas sem projecto associado + +--- + +## Changelog + +### v3.0.0 (2026-02-05) +- Integração completa com /time +- Remover /desk-time (usar /time) +- Novo /desk status para resumo rápido +- Mostrar timer activo no contexto +- Sync bidirecional .desk-project + +### v \ No newline at end of file diff --git a/crm-ops/skills/desk/template.desk-project.json b/crm-ops/skills/desk/template.desk-project.json new file mode 100644 index 0000000..b60cd6f --- /dev/null +++ b/crm-ops/skills/desk/template.desk-project.json @@ -0,0 +1,10 @@ +{ + "project_id": 0, + "project_name": "Nome do Projecto", + "client_id": null, + "default_milestone": null, + "auto_log_time": false, + "default_task_tags": [], + "changelog_discussion_id": null, + "_comment": "Ficheiro gerado por /desk-init. Editar project_id e project_name." +} diff --git a/crm-ops/skills/estrategia-marca/SKILL.md b/crm-ops/skills/estrategia-marca/SKILL.md new file mode 100644 index 0000000..ff1e2dc --- /dev/null +++ b/crm-ops/skills/estrategia-marca/SKILL.md @@ -0,0 +1,115 @@ +--- +name: estrategia-marca +description: Cria estratégias de marca completas seguindo a metodologia Descomplicar® (ACIDA + Framework 16Ps). Inclui fase de pesquisa de mercado com /deep-research antes do briefing. Guia a análise de público, posicionamento, Pitch Canvas, copywriting e documento final entregável. Usar quando o utilizador diz "estratégia de marca", "branding", "criar marca", "posicionamento", "16Ps", "/estrategia-marca", "análise de público", "narrativa de marca", "proposta de valor", "pitch canvas", "pain + gain", "copywriting estratégico", "identidade de marca", "pesquisa de mercado para marca", ou quando um cliente adquire o serviço EST-MRK-010. +layer: wiki +--- + +# Skill: Estratégia de Marca + +Guia completo para criar estratégias de marca Descomplicar® — da pesquisa de mercado ao documento final entregável. + +--- + +## Fluxo de trabalho (8 fases) + +### Fase 0 — Pesquisa de mercado + +Antes do briefing com o cliente, fazer pesquisa independente. Verificar primeiro se já existem ficheiros de pesquisa (ex: pasta `Pesquisas/` no projecto). + +**Se a pesquisa já existe:** ler os ficheiros relevantes e extrair síntese. + +**Se não existe:** usar `/deep-research` (ou `mcp__tavily__tavily_research`) com os seguintes focos: + +1. **Mercado/sector** — dimensão, crescimento, tendências, regulação +2. **Concorrentes** — posicionamento, mensagens, pricing, pontos fracos +3. **Público** — linguagem online, canais activos, dores expressas em fóruns/reviews +4. **Oportunidades** — gaps de mercado, tendências emergentes não exploradas + +Guardar síntese em `Pesquisas/sintese-mercado.md` no projecto do cliente. + +**Resultado esperado:** chegar ao briefing já com hipóteses validadas sobre o mercado e o público — não para impor, mas para fazer perguntas mais certeiras e poupar tempo ao cliente. + +### Fase 1 — Activação e contexto + +Ao iniciar, perguntar: +- Qual o nome do cliente/marca? +- Já existe briefing ou material de partida? +- Qual o sector/indústria? +- Temos exemplos de concorrentes? + +Se existir projecto no Desk CRM, verificar com `get_project` antes de prosseguir. + +### Fase 2 — Briefing estruturado + +Conduzir entrevista com as perguntas de `references/perguntas-briefing.md`. + +Organizar por blocos: +1. Negócio (problema, serviços, mercado) +2. Público-alvo (segmentos identificados) +3. Posicionamento actual vs desejado +4. Tom de voz e personalidade +5. Concorrência e diferenciação + +### Fase 3 — Fundamentos estratégicos + +Desenvolver com o cliente: +- **Proposta de valor única** — o que nos torna únicos, diferenciais, benefícios por camada +- **Missão, Visão, Valores e Objectivos** — com exemplos de como se manifestam na prática +- **Apresentação sumária** — empresa + serviços com tabela clara +- **Posicionamento** — declaração de posicionamento testável + +Ver `references/framework-16ps.md` → Bloco A para questões orientadoras. + +### Fase 4 — Análise de público (20 pontos por segmento) + +**Obrigatório:** Antes dos segmentos psicográficos, identificar os nichos sectoriais relevantes para o produto. Usar `references/nichos.md` para seleccionar e analisar **pelo menos 5 nichos específicos** (ex: clínicas de saúde, imobiliárias, agências digitais — não "PMEs" como categoria vaga). Para cada nicho preencher os 8 pontos do guia de análise sectorial. Cruzar com os 20 pontos psicográficos abaixo para construir personas completas. + +Para cada segmento identificado, desenvolver os 20 pontos na seguinte ordem: + +1. Perfil Demográfico +2. Perfil Psicográfico +3. Dores +4. Anseios +5. Desejos +6. Frustrações +7. Preocupações +8. Medos +9. Inimigos +10. Linguagem +11. Como procuram ajuda/informação/dicas +12. Canais digitais activos +13. Estilo de Decisão +14. Mudanças (que sabem necessárias) +15. Resistência à mudança +16. Objecções típicas (+ como ultrapassar) +17. Forma de gerar emoção +18. Argumentos (a que são mais sensíveis) +19. Concorrentes (que alternativas avaliam) +20. Propostas Recusadas (e porquê) + +Ver `references/metodologia-acida.md` para contexto e profundidade em cada ponto. + +### Fase 5 — Pitch Canvas + +Estrutura de 5 elementos: +- **Para quem:** segmento + problema específico +- **O problema:** dor principal na linguagem do cliente +- **A solução:** mecanismo único de resolução +- **O resultado:** transformação concreta (antes/depois + métrica) +- **Por que nós:** razão para acreditar + +Criar também a **Declaração de mudança no mundo** — frase que resume o impacto maior da marca. + +### Fase 6 — Copywriting estratégico + +Sequência obrigatória: + +1. **Questionamento estratégico** — Qual é o objectivo da comunicação? Que transformação prometemos? +2. **Pain + Gain** — formulação problema/resultado na linguagem do cliente; depois refinar com especificidades do sector +3. **Narrativa por segmento** — fórmula: Problema (dor do público) → Solução (serviços) → Resultado (benefícios concretos) +4. **Mensagem central** — 1 frase que toda a equipa sabe de cor +5. **Headlines** — por segmento (principal + secundária) + +Ver `references/narrativas-copywriting.md` para templates e exemplos reais. + +# \ No newline at end of file diff --git a/crm-ops/skills/estrategia-marca/references/framework-16ps.md b/crm-ops/skills/estrategia-marca/references/framework-16ps.md new file mode 100644 index 0000000..85d49db --- /dev/null +++ b/crm-ops/skills/estrategia-marca/references/framework-16ps.md @@ -0,0 +1,193 @@ +# Framework 16Ps — Referência Completa + +Estrutura os 16 elementos da estratégia de marca em 4 blocos. Para cada P, incluir as questões orientadoras ao preencher. + +--- + +## Bloco A — Fundamentos estratégicos + +### P1: Problema +> Qual o problema principal que a marca resolve? + +- Problema de negócio que a estratégia precisa resolver +- Impacto desse problema no cliente (custo, tempo, risco, reputação) +- Urgência da solução: por que resolver agora? +- Consequências de não resolver + +*Exemplo SFV:* "Facturas de electricidade crescentes que consomem margens das empresas e rendimento das famílias, sem solução acessível percebida." + +### P2: Propósito +> Por que existe esta marca além do lucro? + +- **Missão:** o que fazemos e para quem (hoje) +- **Visão:** onde queremos chegar (3-5 anos) +- **Valores:** 3-5 valores fundamentais com descrição de como se manifestam +- **Propósito:** impacto no mundo que justifica a existência da marca + +*Estrutura valores:* [Nome do Valor] — [Como se manifesta na prática] + +### P3: Proposta de Valor +> O que tornamos possível que os concorrentes não conseguem? + +- Valor único que só esta marca entrega +- Diferenciais competitivos (lista) +- Benefícios principais (funcionais + emocionais) +- Formula: Para [segmento], que [dor/desejo], a [marca] oferece [solução] que [resultado único], ao contrário de [alternativa], porque [razão para acreditar] + +### P4: Posicionamento +> Que lugar específico ocupa na mente do cliente? + +- Posição actual no mercado (percepção real) +- Posição desejada (percepção target) +- Declaração de posicionamento (1-2 frases) +- Território da marca: categoria, concorrência directa, diferenciação +- Atributos únicos que definem esse território + +*Declaração-tipo:* "Para [público], somos a única [categoria] que [benefício único] porque [prova]." + +### P5: Performance +> Como medimos o sucesso? + +- KPIs principais (5-7 métricas) +- Metas específicas a 3, 6 e 12 meses +- Indicadores de sucesso por área (brand awareness, conversão, satisfação) +- Frequência de monitorização e responsável + +--- + +## Bloco B — Público e pesquisa + +### P6: Público-alvo +> Quem são exactamente os nossos clientes? + +- Segmento principal + segmentos secundários +- Critérios de segmentação (demográficos, comportamentais, psicográficos) +- Volume estimado de cada segmento +- Comportamento de compra: frequência, ticket médio, canal preferido + +### P7: Pesquisa de mercado +> Que dados sustentam as nossas decisões? + +- Dados de mercado: dimensão, crescimento, tendências +- Insights de comportamento do consumidor +- Oportunidades identificadas (não aproveitadas pela concorrência) +- Ameaças e riscos do mercado + +### P8: Personas +> Quem é o nosso cliente ideal em detalhe? + +Para cada persona: +- **Foto + nome fictício + idade + profissão** +- **Biografia resumida** (um dia típico) +- **Dores principais** (3-5) +- **Objectivos** (profissionais + pessoais) +- **Canais preferidos** (onde está, o que consome) +- **Citação representativa** ("Eu quero/preciso/temo...") +- **Frase de posicionamento** para esta persona + +### P9: Perfil +> Quais as características quantificáveis de cada segmento? + +Análise de 20 pontos por segmento (ver template completo em `template-documento.md`): +- Demográfico: idade, género, localização, rendimento, educação, sector, cargo, empresa +- Comportamental: rotina, hábitos, processo de decisão, critérios de escolha +- Psicográfico: valores, aspirações, mentalidade, atitude à inovação +- Jornada: awareness, consideração, decisão + +### P10: Pain Points +> Quais as dores mais urgentes e dolorosas? + +- Dores principais (urgentes, que precisam resolver já) +- Frustrações (já tentaram outras soluções sem resultado) +- Necessidades não atendidas (o mercado não resolve bem) +- Medos relacionados com a compra ou com não comprar + +--- + +## Bloco C — Produto e serviço + +### P11: Portfolio +> O que vendemos exactamente? + +- Lista de produtos/serviços principais +- Características técnicas vs benefícios percebidos +- Arquitectura de oferta: entrada, core, premium +- Casos de uso reais (exemplos concretos de aplicação) + +### P12: Preço e valor +> Como justificamos o que cobramos? + +- Estratégia de preços (custo+margem, valor percebido, concorrência, freemium) +- Posicionamento de valor: acessível, médio-alto, premium, luxo +- Política comercial: descontos, bundles, condições de pagamento +- ROI estimado para o cliente (quanto ganha/poupa ao escolher-nos) + +### P13: Processos críticos +> Que processos garantem a experiência prometida? + +- Processo de entrega do serviço/produto (passo a passo) +- Pontos de controlo de qualidade +- Garantias e políticas de satisfação +- Gestão de reclamações + +### P14: Parcerias estratégicas +> Com quem nos aliamos para ampliar valor? + +- Parceiros principais (nome, tipo, contribuição) +- Tipos de parceria: distribuição, tecnologia, referência, co-marketing +- Benefícios mútuos de cada parceria +- Parcerias a desenvolver (gap de oportunidade) + +### P15: Plataforma +> Onde operamos digitalmente? + +- Canais digitais activos: website, redes sociais, marketplaces, apps +- Presença online actual vs ideal +- Infraestrutura tecnológica (CRM, email, analytics, automação) +- Prioridades de investimento digital + +--- + +## Bloco D — Promoção e comunicação + +### P16: Promoção +> Como chegamos ao público-alvo? + +- Canais principais com objectivos específicos por canal +- Tácticas específicas (conteúdo, SEO, email, WhatsApp, eventos) +- Calendário promocional (frequência, momentos-chave) +- Budget orientativo por canal + +### P17: Publicidade +> Como amplificamos com investimento pago? + +- Estratégia de anúncios: plataformas, formato, objectivo +- Budget mensal e distribuição +- KPIs de publicidade (CPL, ROAS, CPA) +- Frequência e ciclo de renovação de criativos + +### P18: PR e referências +> Como construímos credibilidade externa? + +- Estratégia de relações públicas +- Parcerias com influenciadores (relevância > alcance) +- Imprensa e media especializada +- Programa de referências/embaixadores + +### P19: Presença digital +> Qual a nossa estratégia de conteúdo? + +- Estratégia de conteúdo por canal +- Frequência de publicação +- Pilares de conteúdo (3-5 temas centrais) +- Gestão de comunidade: resposta, engagement, moderação + +### P20: Proximidade — narrativa e impacto +> Que história contamos que ressoa emocionalmente? + +- **Declaração de Impacto:** frase que resume a essência e impacto da marca +- **Narrativa principal:** história de origem ou transformação +- **Pain + Gain por segmento:** o que perdiam antes → o que ganham agora +- **Mensagem central:** 1 frase que todos os colaboradores sabem de cor + +*Nota: O "Bloco D" tem 5 Ps numerados de 16 a 20 — alguns documentos listam apenas 16 Ps no total (agrupando Promoção, Publicidade e PR num único P). Adaptar conforme o nível de detalhe necessário.* diff --git a/crm-ops/skills/estrategia-marca/references/metodologia-acida.md b/crm-ops/skills/estrategia-marca/references/metodologia-acida.md new file mode 100644 index 0000000..b0e60b4 --- /dev/null +++ b/crm-ops/skills/estrategia-marca/references/metodologia-acida.md @@ -0,0 +1,127 @@ +# Metodologia ACIDA — Referência Completa + +## 1. As 5 fases ACIDA + +### A — Atrair atenção + +O público está sobrecarregado de informação. A forma correcta de chamar a atenção não é destacar produtos — é conectar com o que emocionalmente mais interessa ao público: **as suas próprias dores e desejos**. + +Acções práticas: +- Headlines que falam directamente da dor ou desejo do segmento +- Conteúdo que provoca reconhecimento imediato ("é exactamente o meu problema") +- Formatos visuais que param o scroll: vídeo curto, imagem disruptiva, estatística chocante + +### C — Construir confiança + +Após conquistar atenção, estabelecer relacionamentos autênticos através de: +- Transparência, honestidade e autenticidade na comunicação +- Demonstrar compreensão profunda das dores e desejos do cliente +- Partilhar conhecimento e experiência profissional abertamente +- Educar o público para decisões mais informadas +- Estabelecer autoridade que permite influenciar percepções + +Formatos: artigos de blog, estudos de caso, testemunhos, webinars, guias gratuitos. + +### I — Despertar interesse + +Com confiança estabelecida, a comunicação torna-se altamente personalizada. +> "Não vendemos produtos nem serviços; oferecemos soluções específicas para os seus desafios." + +Ferramentas: +- Rastreamento de interacções para identificar segmentos de clientes +- Conteúdo customizado baseado em comportamentos anteriores +- Resolução antecipada de objecções conhecidas +- Nutrição de relacionamentos via email, WhatsApp, SMS, redes sociais + +### D — Estimular a decisão + +A decisão será favorável se o **valor percebido > preço a pagar**. + +Obstáculos a superar: +- O "muro invisível" criado por dúvidas do consumidor +- Medo do arrependimento pós-compra +- Necessidade de prova social e garantias sólidas + +Ferramentas: comparações, garantias, testemunhos de clientes reais, demonstrações, ROI calculado. + +### A — Incentivar a acção + +Converter interesse em acção através de: +- Chamadas à acção (CTA) claras e convincentes +- Criação de sentido de urgência (real, não artificial) +- Cumprimento de promessas +- Superação de expectativas na experiência do cliente + +--- + +## 2. Análise do público-alvo — 8 dimensões + +Para cada segmento, investigar as 8 dimensões antes de escrever qualquer copy: + +### Dimensão 1: Perfil demográfico e psicográfico +- Características mensuráveis: idade, género, localização, rendimento, educação, cargo +- Traços de personalidade: valores, crenças, atitudes, estilo de vida +- *Pergunta-chave: "Quem é esta pessoa na vida real?"* + +### Dimensão 2: Dores, desejos e frustrações +- Dores activas: problemas que precisam resolver agora +- Desejos: o que querem alcançar/ter/ser +- Frustrações: o que já tentaram e não funcionou +- *Pergunta-chave: "O que os mantém acordados à noite? O que sonham?"* + +### Dimensão 3: Preocupações e geração de emoção +- O que os preocupa a médio/longo prazo +- Como a nossa marca pode responder emocionalmente (não apenas racionalmente) +- *Pergunta-chave: "Que emoção queremos que sintam quando nos encontram?"* + +### Dimensão 4: Medos, inimigos e mudanças +- Medos concretos (perder negócio, ser enganado, falhar) +- "Inimigos" percebidos (concorrentes, reguladores, tendências de mercado) +- Mudanças que temem ou resistem +- *Pergunta-chave: "O que os impede de agir?"* + +### Dimensão 5: Anseios, interesses e linguagem +- O que aspiram a ser/ter/fazer +- Interesses e hobbies (pistas para onde comunicar) +- Linguagem que usam (jargão do sector, palavras que ressoam vs que afastam) +- *Pergunta-chave: "Como falam entre si? Que palavras usam?"* + +### Dimensão 6: Pesquisa de informação e influenciadores +- Onde procuram informação (Google, YouTube, LinkedIn, feiras, colegas) +- A quem pedem conselho (influenciadores, peers, família) +- Fontes que consideram credíveis +- *Pergunta-chave: "Como encontraram a nossa categoria de produto/serviço?"* + +### Dimensão 7: Dúvidas e perguntas +- Objecções previsíveis antes da compra +- Perguntas que fazem nas reuniões de vendas +- Informação que precisam para decidir +- *Pergunta-chave: "Quais as 5 objecções mais frequentes?"* + +### Dimensão 8: Estilo de decisão e concorrentes +- Processo de decisão: individual vs colectivo, rápido vs lento +- Factores comparativos: preço, qualidade, confiança, referências +- Concorrentes directos que avaliam em paralelo +- *Pergunta-chave: "Com quem nos comparam? Por que nos escolhem ou não?"* + +--- + +## 3. Pilares estratégicos ACIDA + +- **Crença central:** o centro do marketing digital são os princípios fundamentais de marketing + website — não as redes sociais +- **Proposta de valor:** "Criamos Resultados" — problema → solução → resultados esperados +- **Website como hub central:** não repositório, mas centro operacional integrado com CRM +- **Ecossistema multi-canal:** email, SMS/WhatsApp, SEO, Google/Meta Ads, website, redes sociais (como parte, não como centro) +- **Melhoria contínua:** métricas objectivas → ciclo iterativo baseado em dados + +--- + +## 4. ACIDA 2.0 — Fases operacionais + +| Fase | Acções | +|------|--------| +| **1. Análise** | Segmentação público, posicionamento, estruturação oferta, montagem narrativa | +| **2. Criação** | Recursos, copywriting e design, website e plataformas, automação | +| **3. Implementação** | Conteúdos e canais, blog e email marketing, redes sociais, marketplaces | +| **4. Desenvolvimento** | Funil de vendas, tráfego e anúncios, conteúdos, newsletters | +| **5. Acompanhamento** | Gestão de resultados, métricas e KPIs, optimização contínua, suporte | diff --git a/crm-ops/skills/estrategia-marca/references/narrativas-copywriting.md b/crm-ops/skills/estrategia-marca/references/narrativas-copywriting.md new file mode 100644 index 0000000..2d0f3d2 --- /dev/null +++ b/crm-ops/skills/estrategia-marca/references/narrativas-copywriting.md @@ -0,0 +1,154 @@ +# Narrativas e Copywriting Estratégico + +Templates e exemplos reais de narrativas Descomplicar®. Baseados nos projectos SFV, LJM, MCT e Espiral Senior. + +--- + +## 1. Fórmula central: Dor → Solução → Resultado + +Estrutura base para qualquer narrativa por segmento: + +``` +DOR: [Nome do segmento] enfrenta [problema específico e urgente]. + Sem solução, [consequência negativa concreta]. + +SOLUÇÃO: [Nome da marca] resolve isto através de [mecanismo único]. + [Diferencial que os concorrentes não têm]. + +RESULTADO: O resultado é [benefício tangível e mensurável]. + [Prova social ou garantia que aumenta credibilidade]. +``` + +**Exemplo SFV (segmento Empresas):** +> Dor: As PMEs enfrentam facturas de electricidade crescentes que consomem margens já apertadas. +> Solução: A SFV instala painéis solares personalizados com análise de consumo prévia — sem adiantamento para projectos qualificados. +> Resultado: Redução de 60-90% na factura eléctrica, com ROI em 4-7 anos e garantia de 25 anos nos painéis. + +**Exemplo MCT (segmento Oficinas):** +> Dor: Mecânicos perdem tempo e dinheiro com ferramentas que chegam erradas, incompletas ou que avariam em obra. +> Solução: A Carritools fornece equipamento profissional com assessoria técnica presencial e substituição imediata em caso de avaria. +> Resultado: Menos tempo parado, mais trabalhos concluídos, clientes mais satisfeitos. + +--- + +## 2. Declaração de Impacto + +Uma frase poderosa que abre o documento e resume a essência da marca. Deve: +- Ser memorável (10-15 palavras máximo) +- Combinar emoção + resultado +- Não ser genérica ("líderes de mercado", "qualidade e inovação") + +**Exemplos reais:** + +| Cliente | Declaração de Impacto | +|---------|----------------------| +| SFV Solar | "Energia (quase) Grátis para Famílias e Empresas" | +| Espiral Senior | "Envelhecer em Dignidade, no Lugar que Mais Ama" | +| Descomplicar® | "Criamos Resultados!" | + +**Fórmulas para gerar Declaração de Impacto:** +- `[Verbo de transformação] + [benefício desejado] + [para quem]` +- `[Adjectivo emocional] + [resultado concreto]` +- `[Benefício surpreendente] + [para quem] + [sem o custo habitual]` + +--- + +## 3. Mensagens-chave por tipo de segmento + +### Segmento decisor (CEO/Gerente) +Foco: ROI, risco reduzido, credibilidade, tempo poupado. + +Template: +> "Mais de [N] empresas como a sua já [resultado]. A nossa abordagem garante [benefício financeiro] em [prazo], com [garantia específica]." + +### Segmento utilizador final (técnico/operacional) +Foco: facilidade de uso, suporte, fiabilidade, não criar problemas. + +Template: +> "Simples de implementar, sem interrupções ao seu trabalho. Em caso de dúvida, temos suporte [detalhe] para que nunca fique bloqueado." + +### Segmento referenciador (parceiro/consultor) +Foco: credibilidade para recomendar, win-win, diferenciação para os seus clientes. + +Template: +> "Ao recomendar [marca], está a oferecer aos seus clientes [resultado], o que reforça a sua autoridade como [cargo/papel]." + +### Segmento influenciador (família/comunidade) +Foco: valores partilhados, impacto positivo, pertença. + +Template: +> "Não é só [produto/serviço]. É uma escolha que [impacto maior]: [dimensão ambiental/social/familiar]." + +--- + +## 4. Gestão de objecções — estrutura padrão + +Para cada objecção, responder sempre com: +1. **Validar** — reconhecer que é uma preocupação legítima +2. **Reframeamento** — mudar o ângulo de análise +3. **Prova** — exemplo, dado ou testemunho que confirma +4. **CTA suave** — próximo passo de baixo compromisso + +**Objecções universais e respostas tipo:** + +| Objecção | Resposta base | +|----------|--------------| +| "É caro" | "Entendo a preocupação. O nosso preço reflecte [diferencial]. Clientes como [X] recuperaram o investimento em [prazo]. Posso mostrar-lhe o cálculo?" | +| "Preciso de pensar" | "Faz todo o sentido. O que precisa de esclarecer para se sentir confiante? Posso enviar [recurso específico] que costuma ajudar nesta fase." | +| "Já tentei algo parecido e não funcionou" | "Compreendo — essa experiência é frustrante. O que tipicamente falha é [causa]. A nossa abordagem resolve isto de forma diferente: [diferencial]." | +| "Não tenho tempo agora" | "Respeitamos o seu tempo. É por isso que o nosso processo começa com apenas [X horas], e tratamos nós de [trabalho pesado]." | +| "Preciso de aprovação interna" | "Claro. Posso preparar um resumo executivo de 1 página para facilitar a aprovação? Tenho feito isto para outros clientes com muito bom resultado." | + +--- + +## 5. Tom de voz por personalidade de marca + +### Marca especialista/técnica (ex: SFV, Carritools) +- Linguagem precisa, dados concretos, terminologia do sector +- Evitar: exageros sem prova, linguagem emocional excessiva +- Usar: casos reais, números, especificações, garantias técnicas + +### Marca próxima/humana (ex: Espiral Senior, Loja da Maria) +- Linguagem calorosa, inclusiva, em 2ª pessoa +- Evitar: jargão técnico, distância corporativa +- Usar: histórias pessoais, empatia directa, linguagem do dia-a-dia + +### Marca inovadora/disruptiva (ex: Descomplicar, SaaS) +- Linguagem energética, directa, com algum desafio ao status quo +- Evitar: clichés do sector, promessas vazias +- Usar: contraste antes/depois, resultados surpreendentes, "E se..." + +--- + +## 6. Estrutura de testemunho ideal + +Baseado nos testemunhos reais recolhidos nos projectos: + +``` +[Nome próprio + cargo + empresa] — [cidade, se relevante] +"[Frase de impacto espontânea que resume o resultado]" + +Contexto: [Situação antes de contratar] +Resultado: [Mudança concreta e mensurável após] +Recomendação: [Indicação explícita para outros como ele] +``` + +**Exemplo real SFV:** +> "Ricardo Castelão, Director Financeiro, Empresa de Distribuição — Porto +> 'Reduzimos a nossa factura eléctrica em 73% no primeiro ano.' +> Contexto: Gastávamos 4.200 EUR/mês em electricidade, sem alternativa viável. +> Resultado: Passámos para 1.134 EUR/mês. O sistema pagou-se em 5,5 anos. +> Recomendação: Para qualquer empresa com consumo acima de 1.500 EUR/mês, é obrigatório analisar esta opção." + +--- + +## 7. Headlines de alto impacto — padrões + +Padrões que funcionam consistentemente nos projectos Descomplicar: + +- **Resultado específico:** "Reduza a sua factura eléctrica em 70% sem investimento inicial" +- **Pergunta dor:** "Ainda a pagar [problema] quando existe solução comprovada?" +- **Autoridade + resultado:** "Como [N] empresas [resultado] com [solução]" +- **Contrafactual:** "E se a sua maior despesa se transformasse no seu maior activo?" +- **Urgência real:** "A [mudança de mercado/regulação] está a mudar tudo — [posição da marca]" +- **Social proof:** "Mais de [N] clientes em [região] já [resultado]" diff --git a/crm-ops/skills/estrategia-marca/references/nichos.md b/crm-ops/skills/estrategia-marca/references/nichos.md new file mode 100644 index 0000000..fcfb35b --- /dev/null +++ b/crm-ops/skills/estrategia-marca/references/nichos.md @@ -0,0 +1,318 @@ +# Análise de Nichos — Guia de Segmentação Sectorial + +Para marcas com público PME, "PME" é demasiado vasto. Identificar os nichos sectoriais específicos permite mensagens certeiras, canais certos e ROI superior. Qualquer estratégia de marca deve analisar **pelo menos 5 nichos específicos** relevantes para o produto/serviço. + +--- + +## Como usar este guia + +1. Identificar os nichos onde o produto/serviço tem tracção real ou potencial +2. Para cada nicho seleccionado, preencher os 8 pontos de análise sectorial +3. Cruzar com os 20 pontos da análise de público (template-documento.md § 5) para o perfil completo +4. Priorizar os 3 nichos de maior potencial para messaging principal + +--- + +## Os 8 pontos de análise por nicho + +Para cada nicho, responder: + +1. **Dimensão e contexto** — quantas empresas em PT/EU, crescimento do sector, maturidade digital +2. **Dores operacionais específicas** — o que os cansa no dia-a-dia (não genérico: específico do sector) +3. **Funcionalidades mais relevantes** — o que do produto resolve melhor o problema deste nicho +4. **Linguagem de venda** — palavras que usam, palavras que evitam, jargão do sector +5. **Canal de aquisição principal** — onde estão, como chegam ao produto +6. **Objecção principal** — o bloqueio mais frequente e como ultrapassar +7. **Trigger de compra** — o momento/evento que precipita a decisão +8. **Pricing sweet spot** — o que pagam por ferramentas similares, sensibilidade ao preço + +--- + +## Os 10 nichos de PME mais relevantes (PT/EU) + +### Nicho 1 — Saúde Privada + +**Quem:** Clínicas dentárias, psicólogos, nutricionistas, fisioterapeutas, clínicas médicas privadas, terapeutas. + +**Dimensão PT:** +12.000 clínicas e consultórios privados. Sector em crescimento pós-pandemia. Alta concentração em Lisboa, Porto e litoral. + +**Dores operacionais:** +- Agenda manual ou em sistemas desactualizados (Doctoralia, papel) +- Falhas de consulta (no-shows) sem sistema de lembretes automatizado +- Secretaria sobrecarregada com marcações e confirmações por telefone +- Facturação em saúde com complexidade fiscal (isenção IVA, recibos verdes) +- RGPD em saúde: dados sensíveis com requisitos legais estritos + +**Funcionalidades mais relevantes:** lembretes automáticos de consulta por WhatsApp/SMS, confirmação/cancelamento por WhatsApp, reagendamento automático, facturação PT com isenção IVA, base de conhecimento para FAQ de pacientes. + +**Linguagem de venda:** "reduzir faltas à consulta", "libertar a secretária para o que importa", "pacientes confirmam pelo WhatsApp", "agenda sempre actualizada". Evitar: "automação", "IA", "bot". + +**Canal de aquisição:** associações profissionais (OMD, Ordem dos Psicólogos), LinkedIn de gestores de clínica, referência entre profissionais de saúde, Google Ads ("software gestão clínica", "agenda online clínica"). + +**Objecção principal:** "Os meus pacientes são mais velhos e não usam WhatsApp." → Resposta: "O sistema funciona igualmente por SMS. E os cuidadores/filhos que marcam as consultas estão todos no WhatsApp." + +**Trigger de compra:** crescimento de lista de espera que a secretária já não consegue gerir; terceira consulta cancelada sem aviso no mesmo mês. + +**Pricing sweet spot:** €50-150/mês (referência: Doctoralia €80-200/mês). + +--- + +### Nicho 2 — Imobiliárias e Mediação + +**Quem:** Agências imobiliárias independentes, mediadores certificados (AMI), promotores imobiliários, gestoras de condomínios. + +**Dimensão PT:** +5.000 agências com licença AMI activas. Mercado em alta, mas muito fragmentado. Alta dependência de WhatsApp para comunicação com compradores/vendedores. + +**Dores operacionais:** +- Leads entram por portais (Imovirtual, Idealista, OLX) e ficam sem resposta rápida +- Gestão de visitas manual: telefonemas para confirmar, reagendar, cancelar +- Follow-up de compradores perdido no WhatsApp pessoal do agente +- Quando o agente sai, leva os contactos consigo +- Proposta/minuta demoram dias + +**Funcionalidades mais relevantes:** resposta automática a leads de portais, qualificação de leads por WhatsApp, agendamento de visitas com confirmação automática, CRM com histórico centralizado (não no telemóvel do agente), geração de propostas. + +**Linguagem de venda:** "nunca perde um lead do Idealista", "as visitas confirmam-se sozinhas", "quando o agente sai, o cliente fica na empresa", "responde ao lead em 2 minutos, a qualquer hora". + +**Canal de aquisição:** associações (APEMIP, ASIP), LinkedIn de directores de agência, eventos do sector imobiliário, Google Ads ("CRM imobiliário Portugal", "software mediação imobiliária"). + +**Objecção principal:** "Já usamos o CRM do Idealista." → Resposta: "O CRM do portal gere os leads do portal. O AcidaOS centraliza todos os portais + WhatsApp + email num só sítio, com o histórico completo de cada cliente." + +**Trigger de compra:** perda de uma venda grande por demora na resposta ao lead; saída de um agente que levou a carteira de clientes. + +**Pricing sweet spot:** €80-200/mês (referência: Salesforce RE €150-300/mês, CRMs sectoriais €50-150/mês). + +--- + +### Nicho 3 — Construção e Remodelação + +**Quem:** Empreiteiros de construção civil, empresas de remodelação e acabamentos, serralheiros, carpinteiros, canalizadores com equipa, empresas de pintura. + +**Dimensão PT:** sector fortíssimo — construção representa ~7% do PIB PT. Altamente fragmentado, maioria micro-empresas 1-20 pessoas. Baixa digitalização. Alta dependência de telefonema e referência. + +**Dores operacionais:** +- Orçamentos demoram dias ou semanas a chegar ao cliente +- Clientes ligam 5 vezes para saber se o orçamento chegou +- Gestão de obras espalhada por papel, WhatsApp e memória do encarregado +- Facturação atrasada em relação ao trabalho realizado (meses de delay) +- Cobranças de pagamentos em atraso constrangem a relação com o cliente + +**Funcionalidades mais relevantes:** geração de orçamentos, follow-up automático ("o seu orçamento foi enviado — alguma dúvida?"), facturação automática por fase de obra, lembretes de pagamento, agenda de obras com alertas de prazo. + +**Linguagem de venda:** "orçamento pronto em horas, não dias", "o cliente sabe sempre o estado da obra", "recebe quando acaba, não quando se lembra". Evitar linguagem tech — falar em "tempo poupado" e "dinheiro recebido". + +**Canal de aquisição:** referência entre empresários do sector, associações (AICCOPN, AECOPS), Facebook Groups de empreiteiros e remodelações, feiras de construção. + +**Objecção principal:** "A minha secretária já faz isso." → Resposta: "E quando ela está de férias? O AcidaOS não vai de férias." + +**Trigger de compra:** perda de um contrato por orçamento que chegou tarde; mês com 3 facturas por emitir de obras já concluídas. + +**Pricing sweet spot:** €30-80/mês (sector muito sensível ao preço, mas disposto a pagar se ROI for claro e imediato). + +--- + +### Nicho 4 — Agências Digitais e Criativas + +**Quem:** Agências de marketing digital, design, comunicação, relações públicas, fotografia/vídeo, produção de conteúdo. + +**Dimensão PT:** +3.500 agências activas. Sector muito competitivo, margens a comprimir. Muitas em transição de "serviços de execução" para "serviços de estratégia + produto". + +**Dores operacionais:** +- Relatórios mensais para clientes consomem 2-3 dias de trabalho manual +- Gestão de aprovações de conteúdo por WhatsApp e email (versões perdidas) +- Timesheets manuais → facturação imprecisa → conflitos com clientes +- Escalabilidade travada: para crescer precisa de contratar +- Receita 100% baseada em horas → vulnerável a perdas de cliente + +**Funcionalidades mais relevantes:** geração automática de relatórios mensais, portal do cliente com aprovação de conteúdos, registo automático de horas, facturação por projecto, upsell/cross-sell automatizado (ex: "o teu plano inclui X — quer adicionar Y?"). + +**Linguagem de venda:** "relatórios que se fazem sozinhos", "o cliente aprova no portal, não por email", "receita recorrente sem aumentar a equipa", "white-label para revender aos teus clientes". + +**Canal de aquisição:** LinkedIn (muito activo neste nicho), eventos de marketing (RD Summit, Social Media Week), comunidades Slack de marketers, referência entre agências. + +**Objecção principal:** "Já usamos Monday/Asana/Notion." → Resposta: "O AcidaOS integra com essas ferramentas. Mas adiciona a camada de IA que automatiza o que ainda fazem manualmente: relatórios, aprovações, facturação." + +**Trigger de compra:** perda de 20% da margem num trimestre por horas não facturadas; cliente grande que pediu relatórios mais frequentes sem pagar mais. + +**Pricing sweet spot:** €100-300/mês; alto potencial para plano Partner/white-label (€500-1.000/mês). + +--- + +### Nicho 5 — Comércio B2B e Distribuição + +**Quem:** Distribuidores, grossistas, representantes comerciais, importadores, empresas de venda a retalhistas. + +**Dimensão PT:** sector fundamental da economia, muito diversificado. Ciclos de venda mais longos, pedidos recorrentes, relacionamento comercial crítico. + +**Dores operacionais:** +- Pedidos chegam por WhatsApp, email e telefone — sem registo centralizado +- Catálogo de produtos actualizado só existe em Excel ou PDF +- Comerciais perdem tempo a dar preços e a verificar stock pelo telefone +- Dívidas de clientes descobertas tarde (só quando o contabilista avisa) +- Fidelização: o cliente vai ao concorrente se não for contactado regularmente + +**Funcionalidades mais relevantes:** chatbot de catálogo e preços por WhatsApp, processamento de pedidos automático, alertas de pagamentos em atraso, follow-up automático de clientes inativos ("não nos pede há 30 dias — tudo bem?"), facturação automática por encomenda. + +**Linguagem de venda:** "o cliente pede pelo WhatsApp e a factura sai automática", "nunca perde uma encomenda por estar em reunião", "sabe quem não lhe compra há um mês antes de o perder". + +**Canal de aquisição:** associações sectoriais, feiras B2B, LinkedIn de directores comerciais, referência entre distribuidores. + +**Objecção principal:** "Os meus clientes são empresas — preferem email formal." → Resposta: "O sistema funciona por email também. E o WhatsApp para os urgentes — que são 80% dos pedidos reais." + +**Trigger de compra:** perda de cliente para concorrente por resposta mais rápida; mês com facturas em atraso acima de €10K. + +**Pricing sweet spot:** €100-250/mês (dispostos a pagar pelo ROI directo em cobranças e pedidos capturados). + +--- + +### Nicho 6 — Restauração e Hotelaria + +**Quem:** Restaurantes, cafés, bares, hotéis boutique, alojamentos locais, serviços de catering, espaços de eventos. + +**Dimensão PT:** +80.000 estabelecimentos de restauração. Sector de margens apertadas, alta rotatividade de staff, sazonalidade intensa. + +**Dores operacionais:** +- Reservas por telefone interrompem o serviço → perdidas quando está cheio +- Grupos e eventos corporativos: orçamentação manual e demorada +- Gestão de feedback online (Google, Tripadvisor) sem resposta sistemática +- Campanhas de WhatsApp para promoções especiais feitas manualmente +- Alojamento local: check-in remoto, comunicação com hóspedes em múltiplas línguas + +**Funcionalidades mais relevantes:** reservas e confirmações por WhatsApp, resposta automática a reviews Google, campanhas de promoções ("mesa disponível para amanhã?"), comunicação com hóspedes em PT/EN/ES automática, facturação de eventos. + +**Linguagem de venda:** "mesa reservada e confirmada sem tirar o empregado do serviço", "campanhas de promoção para a base de clientes em 2 minutos", "hóspedes atendidos em qualquer língua, a qualquer hora". + +**Canal de aquisição:** associações (AHRESP, ARESP), feiras do sector (Horexpo, BTL), Instagram/Facebook de restaurateurs, referência entre proprietários. + +**Objecção principal:** "O meu cliente quer falar com uma pessoa." → Resposta: "O sistema trata das confirmações de rotina. Quando o cliente quer falar com alguém, o sistema escala — e o teu staff tem mais tempo para isso." + +**Trigger de compra:** mesa dupla marcada no mesmo horário; alta temporada com reservas a escapar por não conseguir atender o telefone. + +**Pricing sweet spot:** €30-80/mês (margens apertadas — proposta tem de ser de ROI imediato e muito claro). + +--- + +### Nicho 7 — Contabilidade e Consultoria + +**Quem:** Gabinetes de contabilidade, TOCs (Técnicos Oficiais de Contas), escritórios de advogados, consultores de gestão, solicitadores. + +**Dimensão PT:** +8.000 gabinetes de contabilidade registados. Sector muito regulado, conservador, mas sob pressão de digitalização e de novas exigências da AT. + +**Dores operacionais:** +- Clientes entregam documentação de forma caótica (papel, foto de WhatsApp, email) +- Prazos fiscais críticos (IRS, IRC, IVA, SS) gerem-se manualmente com risco de multa +- Comunicação de alertas a clientes por email → baixa taxa de abertura +- Facturação de honorários por horas não registadas sistematicamente +- Novos clientes: onboarding burocrático e demorado + +**Funcionalidades mais relevantes:** portal de recolha de documentos do cliente, alertas de prazos fiscais automáticos por WhatsApp, registo automático de horas, facturação mensal, onboarding digital de clientes. + +**Linguagem de venda:** "o cliente entrega os documentos pelo WhatsApp e chegam organizados", "o cliente recebe o alerta de IVA no dia certo, não quando já passou", "sem ligar 5 vezes para pedir o recibo". Evitar: "IA", "automação" — usar "sistema", "organização", "processo". + +**Canal de aquisição:** Ordem dos Contabilistas Certificados, formações profissionais obrigatórias, referência entre TOCs, LinkedIn de gestores de gabinetes. + +**Objecção principal:** "Os nossos clientes são conservadores e resistem a mudanças." → Resposta: "O cliente não vê nenhuma mudança — continua a mandar fotos para o WhatsApp. Só que chegam organizadas ao sistema em vez de à caixa de entrada da Ana." + +**Trigger de compra:** multa de cliente por prazo fiscal falhado por comunicação deficiente; novo quadro legal que aumenta o volume de entregas obrigatórias. + +**Pricing sweet spot:** €50-150/mês (sector conservador no pricing mas com ROI muito mensurável em tempo poupado). + +--- + +### Nicho 8 — E-commerce e Retalho Online + +**Quem:** Lojas online, marcas DTC (direct-to-consumer), revendedores em marketplace (Amazon PT, FNAC, Worten), lojas omnicanal (físico + online). + +**Dimensão PT:** +25.000 lojas online activas. Crescimento acelerado mas altíssima competição e margens em queda. + +**Dores operacionais:** +- Volume de mensagens de suporte pós-venda (estado da encomenda, devoluções) insustentável +- Carrinhos abandonados sem follow-up automático → receita perdida +- Campanhas de reactivação de clientes inativos feitas manualmente +- Devoluções: processo manual, email interminável, cliente frustrado +- Avaliações negativas sem resposta → impacto na conversão + +**Funcionalidades mais relevantes:** suporte automático de "onde está a minha encomenda" por WhatsApp, follow-up de carrinho abandonado, campanha de reactivação de clientes inativos, gestão de devoluções automatizada, resposta a reviews. + +**Linguagem de venda:** "responde a 80% das perguntas de suporte sem intervenção humana", "recupera 15% dos carrinhos abandonados com um WhatsApp certo", "o cliente fica satisfeito sem precisar de esperar por email". + +**Canal de aquisição:** comunidades de e-commerce (Shopify PT Facebook Group, grupos LinkedIn de e-commerce), eventos (eCommerce Day, NOS Alive), agências de e-commerce como parceiros. + +**Objecção principal:** "Já usamos o suporte do Shopify." → Resposta: "O suporte do Shopify trata do que está dentro da plataforma. O AcidaOS trata do WhatsApp, do email e das mensagens do Instagram — que é de onde vêm 70% das perguntas reais." + +**Trigger de compra:** Black Friday com volume de suporte 5x superior ao habitual sem equipa para responder; mês com carrinho abandonado acima de 70% sem follow-up. + +**Pricing sweet spot:** €69-149/mês (familiarizados com SaaS, comparam com Gorgias €10-150/mês, Tidio €29-100/mês). + +--- + +### Nicho 9 — Educação e Formação + +**Quem:** Centros de formação profissional, explicadores e centros de explicações, escolas de línguas, escolas de música/artes, coaches e mentores, plataformas de formação online. + +**Dimensão PT:** sector em expansão acelerada. Formação profissional fortemente subsidiada (FSE/IEFP) com requisitos administrativos pesados. + +**Dores operacionais:** +- Matrículas e inscrições por telefone e email — processo manual e demorado +- Comunicação com pais (no caso de menores) caótica e dispersa +- Cobranças de mensalidades em atraso constrangem a relação com o aluno/família +- Certificados e documentação de formação gerados manualmente +- Formação subsidiada: relatórios e documentação obrigatória para financiamento + +**Funcionalidades mais relevantes:** inscrições online com confirmação automática, comunicação com pais por WhatsApp, cobranças automáticas com link de pagamento (MB Way), geração de certificados, relatórios de frequência. + +**Linguagem de venda:** "os pais recebem updates do filho pelo WhatsApp, sem ligar para a recepção", "as inscrições chegam organizadas, não por telefone", "as mensalidades cobram-se sozinhas no dia certo". + +**Canal de aquisição:** DGERT (entidade reguladora de formação), LinkedIn de directores pedagógicos, grupos Facebook de formadores, referência entre centros. + +**Objecção principal:** "Temos sistema de gestão escolar." → Resposta: "O AcidaOS complementa — trata da comunicação e cobranças que o sistema escolar não faz." + +**Trigger de compra:** período de matrículas com recepção sobrecarregada; mensalidade em atraso de mais de 3 meses por falta de follow-up. + +**Pricing sweet spot:** €50-120/mês (sensíveis ao preço mas com ROI claro em cobranças recuperadas). + +--- + +### Nicho 10 — Serviços Técnicos Especializados + +**Quem:** Empresas de IT/informática, AVAC, electricistas com empresa, empresas de segurança e alarmes, canalizadores, empresas de manutenção de equipamentos. + +**Dimensão PT:** dezenas de milhares de micro e pequenas empresas. Alta dependência de WhatsApp para comunicar com técnicos e clientes. Muito fragmentado. + +**Dores operacionais:** +- Chamadas de avaria chegam fora de horas sem registo +- Orçamentos de intervenções demoram dias (técnico tem de ver primeiro) +- Scheduling de técnicos manual — conflitos de agenda e deslocações ineficientes +- Contrato de manutenção: clientes que deviam contactar para revisão e não contactam +- Relatório de intervenção escrito à mão ou por memória do técnico + +**Funcionalidades mais relevantes:** triagem automática de avarias fora de horas (gravidade, urgência), agendamento de técnicos por disponibilidade, geração de relatório de intervenção por voz (técnico descreve verbalmente → relatório gerado), alertas de manutenção preventiva, facturação de serviço. + +**Linguagem de venda:** "o técnico descreve o trabalho pelo WhatsApp e o relatório fica pronto", "as chamadas de avaria fora de horas ficam registadas e triadas", "o cliente de manutenção recebe o alerta de revisão no mês certo". + +**Canal de aquisição:** associações sectoriais (ANEOP, ASIAM), LinkedIn de gestores de empresa técnica, grupos Facebook de técnicos, referência entre pares. + +**Objecção principal:** "Os meus técnicos não usam computador." → Resposta: "Exactamente por isso — o AcidaOS funciona pelo WhatsApp que eles já usam. O relatório faz-se com uma nota de voz." + +**Trigger de compra:** chamada de avaria urgente perdida fora de horas; técnico que sai e leva o registo das intervenções que fez. + +**Pricing sweet spot:** €40-100/mês (dispostos a pagar pelo valor em tempo poupado e em trabalho não perdido). + +--- + +## Tabela resumo — priorização por atractividade + +| Nicho | Volume PT | Urgência da dor | Disposição a pagar | Canal de entrada | Score | +|-------|-----------|----------------|-------------------|-----------------|-------| +| Saúde Privada | Alta | Muito alta | Alta | Associações + Google | ⭐⭐⭐⭐⭐ | +| Imobiliárias | Média | Alta | Alta | LinkedIn + portais | ⭐⭐⭐⭐⭐ | +| Agências Digitais | Média | Alta | Muito alta | LinkedIn + eventos | ⭐⭐⭐⭐⭐ | +| E-commerce | Alta | Alta | Alta | Comunidades + parceiros | ⭐⭐⭐⭐ | +| Contabilidade | Alta | Média-alta | Média | Ordem OCC + formação | ⭐⭐⭐⭐ | +| Construção | Muito alta | Alta | Média | Referência + associações | ⭐⭐⭐⭐ | +| Comércio B2B | Alta | Alta | Média-alta | Feiras + LinkedIn | ⭐⭐⭐⭐ | +| Serviços Técnicos | Muito alta | Média | Média | Referência + grupos | ⭐⭐⭐ | +| Educação | Média | Média | Baixa-média | DGERT + referência | ⭐⭐⭐ | +| Restauração | Muito alta | Média | Baixa | AHRESP + Instagram | ⭐⭐⭐ | + +**Top 3 para arranque:** Saúde Privada, Imobiliárias, Agências Digitais — dor alta, disposição a pagar alta, canais de entrada claros. diff --git a/crm-ops/skills/estrategia-marca/references/perguntas-briefing.md b/crm-ops/skills/estrategia-marca/references/perguntas-briefing.md new file mode 100644 index 0000000..4ef6388 --- /dev/null +++ b/crm-ops/skills/estrategia-marca/references/perguntas-briefing.md @@ -0,0 +1,113 @@ +# Perguntas de Briefing — Entrevista Estratégica + +Guia de entrevista estruturado para conduzir o briefing inicial com o cliente. +Adaptar ao sector e nível de maturidade da marca. + +--- + +## Bloco 1 — O negócio + +### Contexto actual +1. O que faz a sua empresa, em termos simples? +2. Há quantos anos está no mercado? Como surgiu? +3. Qual a dimensão actual: equipa, facturação, clientes? +4. Qual é o maior desafio que enfrenta hoje no negócio? +5. O que o distingue dos concorrentes? (resposta espontânea — não sugerir) + +### Serviços e produtos +6. Quais são os seus produtos/serviços principais? +7. Qual gera mais receita? Qual tem mais potencial? +8. Existe algum produto que quer destacar mais? Porquê? +9. Que resultados concretos entregam aos clientes? + +### Posicionamento actual +10. Se pedisse a um cliente para descrever a sua empresa em 3 palavras, o que diria? +11. Existe uma percepção de mercado que quer mudar? +12. Onde se posiciona em preço vs concorrência? (mais caro, igual, mais barato) Porquê? + +--- + +## Bloco 2 — O cliente ideal + +### Segmentação +13. Quem é o seu cliente ideal? Descreva-o em detalhe. +14. Tem mais do que um tipo de cliente? Como os diferencia? +15. Qual o cliente que mais valoriza o que fazem e paga melhor? +16. Existe algum cliente que não quer ter? Porquê? + +### Comportamento de compra +17. Como é que os clientes chegam até si? (canal principal de aquisição) +18. Quanto tempo demora tipicamente desde o primeiro contacto até fechar negócio? +19. Quem toma a decisão de compra? É uma pessoa ou um grupo? +20. Que objecções ouve mais frequentemente antes de fechar? + +### Relação com clientes +21. Qual foi o feedback mais positivo que recebeu de um cliente? (pedir citação exacta) +22. Qual foi a queixa mais comum? Como resolveram? +23. Tem clientes que recomendam espontaneamente? O que dizem? + +--- + +## Bloco 3 — Mercado e concorrência + +### Mercado +24. Em que mercado opera? Geográfico (local, nacional, internacional)? +25. O mercado está a crescer, estável ou a contrair? +26. Que tendência do mercado mais o preocupa? Qual mais o entusiasma? +27. Existe sazonalidade? Em que períodos? + +### Concorrência +28. Quem são os 3 principais concorrentes? +29. Em que é que são melhores? Em que é que são piores? +30. Por que é que um cliente nos escolhe a nós vs ao concorrente X? +31. Existe algum concorrente que admira (mesmo que de outra área)? + +--- + +## Bloco 4 — Visão e ambição + +### Onde quer chegar +32. Qual é o objectivo da empresa a 3 anos? +33. O que precisa de mudar para chegar lá? +34. Existe um modelo de empresa que admira ou quer imitar? Porquê? +35. Se tivesse recursos ilimitados, o que faria primeiro? + +### Marca e identidade +36. Que 3 adjectivos descrevem a personalidade ideal da marca? +37. Que marcas (de qualquer sector) admira pela comunicação? O que lhes agrada? +38. Existe uma história de origem da empresa que emociona? (fundador, momento de viragem) +39. Que valores são inegociáveis? O que nunca fariam por dinheiro? + +### Tom de voz +40. A marca é mais formal ou informal? Mais técnica ou acessível? +41. Usa humor na comunicação? Em que contextos? +42. Existe linguagem/palavras que NÃO deve usar? + +--- + +## Bloco 5 — Recursos e restrições + +### Capacidade +43. Qual o budget mensal disponível para marketing? +44. Existe equipa interna de marketing ou será tudo externalizado? +45. Quem aprova conteúdos? Qual o processo de revisão? + +### Prazo +46. Existe algum lançamento, evento ou data importante a curto prazo? +47. Quando precisa de ter a estratégia operacional? + +### Material existente +48. Existe alguma estratégia anterior? O que funcionou? O que não funcionou? +49. Que activos existem: website, redes sociais, base de emails, testemunhos, cases? +50. Existem fotos/vídeos profissionais? Em que estado está a identidade visual? + +--- + +## Notas de condução da entrevista + +- Fazer max 15-20 perguntas numa sessão (60-90 min) +- Priorizar: Blocos 1, 2 e 4 na primeira sessão +- Blocos 3 e 5 podem ser preenchidos com pesquisa independente +- Pedir sempre exemplos concretos e citações textuais de clientes +- Quando a resposta é vaga, fazer "pode dar-me um exemplo específico?" +- Gravar a sessão (com autorização) para não perder citações úteis diff --git a/crm-ops/skills/estrategia-marca/references/template-documento.md b/crm-ops/skills/estrategia-marca/references/template-documento.md new file mode 100644 index 0000000..4fad45d --- /dev/null +++ b/crm-ops/skills/estrategia-marca/references/template-documento.md @@ -0,0 +1,374 @@ +# Template: Documento de Estratégia de Marca + +Estrutura completa do documento entregável ao cliente. Baseado nos projectos SFV, LJM, MCT, Espiral Senior e Sintricare. +Adaptar secções ao sector e complexidade do cliente. + +--- + +## Cabeçalho do documento + +``` +--- +title: [Nome da Marca] — Estratégia de Marca +cliente: [Nome do cliente] +código: EST-MRK-010 +versão: 1.0 +data: [DD-MM-YYYY] +elaborado: Descomplicar® — Agência de Aceleração Digital +status: draft | aprovado +--- +``` + +--- + +## DECLARAÇÃO DE IMPACTO + +> **[Uma frase poderosa — 10-15 palavras máximo]** +> *A essência e o impacto da marca numa linha.* + +--- + +## ÍNDICE + +1. Apresentação e Fundamentos Estratégicos +2. Proposta de Valor Única +3. Missão, Visão, Valores e Objectivos +4. Apresentação Sumária da Empresa e Serviços +5. Segmentação e Análise Detalhada de Público +6. Pitch Canvas +7. Copywriting Estratégico +8. Estratégia de Comunicação e Canais +9. Investimentos Prioritários +10. Monitorização e KPIs +11. Inventário de Activos de Marketing + +--- + +## 1. Apresentação e Fundamentos Estratégicos + +### 1.1 Contexto actual +- **Mercado:** [Análise do mercado actual — dimensão, tendências, oportunidades] +- **Concorrência:** [Principais concorrentes e posições] +- **Desafios:** [Principais desafios enfrentados pela marca] +- **Oportunidades:** [Oportunidades identificadas] + +### 1.2 Problema a resolver +[Identificação clara do problema de negócio que esta estratégia precisa resolver — qual é o problema central que impede o crescimento ou o impacto da marca?] + +--- + +## 2. Proposta de Valor Única + +### 2.1 O que nos torna únicos +[O que tornamos possível que os concorrentes não conseguem. Ser específico — evitar "qualidade e experiência".] + +### 2.2 Diferenciais competitivos +1. [Diferencial 1 — explicar o mecanismo único que o cria] +2. [Diferencial 2] +3. [Diferencial 3] + +### 2.3 Benefícios por camada +| Tipo | Benefícios | +|------|-----------| +| **Funcionais** | [O que o produto/serviço faz concretamente] | +| **Emocionais** | [Como o cliente se sente ao usar/contratar] | +| **Identitários** | [O que diz sobre o cliente escolher esta marca] | + +--- + +## 3. Missão, Visão, Valores e Objectivos + +### 3.1 Missão +> [O que fazemos, para quem e como — acção no presente. Max 2 frases.] + +### 3.2 Visão +> [Onde queremos estar e que impacto queremos ter em 3-5 anos. Max 2 frases.] + +### 3.3 Valores +- **[Valor 1]** — [Como se manifesta na prática, no dia-a-dia da empresa] +- **[Valor 2]** — [Como se manifesta] +- **[Valor 3]** — [Como se manifesta] +- **[Valor 4]** — [Como se manifesta] *(opcional)* + +### 3.4 Objectivos estratégicos +- **Curto prazo (6m):** [2-3 objectivos mensuráveis] +- **Médio prazo (1 ano):** [2-3 objectivos] +- **Longo prazo (3 anos):** [Ambição de impacto] + +--- + +## 4. Apresentação Sumária da Empresa e Serviços + +### 4.1 Quem somos +[Parágrafo de apresentação — quem são, o que fazem, há quanto tempo, dimensão, missão em acção] + +### 4.2 Serviços/Produtos principais + +| Serviço/Produto | Descrição | Para quem | Resultado principal | +|----------------|-----------|-----------|-------------------| +| [Nome] | — | — | — | +| [Nome] | — | — | — | + +### 4.3 Posicionamento +[Declaração de posicionamento — o lugar único que a marca ocupa na mente do cliente] + +> "Para [público], somos a única [categoria] que [benefício único] porque [prova]." + +--- + +## 5. Segmentação e Análise Detalhada de Público + +*Repetir a estrutura completa dos 20 pontos para cada segmento identificado.* + +--- + +### 5.X — [Nome do Segmento] + +*[Breve descrição de quem é este segmento — 2 linhas]* + +#### 1. Perfil Demográfico +[Idade, género, localização, rendimento, nível de educação, profissão, cargo, tipo/dimensão de empresa, estado civil, composição familiar — tudo o que é mensurável e verificável] + +#### 2. Perfil Psicográfico +[Valores pessoais, crenças, atitude perante a vida, estilo de vida, motivações profundas, relação com a categoria de produto/serviço, identidade social — o que não se mede mas define quem são] + +#### 3. Dores +[Problemas activos e urgentes que precisam resolver. O que os está a prejudicar agora. Dores específicas do dia-a-dia relacionadas com o que a marca resolve.] + +#### 4. Anseios +[O que aspiram a ser, ter ou alcançar. Sonhos profissionais e pessoais. A versão ideal do futuro que imaginam.] + +#### 5. Desejos +[O que querem concretamente — mais imediato e específico que os anseios. Desejos práticos relacionados com a nossa oferta.] + +#### 6. Frustrações +[O que já tentaram fazer ou comprar sem resultado. Soluções que prometeram e não entregaram. O cansaço acumulado de não resolver o problema.] + +#### 7. Preocupações +[O que os inquieta a médio/longo prazo. Cenários negativos que imaginam. Preocupações sistémicas relacionadas com a sua vida ou negócio.] + +#### 8. Medos +[Medos concretos associados à compra ou à não-compra. Medo de errar, de ser enganado, de perder dinheiro, de ser julgado. O que os paralisa antes de decidir.] + +#### 9. Inimigos +[Os "vilões" da história deste segmento — concorrentes que os desiludiram, sistemas que os prejudicam, tendências que os ameaçam, pessoas ou entidades a quem culpam o problema] + +#### 10. Linguagem +[As palavras e expressões exactas que usam para descrever o problema, a solução e os resultados. Jargão do sector. O que dizem aos amigos. O que escrevem no Google. Evitar linguagem que usamos internamente mas eles não usam.] + +#### 11. Como procuram ajuda, informação ou dicas? +[Onde vão quando têm o problema: Google (que pesquisas fazem?), YouTube, grupos Facebook, LinkedIn, amigos, consultores, feiras, etc. Que tipo de conteúdo consomem para se informar?] + +#### 12. Canais digitais +[Em que plataformas estão activos: Facebook, Instagram, LinkedIn, TikTok, YouTube, email, WhatsApp, fóruns, etc. Com que frequência? Em que contexto (trabalho vs lazer)?] + +#### 13. Estilo de Decisão +[Como tomam decisões de compra: rápido vs deliberado, emocional vs racional, individual vs colectivo, impulsivo vs comparativo. Que factores pesam mais? Precisam de aprovação de terceiros?] + +#### 14. Mudanças +[Mudanças que sabem e sentem necessárias nas suas vidas ou negócio. Passos que sabem que precisam dar mas ainda não deram. A consciência que já têm do problema.] + +#### 15. Resistência à Mudança +[De que maneira resistem à mudança? Que desculpas usam para adiar? Como os podemos ajudar a ultrapassar essa resistência? Que argumentos reduzem o atrito?] + +#### 16. Objecções Típicas +[As objecções mais frequentes às ofertas comerciais desta categoria. Como as podemos antecipar e superar? Respostas específicas a cada objecção.] + +| Objecção | Como ultrapassar | +|----------|----------------| +| — | — | +| — | — | +| — | — | + +#### 17. Forma de Gerar Emoção +[Que tipo de conteúdo, história ou mensagem os move emocionalmente? O que os faz parar no scroll? O que os faz partilhar? Qual o gatilho emocional mais poderoso para este segmento?] + +#### 18. Argumentos +[A que argumentos são mais sensíveis? Como os podemos persuadir a agir? Que tipo de prova precisam: dados, testemunhos, demonstrações, garantias? Qual a sequência de persuasão ideal?] + +#### 19. Concorrentes +[Que outras entidades lhes oferecem o mesmo tipo de serviço ou solução alternativa? Como se comparam a nós em percepção de valor?] + +#### 20. Propostas Recusadas +[Que propostas é que este segmento tem recusado e porquê? O que dizem explicitamente e o que dizem implicitamente? O que não querem mais ouvir?] + +--- + +## 6. Pitch Canvas + +### 6.1 O que é o Pitch Canvas? +O Pitch Canvas é uma ferramenta de comunicação estratégica que resume, numa única estrutura visual, o essencial da proposta de valor da empresa. É útil porque: +- Força clareza e síntese (não há espaço para vagueza) +- Alinha toda a equipa na mesma mensagem +- Serve de base para qualquer peça de comunicação +- Torna a proposta de valor testável e iterável + +### 6.2 Utilidade específica para [Nome da Marca] +[Como o Pitch Canvas pode ajudar esta marca concretamente — que clareza traz, que conversas simplifica, onde pode ser usado] + +### 6.3 Os 5 elementos do Pitch Canvas + +**Para quem:** +> [Segmento principal — quem são e qual o problema específico] + +**O problema:** +> [Dor principal, urgente e real — formulada na linguagem do cliente] + +**A solução:** +> [O que oferecemos — mecanismo único de resolução] + +**O resultado:** +> [Transformação concreta — antes vs depois, com métrica se possível] + +**Por que nós:** +> [Razão para acreditar — o que nos torna credíveis e únicos] + +### 6.4 Declaração de mudança no mundo +> **"[Nome da Marca] está a mudar [o quê] para [quem], através de [como], tornando possível [impacto maior]."** + +--- + +## 7. Copywriting Estratégico + +### 7.1 Questionamento estratégico + +**Qual é o objectivo da comunicação?** +[Definir claramente o que queremos que o público faça, sinta ou pense após cada comunicação. Sem objectivo claro não há comunicação eficaz.] + +**Que transformação prometemos?** +[A transformação específica que a marca entrega — não o produto, mas a mudança de estado do cliente] + +### 7.2 Pain + Gain (Problema e Resultado) + +> **Pain:** [O problema central na perspectiva do cliente — formulado com a dor, não com o produto] +> **Gain:** [O resultado desejado — formulado com o benefício, não com a funcionalidade] + +*Revisão com questões específicas do sector:* +> **Pain refinado:** [Após aprofundar com o briefing — mais específico, com linguagem do cliente] +> **Gain refinado:** [Com métricas ou resultados concretos já entregues a outros clientes] + +### 7.3 Narrativa por segmento + +*Fórmula: Problema (dor do público) → Solução (serviços da empresa) → Resultado (benefícios concretos)* + +**[Segmento A]:** +> **Problema:** [Dor específica e urgente deste segmento, na sua linguagem] +> **Solução:** [Como a marca resolve de forma única — mecanismo específico] +> **Resultado:** [Benefício tangível e mensurável + prova social ou garantia] + +**[Segmento B]:** +> **Problema:** [...] +> **Solução:** [...] +> **Resultado:** [...] + +*(Repetir para cada segmento)* + +### 7.4 Mensagem central da marca +> **"[A frase que todos os colaboradores sabem de cor — resumo da proposta de valor em 10 palavras]"** + +### 7.5 Headlines por segmento + +| Segmento | Headline principal | Headline secundária | +|----------|------------------|-------------------| +| [Seg. A] | — | — | +| [Seg. B] | — | — | + +--- + +## 8. Demonstração dos Serviços + +### 8.1 Como demonstrar [serviço/produto principal] + +**Preparação personalizada:** +[O que preparar antes da demonstração para cada segmento] + +**Introdução interactiva:** +[Como começar — conectar com a dor antes de mostrar a solução] + +**Demonstração ao vivo:** +[O que mostrar, em que ordem, com que foco] + +**Casos de uso:** +[Exemplos reais de clientes similares — antes/depois] + +**Q&A:** +[Perguntas frequentes na demonstração e respostas modelo] + +**Follow-up:** +[Próximo passo após a demonstração — o que enviar, quando contactar] + +--- + +## 9. Investimentos Prioritários + +### 9.1 Prioridades imediatas (impacto/esforço) + +| Prioridade | Investimento | Impacto esperado | Prazo | Custo estimado | +|-----------|-------------|-----------------|-------|---------------| +| 1 | [Ex: Website + SEO] | — | 30-60d | — | +| 2 | [Ex: Google Ads] | — | 30d | — | +| 3 | [Ex: Email marketing] | — | 60d | — | + +### 9.2 Estratégia de canais + +| Canal | Objectivo | Frequência | KPI | Budget mensal | +|-------|-----------|-----------|-----|--------------| +| Website | — | — | — | — | +| Google Ads | — | — | — | — | +| Meta Ads | — | — | — | — | +| LinkedIn | — | — | — | — | +| Email | — | — | — | — | +| WhatsApp | — | — | — | — | + +### 9.3 Pilares de conteúdo +1. [Pilar 1 — tema + tipos de conteúdo + frequência] +2. [Pilar 2] +3. [Pilar 3] + +--- + +## 10. Monitorização e KPIs + +### 10.1 Dashboard de métricas + +| Área | KPI | Baseline | Meta 3m | Meta 6m | Meta 12m | +|------|-----|---------|---------|---------|----------| +| Brand | Notoriedade espontânea | — | — | — | — | +| Tráfego | Visitas/mês | — | — | — | — | +| Leads | Leads qualificados/mês | — | — | — | — | +| Conversão | Taxa de fecho | — | — | — | — | +| Retenção | NPS | — | — | — | — | + +### 10.2 Ciclo de optimização +- **Revisão mensal:** métricas de canal, ajuste de conteúdo +- **Revisão trimestral:** avaliação de ROI, ajuste de orçamento +- **Revisão anual:** actualização estratégica completa + +--- + +## 11. Inventário de Activos de Marketing + +| Activo | Localização | Estado actual | Prioridade | +|--------|------------|--------------|-----------| +| Website | [URL] | — | — | +| Blog/Artigos | — | — | — | +| Redes sociais | — | — | — | +| Base de emails | — | — | — | +| Testemunhos/Cases | — | — | — | +| Materiais impressos | — | — | — | +| Apresentações | — | — | — | +| Fotos/Vídeos profissionais | — | — | — | + +--- + +## Notas de implementação + +1. **Sessão de alinhamento:** Apresentar o documento à equipa antes de implementar +2. **Validação:** Partilhar narrativas com 2-3 clientes actuais antes de publicar +3. **Implementação faseada:** Começar pelos canais de maior impacto e menor esforço +4. **Suporte:** WhatsApp durante 1 mês para dúvidas de implementação (EST-MRK-010) + +--- + +*Elaborado por Descomplicar® — Agência de Aceleração Digital* +*emanuel@descomplicar.pt | descomplicar.pt* diff --git a/crm-ops/skills/expense/SKILL.md b/crm-ops/skills/expense/SKILL.md new file mode 100644 index 0000000..8c91f8e --- /dev/null +++ b/crm-ops/skills/expense/SKILL.md @@ -0,0 +1,143 @@ +--- +name: expense +description: Gestao de despesas Desk CRM com PDF obrigatorio. Registar, categorizar e analisar despesas com verificacao de duplicados por reference_no, upload SFTP e arquivo mensal automatico. +layer: wiki +--- + +# /expense - Gestao de Despesas + +Skill para gestao de despesas com verificacao obrigatoria de categorias existentes. + +## Quando Usar + +- Registar nova despesa +- Criar/gerir categorias de despesas +- Consultar despesas por periodo/categoria +- Associar despesas a projectos/clientes +- Analise e relatorios de despesas +- Processar despesas de tickets de contabilidade (departamento 3) +- Importar recibos de servicos (Anthropic, Hetzner, etc.) + +## Quando NAO Usar + +- Para facturas a clientes (usar /invoice) +- Para orcamentos (usar /orcamento) +- Para pagamentos recebidos (usar /crm) + +--- + +## REGRA CRITICA: CATEGORIAS + +> **PROIBIDO criar categoria sem verificar se ja existe.** + +``` +1. Listar categorias: get_expense_categories(with_stats=true) +2. Pesquisar por nome similar na lista +3. SE encontrar match ou similar: USAR a categoria existente +4. SE realmente nao existe: PERGUNTAR "Nao encontrei categoria para X. Criar nova?" +5. SO CRIAR apos confirmacao explicita +``` + +**Violacao desta regra causa duplicados que prejudicam relatorios financeiros.** + +Para mapeamento completo de fornecedores, emails e padroes PDF para categorias: ver `references/category-mapping.md` + +--- + +## Protocolo: Registar Despesa + +> **Gate PDF obrigatorio:** Sem documento, nao regista. Unica excepcao: bypass explicito do utilizador (AT/Salario sem recibo). + +``` +1. GATE PDF: Verificar que existe ficheiro PDF + - SE utilizador forneceu PDF: prosseguir + - SE nao forneceu: PEDIR o ficheiro + - SE nao tem e pede bypass: PERGUNTAR "Confirmas despesa sem documento?" + - Bypass valido apenas para: AT, Salarios, transferencias bancarias +2. LER O PDF: Extrair dados reais do documento + - NUNCA copiar valor de um PDF para outro + - EXTRAIR reference_no (numero factura) — OBRIGATORIO para dedup +3. OBRIGATORIO: get_expense_categories(with_stats=true) +4. Identificar categoria correcta na lista +5. VERIFICAR DUPLICADOS (3 camadas — OBRIGATORIO): + Camada 0 — Referencia de factura (PRIMARIA): + - get_expenses(search: "") + - Se alguma despesa tem reference_no IGUAL → DUPLICADO → PARAR + Camada 1 — Fornecedor + Valor + Data: + - get_expenses(search: "") + - Mesmo fornecedor + valor (±0.05) + data (±3 dias) = duplicado + Camada 2 — Expense name: + - get_expenses(search: " - ") + - Se match exacto → duplicado + Se QUALQUER camada detecta duplicado → NAO criar, informar utilizador +6. Recolher dados: + - category_id, amount, currency (EUR=3, USD=2), date (YYYY-MM-DD) + - reference_no (numero factura — OBRIGATORIO) + - note (incluir numero factura), send_invoice_to_customer = 0 + - Opcionais: client_id, project_id, billable, tax +7. CONFIRMAR com utilizador (mostrar resumo) +8. create_expense (INCLUIR reference_no no payload) +9. UPLOAD PDF ao Desk via SFTP: + a. mkdir -p no servidor: /home/ealmeida/desk.descomplicar.pt/uploads/expenses/ + b. mcp__ssh-unified__sftp_upload(server:"desk", local_path, remote_path) + c. chown -R ealmeida:ealmeida + d. INSERT INTO tblfiles (rel_id, rel_type='expense', ...) +10. ARQUIVO MENSAL: Mover PDF para Contabilidade/YYYY/NN-NomeMes/ +11. Confirmar criacao ao utilizador +``` + +## Protocolo: Criar Categoria + +``` +1. get_expense_categories() - listar todas +2. Verificar se existe categoria similar +3. SE existe similar: USAR ESSA, nao criar +4. SE nao existe: perguntar confirmacao ao utilizador +5. SO APOS confirmacao: criar +``` + +## Protocolo: Consultar Despesas + +``` +1. get_expenses com filtros: category, date_from/date_to, client_id, project_id, limit +2. Apresentar resumo ao utilizador +``` + +## Protocolo: Analise de Despesas + +``` +1. expense_analytics: period ("month"/"quarter"/"year"), breakdown_by ("category"/"client"/"project") +2. Apresentar insights: total por categoria, tendencias, categorias mais usadas +``` + +## Processar Despesas de Tickets + +Para protocolo completo de processamento de tickets de contabilidade: ver `references/ticket-processing.md` + +**Resumo:** Obter ticket -> verificar anexos -> verificar duplicados (3 camadas) -> extrair dados -> confirmar -> criar despesa -> upload PDF -> arquivo mensal. + +--- + +## Comandos + +| Comando | Descricao | +|---------|-----------| +| `/expense create` | Registar nova despesa | +| `/expense list` | Listar despesas recentes | +| `/expense categories` | Listar categorias disponiveis | +| `/expense report [periodo]` | Relatorio de despesas | +| `/expense search [termo]` | Pesquisar despesas | + +## MCP Tools + +**Despesas:** `get_expenses`, `create_expense`, `update_expense`, `delete_expense`, `bill_expense_to_customer` +**Categorias:** `get_expense_categories` (usar with_stats=true) +**Analise:** `expense_analytics` + +--- + +## Anti-Patterns (NUNCA fazer) + +**Categorias:** +1. Criar categoria sem listar existentes primeiro +2. Assumir qu \ No newline at end of file diff --git a/crm-ops/skills/expense/references/category-mapping.md b/crm-ops/skills/expense/references/category-mapping.md new file mode 100644 index 0000000..af220ce --- /dev/null +++ b/crm-ops/skills/expense/references/category-mapping.md @@ -0,0 +1,187 @@ +# /expense - Mapeamento de Categorias e Dados Técnicos + +## Categorias Activas (consolidacao 12-02-2026) + +| ID | Nome | Fornecedores típicos | +|----|------|---------------------| +| 1 | Telecomunicacoes | MEO | +| 4 | Alojamento web (Hosting) | Hetzner, CWP | +| 6 | Servicos Externos | Make/Celonis, Gamma | +| 14 | Subscricoes e Servicos Digitais | YouTube Premium, BdThemes | +| 28 | Licencas Software | Canva, Cursor, Descript, GitHub, Softaculous | +| 30 | Servicos Cloud e Infraestrutura | Google One, Google Workspace, ElasticEmail | +| 37 | Dominios | PTisp, Namecheap | +| 38 | Servicos IA e APIs | Anthropic, OpenRouter, CapSolver, Replicate | + +Existem ~30 categorias na BD mas apenas 8 são usadas regularmente. SEMPRE usar `get_expense_categories()` para lista completa. + +--- + +## Mapeamento Fornecedor → Categoria + +| Fornecedor | Categoria ID | Nome | +|-----------|-------------|------| +| Anthropic, OpenRouter, CapSolver, Replicate | 38 | Servicos IA e APIs | +| Canva, Cursor, Descript, GitHub, Softaculous, CWP | 28 | Licencas Software | +| Google One, Google Workspace, ElasticEmail | 30 | Servicos Cloud e Infraestrutura | +| Hetzner | 4 | Alojamento web (Hosting) | +| MEO | 1 | Telecomunicacoes | +| PTisp, Namecheap | 37 | Dominios | +| Make/Celonis, Gamma | 6 | Servicos Externos | +| YouTube Premium, BdThemes | 14 | Subscricoes e Servicos Digitais | + +--- + +## Mapeamento Email → Categoria + +| Dominio Email | Categoria ID | Fornecedor | +|---------------|--------------|------------| +| anthropic.com | 38 | Anthropic | +| openrouter.ai | 38 | OpenRouter | +| payproglobal.com | 38 | CapSolver | +| replicate.com | 38 | Replicate | +| cursor.com, anysphere.dev | 28 | Cursor | +| canva.com | 28 | Canva | +| descript.com | 28 | Descript | +| github.com | 28 | GitHub | +| softaculous.com | 28 | Softaculous | +| centos-webpanel.com | 28 | CWP | +| elasticemail.com | 30 | ElasticEmail | +| google.com (One/Workspace) | 30 | Google Cloud | +| hetzner.com | 4 | Hetzner | +| meoempresas.pt | 1 | MEO | +| namecheap.com | 37 | Namecheap | +| ptisp.pt | 37 | PTisp | +| make.com, celonis.com | 6 | Make/Celonis | +| gamma.app | 6 | Gamma | + +> `moloni.com` NAO incluido - é plataforma de facturação. + +--- + +## Mapeamento Padrão PDF → Categoria + +| Padrão no PDF | Fornecedor | Categoria ID | +|---------------|-----------|--------------| +| `Gondooffice`, `Cubic Choices` | Gondooffice | 21 Contabilidade | +| `Autoridade Tributaria`, `emiteDoc`, `AT -` | AT | 15 Planos Prestacionais | +| `Staples`, `STP_ECOFACTURA` | Staples | 3 Material Escritorio | +| `MEO`, `meoempresas` | MEO | 1 Telecomunicacoes | +| `TOConline`, `Recibo de Vencimento` | Salario | 22 Salarios | +| `Seguranca Social` | SS | 25 Contribuicoes SS | +| `Cursor`, `Anysphere` | Cursor | 28 Licencas Software | +| `Anthropic` | Anthropic | 38 Servicos IA e APIs | +| `Hetzner` | Hetzner | 4 Alojamento web | +| `ElasticEmail` | ElasticEmail | 30 Servicos Cloud | + +--- + +## Campos create_expense + +| Campo | Tipo | Obrigatório | Descrição | +|-------|------|-------------|-----------| +| category_id | number | Sim | ID da categoria | +| amount | number | Sim | Valor da despesa | +| date | string | Sim | Data (YYYY-MM-DD) | +| note | string | Sim | Descrição (incluir ticket ID) | +| reference | string | Sim | Número fatura/recibo | +| tax | number | Sim | ID da taxa (1 = IVA 23%) | +| currency | number | Sim | EUR = **3**, USD = 2 | +| send_invoice_to_customer | number | Sim | Sempre **0** | +| client_id | number | Não | Cliente associado | +| project_id | number | Não | Projecto associado | +| billable | boolean | Não | Facturável (default: false) | + +--- + +## Moedas + +| ID | Nome | Símbolo | Default | +|----|------|---------|---------| +| 2 | USD | $ | Não | +| 3 | EUR | € | Sim | + +> **CRITICO:** EUR = **3**, USD = **2**. `currency = 1` não existe e causa despesas invisíveis nos relatórios. + +--- + +## Taxas de Imposto + +| ID | Nome | Taxa | +|----|------|------| +| 1 | IVA Tx Normal | 23% | + +--- + +## Comandos SQL + +```sql +-- 1. VERIFICAR DUPLICADOS (EXECUTAR PRIMEIRO) +SELECT id, amount, date, note, reference_no FROM tblexpenses +WHERE reference_no LIKE '%{receipt_number}%' + OR note LIKE '%ticket #{ticket_id}%' + +-- 2. Verificar anexos do ticket +SELECT id, file_name, filetype FROM tblticket_attachments WHERE ticketid = {ID} + +-- 3. Actualizar nome fornecedor (obrigatorio apos criar) +UPDATE tblexpenses SET expense_name = '{Fornecedor}' WHERE id = {expense_id} + +-- 4. Registar anexo na despesa +INSERT INTO tblfiles (rel_id, rel_type, file_name, filetype, visible_to_customer, staffid, contact_id, dateadded) +VALUES ({expense_id}, 'expense', '{filename}', 'application/pdf', 0, 1, 0, NOW()) +``` + +--- + +## Extracção de Dados de PDFs + +**Método 1: Script Python (recomendado)** +```bash +python3 /home/ealmeida/scripts/extract_invoice_data.py /path/to/invoice.pdf +``` +Retorna JSON com: vendor, cat_id, total, date, invoice, currency, text + +**Método 2: pdfplumber directo** +```bash +python3 -c " +import pdfplumber +with pdfplumber.open('/path/to/file.pdf') as pdf: + for p in pdf.pages: + t = p.extract_text() + if t: print(t) +" | grep -iE "total|iva|€" +``` + +**Método 3: pdftotext (fallback)** +```bash +pdftotext /path/to/file.pdf - | head -80 +``` + +--- + +## Paths de Ficheiros + +- Anexos ticket: `/uploads/ticket_attachments/{ticketid}/` +- Anexos despesa: `/uploads/expenses/{expenseid}/` +- Arquivo mensal: `/media/ealmeida/Dados/GDrive/Cloud/ADM_Descomplicar/Financeiro/Contabilidade/YYYY/NN-NomeMes/` +- Credenciais BD: `/home/ealmeida/desk.descomplicar.pt/application/config/app-config.php` + +--- + +## Tickets a Saltar + +| Tipo | Descrição | Acção | +|------|-----------|-------| +| Payment Receipt | Recibo de pagamento (não é fatura) | SALTAR | +| Duplicado | Mesmo nº fatura já processado | SALTAR | +| Sem anexo PDF | Apenas notificação por email | SALTAR | + +--- + +## Campos para Rastreio de Duplicados + +| Campo | Conteúdo | Exemplo | +|-------|----------|---------| +| reference | Número do recibo | `2810-3712-9577` | +| note | Incluir ticket ID | `Anthropic Max (ticket #9648)` | diff --git a/crm-ops/skills/expense/references/changelog.md b/crm-ops/skills/expense/references/changelog.md new file mode 100644 index 0000000..27fd9df --- /dev/null +++ b/crm-ops/skills/expense/references/changelog.md @@ -0,0 +1,56 @@ +# /expense - Changelog + +## v2.0.0 (2026-02-12) - Sistema Robusto 2026 + +- **Gate PDF obrigatorio:** Despesa sem documento nao e registada (bypass explicito para AT/Salario) +- **Upload SFTP:** Substituido `cp` local por `mcp__ssh-unified__sftp_upload` (Regra #41) +- **Arquivo mensal:** PDF organizado em `Contabilidade/YYYY/NN-NomeMes/` automaticamente +- **Campo `send_invoice_to_customer`:** Documentado como obrigatorio na BD (valor 0) +- **Correccao currency:** EUR = **3** (nao 2), USD = **2**. Corrigido em toda a skill +- **Categorias alinhadas com consolidacao:** 8 categorias activas com mapeamento correcto + - Cursor/Canva/Descript/GitHub/Softaculous/CWP -> 28 (Licencas Software) + - Hetzner -> 4 (Alojamento web) + - ElasticEmail/Google -> 30 (Servicos Cloud) + - PTisp/Namecheap -> 37 (Dominios) + - YouTube/BdThemes -> 14 (Subscricoes) + - Make/Gamma -> 6 (Servicos Externos) +- **Verificacao duplicados reforcada:** Integrada no passo 5 do protocolo +- **MCP ssh-unified adicionado** a dependencias +- **Procedimento:** `06-Operacoes/Procedimentos/PROC-Skill-Expense.md` + +## v1.5.0 (2026-02-05) + +- Adicionado mapeamento **Cursor (Anysphere)** -> categoria 38 (Servicos IA e APIs) + +## v1.4.0 (2026-02-05) + +- **CORRECCAO CRITICA:** ID moeda EUR = **2** (nao 1) +- Despesas com currency=1 nao aparecem em relatorios +- Corrigidas 22 despesas existentes via `UPDATE tblexpenses SET currency = 2 WHERE currency = 1` + +## v1.3.0 (2026-02-05) + +- **Conversao USD -> EUR obrigatoria** (taxa ~0.92, $19.99 -> 18.39 EUR) +- **Processamento em lote** quando utilizador pede "criar todas" +- Tickets a saltar documentados (payment receipts, duplicados, sem PDF) +- 9 despesas processadas em sessao de teste: 857.73 EUR total + +## v1.2.0 (2026-02-05) + +- Campo `expense_name` obrigatorio com nome do fornecedor (via SQL UPDATE) +- Campo `tax` e ID da taxa de imposto (1 = IVA 23%), nao percentagem +- Coluna BD e `reference_no`, nao `reference` +- Script Python para extraccao de PDFs +- 3 metodos de extraccao PDF documentados + +## v1.1.0 (2026-02-05) + +- Processamento de despesas a partir de tickets de contabilidade +- Mapeamento automatico email domain -> categoria +- Workflow completo com verificacao de anexos PDF + +## v1.0.0 (2026-02-05) + +- Versao inicial +- Regra critica de verificacao de categorias +- Criada apos limpeza de 9 categorias duplicadas diff --git a/crm-ops/skills/expense/references/ticket-processing.md b/crm-ops/skills/expense/references/ticket-processing.md new file mode 100644 index 0000000..22c24e3 --- /dev/null +++ b/crm-ops/skills/expense/references/ticket-processing.md @@ -0,0 +1,75 @@ +# /expense - Processamento de Despesas de Tickets + +## Regras + +1. Processar tickets UM A UM com confirmacao do utilizador (ou em lote se solicitado) +2. Verificar SEMPRE se despesa ja foi lancada (prevenir duplicados) +3. NAO adicionar respostas aos tickets - apenas criar despesa e anexos +4. Manter valor original na moeda do documento (EUR=3, USD=2) +5. Saltar tickets que sao apenas recibos de pagamento (nao sao facturas) + +--- + +## Protocolo Ticket a Ticket + +``` +1. Obter ticket: get_ticket(ticket_id) +2. Verificar anexos: SELECT * FROM tblticket_attachments WHERE ticketid = X +3. SE nao tem PDFs: SALTAR ticket (apenas notificacao) +4. VERIFICAR DUPLICADOS (OBRIGATORIO): + SELECT id, amount, date, note FROM tblexpenses + WHERE reference_no LIKE '%{receipt_number}%' OR note LIKE '%ticket #{ticket_id}%' + SE encontrar: PARAR e informar "Despesa ja existe: #ID" +5. Extrair dados: + - Do HTML do ticket (valor, data, referencia) + - OU usar script Python: python3 /home/ealmeida/scripts/extract_invoice_data.py {pdf_path} +6. APRESENTAR resumo ao utilizador e AGUARDAR confirmacao +7. Apos confirmacao: + a. SQL: INSERT INTO tblexpenses (..., send_invoice_to_customer, ...) VALUES (..., 0, ...) + OU create_expense via MCP (se disponivel) + b. UPDATE tblexpenses SET expense_name = '{Fornecedor}' WHERE id = {id} + c. mcp__ssh-unified__ssh_execute: mkdir -p uploads/expenses/{expenseid} + d. mcp__ssh-unified__sftp_upload: PDF para uploads/expenses/{expenseid}/ + e. mcp__ssh-unified__ssh_execute: chown -R ealmeida:ealmeida uploads/expenses/{expenseid} + f. SQL: INSERT INTO tblfiles (rel_id, rel_type, file_name, filetype, + visible_to_customer, staffid, contact_id, dateadded) + VALUES ({id}, 'expense', '{file}', 'application/pdf', 0, 1, 0, NOW()) + g. Mover PDF para arquivo mensal: Contabilidade/YYYY/NN-NomeMes/ +8. Confirmar ao utilizador e passar ao proximo +``` + +--- + +## Processamento em Lote + +Se utilizador pedir "criar todas" ou "processar em lote": +1. Obter todos os tickets pendentes em paralelo +2. Identificar duplicados e tickets a saltar +3. Criar despesas em paralelo via `create_expense` +4. Actualizar `expense_name` e `reference_no` em batch via SQL +5. Copiar PDFs em batch +6. Registar ficheiros em batch via SQL INSERT multiplo + +--- + +## Tickets a Saltar + +| Tipo | Descricao | Accao | +|------|-----------|-------| +| Payment Receipt | Recibo de pagamento (nao e fatura) | SALTAR | +| Duplicado | Mesmo numero fatura ja processado | SALTAR | +| Sem anexo PDF | Apenas notificacao por email | SALTAR | + +Exemplos: +- "Invoice Payment Confirmation" (e recibo, nao fatura) +- Ticket com mesmo invoice_number de outro ja processado + +--- + +## Credenciais Base de Dados + +Localizacao: `/home/ealmeida/desk.descomplicar.pt/application/config/app-config.php` + +```bash +grep -E "APP_DB" /home/ealmeida/desk.descomplicar.pt/application/config/app-config.php +``` diff --git a/crm-ops/skills/index.md b/crm-ops/skills/index.md new file mode 100644 index 0000000..1d7c6b4 --- /dev/null +++ b/crm-ops/skills/index.md @@ -0,0 +1,8 @@ +# skills + +## Documentação + +- [README](README.md) +- [AGENTS](AGENTS.md) +- [STATUS](STATUS.md) +- [MEMORY](MEMORY.md) diff --git a/crm-ops/skills/invoice/SKILL.md b/crm-ops/skills/invoice/SKILL.md new file mode 100644 index 0000000..87f2c46 --- /dev/null +++ b/crm-ops/skills/invoice/SKILL.md @@ -0,0 +1,239 @@ +--- +name: invoice +description: Gestão de facturação Desk CRM. Criar facturas, converter estimates, facturar timesheets, registar pagamentos e listar facturas vencidas. +disable-model-invocation: true +layer: wiki +--- + +# /invoice v1.0 - Gestão de Facturação + +Facturação completa via Desk CRM: criar, enviar, pagamentos. + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/invoice` | Resumo: pendentes, vencidas | +| `/invoice create ` | Criar factura directa | +| `/invoice from-estimate ` | Converter estimate aceite | +| `/invoice from-timesheets ` | Facturar horas | +| `/invoice send ` | Enviar ao cliente | +| `/invoice payment ` | Registar pagamento | +| `/invoice overdue` | Listar vencidas | + +--- + +## Protocolo + +### /invoice (Resumo) + +``` +1. mcp__desk-crm-v3__get_invoices({ status: [1,4] }) // Unpaid + Overdue +2. Calcular totais +3. Mostrar resumo +``` + +**Output:** + +```markdown +## 💰 Facturação + +### Pendentes (3) +| # | Cliente | Valor | Vencimento | +|---|---------|-------|------------| +| INV-2026-045 | TechCorp | €2.500 | 10/02 | +| INV-2026-044 | StartupX | €1.800 | 15/02 | + +### Vencidas (1) +| # | Cliente | Valor | Dias | +|---|---------|-------|------| +| INV-2026-040 | OldClient | €950 | 15 dias | + +### Totais +- Pendente: €4.300 +- Vencido: €950 +- **A receber:** €5.250 +``` + +--- + +### /invoice create + +``` +1. mcp__desk-crm-v3__search_customers({ query: client }) +2. Se não encontrar: "Cliente não encontrado" +3. Perguntar itens: + - Descrição + - Quantidade + - Valor unitário +4. Calcular subtotal + IVA (23%) +5. mcp__desk-crm-v3__create_invoice({ + client_id: client_id, + items: [...], + tax_id: 1, // IVA 23% + status: 1 + }) +6. "Factura #X criada (€Y). Enviar ao cliente? [Sim/Não]" +``` + +--- + +### /invoice from-estimate + +``` +1. mcp__desk-crm-v3__get_estimate({ estimate_id: id }) +2. Verificar status = 4 (Aceite) + - Se não aceite: "Estimate não aceite. Não é possível converter." +3. Mostrar detalhes do estimate +4. "Converter estimate #X para factura? [Sim/Não]" +5. mcp__desk-crm-v3__convert_estimate_to_invoice({ estimate_id: id }) +6. "Factura #Y criada. Enviar? [Sim/Não]" +``` + +--- + +### /invoice from-timesheets + +``` +1. mcp__desk-crm-v3__get_project({ project_id }) +2. mcp__desk-crm-v3__get_timesheets_advanced({ + project_id: project_id, + billed: false + }) +3. Calcular total horas × rate do projecto +4. Mostrar resumo: + - Horas: Xh + - Rate: €Y/h + - Total: €Z +5. "Criar factura de €Z? [Sim/Não]" +6. mcp__desk-crm-v3__create_invoice({ + client_id: project.client_id, + items: [{ description: "Horas - Projecto X", qty: hours, rate: rate }] + }) +7. mcp__desk-crm-v3__bulk_mark_billed({ timesheet_ids: [...] }) +8. "Factura #Y criada. Timesheets marcados como facturados." +``` + +--- + +### /invoice send + +``` +1. mcp__desk-crm-v3__get_invoice({ invoice_id: id }) +2. Verificar dados do cliente (email) +3. "Enviar factura #X para [email]? [Sim/Não]" +4. Marcar como enviada (status: 2) +5. Confirmar envio +``` + +--- + +### /invoice payment + +``` +1. mcp__desk-crm-v3__get_invoice({ invoice_id: id }) +2. Mostrar: Total €X, Pago €Y, Falta €Z +3. Perguntar: + - Valor pago + - Data pagamento + - Método (Transferência, MB, PayPal, etc.) +4. mcp__desk-crm-v3__process_payment({ + invoice_id: id, + amount: valor, + payment_date: data, + payment_mode: metodo + }) +5. Confirmar: "Pagamento de €V registado. Saldo: €S" +``` + +--- + +### /invoice overdue + +``` +1. mcp__desk-crm-v3__overdue_invoices_report() +2. Ordenar por dias de atraso +3. Mostrar lista com opções +``` + +**Output:** + +```markdown +## ⚠️ Facturas Vencidas (3) + +| # | Cliente | Valor | Dias | Contacto | +|---|---------|-------|------|----------| +| INV-040 | OldClient | €950 | 15 | joao@old.pt | +| INV-038 | SlowPay | €2.100 | 22 | maria@slow.pt | +| INV-035 | LateInc | €750 | 30 | admin@late.pt | + +**Total vencido:** €3.800 + +Acções: +- [Enviar lembrete a todos] +- [Ver detalhes de #X] +``` + +--- + +## Status Invoices + +| ID | Status | +|----|--------| +| 1 | Unpaid (não paga) | +| 2 | Paid (paga) | +| 3 | Partially Paid (parcial) | +| 4 | Overdue (vencida) | +| 5 | Cancelled (cancelada) | + +--- + +## Workflow Completo: Estimate → Invoice → Payment + +``` +1. Estimate aceite pelo cliente (status: 4) +2. /invoice from-estimate +3. /invoice send +4. Cliente paga +5. /invoice payment +6. Factura fechada (status: 2) +``` + +--- + +## Workflow: Facturar Timesheets Mensais + +``` +1. Final do mês +2. /invoice from-timesheets +3. Revê horas e valores +4. Confirma criação +5. Timesheets marcados como facturados +6. /invoice send +``` + +--- + +## IVA (Portugal) + +| Taxa | Uso | +|------|-----| +| 23% | Serviços gerais (default) | +| 13% | Alimentação | +| 6% | Bens essenciais | + +--- + +## Anti-Patterns + +- **NUNCA** converter estimate não-aceite +- **NUNCA** criar factura sem confirmar valores +- **NUNCA** enviar factura sem verificar dados cliente +- **NUNCA** registar pagamento sem confirmar valor + +--- + +## Integração + diff --git a/crm-ops/skills/log.md b/crm-ops/skills/log.md new file mode 100644 index 0000000..66e9c4d --- /dev/null +++ b/crm-ops/skills/log.md @@ -0,0 +1 @@ +## 2026-06-30 init | Estrutura padrão diff --git a/crm-ops/skills/orcamento/SKILL-light.md b/crm-ops/skills/orcamento/SKILL-light.md new file mode 100644 index 0000000..b450495 --- /dev/null +++ b/crm-ops/skills/orcamento/SKILL-light.md @@ -0,0 +1,151 @@ +--- +name: orcamento +description: Criação de orçamentos Descomplicar baseados nos itens oficiais do Desk CRM. Versão light para heartbeats. +disable-model-invocation: true +layer: wiki +--- + +# Orçamento — Referência Rápida + +## Fonte de verdade: Desk CRM (`tblitems` + `tblitems_groups`) + +651 itens em 14 grupos. Consultar SEMPRE o CRM para preços actualizados. + +## Sintaxe + +``` +/orcamento [cliente] [tipo] [-MEN|-TRI] +``` + +| Código | Tipo | Grupo CRM | +|--------|------|-----------| +| `starter` | StarterWP | Websites | +| `corporate` | CorporateWP | Websites | +| `care` | CareWP | Websites | +| `ecom` | eCommerceWP | Websites | +| `mkt` | Marketing 360 | Marketing | +| `man` | Manutenção | Suporte | +| `deskcrm` | DeskCRM | DeskCRM | +| `chatbot` | Chatbot | Chatbots | +| `acceleratorx` | AcceleratorX | Tecnologia | + +## Variantes de facturação + +| Flag | Unit | Pesquisa CRM | +|------|------|-------------| +| (nenhum) | ano | Item base | +| `-MEN` | mensalidade | `WHERE description LIKE 'Mensalidade%...'` | +| `-TRI` | trimestral | `WHERE description LIKE 'Trimestral%...'` | + +Preços das variantes são definidos no CRM (podem incluir markup). Nunca calcular por divisão simples. + +## Protocolo + +### 1. Identificar cliente + +``` +mcp__desk-crm-v3__search_customers query="[nome]" fields="company,vat" +``` + +### 2. Consultar preços + +```bash +# Itens base (setup/pontuais) +mysql -u root ealmeida_desk24 -e " + SELECT description, rate, unit FROM tblitems + WHERE group_id = [GROUP_ID] + AND description LIKE '%[PACOTE]%' + AND unit NOT IN ('mensalidade','trimestral','anuidade') + ORDER BY description;" + +# Itens recorrentes (com variante) +mysql -u root ealmeida_desk24 -e " + SELECT description, rate, unit FROM tblitems + WHERE group_id = [GROUP_ID] + AND description LIKE '[Mensalidade|Trimestral]%[PACOTE]%' + ORDER BY description;" +``` + +Ou via MCP: +``` +mcp__desk-crm-v3__price_management action="get_pricing_insights" params={"group": "[GRUPO]"} +``` + +### 3. Criar estimate + +``` +mcp__desk-crm-v3__create_estimate + client_id=[id] + date=[hoje] + expiry_date=[hoje + 30 dias] + items=[{description, qty, rate, unit}] + terms="[termos]" +``` + +**Formato item:** `{"description": "...", "qty": 1, "rate": 700, "unit": "un"}` + +**Unidades:** `un` (pontual), `mensalidade` (-MEN), `trimestral` (-TRI), `anuidade` (defeito) + +### 4. Termos por variante + +- **Sem flag:** "50% na adjudicação + 50% na entrega" +- **-MEN:** "Setup: 50%+50% | Recorrência: facturação mensal antecipada" +- **-TRI:** "Setup: 50%+50% | Recorrência: facturação trimestral antecipada" + +## Preços de referência (consultar CRM para valores reais) + +### Websites + +| Produto | Setup | Anuidade | +|---------|-------|----------| +| StarterWP | 700 | 250 | +| CorporateWP | 900 | 299 | +| eCommerceWP | 1100 | 349 | +| CareWP | 1300 | 350 | + +### DeskCRM + +| Produto | Anuidade | +|---------|----------| +| Starter | 400 | +| Profissional | 800 | +| Avançado | 1500 | +| Enterprise | 3000 | + +### AcceleratorX + +| Produto | Setup | +|---------|-------| +| WP ProCMS | 650 | +| e-Commerce | 750 | +| Care | 750 | +| School Manager | 850 | + +### Chatbots + +| Produto | Setup | +|---------|-------| +| Básico | 350 | +| Avançado | 850 | + +## Checklist + +- [ ] Cliente identificado/criado no CRM +- [ ] Tipo seleccionado +- [ ] Preços consultados no CRM +- [ ] Valores calculados (subtotal + IVA 23%) +- [ ] Recorrência calculada +- [ ] Estimate criado (status: Draft) +- [ ] Resumo apresentado + +## MCPs + +``` +mcp__desk-crm-v3__search_customers +mcp__desk-crm-v3__create_customer +mcp__desk-crm-v3__create_estimate +mcp__desk-crm-v3__price_management +``` + +--- +**Versão**: 4.1.0-light | **Base**: 4.1.0 diff --git a/crm-ops/skills/orcamento/SKILL.md b/crm-ops/skills/orcamento/SKILL.md new file mode 100644 index 0000000..393b1eb --- /dev/null +++ b/crm-ops/skills/orcamento/SKILL.md @@ -0,0 +1,118 @@ +--- +name: orcamento +description: Criação sistemática de orçamentos Descomplicar baseados nos itens oficiais do Desk CRM. Suporta StarterWP, CorporateWP, CareWP, eCommerceWP, Marketing 360, Manutenção, AcceleratorX, DeskCRM e Chatbots. Variantes -MEN (mensal) e -TRI (trimestral). +disable-model-invocation: true +layer: wiki +--- + +# Skill /orcamento - Criacao Sistematica de Orcamentos + +Skill para criar orcamentos profissionais baseados nos itens oficiais do Desk CRM, com integracao directa ao CRM. + +## Fonte de Verdade + +**IMPORTANTE**: A fonte de verdade para precos e servicos e o Desk CRM (`tblitems` + `tblitems_groups`). + +- **651 itens** em **14 grupos**: Websites, DeskCRM, Licencas, Tecnologia, Servicos, Chatbots, Marketing, Suporte, Comunicacao, Design, Estrategia, Mobile, IA, Alojamento +- Cada servico pode ter variantes de facturacao: Investimento, Anuidade, Trimestral, Mensalidade +- Os precos no CRM sao actualizados pela equipa e reflectem-se automaticamente nos orcamentos + +### Grupos de Itens (tblitems_groups) + +| ID | Grupo | Total Itens | Tipo Principal | +|----|-------|-------------|----------------| +| 1 | Websites | 183 | Pacotes WP + funcionalidades + anuidades | +| 14 | DeskCRM | 127 | Pacotes CRM + modulos | +| 8 | Licencas | 108 | Plugins WP + renovacoes | +| 3 | Tecnologia | 63 | AcceleratorX + WhatSMS | +| 2 | Servicos | 62 | Packs de horas | +| 13 | Chatbots | 46 | Chatbots + integracoes | +| 4 | Marketing | 34 | Packs SEO, Email, Ads | +| 9 | Suporte | 8 | Bancos de horas | +| 5 | Comunicacao | 5 | Packs copywriting | +| 6 | Design | 5 | Branding | +| 7 | Estrategia | 5 | Consultoria, coaching | +| 10 | Mobile | 3 | App React Native | +| 12 | IA | 2 | Agentes virtuais | +| 11 | Alojamento Web | — | Incluido nos websites | + +### Como Consultar Itens + +``` +# Listar itens por grupo +mcp__desk-crm-v3__price_management action="get_pricing_insights" params={"group": "Websites"} + +# Pesquisar item especifico via SQL (ssh server) +mysql -u root ealmeida_desk24 -e " + SELECT i.description, i.rate, i.unit, g.name as grupo + FROM tblitems i + JOIN tblitems_groups g ON i.group_id = g.id + WHERE i.description LIKE '%StarterWP%' + ORDER BY i.description;" + +# Listar todos os itens de um grupo (ex: grupo 1 = Websites) +mysql -u root ealmeida_desk24 -e " + SELECT i.description, i.rate, i.unit + FROM tblitems i + WHERE i.group_id = 1 + AND i.unit NOT IN ('mensalidade','trimestral','anuidade') + ORDER BY i.description;" +``` + +### Variantes de Facturacao + +Cada servico recorrente tem 4 variantes no CRM. Por defeito, o estimate usa o **item base**. Com os flags `-MEN` ou `-TRI`, os itens recorrentes sao incluidos directamente na variante pretendida. + +| Tipo | Sufixo no CRM | Flag | Quando usar | +|------|---------------|------|-------------| +| Investimento/Projeto | (sem sufixo) | (nenhum) | Projectos unicos | +| Anuidade | "Anuidade ..." | (nenhum) | Servicos com renovacao anual | +| Trimestral | "Trimestral ..." | `-TRI` | Cliente quer facturacao trimestral | +| Mensalidade | "Mensalidade ..." | `-MEN` | Cliente quer facturacao mensal | + +**Regra por defeito** (sem flag): No estimate, incluir o item base. Ao converter para invoice, seleccionar a variante de facturacao acordada. + +**Regra com flag `-MEN` ou `-TRI`**: Pesquisar itens recorrentes pela variante correspondente (prefixo "Mensalidade ..." ou "Trimestral ..."). Itens pontuais (setup, configuracao) mantêm-se inalterados. Apenas itens com unit "anuidade" sao substituidos pela variante equivalente. + +### Mapeamento de Variantes + +Ao usar `-MEN` ou `-TRI`, para cada item recorrente (unit = "anuidade"): + +1. Pesquisar no CRM o item equivalente com o prefixo da variante: + - `-MEN`: `WHERE description LIKE 'Mensalidade %' AND description LIKE '%[NOME_ITEM]%'` + - `-TRI`: `WHERE description LIKE 'Trimestral %' AND description LIKE '%[NOME_ITEM]%'` +2. Se encontrado, usar o preco e unit da variante +3. Se nao encontrado, manter item base e avisar o utilizador + +**Calculo de valores com variantes:** + +| Flag | Unit no estimate | Qty | Calculo | +|------|-----------------|-----|---------| +| (nenhum) | `ano` | 1 | Valor anual | +| `-TRI` | `trimestral` | 1 | Valor trimestral (tipicamente anuidade / 4 * 1.05-1.10) | +| `-MEN` | `mensalidade` | 1 | Valor mensal (tipicamente anuidade / 12 * 1.10-1.15) | + +**Nota**: Os precos das variantes sao definidos no CRM e podem incluir markup sobre o valor anual. Consultar SEMPRE o CRM, nunca calcular por divisao simples. + +## Quando Usar + +- Criar orcamento para cliente novo ou existente +- Gerar proposta comercial (estimate) +- Consultar precos oficiais de produtos/servicos +- Calcular valores com IVA e anuidades +- Integrar orcamento directamente no CRM + +## Quando NAO Usar + +- Para analise estrategica de lead (usar /lead-approach) +- Para operacoes CRM genericas (usar /crm-ops) + +--- + +## Contexto NotebookLM + +ANTES de executar, consultar notebooks para contexto especializado: + +| Notebook | ID | Consultar quando | +|----------|-----|-----------------| +| Estratégia e Empreendedorismo | 7 \ No newline at end of file diff --git a/crm-ops/skills/orcamento/references/pricing-guide.md b/crm-ops/skills/orcamento/references/pricing-guide.md new file mode 100644 index 0000000..6427d63 --- /dev/null +++ b/crm-ops/skills/orcamento/references/pricing-guide.md @@ -0,0 +1,193 @@ +# Tabela de Preços Oficial Descomplicar® + +Referência oficial para orçamentação - Fonte: Orçamentador Web Sites + +## 1. Websites Base + +| Produto | Configuração | Anuidade | Prazo | Descrição | +|---------|--------------|----------|-------|-----------| +| **StarterWP** | 700€ | 250€ | 3-5 sem | Pequenas empresas, presença online básica | +| **CorporateWP** | 900€ | 299€ | 4-6 sem | Empresas médias/grandes, solução robusta | +| **eCommerceWP** | 1.100€ | 349€ | 7-9 sem | Loja online completa | +| **ChallengeWP** | 700€ | 250€ | 8-10 sem | Websites fora do padrão, interactivos | +| **CareWP** | 1.300€ | 350€ | 4-6 sem | Clínicas e consultórios | + +## 2. Infraestrutura + +| Item | Valor | +|------|-------| +| Registo de Domínio | 20€/ano | +| Alojamento Premium SSD NVMe | 100€/ano | + +## 3. Importação de Conteúdos + +| Tipo | De WP | Outras Fontes | +|------|-------|---------------| +| Artigos | 35€ | 75€ | +| Multimédia | 35€ | 75€ | +| Utilizadores | 35€ | 75€ | +| Produtos | 35€ | 75€ | +| Encomendas | 35€ | 75€ | + +## 4. Criação de Conteúdos + +| Tipo | Criar Página | Produção Conteúdo | +|------|--------------|-------------------| +| Artigos | 50€ | 50€ | +| Produtos | 50€ | 50€ | +| Serviços | 50€ | 50€ | +| Colaboradores | 50€ | 50€ | +| Parceiros | 50€ | 50€ | +| Clientes | 50€ | 50€ | +| Representantes | 50€ | 50€ | +| Portfólios | 50€ | 50€ | +| Downloads | 50€ | 50€ | +| Formulários Simples | 50€ | 50€ | + +## 5. Funcionalidades de Gestão + +| Funcionalidade | Instalação | Configuração | Anuidade | Notas | +|----------------|------------|--------------|----------|-------| +| Finance Control | 75€ | 125€ | 75€ | - | +| EasyAppointment | 55€ | 120€ | 50€ | Agendas | +| EasyBooking | 120€ | 30€ | 50€ | Produtos/Serviços | +| EventManager | 75€ | 90€ | 60€ | Por nº eventos | +| MemberShip | 149€ | 90€ | 100€ | Tipos de membros | +| Support | 90€ | 75€ | 90€ | Nº operadores | + +## 6. Funcionalidades e-Commerce + +| Funcionalidade | Instalação | Configuração | Anuidade | Notas | +|----------------|------------|--------------|----------|-------| +| CommerceMail | 50€ | 50€ | 50€ | - | +| CartRecovery | 90€ | 100€ | 90€ | - | +| MarketPlace | - | 150€ | - | Por revendedor | +| Wholesale | - | 150€ | 129€ | Tipos de clientes | +| ShopBuilder | - | 5€ | - | Por produto | +| Tratamento Imagens | - | 10€ | - | Por imagem | +| Config Pagamento | - | 50€ | - | Por gateway | +| Config Transportador | - | 50€ | - | Por transportador | +| Config Preço Transporte | - | 50€ | - | - | +| Config Tracking | - | 50€ | - | Por transportador | +| Filtros Inteligentes | - | 50€ | - | - | + +## 7. Funcionalidades Marketing + +| Funcionalidade | Instalação | Configuração | Anuidade | Notas | +|----------------|------------|--------------|----------|-------| +| AutoCRM | - | 60€ | - | Autoresponder | +| AutoCRM PRO | 100€ | 75€ | 90€ | Campanhas | +| SmartSEO | - | 25€ | - | Por artigo | +| Analytics | - | 75€ | - | Conversões | +| Engage | - | 60€ | - | Forms + autoresponder | +| Forms Simples | - | 35€ | - | - | +| Forms Inteligentes | - | 150€ | - | - | + +## 8. Funcionalidades Conteúdo + +| Funcionalidade | Instalação | Configuração | Anuidade | Notas | +|----------------|------------|--------------|----------|-------| +| AIssistant PRO | 60€ | 50€ | 60€ | Config personalizadas | +| Docs | - | 50€ | 50€ | Áreas documentação | +| PodCaster | - | 50€ | 60€ | Canais distribuição | +| ImageBanker | - | 20€ | - | Fontes imagens | + +## 9. Funcionalidades Design + +| Funcionalidade | Configuração | Notas | +|----------------|--------------|-------| +| MegaMenu | 50€ | Por área | +| MyLabel | 100€ | Personalização BackOffice | + +## 10. Ferramentas e Segurança + +| Funcionalidade | Configuração | Anuidade | Notas | +|----------------|--------------|----------|-------| +| SMTP | 50€ | - | Config envio | +| Integrator | 50€ | - | Integrações | +| Backup | 50€ | - | Regras backup | +| Defender | 50€ | - | Regras personalizadas | +| Hideout | 50€ | 50€ | Sistemas a ocultar | + +## 11. Performance + +| Funcionalidade | Configuração | Anuidade | +|----------------|--------------|----------| +| Speed | 50€ | 50€ | +| Compress (CloudFlare) | 35€ | - | +| PluginManager | 35€ | - | + +## 12. Outras Funcionalidades + +| Funcionalidade | Configuração | Anuidade | +|----------------|--------------|----------| +| Botão WhatsApp | 25€ | - | +| Chat da Página | 50€ | 50€ | +| Pixel Facebook | 25€ | - | +| GTM | 25€ | - | +| Perguntas Frequentes | 50€ | 45€ | +| Testemunhos Internos | 50€ | 45€ | +| Testemunhos Google | 50€ | - | +| Partilha Redes Sociais | 75€ | 65€ | +| Feed Redes Sociais | 50€ | - | + +--- + +## Fórmulas de Cálculo + +### Website Simples +``` +Total = Base + Funcionalidades + Conteúdos +Anuidade = Anuidade_Base + Anuidades_Funcionalidades +``` + +### Exemplo: Website Corporativo com Agendamento +``` +CorporateWP: 900€ +EasyAppointment: 55€ + 120€ = 175€ +Chat: 50€ +Pixel + GTM: 50€ +--------------------------------- +Subtotal: 1.175€ +IVA 23%: 270,25€ +TOTAL: 1.445,25€ + +Anuidade: 299€ + 50€ + 50€ = 399€ +``` + +### Exemplo: E-commerce com 50 Produtos +``` +eCommerceWP: 1.100€ +ShopBuilder (50 prod): 250€ +Config Pagamento: 50€ +Config Transportador: 50€ +CartRecovery: 90€ + 100€ = 190€ +--------------------------------- +Subtotal: 1.640€ +IVA 23%: 377,20€ +TOTAL: 2.017,20€ + +Anuidade: 349€ + 90€ = 439€ +``` + +--- + +## Notas Importantes + +1. **IVA**: Todos os valores são líquidos. Acresce IVA 23%. + +2. **Anuidade**: Inclui hosting, SSL, actualizações e suporte básico. + +3. **Pagamento**: + - 50% na adjudicação + - 50% na entrega + +4. **Validade**: Orçamentos válidos por 30 dias. + +5. **Personalização**: Projectos fora do standard requerem orçamento específico. + +--- + +**Descomplicar® Crescimento Digital** +NIF: 514 623 168 | descomplicar.pt +Última actualização: Janeiro 2025 diff --git a/crm-ops/skills/orcamento/templates/e-commerce.md b/crm-ops/skills/orcamento/templates/e-commerce.md new file mode 100644 index 0000000..6e1b08a --- /dev/null +++ b/crm-ops/skills/orcamento/templates/e-commerce.md @@ -0,0 +1,171 @@ +# Template: E-commerce + +## Produto Base + +### eCommerceWP (1.100€ + 349€/ano) +Solução completa para lojas online. + +**Incluído:** +- Sistema e-commerce completo (WooCommerce) +- Até 20 produtos iniciais +- Gestão de stock +- Pagamentos online básicos +- Gestão de entregas +- SEO e-commerce +- Hosting Premium SSD NVMe (30GB) +- SSL E-commerce dedicado +- Domínio (.pt ou .com) +- Suporte 90 dias + +**Prazo:** 7-9 semanas + +--- + +## Configuração de Produtos + +| Item | Valor | Notas | +|------|-------|-------| +| ShopBuilder | 5€/produto | Inserção de produtos | +| Tratamento Imagens | 10€/imagem | Optimização imagens | + +### Pacotes de Produtos + +| Quantidade | Valor | Economia | +|------------|-------|----------| +| 20 produtos | Incluído | - | +| 50 produtos | 150€ | - | +| 100 produtos | 280€ | 12% | +| 200 produtos | 500€ | 17% | +| 500 produtos | 1.000€ | 20% | + +--- + +## Funcionalidades E-commerce + +| Funcionalidade | Instalação | Config | Anuidade | Notas | +|----------------|------------|--------|----------|-------| +| Config Gateway Pagamento | - | 50€ | - | MB Way, Multibanco, Visa | +| Config Transportador | - | 50€ | - | CTT, DPD, GLS, etc | +| Config Preço Transporte | - | 50€ | - | Regras de portes | +| Config Tracking | - | 50€ | - | Por transportador | +| Filtros Inteligentes | - | 50€ | - | Filtros de pesquisa | +| CommerceMail | 50€ | 50€ | 50€ | Emails automáticos | +| CartRecovery | 90€ | 100€ | 90€ | Recuperação carrinhos | +| MarketPlace | - | 150€ | - | Multi-vendedor | +| Wholesale | - | 150€ | 129€ | Preços B2B | + +--- + +## Funcionalidades Adicionais + +### Marketing E-commerce + +| Funcionalidade | Instalação | Config | Anuidade | +|----------------|------------|--------|----------| +| AutoCRM PRO | 100€ | 75€ | 90€ | +| SmartSEO | - | 25€/artigo | - | +| Analytics | - | 75€ | - | +| Engage | - | 60€ | - | + +### Suporte e Ferramentas + +| Funcionalidade | Config | Anuidade | +|----------------|--------|----------| +| Chat da Página | 50€ | 50€ | +| Botão WhatsApp | 25€ | - | +| Pixel Facebook | 25€ | - | +| GTM | 25€ | - | +| FAQ | 50€ | 45€ | + +--- + +## Questões de Personalização + +1. **Número de produtos**: Quantos produtos iniciais? +2. **Gateways pagamento**: MB Way? Multibanco? Visa? PayPal? +3. **Transportadoras**: CTT? DPD? GLS? Outras? +4. **Funcionalidades extras**: Recuperação de carrinhos? Wholesale? +5. **Marketplace**: Multi-vendedor? +6. **Migração**: Existe loja actual? Dados a migrar? + +--- + +## Importação de Dados + +| Tipo | De WP | Outras Fontes | +|------|-------|---------------| +| Produtos | 35€ | 75€ | +| Encomendas | 35€ | 75€ | +| Utilizadores | 35€ | 75€ | + +--- + +## Exemplos de Orçamento + +### E-commerce Básico (50 produtos) + +``` +eCommerceWP (base): 1.100€ +ShopBuilder (30 extra x 5€): 150€ +Config Pagamento (MB+Visa): 100€ +Config Transportador (CTT): 50€ +Pixel Facebook + GTM: 50€ +----------------------------------------- +Subtotal: 1.450€ +IVA 23%: 333,50€ +TOTAL: 1.783,50€ + +Anuidade: 349€/ano +``` + +### E-commerce Completo (100 produtos) + +``` +eCommerceWP (base): 1.100€ +ShopBuilder (80 extra x 5€): 400€ +Config Pagamento (3 gateways): 150€ +Config Transportador (2): 100€ +Config Tracking (2): 100€ +CartRecovery (90+100): 190€ +CommerceMail (50+50): 100€ +Chat + WhatsApp: 75€ +Pixel + GTM: 50€ +----------------------------------------- +Subtotal: 2.265€ +IVA 23%: 520,95€ +TOTAL: 2.785,95€ + +Anuidade: 349€ + 90€ + 50€ = 489€/ano +``` + +--- + +## Items JSON para API + +### E-commerce Básico +```json +[ + {"description": "eCommerceWP - Loja Online Completa", "qty": 1, "rate": 1100, "unit": "un"}, + {"description": "ShopBuilder - Inserção de Produtos (30 extra)", "qty": 30, "rate": 5, "unit": "un"}, + {"description": "Configuração Gateway Pagamento (MB+Visa)", "qty": 2, "rate": 50, "unit": "un"}, + {"description": "Configuração Transportador (CTT)", "qty": 1, "rate": 50, "unit": "un"}, + {"description": "Pixel Facebook + GTM", "qty": 1, "rate": 50, "unit": "un"}, + {"description": "Anuidade (hosting + suporte)", "qty": 1, "rate": 349, "unit": "ano"} +] +``` + +### E-commerce Completo +```json +[ + {"description": "eCommerceWP - Loja Online Completa", "qty": 1, "rate": 1100, "unit": "un"}, + {"description": "ShopBuilder - Inserção de Produtos (80 extra)", "qty": 80, "rate": 5, "unit": "un"}, + {"description": "Configuração Gateways Pagamento", "qty": 3, "rate": 50, "unit": "un"}, + {"description": "Configuração Transportadoras", "qty": 2, "rate": 50, "unit": "un"}, + {"description": "Configuração Tracking Portes", "qty": 2, "rate": 50, "unit": "un"}, + {"description": "CartRecovery - Recuperação de Carrinhos", "qty": 1, "rate": 190, "unit": "un"}, + {"description": "CommerceMail - Emails Automáticos", "qty": 1, "rate": 100, "unit": "un"}, + {"description": "Chat da Página + WhatsApp", "qty": 1, "rate": 75, "unit": "un"}, + {"description": "Pixel Facebook + GTM", "qty": 1, "rate": 50, "unit": "un"}, + {"description": "Anuidade (hosting + suporte + CartRecovery + CommerceMail)", "qty": 1, "rate": 489, "unit": "ano"} +] +``` diff --git a/crm-ops/skills/orcamento/templates/manutencao.md b/crm-ops/skills/orcamento/templates/manutencao.md new file mode 100644 index 0000000..f3f4960 --- /dev/null +++ b/crm-ops/skills/orcamento/templates/manutencao.md @@ -0,0 +1,153 @@ +# Template: Manutenção + +## Avença Manutenção + +Baseado em orçamentos reais aceites (ex: IGV IgnitionVortex). + +### Manutenção Mensal (150€/mês) + +**Incluído:** +- Actualizações WordPress core +- Actualizações de plugins +- Actualizações de tema +- Backups semanais +- Monitorização uptime +- Suporte técnico (2h/mês) +- Relatório mensal + +**Compromisso:** 6 ou 12 meses + +--- + +## Variantes + +### Basic (100€/mês) +- Actualizações mensais +- Backup semanal +- Monitorização básica +- 1h suporte/mês + +### Standard (150€/mês) - **Recomendado** +- Actualizações semanais +- Backup diário +- Monitorização uptime + performance +- Scan malware mensal +- 2h suporte/mês + +### Premium (250€/mês) +- Actualizações prioritárias +- Backup diário + offsite +- Monitorização avançada +- Segurança proactiva (WAF) +- Optimização performance +- 4h suporte/mês + +### Enterprise (400€/mês) +- Actualizações com staging +- Backup contínuo + DR +- Monitorização 24/7 +- Segurança enterprise +- CDN incluído +- 8h suporte/mês +- SLA 4h úteis + +--- + +## Funcionalidades de Segurança + +| Funcionalidade | Config | Anuidade | +|----------------|--------|----------| +| Backup | 50€ | - | +| Defender | 50€ | - | +| Hideout | 50€ | 50€ | +| Speed | 50€ | 50€ | + +--- + +## Funcionalidades de Performance + +| Funcionalidade | Config | Anuidade | +|----------------|--------|----------| +| Speed (CDN) | 50€ | 50€ | +| Compress (CloudFlare) | 35€ | - | +| PluginManager | 35€ | - | + +--- + +## SLA por Variante + +| Variante | Tempo Resposta | Uptime Garantido | +|----------|----------------|------------------| +| Basic | 48h úteis | 99% | +| Standard | 24h úteis | 99.5% | +| Premium | 8h úteis | 99.9% | +| Enterprise | 4h úteis | 99.95% | + +--- + +## Questões de Personalização + +1. **Variante**: Basic, Standard, Premium ou Enterprise? +2. **Tipo de site**: Institucional, blog, e-commerce? +3. **Criticidade**: Tolerância a downtime? +4. **Horas suporte**: Necessidade média mensal? +5. **Segurança extra**: WAF? Scan malware? +6. **Performance**: CDN necessário? + +--- + +## Exemplos de Orçamento + +### Manutenção Standard (6 meses) + +``` +Manutenção Standard: 150€ x 6 = 900€ + +Subtotal: 900€ +IVA 23%: 207€ +TOTAL: 1.107€ + +Facturação: Mensal antecipada +``` + +### Website + Manutenção (combo) + +``` +CorporateWP (base): 900€ +Manutenção 6 meses: 900€ +----------------------------------------- +Subtotal: 1.800€ +IVA 23%: 414€ +TOTAL: 2.214€ + +Anuidade: 299€/ano +``` + +--- + +## Items JSON para API + +### Manutenção Standard (6 meses) +```json +[ + {"description": "Manutenção Standard - Website WordPress", "qty": 6, "rate": 150, "unit": "mes"} +] +``` + +### Website + Manutenção (combo) +```json +[ + {"description": "CorporateWP - Website Corporativo", "qty": 1, "rate": 900, "unit": "un"}, + {"description": "Manutenção Standard (6 meses)", "qty": 6, "rate": 150, "unit": "mes"}, + {"description": "Anuidade (hosting + suporte)", "qty": 1, "rate": 299, "unit": "ano"} +] +``` + +--- + +## Notas + +- Valores baseados no orçamento ORC-88 (IGV) aceite +- Compromisso mínimo recomendado: 6 meses +- Horas extra facturadas a 40€/hora +- Desenvolvimento/alterações não incluído (60€/hora) diff --git a/crm-ops/skills/orcamento/templates/marketing-digital.md b/crm-ops/skills/orcamento/templates/marketing-digital.md new file mode 100644 index 0000000..8a2fb8e --- /dev/null +++ b/crm-ops/skills/orcamento/templates/marketing-digital.md @@ -0,0 +1,128 @@ +# Template: Marketing Digital 360 + +## Avença Marketing 360 + +Baseado em orçamentos reais aceites (ex: SNT Sintricare). + +### Avença Mensal (459€/mês) + +**Incluído:** +- Estratégia de Marketing Digital +- Gestão de orçamento e planeamento +- Gestão Avançada de Redes Sociais (4 posts/mês) +- SEO Avançado +- Análise de Desempenho +- Relatório Mensal +- Reuniões Periódicas +- Pack Combinado 360º (até 10h/mês) + +**Compromisso:** 12 meses +**Desconto compromisso:** 15% (valor original ~540€/mês) + +--- + +## Serviços Adicionais + +### Conteúdo + +| Serviço | Valor | +|---------|-------| +| Podcast mensal (produção completa) | 150€/mês | +| Artigos blog (SEO optimizado) | 25€/artigo | +| Posts extra redes sociais | 15€/post | +| Copywriting (hora) | 65€/hora | + +### Publicidade + +| Serviço | Valor | +|---------|-------| +| Gestão Google Ads | 15% do budget (mín. 150€) | +| Gestão Meta Ads | 15% do budget (mín. 150€) | +| Setup campanhas | 100€/campanha | + +### Email Marketing + +| Serviço | Valor | +|---------|-------| +| AutoCRM PRO (campanhas) | 175€ setup + 90€/ano | +| Newsletter mensal | 60€/envio | + +--- + +## Questões de Personalização + +1. **Redes sociais**: Quais plataformas? (Facebook, Instagram, LinkedIn, TikTok) +2. **Frequência posts**: 4/mês incluído, mais? +3. **Conteúdo**: Podcast? Blog? Vídeos? +4. **Publicidade**: Budget para Ads? +5. **Email marketing**: Necessário? +6. **Horas extra**: Previsão de necessidades além das 10h? + +--- + +## Variantes + +### Essential (350€/mês) +- Gestão 2 redes sociais +- 4 posts/mês +- Relatório mensal básico +- 5h/mês incluídas + +### Growth (459€/mês) - **Recomendado** +- Gestão 3 redes sociais +- 8 posts/mês +- SEO + Analytics +- Relatório detalhado +- 10h/mês incluídas + +### Scale (750€/mês) +- Gestão omni-channel +- 16 posts/mês +- Podcast mensal incluído +- Campanhas Ads incluídas (gestão) +- 20h/mês incluídas + +--- + +## Exemplo de Orçamento + +### Marketing 360 Anual (12 meses) + +``` +Avença Marketing 360: 459€ x 12 = 5.508€ + +Subtotal: 5.508€ +IVA 23%: 1.266,84€ +TOTAL: 6.774,84€ + +Facturação: Mensal antecipada +``` + +--- + +## Items JSON para API + +### Avença Marketing 360 (mensal) +```json +[ + {"description": "Avença 360º Marketing e Comunicação Digital", "qty": 12, "rate": 459, "unit": "mes"} +] +``` + +### Marketing 360 + Website (combo) +```json +[ + {"description": "CorporateWP - Website Corporativo", "qty": 1, "rate": 900, "unit": "un"}, + {"description": "Avença 360º Marketing e Comunicação Digital", "qty": 12, "rate": 459, "unit": "mes"}, + {"description": "Anuidade (hosting + suporte)", "qty": 1, "rate": 299, "unit": "ano"} +] +``` + +--- + +## Notas + +- Valores baseados no orçamento ORC-76 (SNT Sintricare) aceite +- Compromisso mínimo 12 meses com desconto 15% +- Budget de publicidade não incluído nos valores +- Horas extra facturadas a 60€/hora (Combi rate) diff --git a/crm-ops/skills/orcamento/templates/website-corporativo.md b/crm-ops/skills/orcamento/templates/website-corporativo.md new file mode 100644 index 0000000..cac20f6 --- /dev/null +++ b/crm-ops/skills/orcamento/templates/website-corporativo.md @@ -0,0 +1,180 @@ +# Template: Website Corporativo + +## Produtos Base + +### StarterWP (700€ + 250€/ano) +Para pequenas empresas ou empreendedores. + +**Incluído:** +- Até 5 páginas profissionais +- Template Premium optimizado +- Design responsivo +- Formulário de contacto +- SEO básico +- Hosting Premium SSD NVMe +- SSL Let's Encrypt +- Domínio (.pt ou .com) + +**Prazo:** 3-5 semanas + +### CorporateWP (900€ + 299€/ano) +Para empresas médias e grandes. + +**Incluído:** +- Até 10 páginas profissionais +- Template Premium personalizado +- Design responsivo avançado +- Formulários inteligentes +- SEO optimizado +- Hosting Premium SSD NVMe +- SSL Let's Encrypt +- Domínio (.pt ou .com) + +**Prazo:** 4-6 semanas + +### CareWP (1.300€ + 350€/ano) +Para clínicas e consultórios. + +**Incluído:** +- Páginas ilimitadas +- Sistema agendamento integrado +- Gestão de pacientes +- Template especializado saúde +- Conformidade RGPD +- Hosting Premium SSD NVMe +- SSL Healthcare + +**Prazo:** 4-6 semanas + +### ChallengeWP (700€ + 250€/ano) +Para websites fora do padrão convencional. + +**Incluído:** +- Funcionalidades interactivas +- Engajamento de audiência +- Template dinâmico +- Hosting Premium SSD NVMe + +**Prazo:** 8-10 semanas + +--- + +## Funcionalidades Adicionais + +### Gestão + +| Funcionalidade | Instalação | Config | Anuidade | +|----------------|------------|--------|----------| +| Finance Control | 75€ | 125€ | 75€ | +| EasyAppointment (Agendas) | 55€ | 120€ | 50€ | +| EasyBooking (Reservas) | 120€ | 30€ | 50€ | +| EventManager | 75€ | 90€ | 60€ | +| MemberShip | 149€ | 90€ | 100€ | +| Support (Tickets) | 90€ | 75€ | 90€ | + +### Marketing + +| Funcionalidade | Instalação | Config | Anuidade | +|----------------|------------|--------|----------| +| AutoCRM (Autoresponder) | - | 60€ | - | +| AutoCRM PRO (Campanhas) | 100€ | 75€ | 90€ | +| SmartSEO | - | 25€/artigo | - | +| Analytics | - | 75€ | - | +| Engage (Forms + auto) | - | 60€ | - | +| Forms Simples | - | 35€ | - | +| Forms Inteligentes | - | 150€ | - | + +### Conteúdo + +| Funcionalidade | Instalação | Config | Anuidade | +|----------------|------------|--------|----------| +| AIssistant PRO | 60€ | 50€ | 60€ | +| Docs | - | 50€ | 50€ | +| PodCaster | - | 50€ | 60€ | +| ImageBanker | - | 20€ | - | + +### Design + +| Funcionalidade | Config | +|----------------|--------| +| MegaMenu | 50€ | +| MyLabel (BackOffice) | 100€ | + +### Outras + +| Funcionalidade | Config | Anuidade | +|----------------|--------|----------| +| Botão WhatsApp | 25€ | - | +| Chat da Página | 50€ | 50€ | +| Pixel Facebook | 25€ | - | +| GTM | 25€ | - | +| FAQ | 50€ | 45€ | +| Testemunhos Internos | 50€ | 45€ | +| Testemunhos Google | 50€ | - | +| Partilha Redes | 75€ | 65€ | +| Feed Redes | 50€ | - | + +--- + +## Criação de Conteúdos + +| Tipo | Criar Página | Produção | +|------|--------------|----------| +| Artigos | 50€ | 50€ | +| Serviços | 50€ | 50€ | +| Portfólios | 50€ | 50€ | +| Downloads | 50€ | 50€ | + +--- + +## Questões de Personalização + +1. **Produto base**: StarterWP, CorporateWP, CareWP ou ChallengeWP? +2. **Número de páginas**: Quantas páginas além do incluído? +3. **Agendamento**: Precisa de sistema de marcações? +4. **Formulários**: Simples ou inteligentes? +5. **Integrações**: Redes sociais? Analytics? Chat? +6. **Conteúdo**: Cliente fornece ou produção incluída? + +--- + +## Exemplo de Orçamento + +### Website Corporativo com Agendamento + +``` +CorporateWP (base): 900€ +EasyAppointment (55+120): 175€ +Chat da Página: 50€ +Pixel Facebook + GTM: 50€ +Forms Inteligentes: 150€ +----------------------------------------- +Subtotal: 1.325€ +IVA 23%: 304,75€ +TOTAL: 1.629,75€ + +Anuidade: 299€ + 50€ + 50€ = 399€/ano +``` + +--- + +## Items JSON para API + +### StarterWP Base +```json +[ + {"description": "StarterWP - Website Profissional", "qty": 1, "rate": 700, "unit": "un"}, + {"description": "Anuidade (hosting + suporte)", "qty": 1, "rate": 250, "unit": "ano"} +] +``` + +### CorporateWP com Agendamento +```json +[ + {"description": "CorporateWP - Portal Corporativo", "qty": 1, "rate": 900, "unit": "un"}, + {"description": "EasyAppointment - Sistema de Agendamento", "qty": 1, "rate": 175, "unit": "un"}, + {"description": "Chat da Página", "qty": 1, "rate": 50, "unit": "un"}, + {"description": "Pixel Facebook + GTM", "qty": 1, "rate": 50, "unit": "un"}, + {"description": "Anuidade (hosting + suporte + agendamento)", "qty": 1, "rate": 399, "unit": "ano"} +] +``` diff --git a/crm-ops/skills/proposal-deck/SKILL.md b/crm-ops/skills/proposal-deck/SKILL.md new file mode 100644 index 0000000..3974c67 --- /dev/null +++ b/crm-ops/skills/proposal-deck/SKILL.md @@ -0,0 +1,137 @@ +--- +name: proposal-deck +description: Geracao de apresentacoes PPTX de propostas comerciais profissionais com branding Descomplicar. Integra dados do CRM, tabela de precos e template curado de 16 layouts. +layer: wiki +--- + +# Skill /proposal-deck - Apresentacoes de Propostas Comerciais + +Gera apresentacoes PPTX profissionais para propostas comerciais da Descomplicar, usando um template curado com 16 layouts e branding oficial. + +## Triggers + +- `/proposal-deck` +- "proposta", "apresentacao cliente", "deck proposta", "proposta comercial", "apresentacao proposta" + +## Quando Usar + +- Preparar apresentacao visual de proposta para reuniao com cliente +- Criar deck profissional para acompanhar orcamento/estimate +- Gerar proposta completa com branding para envio por email +- Complementar `/orcamento` com material visual + +## Quando NAO Usar + +- Para criar orcamento sem apresentacao (usar `/orcamento`) +- Para analise estrategica de lead (usar `/lead-approach`) +- Para operacoes CRM genericas (usar `/crm-ops`) +- Para apresentacoes sem contexto comercial (usar pptx-generator directamente) + +--- + +## Template + +**Localizacao:** `/media/ealmeida/Dados/Hub/90-Templates/Comercial/descomplicar-proposal-template.pptx` + +### Layouts Disponiveis (16) + +| # | Nome | Funcao | Quando usar | +|---|------|--------|-------------| +| 1 | capa | Titulo da proposta + subtitulo + ano | Sempre (obrigatorio) | +| 2 | divisor-seccao | Fundo escuro com titulo centrado | Entre seccoes principais | +| 3 | sobre-nos | Card texto + imagem lateral | Sempre (quem somos) | +| 4 | objectivos | Fundo escuro + objectivos + logo cliente | Sempre (o que vamos resolver) | +| 5 | processo-3-passos | 3 colunas douradas com texto | Explicar metodologia | +| 6 | fases-3-blocos | 3 blocos numerados verticais | Fases do projecto (3 items) | +| 7 | grid-4-cards | Grid 4 cards com icones | Valores, diferenciais, pilares (4 items) | +| 8 | beneficios-6 | 6 blocos com icones e setas | Beneficios (6 items) | +| 9 | pilares-engrenagens | 4 pilares em engrenagens | Solucao completa (4 pilares) | +| 10 | detalhe-servico | Titulo + features list + foto + CTA | Detalhe de um servico/pack | +| 11 | deliverables | 4 rows dourados com bullets | Lista deliverables/escopo | +| 12 | timeline-etapas | 5 etapas coloridas horizontais | Cronograma/fases com precos | +| 13 | pack-pricing | Checklist com preco e foto | Pack/avenca mensal | +| 14 | resumo-financeiro | Timeline com precos por fase | Resumo valores total | +| 15 | contacto | Foto gestor + dados | Sempre (obrigatorio) | +| 16 | encerramento | Lobo + branding nocturno | Sempre (obrigatorio) | + +### Slides Obrigatorios + +Toda proposta inclui **no minimo**: capa (1) + sobre-nos (3) + objectivos (4) + contacto (15) + encerramento (16). + +--- + +## Scripts PPTX + +**Base path:** `~/.claude/plugins/marketplaces/descomplicar-plugins/design-media/skills/pptx-generator/scripts/` + +| Script | Funcao | +|--------|--------| +| `office/unpack.py` | Descompactar PPTX em XML editavel | +| `office/pack.py` | Recompactar XML em PPTX valido | +| `clean.py` | Limpar XMLs (namespaces, refs orfas) | +| `add_slide.py` | Adicionar slides ao XML | +| `office/validate.py` | Validar estrutura do PPTX | + +--- + +## Protocolo + +### Sintaxe + +``` +/proposal-deck [cliente] [tipo] +``` + +**Parametros:** +- `cliente` - Nome ou ID do cliente (opcional, sera solicitado se omitido) +- `tipo` - Complexidade da proposta (opcional): `minima`, `standard`, `completa` + +### Fase 1: Recolha de Informacao + +1. **Identificar cliente no CRM:** + ``` + mcp__desk-crm-v3__search_customers query="[nome]" fields="company,vat" + mcp__desk-crm-v3__get_customer customer_id=[id] + ``` + +2. **Verificar orcamentos existentes:** + ``` + mcp__desk-crm-v3__get_estimates status="draft" client_id=[id] + ``` + +3. **Consultar tabela de precos** (complementar ao CRM): + - Ficheiro: `/media/ealmeida/Dados/GDrive/Cloud/Descomplicar/Servicos/tabela-geral.csv` + - CRM (fonte de verdade): `mcp__desk-crm-v3__price_management action="get_pricing_insights"` + +4. **Solicitar dados em falta** (se nao disponiveis no CRM): + +| Campo | Obrigatorio | Default | +|-------|:-----------:|---------| +| Nome do cliente | Sim | — | +| Sector/industria | Sim | — | +| Objectivos | Sim | — | +| Servicos a propor | Sim | — | +| Precos | Sim | CRM | +| Prazo estimado | Nao | "a definir" | +| Gestor de conta | Nao | Emanuel Almeida | + +### Fase 2: Seleccao de Layouts + +Seleccionar layouts com base na complexidade e servicos propostos. + +#### Proposta Minima (8 slides) +Para projectos simples, orcamentos rapidos. + +| Ordem | Layout | Conteudo | +|:-----:|--------|----------| +| 1 | capa | "Proposta [Servico]" + nome cliente + ano | +| 2 | sobre-nos | Apresentacao Descomplicar | +| 3 | objectivos | 3-5 objectivos do cliente | +| 4 | processo-3-passos | Metodologia de trabalho | +| 5 | deliverables | O que esta incluido | +| 6 | pack-pricing | Preco + o que inclui | +| 7 | contacto | Dados do gestor | +| 8 | encerramento | Branding Descomplicar | + +#### Proposta Standard (12 slides) +Para projectos \ No newline at end of file diff --git a/crm-ops/skills/proposta-visual/SKILL.md b/crm-ops/skills/proposta-visual/SKILL.md new file mode 100644 index 0000000..949b6d6 --- /dev/null +++ b/crm-ops/skills/proposta-visual/SKILL.md @@ -0,0 +1,121 @@ +--- +name: proposta-visual +description: Criação completa de propostas comerciais visuais — página web (propostas.descomplicar.pt) + PDF exportável + PPTX editável. Recolhe dados CRM, gera JSON, renderiza condicionalmente e faz deploy. +layer: wiki +--- + +# Skill /proposta-visual — Propostas Comerciais Visuais + +Cria propostas comerciais profissionais com 3 outputs: página web interactiva, PDF exportável e PPTX editável. + +## Triggers + +- `/proposta-visual` +- "proposta visual", "proposta web", "criar proposta", "nova proposta", "proposta para [cliente]" + +## Quando usar + +- Criar proposta comercial completa para um cliente +- Gerar página web + PDF + PPTX de uma proposta +- Actualizar proposta existente com novos dados + +## Quando NÃO usar + +- Apenas orçamento sem visual (usar `/orcamento`) +- Apenas PPTX sem página web (usar `/proposal-deck`) +- Análise de lead sem proposta (usar `/lead-approach`) + +--- + +## Projecto base + +| Campo | Valor | +|-------|-------| +| **Código fonte** | `/media/ealmeida/Dados/Dev/Propostas/` | +| **Stack** | React 18 + Vite + Tailwind + @react-pdf/renderer + Recharts + Framer Motion + Lucide React | +| **Live** | `propostas.descomplicar.pt/{slug}` | +| **Deploy** | Docker Swarm EasyPanel, serviço `descomplicar_propostas`, ficheiros `/opt/propostas/` | +| **DNS** | `propostas.descomplicar.pt` → 5.9.90.70 (Cloudflare proxied) | +| **Template PPTX** | `/media/ealmeida/Dados/Hub/90-Templates/Comercial/descomplicar-proposal-template.pptx` | + +--- + +## REGRAS CRÍTICAS (ler antes de qualquer implementação) + +### 1. PT-PT obrigatório — acentos em TODO o texto + +Todos os textos no JSON, componentes web e componentes PDF DEVEM ter acentos PT-PT correctos: +- ✓ migração, tradução, integração, opções, condições, execução, acção +- ✗ migracao, traducao, integracao, opcoes, condicoes, execucao, accao + +**Verificar no PDF:** labels hardcoded em `PDFWorkDone.jsx` e `PDFDocument.jsx` — já corrigidos mas confirmar sempre. + +### 2. JSON data-driven — renderização condicional obrigatória + +O `ProposalView.jsx` e o `PDFDocument.jsx` renderizam secções **condicionalmente** com base nos dados. Se um campo é `null`, `[]` ou não existe, a secção NÃO aparece. + +**Regra:** NUNCA assumir que todos os campos existem. Cada proposta pode ter um subconjunto diferente de secções. + +| Campo JSON | Secção web | Secção PDF | Condição | +|-----------|-----------|-----------|----------| +| `context.brandStrategy` | BrandStrategy | PageBrandStrategy | `!= null` | +| `salesData` | SalesChart | PageSales | `.length > 0` | +| `context.diagnosis` | Context | — | `.length > 0` | +| `context.scores` | ScoreGrid | PDFScores | `.length > 0` | +| `service360` | Service360 | PageService360 | `!= null` | +| `plans` | PricingCards | PDFPricing | `.length > 0` | +| `licenses` | LicensePack | PageLicenses | `!= null` | +| `workDone` | WorkDone | PDFWorkDone | `.length > 0` | +| `roadmap` | Roadmap | PDFWorkDone | `.length > 0` | +| `conditions` | Conditions | PDFWorkDone (pág. separada) | `.length > 0` | + +### 3. Título dinâmico — campo `title` no JSON + +O título da proposta (Hero web + capa PDF) vem do campo `title` no JSON: +- Proposta 360°: `"title": "Descomplicar 360°"` +- Migração técnica: `"title": "Migração Bookeo"` +- Website: `"title": "Website Profissional"` +- Fallback: `"Proposta Comercial"` + +**NUNCA** hardcodar "Descomplicar 360°" — usar `data.title`. + +### 4. Preços flexíveis — não assumir mensalidades + +Os planos suportam dois formatos de preço: + +**Mensalidade (avença):** +```json +{ + "monthly": 459, + "hours": 8, + "originalPrice": 540, + "discount": 15 +} +``` +Mostra: "459 €/mês" + "8h/mês incluídas · contrato anual" + +**Preço único (investimento):** +```json +{ + "price": 750, + "priceLabel": "EUR + IVA", + "priceSubtitle": "Investimento único · prazo 1-2 semanas", + "monthly": null, + "hours": null +} +``` +Mostra: "750 EUR + IVA" + "Investimento único · prazo 1-2 semanas" + +**Campos usados:** `plan.price ?? plan.monthly` para o valor, `plan.priceLabel ?? "€/mês"` para a unidade, `plan.priceSubtitle` para a descrição abaixo. + +### 5. react-pdf — bugs conhecidos e PROIBIÇÕES + +| Proibição | Porquê | Alternativa | +|-----------|--------|-------------| +| `gap` + `flexWrap` juntos | Crasha silenciosamente | `marginRight` + `marginBottom` nos items | +| `borderColor` com `rgba()` | Renderiza verde | Cor sólida (ex: `#D4A020`, `#E8E8E8`) | +| Import de componentes SVG (``, ``) | Crasha web worker do PDFDownloadLink | Implementar gráficos inline com `` | +| `Font.register` com fontes locais/CDN em multi-página | Falha silenciosa | Usar Helvetica/Helvetica-Bold (built-in) | +| `href` vazio no PDFDownloadLink | PDF não gerou — verificar consola | Cache do browser — Ctrl+Shift+R | +| `width: "100%"` em bars/elementos dentro de flex container | Não resolve — fica invisível | Usar `alignSelf: "stretch"` no elemento e no container pai | +| Imagens com path absoluto (`/home/...`) | react-pdf não acede ao filesystem local | Colocar em `public/assets/` e referenciar como `"assets/foto.png"` (s \ No newline at end of file diff --git a/crm-ops/skills/ticket-manage/SKILL.md b/crm-ops/skills/ticket-manage/SKILL.md new file mode 100644 index 0000000..d236c3a --- /dev/null +++ b/crm-ops/skills/ticket-manage/SKILL.md @@ -0,0 +1,150 @@ +--- +name: ticket-manage +description: > + Gestão completa do ciclo de vida de tickets D2 Suporte: criar com campos correctos, atribuir + por prioridade e SLA, escalar quando SLA em risco, fechar com checklist obrigatória. Baseado + em PROC-D2-SUP-001 (Atendimento), SUP-002 (Ticketing Workflow) e SUP-003 (SLA Management). + Usar para: gestão ticket, SLA check, escalar suporte, fechar ticket, atribuir prioridade. +disable-model-invocation: true +layer: wiki +--- + +# /ticket-manage v1.0 — Gestão Integrada de Suporte D2 + +Workflow completo de gestão de tickets segundo os PROCs D2 Suporte (SUP-001/002/003). +Complementa `/ticket` (operações básicas) com gestão de SLA, checklist e escalação automática. + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/ticket-manage` | Dashboard SLA + tickets em risco | +| `/ticket-manage new` | Criar ticket com campos correctos | +| `/ticket-manage assign ` | Atribuir por prioridade e SLA | +| `/ticket-manage sla` | Ver estado SLA todos os tickets abertos | +| `/ticket-manage escalate ` | Escalar com protocolo SUP-001 | +| `/ticket-manage close ` | Fechar com checklist obrigatória | +| `/ticket-manage report` | Relatório semanal SLA (SUP-003) | + +--- + +## Prioridades e SLAs (SUP-003) + +| Prioridade | Código | Primeira Resposta | Resolução | Escalação | +|------------|--------|-------------------|-----------|-----------| +| Crítico | P1 | <1h | <4h | Imediata D7 | +| Funcional | P2 | <2h | <24h | Após 12h sem resolução | +| Dúvida | P3 | <4h | <48h | Após 24h sem resolução | +| Melhoria | P4 | <24h | Próximo sprint | N/A | + +**Mapping Desk CRM:** +| Desk Priority ID | Correspondência | +|-----------------|----------------| +| 4 — Urgente | P1 Crítico | +| 3 — Alta | P2 Funcional | +| 2 — Normal | P3 Dúvida | +| 1 — Baixa | P4 Melhoria | + +--- + +## `/ticket-manage` — Dashboard SLA + +``` +1. mcp__desk-crm-v3__get_tickets({ status: [1,2,3] }) +2. Para cada ticket: + a. Calcular tempo decorrido desde criação/última resposta + b. Comparar com SLA da prioridade + c. Classificar: OK / EM RISCO (<25% SLA restante) / VIOLADO (SLA excedido) +3. Mostrar dashboard agrupado por estado SLA +``` + +**Output:** +```markdown +## 🎫 Dashboard Suporte — [DATA] + +### 🔴 SLA Violado (N) +| # | Prioridade | Cliente | Assunto | Há | SLA | +|---|-----------|---------|---------|-----|-----| +| #234 | P1 Crítico | ClienteA | Downtime servidor | 6h | <4h ❌ | + +### 🟠 Em Risco (<25% restante) +| # | Prioridade | Cliente | Assunto | Há | Restante | +|---|-----------|---------|---------|-----|---------| +| #236 | P2 Funcional | ClienteB | Erro login | 20h | 4h ⚠️ | + +### 🟢 Dentro do SLA +| # | Prioridade | Cliente | Assunto | Há | +|---|-----------|---------|---------|-----| +| #238 | P3 Dúvida | ClienteC | Como configurar X | 2h | + +--- +**Resumo:** X violados | Y em risco | Z OK | Total: W tickets abertos +``` + +--- + +## `/ticket-manage new` — Criar Ticket Correcto + +``` +1. Recolher campos obrigatórios: + - Cliente: pesquisar mcp__desk-crm-v3__get_customers({ search: nome }) OU perguntar ID + - Assunto: descrever o problema + - Descrição completa + - Prioridade: perguntar (P1/P2/P3/P4) ou sugerir baseado no assunto + - Departamento: 1=Suporte Técnico, 2=Vendas, 3=Facturação, 4=Geral + - Origem: Desk CRM, email, WhatsApp + +2. Confirmar antes de criar: + "Criar ticket P[X] para [Cliente] — [Assunto]? [Sim/Cancelar]" + +3. mcp__desk-crm-v3__create_ticket({ + client_id: id, + department_id: dept_id, + priority: priority_id, // 4=Urgente, 3=Alta, 2=Normal, 1=Baixa + subject: assunto, + message: "

[descrição detalhada]

Origem: [origem]

" + }) + +4. Enviar confirmação de recepção ao cliente (se externo): + - P1/P2: "Prioridade máxima. Analisando agora. Actualização em 30min/2h." + - P3: "Recebemos. Resposta em 4h." + - P4: "Registado para próximo sprint." + +5. Output: "Ticket #X criado [P1-Crítico] | SLA: 1h resposta / 4h resolução" +``` + +--- + +## `/ticket-manage assign ` — Atribuir por Prioridade + +``` +1. mcp__desk-crm-v3__get_ticket({ ticket_id: id }) +2. Determinar responsável baseado em categoria: + - Técnico (WP, servidor, código) → D7 Tecnologia + - Billing, factura → D3 / Emanuel + - Comercial, proposta → D1 + - Geral → Support Specialist (staff_id: 25) +3. Se P1: notificar imediatamente (comentário interno + /task urgente) +4. Registar atribuição como comentário interno: + mcp__desk-crm-v3__reply_ticket({ + ticket_id: id, + message: "

Atribuído: [Responsável] | SLA: [prazo] | Prioridade: [P1-P4]

", + internal: true + }) +5. Output: "Ticket #X atribuído a [Responsável] | SLA expira: [data/hora]" +``` + +--- + +## `/ticket-manage sla` — Estado SLA Completo + +``` +1. Recolher todos tickets abertos (status 1, 2, 3) +2. Para cada ticket calcular: + - tempo_decorrido = agora - created_at + - sla_limite = por prioridade (1h/2h/4h/24h para primeira resposta) + - percentagem_usada = tempo_decorrido / sla_limite × 100 +3. Agrupar: VIOLADO (>100%), EM RISCO (75-100%), OK (<75%) +4. Highlight P1 e P2 c \ No newline at end of file diff --git a/crm-ops/skills/ticket-triage/SKILL.md b/crm-ops/skills/ticket-triage/SKILL.md new file mode 100644 index 0000000..4d6763d --- /dev/null +++ b/crm-ops/skills/ticket-triage/SKILL.md @@ -0,0 +1,184 @@ +--- +name: ticket-triage +description: Auto-processamento de tickets abertos no Desk CRM. Fecha SPAM, identifica facturas para /auto-expense e protege notificações de sistema. +disable-model-invocation: true +layer: wiki +--- + +# /ticket-triage v1.0 + +Auto-processamento de tickets abertos no Desk CRM. + +--- + +## Protocolo + +### Passo 1: Recolher tickets abertos + +``` +mcp__desk-crm-v3__get_tickets({ status: 1, limit: 50 }) +``` + +### Passo 2: Carregar tabela de fornecedores + +``` +Read: /media/ealmeida/Dados/Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md +Extrair dominios de fornecedores e plataformas multi-fornecedor +``` + +### Passo 3: Classificar cada ticket + +> Aplicar por ordem de prioridade. Primeiro match ganha. + +``` +Para cada ticket aberto: + +1. NOTIFICACAO SISTEMA? (verificar PRIMEIRO) + Subject contem padrao protegido E remetente conhecido + → NAO fechar. Guardar para "Requer Accao" no output. + +2. DESPESA? (verificar SEGUNDO) + Email do remetente contem dominio de fornecedor conhecido + Subject contem: payment, pagamento, invoice, factura, recibo, receipt, paid, renewed + → Registar no output como factura para /auto-expense + → Fechar ticket (status 5) com nota "Factura flagged para /auto-expense" + +3. SPAM? (verificar TERCEIRO) + → Fechar (status 5) com motivo + +4. NEWSLETTER/INFORMATIVO? + → Fechar (status 5) com motivo + +5. NENHUM MATCH + → Manter aberto para revisao +``` + +### Passo 4: Escrever output JSON + +``` +Escrever em ~/.claude-work/today-tickets-{date}.json: +{ + "spam_fechados": 3, + "newsletters_fechadas": 1, + "facturas": [ + {"ticket_id": 456, "fornecedor": "Anthropic", "subject": "Receipt", "sender": "..."} + ], + "notificacoes": [ + {"ticket_id": 789, "subject": "Security Alert", "sender": "..."} + ], + "mantidos_abertos": 2, + "total_processados": 12 +} +``` + +--- + +## Padroes SPAM (fechar status 5) + +``` +Keywords no subject (case-insensitive): +- Guest Post, SEO services, backlinks, partnership +- link building, dofollow, collaboration opportunity +- Purchase Order (de desconhecidos) +- WeTransfer (phishing), Prestige Awards +- lottery, winner, urgent money, bitcoin +``` + +--- + +## Notificacoes de Sistema (NUNCA auto-fechar) + +``` +Padroes protegidos no subject (case-insensitive): +- Legal Update, Legal Notice, Policy Change, Policy Update +- Deprecation, End of Life, EOL, Breaking Change +- Migration Required, Action Required, Action Needed +- Security Alert, Security Advisory, Security Notice +- API Change, API Update, Terms Update, Terms Change +- Service Disruption, Maintenance Required +- Compliance, GDPR, Data Processing +- Infrastructure Change, Platform Update, Product Update +``` + +--- + +## Tickets a Saltar (NAO criar despesa) + +| Tipo | Indicador | Accao | +|------|-----------|-------| +| Payment Confirmation | "Payment Confirmation" de CWP | Fechar (confirmacao, nao factura) | +| Payment Receipt | "Payment Was Successfully Processed" de elasticemail | Fechar (recibo sem dados) | +| Notificacao bancaria | "Notificacao de transferencia" de bancobpi | Fechar | +| Duplicado | Mesmo subject que ticket ja processado | Fechar como duplicado | + +> **Nota:** Receipts de Anthropic e Canva contem invoice number e valor -> SAO despesas. +> "Receipt" so e motivo para saltar quando e apenas confirmacao sem dados de factura. + +--- + +## Tickets para ELIMINAR (notificacoes sem valor) + +``` +Subject contem: +- "Your Elastic Email Account was successfully re-charged" +- "Account re-charged", "Auto-recharge successful" +- "Credit added to your account" +- "[BOT] Ativacao realizada com sucesso" + +→ mcp__desk-crm-v3__delete_ticket({ ticket_id: ID, confirm: true }) +``` + +--- + +## Remetentes Conhecidos (whitelist facturas) + +> Ver tabela completa em: Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md +> Verificar pelo DOMINIO do email remetente, nao pelo departamento. + +--- + +## Output Standalone + +```markdown +## Triagem Tickets - DD-MM-YYYY + +**Total: X tickets processados** + +### SPAM Fechado (Y) +- #123 - "Guest Post SEO" - spam@dominio.com + +### Facturas Identificadas (Z) +- #456 - "Receipt" - billing@anthropic.com -> /auto-expense + +### Notificacoes Sistema (W) +- #789 - "Security Alert" - noreply@n8n.io -> requer accao + +### Mantidos Abertos (N) +- #012 - "Pedido de suporte" - cliente@empresa.pt +``` + +--- + +## Anti-Patterns + +- NUNCA eliminar tickets de remetentes desconhecidos com facturas +- NUNCA fechar notificacoes protegidas automaticamente +- NUNCA processar despesas directamente (delegar para /auto-expense) +- SEMPRE verificar dominio do remetente na tabela de fornecedores +- SEMPRE usar staff_id: 25 (AikTop) nos comentarios + +--- + +*Skill v1.0.0 | 04-03-2026 | Descomplicar®* + +--- + +## Healing Log + +Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar. + +```jsonl +{"date":"","issue":"","fix":"","source":"user|auto"} +``` + +*Adicionar nova linha após cada erro corrigido.* diff --git a/crm-ops/skills/ticket/SKILL.md b/crm-ops/skills/ticket/SKILL.md new file mode 100644 index 0000000..54c7762 --- /dev/null +++ b/crm-ops/skills/ticket/SKILL.md @@ -0,0 +1,248 @@ +--- +name: ticket +description: Gestão de tickets de suporte Desk CRM. Ver, responder, fechar e escalar tickets. Inclui templates de resposta e integração com /today. +disable-model-invocation: true +layer: wiki +--- + +# /ticket v1.0 - Gestão de Suporte + +Tickets de suporte via Desk CRM: ver, responder, fechar. + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/ticket` | Ver tickets abertos | +| `/ticket view ` | Ver detalhes | +| `/ticket reply ` | Responder | +| `/ticket close ` | Fechar com mensagem | +| `/ticket escalate ` | Converter em tarefa | +| `/ticket create` | Criar ticket interno | + +--- + +## Protocolo + +### /ticket (Listar Abertos) + +``` +1. mcp__desk-crm-v3__get_tickets({ status: [1,2,3] }) // Aberto, Em Progresso, Respondido +2. Ordenar por prioridade, depois por data +3. Mostrar lista +``` + +**Output:** + +```markdown +## 🎫 Tickets Abertos (4) + +### 🔴 Urgentes +| # | Cliente | Assunto | Há | +|---|---------|---------|-----| +| #234 | TechCorp | Erro crítico login | 2h | + +### 🟠 Alta +| # | Cliente | Assunto | Há | +|---|---------|---------|-----| +| #232 | StartupX | Funcionalidade não funciona | 1d | + +### 🟢 Normal +| # | Cliente | Assunto | Há | +|---|---------|---------|-----| +| #230 | ClienteY | Dúvida facturação | 2d | +| #228 | ClienteZ | Pedido alteração | 3d | +``` + +--- + +### /ticket view + +``` +1. mcp__desk-crm-v3__get_ticket({ ticket_id: id }) +2. Mostrar detalhes completos: + - Cliente, contacto + - Assunto, mensagem original + - Histórico de respostas + - Anexos +``` + +**Output:** + +```markdown +## 🎫 Ticket #234 + +### Detalhes +- **Cliente:** TechCorp (#45) +- **Contacto:** João Silva (joao@techcorp.pt) +- **Departamento:** Suporte Técnico +- **Prioridade:** 🔴 Urgente +- **Status:** Aberto +- **Criado:** 2026-02-05 10:30 + +### Mensagem +> Bom dia, desde esta manhã não consigo fazer login no sistema. +> Aparece "Credenciais inválidas" mas a password está correcta. +> Urgente pois preciso aceder hoje. + +### Histórico (2) +**[2026-02-05 11:00] Staff - Emanuel:** +Olá João, vou verificar imediatamente. + +**[2026-02-05 11:15] Cliente - João:** +Obrigado, aguardo. + +### Acções +- [Responder] [Fechar] [Escalar para tarefa] +``` + +--- + +### /ticket reply + +``` +1. mcp__desk-crm-v3__get_ticket({ ticket_id: id }) +2. Mostrar contexto (última mensagem) +3. Pedir resposta ao utilizador +4. Formatar em HTML +5. mcp__desk-crm-v3__reply_ticket({ + ticket_id: id, + message: resposta_html, + status: 3 // Respondido + }) +6. "Resposta enviada. Aguardar resposta cliente? [Sim] ou Fechar? [Fechar]" +``` + +--- + +### /ticket close + +``` +1. mcp__desk-crm-v3__get_ticket({ ticket_id: id }) +2. Mostrar contexto +3. Pedir mensagem de fecho (opcional) +4. mcp__desk-crm-v3__close_ticket({ + ticket_id: id, + message: mensagem_fecho + }) +5. "Ticket #X fechado." +``` + +**Mensagem de fecho default:** + +```html +

Ticket resolvido. Obrigado pelo contacto.

+

Se tiver mais questões, não hesite em abrir novo ticket.

+``` + +--- + +### /ticket escalate + +``` +1. mcp__desk-crm-v3__get_ticket({ ticket_id: id }) +2. Perguntar projecto destino +3. mcp__desk-crm-v3__create_task({ + name: "Ticket #X: [Assunto]", + description: "

Escalado de Ticket #X

[conteúdo]

", + rel_type: "project", + rel_id: project_id, + priority: 3, // Alta + assignees: [25] + }) +4. mcp__desk-crm-v3__reply_ticket({ + ticket_id: id, + message: "

Escalado para tarefa interna #Y para resolução.

", + internal: true // Nota interna + }) +5. mcp__desk-crm-v3__close_ticket({ ticket_id: id }) +6. "Ticket escalado para tarefa #Y no projecto Z." +``` + +--- + +### /ticket create + +``` +1. Perguntar: + - Cliente (pesquisar ou ID) + - Departamento + - Prioridade + - Assunto + - Mensagem +2. mcp__desk-crm-v3__create_ticket({ + client_id: client_id, + department_id: dept_id, + priority: prioridade, + subject: assunto, + message: mensagem_html + }) +3. "Ticket #X criado." +``` + +--- + +## Status Tickets + +| ID | Status | Descrição | +|----|--------|-----------| +| 1 | Aberto | Novo, aguarda resposta staff | +| 2 | Em Progresso | Staff a trabalhar | +| 3 | Respondido | Staff respondeu, aguarda cliente | +| 4 | Em Espera | Pausado | +| 5 | Fechado | Resolvido | + +--- + +## Prioridades + +| ID | Prioridade | SLA | +|----|------------|-----| +| 4 | 🔴 Urgente | <1h | +| 3 | 🟠 Alta | <4h | +| 2 | 🟡 Normal | <12h | +| 1 | 🟢 Baixa | <24h | + +--- + +## Departamentos Comuns + +| ID | Departamento | +|----|--------------| +| 1 | Suporte Técnico | +| 2 | Vendas | +| 3 | Facturação | +| 4 | Geral | + +--- + +## Integração /today + +No checkup diário, mostrar tickets: + +```markdown +## 🎫 Tickets (3) +- 🔴 #234 - Erro login (TechCorp) - 2h +- 🟠 #232 - Bug funcionalidade (StartupX) - 1d +- 🟢 #230 - Dúvida (ClienteY) - 2d +``` + +--- + +## Templates de Resposta + +### Resposta Inicial + +```html +

Olá [Nome],

+

Obrigado pelo contacto. Vou analisar a situação e respondo em breve.

+

Cumprimentos,
Emanuel Almeida

+``` + +### Pedido de Informação + +```html +

Olá [Nome],

+

Para re \ No newline at end of file