feat(crm-ops): adiciona plugin crm-ops (agents, skills, knowledge e metadados do projeto)
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user