2252e1c29c
Cobertura D2 Suporte elevada de 50% para 75% com novos componentes baseados nos PROCs D2-SUP-001/002/003. Skill /ticket-manage (crm-ops/skills/ticket-manage/SKILL.md): - Dashboard SLA com alertas automáticos (violado/em risco/OK) - Criação de tickets com campos correctos e confirmação de recepção - Atribuição por prioridade e responsável (P1→imediato, P2→2h, etc.) - Escalação com protocolo completo e notificação ao cliente - Fecho com checklist obrigatória 7 pontos (SUP-001) - Relatório semanal SLA com métricas por prioridade (SUP-003) Agent support-specialist (crm-ops/agents/support-specialist.md): - Executor D2 focado em triagem, atribuição e follow-up - 4 workflows: triagem diária, resolver ticket, follow-up semanal, P1 crítico - Métricas: SLA resposta >95%, resolução >90%, NPS >8, 0 violações P1 - Escala para Emanuel (P1) e D7 Tecnologia (tech complexo) Plugin v1.2.0: adicionadas keywords suporte e sla Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
320 lines
10 KiB
Markdown
320 lines
10 KiB
Markdown
---
|
||
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
|
||
---
|
||
|
||
# /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 com aviso especial
|
||
```
|
||
|
||
**Alertas automáticos a gerar:**
|
||
```
|
||
P1 sem resposta >30min → "⚠️ CRÍTICO: Ticket #X P1 excede 30min. Acção imediata."
|
||
P2 sem resposta >2h → "⚠️ ALERTA: Ticket #X P2 em risco. Re-atribuir?"
|
||
Qualquer ticket >48h → "⏰ Ticket #X aberto há +48h. Revisar."
|
||
```
|
||
|
||
---
|
||
|
||
## `/ticket-manage escalate <id>` — Escalação com Protocolo
|
||
|
||
```
|
||
1. mcp__desk-crm-v3__get_ticket({ ticket_id: id })
|
||
2. Determinar destino de escalação:
|
||
- Tech complexo (WP, servidor) → D7 Tecnologia
|
||
- Billing → D3 Facturação
|
||
- Dev customizado → Project Manager
|
||
3. Criar tarefa Desk CRM com contexto completo:
|
||
mcp__desk-crm-v3__create_task({
|
||
name: "[ESCALADO] Ticket #X: [Assunto]",
|
||
description: "<h4>Escalado de Ticket #X</h4>
|
||
<p><strong>Cliente:</strong> [nome]</p>
|
||
<p><strong>Problema:</strong> [descrição]</p>
|
||
<p><strong>Tentativas anteriores:</strong> [o que foi tentado]</p>
|
||
<p><strong>SLA original:</strong> [prazo]</p>
|
||
<p><strong>Motivo escalação:</strong> [razão]</p>",
|
||
priority: 3,
|
||
assignees: [1]
|
||
})
|
||
4. Informar cliente:
|
||
mcp__desk-crm-v3__reply_ticket({
|
||
ticket_id: id,
|
||
message: "<p>Olá [Nome],</p>
|
||
<p>A situação é mais complexa e foi escalada para a equipa especialista.
|
||
Prazo estimado: 24-48h.</p>
|
||
<p>Pedimos desculpa pela demora.</p>"
|
||
})
|
||
5. Nota interna com motivo detalhado
|
||
6. Output: "Ticket #X escalado → Tarefa #Y | Dept: [destino] | ETA: [prazo]"
|
||
```
|
||
|
||
---
|
||
|
||
## `/ticket-manage close <id>` — Fecho com Checklist Obrigatória
|
||
|
||
```
|
||
1. mcp__desk-crm-v3__get_ticket({ ticket_id: id })
|
||
2. Executar checklist SUP-001 (OBRIGATÓRIO — 100% antes de fechar):
|
||
```
|
||
|
||
### Checklist de Fecho (SUP-001)
|
||
|
||
- [ ] Solução aplicada e testada
|
||
- [ ] Explicação clara da solução enviada ao cliente
|
||
- [ ] Causa raiz identificada (não só sintoma)
|
||
- [ ] Passos de prevenção comunicados
|
||
- [ ] Cliente confirmou resolução ("Resolvido? Feedback?")
|
||
- [ ] Lições aprendidas registadas (se novo problema)
|
||
- [ ] Follow-up 3 dias agendado (se P1/P2)
|
||
|
||
```
|
||
3. Se checklist incompleta → NÃO fechar, listar pendentes
|
||
4. Se 100% → fechar:
|
||
mcp__desk-crm-v3__reply_ticket({
|
||
ticket_id: id,
|
||
message: "<p>Olá [Nome],</p>
|
||
<p>Confirmamos que a situação foi resolvida.</p>
|
||
<p><strong>Solução:</strong> [explicação]</p>
|
||
<p><strong>Prevenção:</strong> [dica]</p>
|
||
<p>Obrigado pelo contacto. Se precisar de algo, estamos disponíveis.</p>
|
||
<p>Nota 1-10 sobre o suporte?</p>"
|
||
})
|
||
mcp__desk-crm-v3__close_ticket({ ticket_id: id })
|
||
5. Output: "Ticket #X fechado ✓ | Checklist: 7/7 | [Data fecho]"
|
||
```
|
||
|
||
---
|
||
|
||
## `/ticket-manage report` — Relatório SLA Semanal (SUP-003)
|
||
|
||
```
|
||
1. Recolher tickets dos últimos 7 dias
|
||
2. Calcular por prioridade:
|
||
- % tickets que cumpriram SLA de resposta
|
||
- % tickets que cumpriram SLA de resolução
|
||
- Tempo médio de resposta e resolução
|
||
3. Identificar violações e categorizar causas
|
||
4. Comparar com semana anterior
|
||
```
|
||
|
||
**Output:**
|
||
```markdown
|
||
## Relatório SLA Semanal — [DD-MM-YYYY a DD-MM-YYYY]
|
||
|
||
### Cumprimento SLA (Meta: >90%)
|
||
| Prioridade | Tickets | SLA Resposta | SLA Resolução | Violações |
|
||
|-----------|---------|-------------|--------------|-----------|
|
||
| P1 Crítico | 2 | 100% ✅ | 50% ⚠️ | 1 |
|
||
| P2 Funcional | 8 | 87.5% ⚠️ | 100% ✅ | 1 |
|
||
| P3 Dúvida | 15 | 93.3% ✅ | 86.7% ⚠️ | 2 |
|
||
| P4 Melhoria | 3 | 100% ✅ | N/A | 0 |
|
||
|
||
### Top 3 Tickets Mais Lentos
|
||
1. #X — [Assunto] — P2 — 36h — causa: dependência externa D7
|
||
2. #Y — [Assunto] — P3 — 52h — causa: complexidade técnica
|
||
3. #Z — [Assunto] — P1 — 5h30 — causa: falta de informação cliente
|
||
|
||
### Acções Correctivas
|
||
- [ ] P2 cumprimento <90% → Revisão processo atribuição automática
|
||
```
|
||
|
||
---
|
||
|
||
## Referências PROCs
|
||
|
||
| PROC | Ficheiro Hub |
|
||
|------|-------------|
|
||
| SUP-001 Atendimento | `Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-001-Atendimento-Cliente.md` |
|
||
| SUP-002 Ticketing | `Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-002-Ticketing-Workflow.md` |
|
||
| SUP-003 SLA | `Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-003-SLA-Management.md` |
|
||
|
||
---
|
||
|
||
## Anti-Patterns
|
||
|
||
- **NUNCA** fechar sem checklist 100% completa
|
||
- **NUNCA** escalar sem informar o cliente
|
||
- **NUNCA** ignorar tickets P1 >30min
|
||
- **NUNCA** resolver sintoma sem identificar causa raiz
|
||
|
||
---
|
||
|
||
## Integração com Outras Skills
|
||
|
||
| Skill | Quando usar |
|
||
|-------|-------------|
|
||
| `/ticket` | Operações básicas (view, reply) |
|
||
| `/ticket-triage` | Triagem automática SPAM/facturas |
|
||
| `/crm` | Contexto cliente 360° |
|
||
| `/today` | Dashboard diário com SLA alerts |
|
||
|
||
---
|
||
|
||
## Changelog
|
||
|
||
### v1.0.0 (07-04-2026)
|
||
- Versão inicial baseada em SUP-001, SUP-002, SUP-003
|
||
- Dashboard SLA com alertas automáticos
|
||
- Criação com campos obrigatórios e confirmação recepção
|
||
- Checklist fecho obrigatória 7 pontos
|
||
- Protocolo escalação com contexto completo
|
||
- Relatório semanal SLA
|
||
|
||
---
|
||
|
||
*Skill v1.0.0 | 07-04-2026 | Descomplicar® | Baseado em PROCs D2-SUP-001/002/003*
|
||
|
||
---
|
||
|
||
## 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.*
|