---
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.
---

# /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 | €15.000 |
| Pagamentos | €12.000 |
| Em aberto | €3.000 |

### 🎫 Suporte
- Tickets abertos: 1
- Tickets total (12m): 8
- Tempo resposta médio: 4h

### 📝 Notas Recentes
- [2026-02-01] Reunião marcada para dia 10
- [2026-01-15] Preferem comunicação por email
```

---

## Status Codes

### Leads
| ID | Status |
|----|--------|
| 1 | Novo |
| 2 | Contactado |
| 3 | Qualificado |
| 4 | Proposta |
| 5 | Ganho (→ Customer) |
| 6 | Perdido |

### Estimates
| ID | Status |
|----|--------|
| 1 | Rascunho |
| 2 | Enviado |
| 3 | Visto |
| 4 | Aceite |
| 5 | Recusado |

### Proposals
| ID | Status |
|----|--------|
| 1 | Draft |
| 2 | Sent |
| 3 | Open |
| 6 | Accepted |

---

## Staff IDs

| ID | Nome | Usar |
|----|------|------|
| 25 | AikTop | **Default** - automático |
| 1 | Emanuel | Comunicação cliente |

---

## Anti-Patterns (NUNCA)

1. **NUNCA** criar lead sem verificar duplicados
2. **NUNCA** criar customer sem confirmação explícita
3. **NUNCA** criar customer automaticamente para estimate
4. **NUNCA** usar estimate para leads (usar proposal)
5. **NUNCA** converter estimate não-aceite para invoice

---

## Migração

Skills descontinuadas:
- `/crm-ops` → migrar para `/crm`
- `/crm-admin` → comandos admin em `/crm`

---

## Changelog

### v2.0.0 (2026-02-05)
- Consolidar crm-ops + crm-admin
- Novo comando /crm 360 para visão cliente
- Todos os subcomandos unificados
- Anti-duplicados reforçado

### v1.2.0 (crm-ops)
- Distinção Lead vs Customer
- Proposal vs Estimate



---

## Self-Healing

Antes de executar, ler `~/.claude-work/healing/crm.jsonl` (se existir). Cada linha é um padrão de erro conhecido:

```json
{"date":"YYYY-MM-DD","issue":"descrição do problema","fix":"como evitar","source":"user|auto"}
```

Se encontrares um padrão relevante ao contexto actual, aplica o fix preventivamente. Após cada erro ou correcção do utilizador nesta skill, **adicionar nova linha** ao healing log com o padrão aprendido.

---

*Skill v2.0.0 | 2026-02-05 | Descomplicar®*


## Healing Log
<!-- Registo automático de erros e correcções nesta skill -->
