@lionchat/mcp-server 0.4.6 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +12 -4
- package/dist/client.js.map +1 -1
- package/dist/docs/instructions.md +57 -7
- package/dist/docs/prompts/customer_health.json +1 -1
- package/dist/docs/prompts/inactive_contacts.json +1 -1
- package/dist/docs/prompts/productivity_report.json +1 -1
- package/dist/docs/prompts/team_load_balance.json +1 -1
- package/dist/docs/resources/api-conventions.md +11 -3
- package/dist/docs/resources/best-practices.md +40 -6
- package/dist/docs/resources/conversation-flows.md +96 -0
- package/dist/docs/resources/data-model.md +18 -4
- package/dist/docs/resources/flowbuilder-design-guide.md +134 -16
- package/dist/docs/resources/flowbuilder-patterns.md +19 -18
- package/dist/docs/resources/glossary.md +29 -2
- package/dist/docs/resources/reports-guide.md +164 -85
- package/endpoints.json +2563 -1668
- package/package.json +1 -1
|
@@ -12,20 +12,80 @@ Como interpretar cada um dos endpoints de relatório (`lionchat_reports_*`) e m
|
|
|
12
12
|
86400 segundos → "24 horas" ou "1 dia"
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
## Mapeamento dos endpoints `lionchat_reports_*`
|
|
16
|
+
|
|
17
|
+
> ⚠️ **A numeração `_N` é gerada automaticamente e NÃO segue uma ordem lógica.** Use SEMPRE a tabela
|
|
18
|
+
> abaixo pra saber qual ferramenta chamar. Nunca chute pelo número.
|
|
19
|
+
|
|
20
|
+
| Ferramenta MCP | O que faz |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `lionchat_reports_summary` | Resumo geral da conta (conversations, mensagens, tempos médios) com `previous` |
|
|
23
|
+
| `lionchat_reports_list` | Resumo POR AGENTE (summary/agent) |
|
|
24
|
+
| `lionchat_reports_list_1` | Resumo POR TIME (team) |
|
|
25
|
+
| `lionchat_reports_list_2` | Resumo POR INBOX |
|
|
26
|
+
| `lionchat_reports_list_3` | Resumo POR LABEL |
|
|
27
|
+
| `lionchat_reports_list_4` | Resumo POR CANAL (channel) |
|
|
28
|
+
| `lionchat_reports_list_5` | Série temporal / evolução (timeseries de um `metric`) |
|
|
29
|
+
| `lionchat_reports_list_6` | Resumo do BOT (bot_summary) |
|
|
30
|
+
| `lionchat_reports_list_7` | Exportação de AGENTES em CSV |
|
|
31
|
+
| `lionchat_reports_list_8` | Exportação de INBOXES em CSV |
|
|
32
|
+
| `lionchat_reports_list_9` | Exportação de LABELS em CSV |
|
|
33
|
+
| `lionchat_reports_list_10` | Exportação de TIMES em CSV |
|
|
34
|
+
| `lionchat_reports_list_11` | Lista de conversas do relatório (conversations) |
|
|
35
|
+
| `lionchat_reports_list_12` | Resumo de conversas em CSV (conversations_summary) |
|
|
36
|
+
| `lionchat_reports_list_13` | Conversation Traffic / tráfego por hora (heatmap, CSV) |
|
|
37
|
+
| `lionchat_reports_list_14` | Métricas do BOT detalhadas (bot_metrics) |
|
|
38
|
+
| `lionchat_reports_list_15` | Retrospectiva do ano (year_in_review) |
|
|
39
|
+
| `lionchat_reports_list_16` / `_17` | Relatórios em TEMPO REAL (live_reports: conversation_metrics / grouped) |
|
|
40
|
+
|
|
41
|
+
**Métricas correlatas (fora da família `reports_*`):**
|
|
42
|
+
|
|
43
|
+
| Ferramenta MCP | O que faz |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `lionchat_csat_metrics` | Agregado de CSAT (contagem total + distribuição por nota) |
|
|
46
|
+
| `lionchat_csat_list` | Respostas CSAT individuais (paginadas) |
|
|
47
|
+
| `lionchat_csat_download` | CSV de CSAT |
|
|
48
|
+
| `lionchat_sla_metrics` | Agregado de SLA — **ENTERPRISE-ONLY** (total, falhas, hit_rate) |
|
|
49
|
+
| `lionchat_sla_list` | Conversas que estouraram SLA — **ENTERPRISE-ONLY** |
|
|
50
|
+
| `lionchat_sla_download` | CSV de SLA — **ENTERPRISE-ONLY** |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Tabela "qual usar pra cada pergunta"
|
|
55
|
+
|
|
56
|
+
| Usuário pede... | Ferramenta |
|
|
57
|
+
|---|---|
|
|
58
|
+
| "resumo da semana", "como tá o desempenho?", "visão geral" | `lionchat_reports_summary` |
|
|
59
|
+
| "produtividade por atendente", "ranking de agentes" | `lionchat_reports_list` |
|
|
60
|
+
| "comparar times", "time A vs time B" | `lionchat_reports_list_1` |
|
|
61
|
+
| "qual canal tem mais demanda", "comparar WhatsApp vs Email" | `lionchat_reports_list_2` (inbox) ou `lionchat_reports_list_4` (tipo de canal) |
|
|
62
|
+
| "quantas conversas urgentes", "por etiqueta" | `lionchat_reports_list_3` |
|
|
63
|
+
| "evolução dia a dia", "mês a mês", "gráfico de linha" | `lionchat_reports_list_5` |
|
|
64
|
+
| "como tá o bot resolvendo", "% de handoff pra humano" | `lionchat_reports_list_6` ou `lionchat_reports_list_14` |
|
|
65
|
+
| "exportar planilha de agentes/inboxes/labels/times" | `_7` / `_8` / `_9` / `_10` (CSV) |
|
|
66
|
+
| "horário de pico", "quando tem mais demanda" | `lionchat_reports_list_13` |
|
|
67
|
+
| "quem tá online agora", "carga atual" | `lionchat_reports_list_16` / `_17` (live) |
|
|
68
|
+
| "retrospectiva do ano" | `lionchat_reports_list_15` |
|
|
69
|
+
| "satisfação", "CSAT", "nota dos clientes" | `lionchat_csat_metrics` |
|
|
70
|
+
| "SLA", "cumprimento de prazo" (se a conta tiver Enterprise) | `lionchat_sla_metrics` |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Detalhe dos principais endpoints
|
|
75
|
+
|
|
76
|
+
### `lionchat_reports_summary` — Resumo geral
|
|
77
|
+
**Use quando:** "como tá o desempenho?", "resumo da semana", "visão geral"
|
|
78
|
+
|
|
79
|
+
**Retorna (campos confirmados no código):**
|
|
21
80
|
```json
|
|
22
81
|
{
|
|
23
82
|
"conversations_count": 142,
|
|
24
83
|
"incoming_messages_count": 1250,
|
|
25
84
|
"outgoing_messages_count": 980,
|
|
26
|
-
"resolutions_count": 98,
|
|
27
85
|
"avg_first_response_time": 245, // segundos
|
|
28
86
|
"avg_resolution_time": 7200, // segundos
|
|
87
|
+
"resolutions_count": 98,
|
|
88
|
+
"reply_time": 320, // segundos
|
|
29
89
|
"previous": { ...mesma estrutura para comparativo... }
|
|
30
90
|
}
|
|
31
91
|
```
|
|
@@ -33,109 +93,111 @@ Como interpretar cada um dos endpoints de relatório (`lionchat_reports_*`) e m
|
|
|
33
93
|
**Parâmetros principais:**
|
|
34
94
|
- `type`: `account` (padrão), `agent`, `inbox`, `label`, `team`
|
|
35
95
|
- `since` / `until`: Unix timestamp (segundos) — período
|
|
36
|
-
- `business_hours`: `true`
|
|
37
|
-
|
|
38
|
-
**Exemplo de uso:**
|
|
39
|
-
```
|
|
40
|
-
since = 7 dias atrás
|
|
41
|
-
until = agora
|
|
42
|
-
type = account
|
|
43
|
-
→ retorna resumo dos últimos 7 dias da conta toda
|
|
44
|
-
```
|
|
96
|
+
- `business_hours`: `true` exclui horários fora do expediente
|
|
97
|
+
- `timezone_offset`: deslocamento de fuso (horas) usado no agrupamento
|
|
45
98
|
|
|
46
|
-
###
|
|
99
|
+
### `lionchat_reports_list` — Por agente
|
|
47
100
|
**Use quando:** "produtividade por atendente", "ranking de agentes"
|
|
48
101
|
|
|
49
|
-
Retorna array de métricas, uma por
|
|
102
|
+
Retorna array de métricas, **uma por usuário da conta**. Campos confirmados (e SÓ esses):
|
|
50
103
|
```json
|
|
51
104
|
{
|
|
52
105
|
"id": 6,
|
|
53
|
-
"name": "Elvis",
|
|
54
106
|
"conversations_count": 23,
|
|
55
|
-
"
|
|
56
|
-
"avg_resolution_time": 5400,
|
|
57
|
-
"
|
|
58
|
-
"
|
|
107
|
+
"resolved_conversations_count": 18,
|
|
108
|
+
"avg_resolution_time": 5400, // segundos (pode vir null)
|
|
109
|
+
"avg_first_response_time": 180, // segundos (pode vir null)
|
|
110
|
+
"avg_reply_time": 320 // segundos (pode vir null)
|
|
59
111
|
}
|
|
60
112
|
```
|
|
61
113
|
|
|
62
|
-
|
|
63
|
-
|
|
114
|
+
> ⚠️ **Não existe `name`, `csat_score_average` nem `online_at_total` neste retorno.**
|
|
115
|
+
> - O campo é só `id` (id do agente). Para o nome, cruze com `lionchat_agents_list`.
|
|
116
|
+
> - **CSAT por agente:** use `lionchat_csat_list` com filtro `user_ids=<id>` e calcule a média.
|
|
117
|
+
> - **Tempo online / status:** use `lionchat_agent_availability` ou os live_reports (`_16`/`_17`).
|
|
64
118
|
|
|
65
|
-
|
|
119
|
+
`_1` (time), `_2` (inbox), `_3` (label), `_4` (canal) seguem a mesma ideia de resumo agrupado,
|
|
120
|
+
trocando a chave de agrupamento.
|
|
66
121
|
|
|
67
|
-
###
|
|
68
|
-
**Use quando:** "
|
|
122
|
+
### `lionchat_reports_list_5` — Série temporal (timeseries)
|
|
123
|
+
**Use quando:** "dia a dia da última semana", "evolução temporal", "gráfico de linha"
|
|
69
124
|
|
|
70
|
-
|
|
125
|
+
Retorna pontos (data + valor) para UM `metric` por vez:
|
|
126
|
+
- `metric` (médias, em segundos): `avg_first_response_time`, `avg_resolution_time`, `reply_time`
|
|
127
|
+
- `metric` (contagens): `conversations_count`, `incoming_messages_count`, `outgoing_messages_count`, `resolutions_count`, `bot_resolutions_count`, `bot_handoffs_count`
|
|
128
|
+
- `group_by`: `hour`, `day`, `week`, `month`, `year`
|
|
129
|
+
- `since` / `until`: período (Unix timestamp em segundos)
|
|
130
|
+
- `business_hours`: `true` faz médias contarem só o horário de atendimento
|
|
131
|
+
- `timezone_offset`: deslocamento de fuso (horas) — afeta como os pontos são agrupados por dia/hora
|
|
71
132
|
|
|
72
|
-
###
|
|
73
|
-
**Use quando:** "
|
|
133
|
+
### `lionchat_reports_list_6` — Resumo do Bot
|
|
134
|
+
**Use quando:** "como tá o bot resolvendo", "quantos handoffs pra humano"
|
|
74
135
|
|
|
75
|
-
|
|
136
|
+
Retorna SOMENTE estes dois campos (não existe taxa pronta):
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"bot_resolutions_count": 45,
|
|
140
|
+
"bot_handoffs_count": 12
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
> A "taxa de resolução do bot" NÃO vem pronta. Se o usuário pedir, calcule:
|
|
144
|
+
> `bot_resolutions_count / (bot_resolutions_count + bot_handoffs_count)`.
|
|
76
145
|
|
|
77
|
-
###
|
|
78
|
-
**Use quando:** "
|
|
146
|
+
### `lionchat_reports_list_13` — Conversation Traffic (tráfego)
|
|
147
|
+
**Use quando:** "horário de pico", "quando tem mais demanda"
|
|
79
148
|
|
|
80
|
-
|
|
149
|
+
Heatmap de volume por hora. Aceita `timezone_offset` (importante: sem ele o pico sai em UTC).
|
|
81
150
|
|
|
82
|
-
###
|
|
83
|
-
**Use quando:** "
|
|
151
|
+
### `lionchat_reports_list_16` / `_17` — Tempo real (live)
|
|
152
|
+
**Use quando:** "quem tá online agora", "carga atual", "conversas abertas no momento"
|
|
84
153
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- `group_by`: `day`, `week`, `month`, `year`
|
|
88
|
-
- `since`/`until`: período
|
|
154
|
+
São os live_reports (`conversation_metrics` e a versão agrupada). Use estes — e não os resumos
|
|
155
|
+
históricos — quando o usuário quiser o agora.
|
|
89
156
|
|
|
90
|
-
###
|
|
91
|
-
**Use quando:** "
|
|
157
|
+
### `lionchat_csat_metrics` — CSAT agregado
|
|
158
|
+
**Use quando:** "satisfação", "nota média dos clientes", "CSAT"
|
|
92
159
|
|
|
160
|
+
Retorna SOMENTE estes campos (nem média, nem taxa de resposta vêm prontas):
|
|
93
161
|
```json
|
|
94
162
|
{
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
163
|
+
"total_count": 80, // total de respostas respondidas
|
|
164
|
+
"ratings_count": { "5": 50, "4": 18, "3": 8, "2": 2, "1": 2 },
|
|
165
|
+
"total_sent_messages_count": 210 // pesquisas CSAT enviadas no período
|
|
98
166
|
}
|
|
99
167
|
```
|
|
168
|
+
> **Nota média** = `Σ(nota × ratings_count[nota]) / total_count`.
|
|
169
|
+
> No exemplo: (5×50 + 4×18 + 3×8 + 2×2 + 1×2) / 80 = 352/80 = **4,4**.
|
|
170
|
+
>
|
|
171
|
+
> **Taxa de resposta** = `total_count / total_sent_messages_count`.
|
|
172
|
+
> No exemplo: 80/210 = **38%**.
|
|
100
173
|
|
|
101
|
-
|
|
102
|
-
**Use quando:** "horário de pico", "quando tem mais demanda"
|
|
174
|
+
**Filtros aceitos:** `user_ids`, `inbox_id`, `team_id`, `rating`, `since`/`until`.
|
|
103
175
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
[
|
|
107
|
-
{ "hour": 9, "conversations_count": 18 },
|
|
108
|
-
{ "hour": 10, "conversations_count": 25 },
|
|
109
|
-
...
|
|
110
|
-
]
|
|
111
|
-
```
|
|
176
|
+
### `lionchat_sla_metrics` — SLA agregado (ENTERPRISE-ONLY)
|
|
177
|
+
**Use quando:** "cumprimento de SLA", "quantos prazos estouraram"
|
|
112
178
|
|
|
113
|
-
|
|
114
|
-
|
|
179
|
+
> ⚠️ **Pode não existir na conta.** SLA é recurso Enterprise. Se a chamada falhar/retornar vazio,
|
|
180
|
+
> informe ao usuário que o relatório de SLA não está disponível no plano dele.
|
|
115
181
|
|
|
182
|
+
Retorna:
|
|
116
183
|
```json
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
184
|
+
{
|
|
185
|
+
"total_applied_slas": 200,
|
|
186
|
+
"number_of_sla_misses": 9,
|
|
187
|
+
"hit_rate": "95.5%" // STRING com "%", NÃO uma fração
|
|
188
|
+
}
|
|
120
189
|
```
|
|
190
|
+
> O `hit_rate` já vem calculado como string (ex.: `"95.5%"`, ou `"100%"` quando não há falhas).
|
|
191
|
+
> Não divida nada — apenas exiba o valor.
|
|
121
192
|
|
|
122
|
-
|
|
123
|
-
- `lionchat_csat_metrics`: agregação (média, distribuição)
|
|
124
|
-
- `lionchat_csat_list`: respostas individuais
|
|
125
|
-
- `lionchat_csat_download`: CSV pra download
|
|
126
|
-
|
|
127
|
-
### 16-18. SLA
|
|
128
|
-
- `lionchat_sla_metrics`: hits / breaches por período
|
|
129
|
-
- `lionchat_sla_list`: SLAs aplicadas a conversas
|
|
130
|
-
- `lionchat_sla_download`: CSV
|
|
131
|
-
|
|
132
|
-
### 19. `lionchat_reports_list_9` — Aggregated agent overview
|
|
133
|
-
**Use quando:** combinação de tudo: produtividade + CSAT + SLA por agente
|
|
193
|
+
**Filtros aceitos:** `inbox_id`, `team_id`, `sla_policy_id`, `label_list`, `assigned_agent_id`, `since`/`until`.
|
|
134
194
|
|
|
135
195
|
## Padrões de interpretação
|
|
136
196
|
|
|
137
197
|
### Comparando períodos
|
|
138
|
-
|
|
198
|
+
O `previous` (período anterior de mesmo tamanho) é retornado pelo `lionchat_reports_summary` e pelo
|
|
199
|
+
resumo do bot (`_6`). Os resumos agrupados (agente/time/inbox/label/canal) e a timeseries NÃO trazem
|
|
200
|
+
`previous` — pra comparar, chame o endpoint duas vezes (período atual e período anterior):
|
|
139
201
|
|
|
140
202
|
```
|
|
141
203
|
Esta semana: 142 conversas
|
|
@@ -154,11 +216,14 @@ Semana anterior: 120 conversas
|
|
|
154
216
|
### CSAT
|
|
155
217
|
- Score: 1-5 estrelas
|
|
156
218
|
- Médias típicas: 4.0+ é bom, 3.5-4.0 é OK, abaixo de 3.5 é alerta
|
|
157
|
-
-
|
|
219
|
+
- A média e a taxa de resposta NÃO vêm prontas — calcule a partir de `ratings_count`, `total_count`
|
|
220
|
+
e `total_sent_messages_count` (fórmulas na seção do `lionchat_csat_metrics`)
|
|
221
|
+
- Taxa de resposta = `total_count / total_sent_messages_count` (baixa = pouco feedback)
|
|
158
222
|
|
|
159
|
-
### SLA
|
|
160
|
-
- `
|
|
161
|
-
-
|
|
223
|
+
### SLA (Enterprise-only)
|
|
224
|
+
- `number_of_sla_misses` alto = problema sério, agentes não cumprindo prazos
|
|
225
|
+
- `hit_rate` já vem pronto como STRING com `%` (ex.: `"95.5%"`) — só exibir, meta 95%+
|
|
226
|
+
- Se a conta não tem Enterprise, o relatório de SLA simplesmente não existe
|
|
162
227
|
|
|
163
228
|
## Workflows comuns
|
|
164
229
|
|
|
@@ -174,8 +239,8 @@ Semana anterior: 120 conversas
|
|
|
174
239
|
|
|
175
240
|
### "Quem tá com gargalo"
|
|
176
241
|
```
|
|
177
|
-
1.
|
|
178
|
-
2. reports_list (por agente, últimos 7d) → quem tá com
|
|
242
|
+
1. reports_list_16/_17 (live) → quem tá com muita conversa aberta agora
|
|
243
|
+
2. reports_list (por agente, últimos 7d) → quem tá com avg_first_response_time alto
|
|
179
244
|
3. Cruzar: agente sobrecarregado E com tempo médio alto
|
|
180
245
|
```
|
|
181
246
|
|
|
@@ -184,11 +249,23 @@ Semana anterior: 120 conversas
|
|
|
184
249
|
reports_list_5 com group_by=month, metric=conversations_count, since=12 meses atrás
|
|
185
250
|
```
|
|
186
251
|
|
|
252
|
+
### "Tempo por etapa do funil" / "conversão de funil"
|
|
253
|
+
> ⚠️ NÃO existe endpoint nativo de relatório de funil/Kanban. Componha no client-side:
|
|
254
|
+
```
|
|
255
|
+
1. kanban_items_list (do funnel desejado) → traz cada card com funnel_stage e stage_entered_at
|
|
256
|
+
2. Agrupe por funnel_stage e calcule:
|
|
257
|
+
- tempo por etapa: diferença entre stage_entered_at de etapas consecutivas do mesmo card
|
|
258
|
+
- conversão: nº de cards que chegaram em cada etapa / nº de cards que entraram na anterior
|
|
259
|
+
3. Apresente como tabela/etapas — avisando que é um cálculo composto, não um relatório oficial
|
|
260
|
+
```
|
|
261
|
+
|
|
187
262
|
## Pegadinhas comuns
|
|
188
263
|
|
|
189
|
-
### ⚠️
|
|
190
|
-
|
|
191
|
-
- `
|
|
264
|
+
### ⚠️ O relatório por agente NÃO traz CSAT nem tempo online
|
|
265
|
+
`lionchat_reports_list` (por agente) retorna só `id`, contagens e tempos médios.
|
|
266
|
+
- Para **CSAT por agente**: `lionchat_csat_list` com `user_ids=<id>` e calcule a média.
|
|
267
|
+
- Para **status/tempo online**: `lionchat_agent_availability` ou live_reports (`_16`/`_17`).
|
|
268
|
+
- Para o **nome** do agente: cruze o `id` com `lionchat_agents_list`.
|
|
192
269
|
|
|
193
270
|
### ⚠️ Avg time pode ser enganador
|
|
194
271
|
Mediana é mais representativa que média (1 conversa que durou 5 dias puxa tudo).
|
|
@@ -198,8 +275,10 @@ Mediana é mais representativa que média (1 conversa que durou 5 dias puxa tudo
|
|
|
198
275
|
A maioria dos endpoints é eventually consistent (cache 5min). Pra info real-time use `conversations_meta`.
|
|
199
276
|
|
|
200
277
|
### ⚠️ Comparativos de período
|
|
201
|
-
`
|
|
202
|
-
|
|
278
|
+
No `lionchat_reports_summary` (e no resumo do bot), o `previous` já vem com o MESMO tamanho do período
|
|
279
|
+
atual. Se since-until = 7d, previous = 7d antes. Pra esses dois, passe `since/until` com o período
|
|
280
|
+
inteiro e use o `previous` retornado em vez de comparar na mão.
|
|
281
|
+
Nos demais (agente/time/inbox/label/canal e timeseries) NÃO há `previous` — chame duas vezes.
|
|
203
282
|
|
|
204
283
|
## Quando o usuário pede algo MUITO específico que não existe num endpoint
|
|
205
284
|
|