feat(crm-ops): adiciona plugin crm-ops (agents, skills, knowledge e metadados do projeto)

This commit is contained in:
2026-10-28 16:08:32 +00:00
parent 83a69e681c
commit 81d1373977
61 changed files with 6037 additions and 0 deletions
+17
View File
@@ -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)
+5
View File
@@ -0,0 +1,5 @@
# CHANGELOG — skills
## 0.1.0 — 2026-06-30
### Adicionado
- Estrutura padrão (PROC-DEV-STANDARD)
+4
View File
@@ -0,0 +1,4 @@
# MEMORY.md — skills
## 2026-06-30
- Estrutura padrão aplicada via propagate-structure.sh
+3
View File
@@ -0,0 +1,3 @@
# skills
Subprojecto skills do ecossistema Descomplicar.
+8
View File
@@ -0,0 +1,8 @@
# STATUS.md — skills
**Versão:** 0.1 | **Data:** 2026-06-30 | **Agente:** —
## Estado actual
- Em curso: —
- Bloqueios: —
- Próximos passos: —
+146
View File
@@ -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: "<reference_no>")
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: "<fornecedor>")
Filtrar: mesmo valor (±0.05) + mesma data (±3 dias)
Se match → NAO criar, registar como duplicado
Camada 2 — Expense name pattern:
get_expenses(search: "<fornecedor> - <reference_no>")
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
+227
View File
@@ -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 ↔
+158
View File
@@ -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
<?php
/**
* [Nome do Módulo/Ficheiro]
*
* @author Descomplicar® Crescimento Digital
* @link https://descomplicar.pt
* @copyright 2025 Descomplicar®
*/
```
## Padrões de Relatórios
Ao gerar relatórios, incluir:
1. **Período**: Data início/fim claramente indicada
2. **Totais**: Agregações relevantes
3. **Top N**: Rankings quando aplicável
4. **Comparação**: Com período anterior se relevante
## Checklist Consultas
- [ ] Usar MCPs para dados reais
- [ ] Validar IDs antes de operações
- [ ] Não expor dados sensíveis
- [ ] Confirmar operações destrutivas
- [ ] Apresentar dados formatados PT-PT
---
## Datasets Dify (Consulta Obrigatória)
Em caso de dúvidas ou para aprofundar conhecimento, consultar os seguintes datasets via MCP:
| Dataset | ID | Prioridade |
|---------|----|-----------:|
| **PerfexCRM** | `43354eb6-f0b2-40cc-aa53-44e375ab347c` | 1 |
| **Vendas** | `a7ba6005-517c-41ab-ac5e-da1c1a1c62ef` | 2 |
| **Gestão** | `22799925-8dc5-4a1f-92b9-233468a5048b` | 2 |
| **Gestão de Processos** | `cae2a27e-f5bc-4d75-8a7a-9f83064f2512` | 3 |
### Como Consultar
```javascript
// Pesquisar funcionalidades Perfex
mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "43354eb6-f0b2-40cc-aa53-44e375ab347c",
query: "modulo facturas automaticas"
})
// Pesquisar técnicas de vendas
mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "a7ba6005-517c-41ab-ac5e-da1c1a1c62ef",
query: "pipeline vendas conversao"
})
```
### Quando Consultar
- Desenvolver módulos Perfex CRM
- Configurar automações de
+224
View File
@@ -0,0 +1,224 @@
---
name: crm
description: Operações CRM unificadas. Leads, customers, proposals, estimates e visão 360 do cliente. Consolida crm-ops e crm-admin com verificação obrigatória de duplicados.
layer: wiki
---
# /crm v2.0 - Operações CRM Unificadas
Consolida /crm-ops + /crm-admin numa única skill com subcomandos.
---
## Contexto NotebookLM
ANTES de executar, consultar notebooks para contexto especializado:
| Notebook | ID | Consultar quando |
|----------|-----|-----------------|
| Perfex CRM: Gestão de Clientes e Projectos | df4688bb | Sempre |
```
mcp__notebooklm__notebook_query({
notebook_id: "df4688bb-c2c0-4aba-98c1-38c3b50a353c",
query: "<adaptar ao contexto do pedido do utilizador>"
})
```
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 <nome>` | Pesquisar/criar lead |
| `/crm customer <nome>` | Pesquisar/ver cliente |
| `/crm convert <lead_id>` | Converter lead → customer |
| `/crm proposal <lead_id>` | Criar proposta para lead |
| `/crm estimate <client_id>` | Criar estimate para cliente |
| `/crm 360 <cliente>` | 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 <nome>
**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 <nome>
```
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 <lead_id>
```
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 <lead_id>
```
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 <client_id>
```
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 <cliente>
```
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 | €
+6
View File
@@ -0,0 +1,6 @@
{
"task_id": null,
"project_id": null,
"customer_id": null,
"gitea_repo": null
}
+232
View File
@@ -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 <desc>` | Criar tarefa no projecto |
| `/desk log <msg>` | 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 <descrição>
```
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: "<p>Criado via /desk task</p>"
})
3. Confirmar: "Tarefa #X criada. Iniciar timer? [Sim/Não]"
4. Se sim: Invocar /time start X
```
---
### /desk log <mensagem>
```
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:
<h4>[DATA] [tipo]: Mensagem</h4>
<p>Detalhes...</p>
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
@@ -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."
}
+115
View File
@@ -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.
#
@@ -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.*
@@ -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 |
@@ -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]"
@@ -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.
@@ -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
@@ -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*
+143
View File
@@ -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: "<reference_no>")
- Se alguma despesa tem reference_no IGUAL → DUPLICADO → PARAR
Camada 1 — Fornecedor + Valor + Data:
- get_expenses(search: "<fornecedor>")
- Mesmo fornecedor + valor (±0.05) + data (±3 dias) = duplicado
Camada 2 — Expense name:
- get_expenses(search: "<fornecedor> - <reference_no>")
- 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/<id>
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
@@ -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)` |
@@ -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
@@ -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
```
+8
View File
@@ -0,0 +1,8 @@
# skills
## Documentação
- [README](README.md)
- [AGENTS](AGENTS.md)
- [STATUS](STATUS.md)
- [MEMORY](MEMORY.md)
+239
View File
@@ -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 <client>` | Criar factura directa |
| `/invoice from-estimate <id>` | Converter estimate aceite |
| `/invoice from-timesheets <project>` | Facturar horas |
| `/invoice send <id>` | Enviar ao cliente |
| `/invoice payment <id>` | 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 <client>
```
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 <id>
```
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 <project>
```
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 <id>
```
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 <id>
```
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 <estimate_id>
3. /invoice send <invoice_id>
4. Cliente paga
5. /invoice payment <invoice_id>
6. Factura fechada (status: 2)
```
---
## Workflow: Facturar Timesheets Mensais
```
1. Final do mês
2. /invoice from-timesheets <project_id>
3. Revê horas e valores
4. Confirma criação
5. Timesheets marcados como facturados
6. /invoice send <id>
```
---
## 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
+1
View File
@@ -0,0 +1 @@
## 2026-06-30 init | Estrutura padrão
+151
View File
@@ -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
+118
View File
@@ -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
@@ -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
@@ -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"}
]
```
@@ -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)
@@ -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)
@@ -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"}
]
```
+137
View File
@@ -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
+121
View File
@@ -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 (`<Svg>`, `<Circle>`) | Crasha web worker do PDFDownloadLink | Implementar gráficos inline com `<View>` |
| `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
+150
View File
@@ -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 <id>` | Atribuir por prioridade e SLA |
| `/ticket-manage sla` | Ver estado SLA todos os tickets abertos |
| `/ticket-manage escalate <id>` | Escalar com protocolo SUP-001 |
| `/ticket-manage close <id>` | 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: "<p>[descrição detalhada]</p><p><strong>Origem:</strong> [origem]</p>"
})
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 <id>` — 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: "<p>Atribuído: [Responsável] | SLA: [prazo] | Prioridade: [P1-P4]</p>",
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
+184
View File
@@ -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.*
+248
View File
@@ -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 <id>` | Ver detalhes |
| `/ticket reply <id>` | Responder |
| `/ticket close <id>` | Fechar com mensagem |
| `/ticket escalate <id>` | 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 <id>
```
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 <id>
```
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 <id>
```
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
<p>Ticket resolvido. Obrigado pelo contacto.</p>
<p>Se tiver mais questões, não hesite em abrir novo ticket.</p>
```
---
### /ticket escalate <id>
```
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: "<h4>Escalado de Ticket #X</h4><p>[conteúdo]</p>",
rel_type: "project",
rel_id: project_id,
priority: 3, // Alta
assignees: [25]
})
4. mcp__desk-crm-v3__reply_ticket({
ticket_id: id,
message: "<p>Escalado para tarefa interna #Y para resolução.</p>",
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
<p>Olá [Nome],</p>
<p>Obrigado pelo contacto. Vou analisar a situação e respondo em breve.</p>
<p>Cumprimentos,<br>Emanuel Almeida</p>
```
### Pedido de Informação
```html
<p>Olá [Nome],</p>
<p>Para re