@lionchat/mcp-server 1.2.0 → 1.4.0
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.
|
@@ -353,6 +353,7 @@ Quando o cliente pedir pra criar um fluxo:
|
|
|
353
353
|
6. **NUNCA crie** nodes sem `position: {x, y}` — eles ficam empilhados no canvas
|
|
354
354
|
7. **NUNCA invente** `sourceHandle` — use só os listados no design guide por tipo de node (ex: condition usa `cond_0`/`cond_1`/`default`, não IDs livres)
|
|
355
355
|
8. Antes de chamar `flows_create`, apresente um resumo em **linguagem natural** do que vai criar e confirme com o cliente
|
|
356
|
+
9. **Organize com tags (novo 22/07):** ao criar um flow, preencha o campo `tags` pra manter a lista organizada (ex.: `["vendas"]`, `["pos-venda", "cobranca"]`). **Reutilize as tags que já existem** nos flows da conta (veja o campo `tags` no retorno de `flows_list`) em vez de inventar variações — "venda"/"Vendas"/"VENDA" viram bagunça. Sem tag óbvia pelo contexto, pergunte ao cliente em qual grupo o flow se encaixa. Máx 20 tags por flow, 50 caracteres cada
|
|
356
357
|
|
|
357
358
|
## 12. Idioma das respostas
|
|
358
359
|
|
|
@@ -60,7 +60,7 @@ Todo node tem essa estrutura base:
|
|
|
60
60
|
}
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
**Triggers válidos:** `message_received`, `message_sent`, `conversation_created`, `conversation_resolved`, `conversation_reopened`, `label_added`, `label_removed`, `card_created`, `card_moved`, `conversation_attribute_changed`, `card_attribute_changed`, `date_trigger`, `cron`, `webhook`.
|
|
63
|
+
**Triggers válidos:** `message_received`, `message_sent`, `conversation_created`, `conversation_resolved`, `conversation_reopened`, `label_added`, `label_removed`, `card_created`, `card_moved`, `conversation_attribute_changed`, `card_attribute_changed`, `contact_attribute_changed`, `date_trigger`, `cron`, `webhook`.
|
|
64
64
|
|
|
65
65
|
**Trigger `message_sent` (novo 2026-06-11):** par do message_received, mas pra mensagens de SAÍDA — dispara quando atendente, celular (eco do WhatsApp) ou a própria IA/flow envia mensagem (nota privada NÃO dispara). Config: `keywords` (opcional) + `match_type` (`contains`|`exact`). Caso de uso clássico: "quando eu responder do celular, desligar a IA". ATENÇÃO: mensagem da IA também dispara — se a ação for desativar a IA, use keywords que só humanos digitam ou aceite que a primeira resposta da IA aciona o flow. Protegido por anti-loop (profundidade 5) e sessão única por conversa+flow; nunca alimenta `waiting_input`.
|
|
66
66
|
|
|
@@ -70,6 +70,7 @@ Todo node tem essa estrutura base:
|
|
|
70
70
|
- `label_added` / `label_removed`: `label_names` (array de slugs). NÃO use `label` (singular) — é ignorado.
|
|
71
71
|
- `card_created` / `card_moved`: `funnel_ids` (array de STRINGS, ex.: `["37"]` — número puro `[37]` NÃO casa) + `funnel_stages` (array de `"funnel_id:chave_da_etapa"`, ex.: `"37:agendamento_pendente"`). A `chave_da_etapa` é a CHAVE INTERNA da etapa no funil (slug legível em funis de template; pode ser um UUID/`stage_<n>` em etapa criada à mão ou funil duplicado) — NÃO o nome exibido na tela. Sem `funnel_ids` → dispara em qualquer funil; com `funnel_ids` mas sem `funnel_stages` → qualquer etapa daquele(s) funil(is). O card precisa estar num funil listado em `funnel_ids` pra o filtro de etapa valer. ATENÇÃO: dois flows ATIVOS na mesma inbox com `card_created`/`card_moved` de funil/etapa sobrepostos são bloqueados na criação/ativação (ver `flow_trigger_conflict` no fim deste guia).
|
|
72
72
|
- `conversation_attribute_changed` / `card_attribute_changed` (novo 2026-07-08): disparam na VIRADA de um atributo (da CONVERSA ou do CARD do kanban) pro valor que casa — RE-ENTRAM toda vez que o atributo muda pro valor alvo. Config: `{ "logic": "and"|"or", "rules": [ { "attr_key": "...", "operator": "...", "value": "..." } ] }` (uma rule pode usar `values: [...]` no lugar de `value` pra multi-valor). O `attrSource` é IMPLÍCITO pela chave do gatilho (conversa vs card) — NÃO informe. Operadores (contexto REATIVO — desde 09/07 `is_empty`/`is_not_empty` NÃO valem aqui, pois "está vazio AGORA" dispararia a cada evento; use-os só no nó Condição): `equal`/`not_equal`/`contains`/`not_contains`/`starts_with`/`ends_with`/`greater_than`/`less_than`/`number_range`. Só `card_attribute_changed` aceita `funnel_id`/`card_source` opcionais dentro da rule (pra achar o card). Rule sem `attr_key` é ignorada.
|
|
73
|
+
- `contact_attribute_changed` (novo 2026-07-22 — "Atributo do contato muda"): dispara quando um atributo personalizado do **CONTATO** muda e a condição casa — mesmo com o contato fora de flow. Item: `{ "key": "contact_attribute_changed", "config": { "logic": "and"|"or", "rules": [ { "attrSource": "contact", "attr_key": "...", "operator": "...", "value": "..." } ] } }` (1 a 10 rules; `values: [...]` pra multi-valor). **DIFERENTE dos irmãos de 08/07: aqui o `attrSource` VAI na rule e é SEMPRE `"contact"`.** Operadores iguais aos do nó Condição. **VERSÃO SEGURA por decisão de produto:** dispara SÓ na conversa mais recente que JÁ EXISTE numa caixa do flow (reabre se resolvida); contato sem conversa NÃO dispara e NUNCA cria conversa. Dedup de 30s por contato + anti-loop por profundidade de cadeia (flow que muda atributo que dispara flow…). Só flows de conversa.
|
|
73
74
|
|
|
74
75
|
- `date_trigger` — **Gatilho de Data (novo 2026-07-10):** dispara quando uma DATA guardada na ficha do CONTATO chega (aniversário, data de exame, vencimento de plano). Modelo "agendamento de mensagem": a escrita da data já marca o disparo — NÃO existe varredura periódica. Só em flow `conversation` **individual** (a data é de um contato; grupo não tem). Config (item usa `config` ANINHADO, igual `webhook_received`/`attribute_changed`):
|
|
75
76
|
```json
|
|
@@ -152,6 +153,11 @@ Webhooks embutidos NÃO aparecem na listagem de integrações standalone; exclui
|
|
|
152
153
|
- `buttons_reminder_text` (string) → texto do lembrete (só no modo `remind`; vazio = reenvia o conteúdo original).
|
|
153
154
|
- **REGRA do modo `remind`:** `buttons_timeout_unit` NÃO pode ser `"days"` e horas ≤ 23 — o lembrete precisa caber na janela de 24h do WhatsApp oficial. No modo `"advance"`, qualquer unidade/valor é permitido.
|
|
154
155
|
|
|
156
|
+
**Botões em TEMPLATE (novo 2026-07-22):** item de template com botões quick-reply também PAUSA e roteia pelo clique — mesmo motor do texto-com-botões. O item DEVE ter `type: "template"` (**NÃO** `whatsapp_template` — o canvas só expõe os handles com `"template"`) + `template_id` + `template_buttons: [ { "title": "...", "value": "..." } ]`:
|
|
157
|
+
- `title` = texto **EXATO** do botão quick-reply aprovado na Meta (o WhatsApp devolve o TÍTULO no clique; o match é por ele). `value` = slug do título (deduplicado se dois títulos colidem).
|
|
158
|
+
- Handles: `button_<value>` por botão + `no_response` (sempre — texto livre em vez de clique) + `no_reply_timeout` (só com `buttons_timeout > 0`; `buttons_timeout_unit` `minutes|hours|days`; `0` = sem timeout).
|
|
159
|
+
- Modo síncrono (`ai_tool`) e `dry_run` NÃO pausam/roteiam — o template só é enviado (botões decorativos). Só faz sentido em caixa WhatsApp com template de botões aprovado.
|
|
160
|
+
|
|
155
161
|
> ⚠️ **SAÍDAS CONDICIONAIS — NUNCA ligue edge nelas sem ativar a condição.** Estas saídas SÓ existem
|
|
156
162
|
> quando a config abaixo está presente. Ligar edge nelas sem isso cria uma **aresta fantasma** (linha
|
|
157
163
|
> que sai do nada no canvas, não roteia nada):
|
|
@@ -659,6 +665,14 @@ do `send_message`, ação `add_private_note`, ação `add_card_note`) — nunca
|
|
|
659
665
|
`position` é o canto superior esquerdo da nota; como ela é maior que um node comum, posicione-a ATRÁS
|
|
660
666
|
do grupo de nodes que ela rotula (ex.: um pouco acima e à esquerda do primeiro node do trecho).
|
|
661
667
|
|
|
668
|
+
**REGRA DE LAYOUT (espaçamento — vale pra TODO node, novo 24/07):** nodes colados escondem as linhas
|
|
669
|
+
de conexão e viram bola de neve visual. Ao gerar `position`:
|
|
670
|
+
- Colunas no eixo x com passo de **≥320px** (padrão dos exemplos deste guia: 50, 370, 690, 1010, 1330…).
|
|
671
|
+
- Irmãos/ramificações no eixo y com **≥180px** entre si.
|
|
672
|
+
- Sticky notes ficam **AO LADO ou ACIMA** do trecho comentado (ex.: `y` do node − 240), **nunca em cima**
|
|
673
|
+
de nodes nem sobre as linhas — nota grande (320×200 default) cobre tudo que estiver embaixo.
|
|
674
|
+
- Nunca repita o mesmo `(x, y)` em dois nodes.
|
|
675
|
+
|
|
662
676
|
```json
|
|
663
677
|
{ "id": "note-1", "type": "note", "position": { "x": 40, "y": 40 },
|
|
664
678
|
"data": { "title": "Qualificação", "body": "Revisar mensagens antes de publicar", "color": "violet", "width": 360, "height": 180 } }
|
|
@@ -235,6 +235,35 @@ telefone extraídos). Em versões antigas a mensagem era descartada.
|
|
|
235
235
|
em vez de responder sem saber o que o cliente disse.
|
|
236
236
|
- Sem AI Agente ativo na conversa = nenhuma resposta de IA (motor antigo V1 foi aposentado).
|
|
237
237
|
- IA travada pelo anti-loop avisa um humano via notificação (não fica muda).
|
|
238
|
+
- Desde 22/07: quando a IA falha, a nota privada de erro traz o **erro literal da OpenAI** (429 TPM,
|
|
239
|
+
sem saldo, chave inválida) e sai em TODA tentativa falhada — se o cliente pergunta "por que a IA
|
|
240
|
+
parou", leia a última nota privada da conversa que a causa está escrita nela.
|
|
241
|
+
- Desde 22/07: desligar a IA no meio de uma resposta **interrompe na hora** — os blocos restantes
|
|
242
|
+
daquela resposta são abortados antes de ir ao cliente (a despedida do próprio handoff continua saindo).
|
|
243
|
+
|
|
244
|
+
### "Agente sumiu / não sumiu da lista após excluir" (22/07)
|
|
245
|
+
Exclusão de agente COM reatribuição roda em **segundo plano** (minutos em conta grande): a resposta
|
|
246
|
+
é 202 `{status:'processing'}`, o index de agentes traz `deleting: true` enquanto processa e a linha
|
|
247
|
+
some quando termina. Segunda tentativa durante o processamento = **409 agent_already_being_deleted**
|
|
248
|
+
— é sinal de que JÁ está rodando; não repita a chamada.
|
|
249
|
+
|
|
250
|
+
### "Disparei a campanha e a tag/atributo não apareceu no contato" (23/07)
|
|
251
|
+
Comportamento novo, não é bug: as ações pós-envio da campanha (tag/atributo/prioridade/atendente)
|
|
252
|
+
aplicam SÓ quando a Meta confirma a ENTREGA (delivered/read) — nunca no aceite. Leva de segundos a
|
|
253
|
+
minutos. Mensagem que falhou ou foi barrada por spam NÃO recebe as ações (de propósito: evita que a
|
|
254
|
+
exclusão "quem já recebeu" fure no disparo seguinte). Se a tag não apareceu, confira o status da
|
|
255
|
+
mensagem da campanha antes de suspeitar da automação.
|
|
256
|
+
|
|
257
|
+
### "Import de histórico WAHA criou DUAS conversas pro mesmo contato" (23/07)
|
|
258
|
+
Comportamento novo, de propósito: o import de histórico agora grava as mensagens com a DATA ORIGINAL
|
|
259
|
+
numa conversa de HISTÓRICO separada (resolvida, marcada como importada) — o contato fica com 2 cards:
|
|
260
|
+
o vivo e o histórico. A conversa viva nunca se mistura com a de histórico.
|
|
261
|
+
|
|
262
|
+
### "Participante não recebeu notificação de mensagem nova" (22/07)
|
|
263
|
+
Comportamento novo, não é bug: notificação de nova mensagem vai SÓ pro **responsável** da conversa.
|
|
264
|
+
Participantes continuam vendo a conversa, mas não recebem sino/push a cada mensagem — pra acionar
|
|
265
|
+
alguém específico, use @menção em nota interna (que notifica pelo caminho próprio; a lista de quem
|
|
266
|
+
pode ser mencionado vem de `lionchat_conversations_mentionable_users`).
|
|
238
267
|
|
|
239
268
|
### "Editei o evento no Google Calendar e não sincronizou"
|
|
240
269
|
Auto-cura desde 2026-06-09: o vigia horário re-arma o "watch" morto de conexões saudáveis
|
package/dist/tools.js
CHANGED
|
@@ -283,7 +283,7 @@ function registerListCategoriesTool(server, allEndpoints) {
|
|
|
283
283
|
// Helps LLMs build correct flow_data without hitting trial-and-error on
|
|
284
284
|
// node types, action keys, source handles, etc.
|
|
285
285
|
function registerFlowsSchemaReferenceTool(server) {
|
|
286
|
-
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-07-
|
|
286
|
+
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-07-24)
|
|
287
287
|
|
|
288
288
|
flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
289
289
|
|
|
@@ -320,6 +320,19 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
320
320
|
NAO informe; operadores da condition EXCETO is_empty/is_not_empty (removidos do contexto reativo
|
|
321
321
|
09/07 — use so no node condition); card_attribute_changed aceita funnel_id/card_source
|
|
322
322
|
opcionais na rule),
|
|
323
|
+
contact_attribute_changed (NOVO 2026-07-22 — 'Atributo do contato muda': dispara quando um
|
|
324
|
+
custom_attribute do CONTATO muda e a condicao casa, mesmo com o contato fora de flow. Item:
|
|
325
|
+
{key:'contact_attribute_changed', config:{logic:'and'|'or', rules:[{attrSource:'contact',
|
|
326
|
+
attr_key, operator, value | values:[...]}]}} — 1 a 10 regras; DIFERENTE dos irmaos de 08/07,
|
|
327
|
+
aqui o attrSource VAI na rule e e SEMPRE 'contact'; operadores iguais aos do node condition.
|
|
328
|
+
VERSAO SEGURA por decisao de produto: dispara SO na conversa mais recente que JA EXISTE numa
|
|
329
|
+
caixa do flow (reabre se resolvida); contato sem conversa NAO dispara e NUNCA cria conversa.
|
|
330
|
+
Dedup 30s por contato, anti-loop por profundidade de cadeia; so flows de conversa),
|
|
331
|
+
sla_missed (NOVO 24/07 — 'SLA estourado': dispara no momento EXATO do estouro de um prazo de
|
|
332
|
+
SLA na conversa. Item: {key:'sla_missed', config:{sla_policy_id:''|'any'|'<id>',
|
|
333
|
+
sla_type:'any'|'frt'|'nrt'|'rt'}} — vazio/'any' = qualquer politica / qualquer prazo; frt =
|
|
334
|
+
1a resposta, nrt = resposta ao cliente, rt = resolucao. NAO re-dispara se o flow ja tem sessao
|
|
335
|
+
ativa na conversa; flow antigo sem config = todos os SLAs/qualquer prazo),
|
|
323
336
|
date_trigger (NOVO 2026-07-10 — Gatilho de Data: dispara quando uma DATA do CONTATO chega,
|
|
324
337
|
aniversario/exame; modelo agenda, sem varredura; SO flow individual). Item usa config ANINHADO:
|
|
325
338
|
{type:'date_trigger', config:{ attr_key ('_date_of_birth'=aniversario nativo, OU chave de
|
|
@@ -359,6 +372,14 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
359
372
|
buttons_timeout_action: "advance" (padrao, segue no_reply_timeout ao esgotar) | "remind" (manda 1
|
|
360
373
|
lembrete buttons_reminder_text e CONTINUA esperando; depois segue no_reply_timeout). No modo remind
|
|
361
374
|
a unidade NAO pode ser days e horas <= 23 (janela 24h do WhatsApp).
|
|
375
|
+
Botoes em TEMPLATE (NOVO 2026-07-22): item de template com botoes quick-reply tambem PAUSA e
|
|
376
|
+
roteia pelo clique. Item DEVE ter type:"template" (NAO whatsapp_template — o canvas so expoe os
|
|
377
|
+
handles com "template") + template_id + template_buttons:[{title,value}] (title = texto EXATO do
|
|
378
|
+
botao aprovado na Meta — o WhatsApp devolve o TITULO no clique e o match e por ele; value = slug
|
|
379
|
+
do titulo, deduplicado). Handles: "button_{value}" por botao + "no_response" (sempre — texto livre)
|
|
380
|
+
+ "no_reply_timeout" (so com buttons_timeout > 0; buttons_timeout_unit minutes|hours|days, 0 = sem
|
|
381
|
+
timeout). Modo sincrono (ai_tool) e dry_run NAO pausam — o template so e enviado. So faz sentido
|
|
382
|
+
em caixa WhatsApp com template de botoes quick-reply aprovado.
|
|
362
383
|
Handles sem botoes: "success", "error".
|
|
363
384
|
|
|
364
385
|
▸ wait_response
|
|
@@ -444,7 +465,10 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
444
465
|
change_status({status: open|resolved|pending|snoozed}), change_priority({priority}),
|
|
445
466
|
mute_conversation({}), add_private_note({content}), send_email_transcript({email}),
|
|
446
467
|
add_conversation_label({labels:[...]}), remove_conversation_label({labels:[...]}), // etiqueta NA CONVERSA
|
|
447
|
-
assign_captain({assistant_id}), deactivate_captain({})
|
|
468
|
+
assign_captain({assistant_id}), deactivate_captain({}),
|
|
469
|
+
add_sla({sla_policy_id}) — NOVO 24/07: aplica politica de SLA na conversa (id de sla_list;
|
|
470
|
+
aceita variavel Liquid). NO-OP se a conversa JA tem SLA (nunca troca/reinicia); politica
|
|
471
|
+
inexistente nao quebra o fluxo
|
|
448
472
|
Contato: add_label({labels:[...]}), remove_label({labels:[...]}), // etiqueta NO CONTATO
|
|
449
473
|
update_attribute({attr_source:'contact'|'conversation'|'card', attr_key, attr_value})
|
|
450
474
|
— campos EXATOS (NAO entity/key/value). Somar/subtrair via Liquid no attr_value:
|
|
@@ -552,8 +576,12 @@ CADASTRAL forma curta (canonica): contact.cpf, contact.cnpj, contact.rg, contact
|
|
|
552
576
|
conversation.id (id INTERNO do banco), conversation.display_id (numero do app — use ESTE pra montar
|
|
553
577
|
link de conversa), conversation.status, conversation.team_id, conversation.agent_id,
|
|
554
578
|
conversation.labels, conversation.custom_attribute.X
|
|
555
|
-
|
|
556
|
-
|
|
579
|
+
agent.name, agent.first_name, agent.last_name, agent.id, agent.email (email NOVO 23/07)
|
|
580
|
+
inbox.id, inbox.name (antes resolviam vazio fora do Enviar Mensagem — corrigido 23/07)
|
|
581
|
+
account.name, account.id (id NOVO 23/07), account.custom_attribute.X (inclui variaveis de conta e
|
|
582
|
+
segredos — NAO existe env.X), {{var_criada_no_set_variable}}, {{ai_intent}}, {{api_response_var}}
|
|
583
|
+
DESDE 23/07 essas variaveis padrao funcionam em TODOS os nodes (Chamada API, Condicoes, IA, Definir
|
|
584
|
+
Variavel) — antes so no Enviar Mensagem. Campo vazio resolve pra string vazia (nunca trava o flow).
|
|
557
585
|
|
|
558
586
|
═══ ANTI-LOOP ═══
|
|
559
587
|
Cadeias automacao<->flow tem profundidade maxima 5 hand-offs (MAX_CHAIN_DEPTH). No 5o a cadeia e
|
|
@@ -576,6 +604,11 @@ sourceHandle OBRIGATORIO casar com handle exposto pelo node source.
|
|
|
576
604
|
9. ai_tool via flow_tools_create (flows_create rejeita/cria do tipo errado); no end obrigatorio
|
|
577
605
|
10. node sem position empilha tudo em (0,0) — sempre informe e nunca repita (x,y)
|
|
578
606
|
11. condition: field SEM '{{}}' compara texto literal (nunca casa) E regra sem valueType:'variable'
|
|
607
|
+
12. NOTA (type:'note'): o texto vai em data.title + data.body — 'content'/'label'/'text' NAO
|
|
608
|
+
renderizam (nota aparece EM BRANCO na tela). Nunca crie nota sem body preenchido.
|
|
609
|
+
13. ESPACAMENTO: colunas de nodes a >=320px no eixo x (ex.: 50, 370, 690, 1010...) e irmaos/ramos a
|
|
610
|
+
>=180px no eixo y — nodes colados escondem as linhas de conexao. Sticky notes ficam AO LADO ou
|
|
611
|
+
ACIMA do trecho comentado (ex.: y do node - 240), NUNCA sobre nodes ou sobre as linhas.
|
|
579
612
|
fica INVISIVEL no editor (salvar pela tela perde a regra) — ver secao condition acima
|
|
580
613
|
12. Atribuir equipe/agente DINAMICO: NAO use node api chamando a propria plataforma
|
|
581
614
|
(/conversations/{id}/assignments com token). Use a acao nativa: action item
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/endpoints.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"method": "PUT",
|
|
37
37
|
"path": "/api/v1/profile",
|
|
38
38
|
"title": "Atualizar Perfil",
|
|
39
|
-
"description": "Atualiza o perfil do usuário atual. Campos (nested em profile): name, email, display_name, avatar, message_signature, timezone, ui_settings, current_password, password. NÃO altera availability aqui.",
|
|
39
|
+
"description": "Atualiza o perfil do usuário atual. Campos (nested em profile): name, email, display_name, avatar, message_signature, timezone, ui_settings, current_password, password. NÃO altera availability aqui. NOVO 22/07: aceita working_hours_enabled + working_hours (horário comercial único da conta; SLA com only_during_business_hours passa a contar só o expediente).",
|
|
40
40
|
"category": "Conta",
|
|
41
41
|
"params": [
|
|
42
42
|
{
|
|
@@ -94,6 +94,20 @@
|
|
|
94
94
|
"location": "body",
|
|
95
95
|
"required": false,
|
|
96
96
|
"description": "Nova senha"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "working_hours_enabled",
|
|
100
|
+
"type": "boolean",
|
|
101
|
+
"location": "body",
|
|
102
|
+
"required": false,
|
|
103
|
+
"description": "Liga/desliga o horário comercial NO NÍVEL DA CONTA (novo 22/07). Quando ligado, vale para todas as caixas EXCETO Chat do Site (que mantém o horário individual da caixa)."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "working_hours",
|
|
107
|
+
"type": "array",
|
|
108
|
+
"location": "body",
|
|
109
|
+
"required": false,
|
|
110
|
+
"description": "Grade de horário comercial da conta: array com os 7 dias, cada um {day_of_week: 0-6 (0=domingo), closed_all_day: bool, open_all_day: bool, open_hour, open_minutes, close_hour, close_minutes}. Mesmo formato do horário de caixa. Ex.: {\"day_of_week\":1,\"closed_all_day\":false,\"open_all_day\":false,\"open_hour\":9,\"open_minutes\":0,\"close_hour\":18,\"close_minutes\":0}. O show da conta retorna working_hours (somente leitura, [] se nunca configurado) e working_hours_enabled."
|
|
97
111
|
}
|
|
98
112
|
],
|
|
99
113
|
"returns": "perfil do usuário atualizado",
|
|
@@ -1073,6 +1087,32 @@
|
|
|
1073
1087
|
],
|
|
1074
1088
|
"related_tools": []
|
|
1075
1089
|
},
|
|
1090
|
+
{
|
|
1091
|
+
"id": "lionchat_conversations_mentionable_users",
|
|
1092
|
+
"method": "GET",
|
|
1093
|
+
"path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/mentionable_users",
|
|
1094
|
+
"title": "Agentes Mencionáveis da Conversa",
|
|
1095
|
+
"description": "Lista os agentes que podem ser @mencionados em nota interna DESTA conversa (novo 22/07) — só quem tem acesso a ela: administradores, membros da caixa, membros do time da conversa e o responsável pelo card. Use antes de criar nota privada com menção: mencionar quem não está na lista não notifica. Regra irmã (comportamento, sem endpoint): notificação de nova mensagem agora vai SÓ para o responsável da conversa; participantes não recebem mais sino/push a cada mensagem (menção notifica pelo caminho próprio).",
|
|
1096
|
+
"category": "Conversas",
|
|
1097
|
+
"params": [
|
|
1098
|
+
{
|
|
1099
|
+
"name": "conversation_id",
|
|
1100
|
+
"type": "integer",
|
|
1101
|
+
"location": "path",
|
|
1102
|
+
"required": true,
|
|
1103
|
+
"description": "display_id da conversa"
|
|
1104
|
+
}
|
|
1105
|
+
],
|
|
1106
|
+
"returns": "200 {payload: [agentes]} — id, name, email, role, availability_status, thumbnail",
|
|
1107
|
+
"common_use_cases": [
|
|
1108
|
+
"Descobrir quem pode ser mencionado numa nota interna",
|
|
1109
|
+
"Escolher o agente certo para acionar numa conversa"
|
|
1110
|
+
],
|
|
1111
|
+
"related_tools": [
|
|
1112
|
+
"lionchat_conversations_messages_create",
|
|
1113
|
+
"lionchat_agents_list"
|
|
1114
|
+
]
|
|
1115
|
+
},
|
|
1076
1116
|
{
|
|
1077
1117
|
"id": "lionchat_conversations_list",
|
|
1078
1118
|
"method": "GET",
|
|
@@ -2018,7 +2058,7 @@
|
|
|
2018
2058
|
"method": "DELETE",
|
|
2019
2059
|
"path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/messages/{id}",
|
|
2020
2060
|
"title": "Deletar Mensagem",
|
|
2021
|
-
"description": "Remove uma mensagem (soft delete).
|
|
2061
|
+
"description": "Remove uma mensagem (soft delete no LionChat). ATENÇÃO por canal (esclarecido 22/07): exclusão que também some do WhatsApp do cliente SÓ existe em caixa WAHA (QR). Em caixa OFICIAL/coex (whatsapp_cloud) a Meta NÃO expõe API de apagar — a mensagem some só do painel e o cliente CONTINUA vendo no WhatsApp dele (o painel nem oferece mais essa opção nesses canais). Confirme o canal antes; ação irreversível.",
|
|
2022
2062
|
"category": "Mensagens",
|
|
2023
2063
|
"params": [
|
|
2024
2064
|
{
|
|
@@ -7493,7 +7533,7 @@
|
|
|
7493
7533
|
"method": "POST",
|
|
7494
7534
|
"path": "/api/v1/accounts/{account_id}/macros",
|
|
7495
7535
|
"title": "Criar Macro",
|
|
7496
|
-
"description": "Cria uma nova macro com ações. Cria novo macro. Obrigatórios: name, actions. Valida unicidade quando aplicável. Retorna o macro criado com ID atribuído.",
|
|
7536
|
+
"description": "Cria uma nova macro com ações. Cria novo macro. Obrigatórios: name, actions. Valida unicidade quando aplicável. Retorna o macro criado com ID atribuído. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500). NOVO 23/07 — cardápio equiparado ao das automações, 13 ações novas aceitas em action_name: add_sla (params [sla_policy_id]), open_conversation, pending_conversation (sem params), send_canned_response ([canned_response_id] — na MACRO a mensagem sai assinada pelo EXECUTOR da macro; na automação sai como robô), send_email_to_team ([{team_ids, message}]), assign_captain_assistant ([assistant_id]), e 7 de Kanban: create_kanban_item, move_kanban_item_to_stage, assign_agent_to_kanban_item, add_note_to_kanban_item, start_kanban_item_timer, stop_kanban_item_timer, set_kanban_item_status (params espelham os das automações: funil/etapa/nota/status). Fora do cardápio: send_whatsapp_template (exige caixa oficial específica).",
|
|
7497
7537
|
"category": "Macros",
|
|
7498
7538
|
"params": [
|
|
7499
7539
|
{
|
|
@@ -7555,7 +7595,7 @@
|
|
|
7555
7595
|
"method": "PATCH",
|
|
7556
7596
|
"path": "/api/v1/accounts/{account_id}/macros/{id}",
|
|
7557
7597
|
"title": "Atualizar Macro",
|
|
7558
|
-
"description": "Atualiza macro. Atualiza campos do macro existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: name, actions.",
|
|
7598
|
+
"description": "Atualiza macro. Atualiza campos do macro existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: name, actions. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500). NOVO 23/07 — cardápio equiparado ao das automações, 13 ações novas aceitas em action_name: add_sla (params [sla_policy_id]), open_conversation, pending_conversation (sem params), send_canned_response ([canned_response_id] — na MACRO a mensagem sai assinada pelo EXECUTOR da macro; na automação sai como robô), send_email_to_team ([{team_ids, message}]), assign_captain_assistant ([assistant_id]), e 7 de Kanban: create_kanban_item, move_kanban_item_to_stage, assign_agent_to_kanban_item, add_note_to_kanban_item, start_kanban_item_timer, stop_kanban_item_timer, set_kanban_item_status (params espelham os das automações: funil/etapa/nota/status). Fora do cardápio: send_whatsapp_template (exige caixa oficial específica).",
|
|
7559
7599
|
"category": "Macros",
|
|
7560
7600
|
"params": [
|
|
7561
7601
|
{
|
|
@@ -9157,7 +9197,7 @@
|
|
|
9157
9197
|
"method": "GET",
|
|
9158
9198
|
"path": "/api/v1/accounts/{account_id}/flows",
|
|
9159
9199
|
"title": "Listar Flows",
|
|
9160
|
-
"description": "Lista todos os flows da conta com estatísticas de execução. Lista flows paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de flow).",
|
|
9200
|
+
"description": "Lista todos os flows da conta com estatísticas de execução. Lista flows paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de flow). Cada flow retorna também o campo tags (array de strings, novo 22/07) — use para organizar/agrupar flows.",
|
|
9161
9201
|
"category": "Flows",
|
|
9162
9202
|
"params": [],
|
|
9163
9203
|
"returns": "meta (contadores globais) + payload (array de flows)",
|
|
@@ -9173,7 +9213,7 @@
|
|
|
9173
9213
|
"method": "POST",
|
|
9174
9214
|
"path": "/api/v1/accounts/{account_id}/flows",
|
|
9175
9215
|
"title": "Criar Flow",
|
|
9176
|
-
"description": "Cria um flow (FlowBuilder) na conta. Requer Admin. flow_data segue formato Vue Flow {nodes:[], edges:[]}. NODE SCHEMA — start: {label}. send_message: {label, messageItems:[{id, type:'text', content}]} handles: success/no_response/error. wait_response: {label, waitTime, waitUnit:'minutes'|'seconds', validation:'any'|'options'|'regex', acceptedOptions:['1','2'] (se options), regexPattern (se regex), invalidMessage, maxRetries:3, saveTo:'variable'|'contact_name'|'contact_email'|'contact_phone'|'contact_attr'|'conversation_attr'|'', saveVariable, saveAttrKey} — quando validation='options' os handles ficam 'option_{val}' + 'timeout'; senão 'success' + 'timeout' — NUNCA precisa de condition node depois. condition: {label, conditions:[{id, label, field, operator, value}]} handles = 'cond_0','cond_1',... (INDICE no array, NAO o id) + 'default'. action: {label, items:[{key, config:{...}}]} keys comuns assign_team({team_id}), assign_agent({agent_id}), add_label({labels:['slug',...]}), remove_label({labels}), change_status({status}), change_priority({priority}), mute_conversation({}), add_private_note({content}), create_kanban_item({funnel_id, funnel_stage,...}), move_kanban_stage({funnel_id, funnel_stage}), deactivate_flow({}), assign_captain({assistant_id}). api: {label, method, url, headers:[{key,value}], body, apiResponseVar}. set_variable: {label, variables:[{name, value}]}. wait: {label, waitTime, waitUnit}. EDGE SCHEMA: {id, source, target, sourceHandle (opcional, OBRIGATORIO casar com handle exposto pelo node source), type:'deletable', animated:true}. ERROS COMUNS QUE DEVEM SER EVITADOS: (1) action usa items[].config NAO items[].params; (2) send_message usa messageItems NAO items; (3) wait_response com validation='options' NAO precisa de condition node — use sourceHandle='option_X' diretamente; (4) sourceHandle inventado tipo 'c1','c2' nao funciona — sempre usar o handle real; (5) inbox_ids precisa vir aninhado em {flow:{inbox_ids:[]}} no PUT bruto, mas no MCP basta inbox_ids no nivel raiz. Cria novo flow. Obrigatórios: name, channel_type. Valida unicidade quando aplicável. Retorna o flow criado com ID atribuído. POSITIONING (CRITICO): cada node DEVE ter position:{x,y}. Sem isso, todos empilham no canvas no (0,0). Regra basica de layout: start em {x:50,y:300}, espaco horizontal +320 entre nodes sequenciais, ramificacoes em +/-150 vertical. ANTES DE GERAR JSON consulte o resource lionchat://docs/flowbuilder-design-guide (schema completo de cada tipo de node, handles expostos, erros comuns, checklist) e lionchat://docs/flowbuilder-patterns (10 templates prontos pra adaptar). BRAINSTORMING: se faltou info critica (canal, gatilho, conteudo), use o prompt create_flow_brainstorm como banco de perguntas sugeridas — pergunte SO o que falta, sem checklist forcado. APOS GERAR: rode o checklist da secao 6 do design guide antes de submeter (1 node start, todo node com id unico + position + data, todo edge com sourceHandle valido). NUNCA invente sourceHandle (no condition use cond_0/cond_1/default, no wait_response options use option_X, no AI intent use intent_<opcao>). IMPORTANTE: chame lionchat_flows_schema_reference antes pra ver o schema COMPLETO e atualizado (nodes end/ai/note, etiqueta conversa vs contato, webhook embutido, timeout, anti-loop). Pra ferramentas da IA (ai_tool) use lionchat_flow_tools_create. conversation_mode: 'individual' (default) | 'group'. Sticky note (type 'note'): data usa title+body+color(yellow|teal|blue|violet|pink|orange|slate)+width+height — NUNCA 'content'.",
|
|
9216
|
+
"description": "Cria um flow (FlowBuilder) na conta. Requer Admin. flow_data segue formato Vue Flow {nodes:[], edges:[]}. NODE SCHEMA — start: {label}. send_message: {label, messageItems:[{id, type:'text', content}]} handles: success/no_response/error. wait_response: {label, waitTime, waitUnit:'minutes'|'seconds', validation:'any'|'options'|'regex', acceptedOptions:['1','2'] (se options), regexPattern (se regex), invalidMessage, maxRetries:3, saveTo:'variable'|'contact_name'|'contact_email'|'contact_phone'|'contact_attr'|'conversation_attr'|'', saveVariable, saveAttrKey} — quando validation='options' os handles ficam 'option_{val}' + 'timeout'; senão 'success' + 'timeout' — NUNCA precisa de condition node depois. condition: {label, conditions:[{id, label, field, operator, value}]} handles = 'cond_0','cond_1',... (INDICE no array, NAO o id) + 'default'. action: {label, items:[{key, config:{...}}]} keys comuns assign_team({team_id}), assign_agent({agent_id}), add_label({labels:['slug',...]}), remove_label({labels}), change_status({status}), change_priority({priority}), mute_conversation({}), add_private_note({content}), create_kanban_item({funnel_id, funnel_stage,...}), move_kanban_stage({funnel_id, funnel_stage}), deactivate_flow({}), assign_captain({assistant_id}). api: {label, method, url, headers:[{key,value}], body, apiResponseVar}. set_variable: {label, variables:[{name, value}]}. wait: {label, waitTime, waitUnit}. EDGE SCHEMA: {id, source, target, sourceHandle (opcional, OBRIGATORIO casar com handle exposto pelo node source), type:'deletable', animated:true}. ERROS COMUNS QUE DEVEM SER EVITADOS: (1) action usa items[].config NAO items[].params; (2) send_message usa messageItems NAO items; (3) wait_response com validation='options' NAO precisa de condition node — use sourceHandle='option_X' diretamente; (4) sourceHandle inventado tipo 'c1','c2' nao funciona — sempre usar o handle real; (5) inbox_ids precisa vir aninhado em {flow:{inbox_ids:[]}} no PUT bruto, mas no MCP basta inbox_ids no nivel raiz. Cria novo flow. Obrigatórios: name, channel_type. Valida unicidade quando aplicável. Retorna o flow criado com ID atribuído. POSITIONING (CRITICO): cada node DEVE ter position:{x,y}. Sem isso, todos empilham no canvas no (0,0). Regra basica de layout: start em {x:50,y:300}, espaco horizontal +320 entre nodes sequenciais, ramificacoes em +/-150 vertical. ANTES DE GERAR JSON consulte o resource lionchat://docs/flowbuilder-design-guide (schema completo de cada tipo de node, handles expostos, erros comuns, checklist) e lionchat://docs/flowbuilder-patterns (10 templates prontos pra adaptar). BRAINSTORMING: se faltou info critica (canal, gatilho, conteudo), use o prompt create_flow_brainstorm como banco de perguntas sugeridas — pergunte SO o que falta, sem checklist forcado. APOS GERAR: rode o checklist da secao 6 do design guide antes de submeter (1 node start, todo node com id unico + position + data, todo edge com sourceHandle valido). NUNCA invente sourceHandle (no condition use cond_0/cond_1/default, no wait_response options use option_X, no AI intent use intent_<opcao>). IMPORTANTE: chame lionchat_flows_schema_reference antes pra ver o schema COMPLETO e atualizado (nodes end/ai/note, etiqueta conversa vs contato, webhook embutido, timeout, anti-loop). Pra ferramentas da IA (ai_tool) use lionchat_flow_tools_create. conversation_mode: 'individual' (default) | 'group'. Sticky note (type 'note'): data usa title+body+color(yellow|teal|blue|violet|pink|orange|slate)+width+height — NUNCA 'content'. ORGANIZAÇÃO: preencha tags ao criar (reutilizando as tags já existentes nos flows da conta — veja flows_list) pra manter a lista organizada. STICKY NOTE: o texto da nota (type note) vai em data.title + data.body — content/label/text deixam a nota EM BRANCO na tela; nunca crie nota sem body. LAYOUT: espace os nodes (colunas a >=320px no x, ramos a >=180px no y; notas AO LADO/ACIMA do trecho, nunca sobre nodes ou linhas).",
|
|
9177
9217
|
"category": "Flows",
|
|
9178
9218
|
"params": [
|
|
9179
9219
|
{
|
|
@@ -9217,6 +9257,13 @@
|
|
|
9217
9257
|
"location": "body",
|
|
9218
9258
|
"required": false,
|
|
9219
9259
|
"description": "Estrutura {nodes:[], edges:[]} em formato Vue Flow. CONSULTE A DESCRICAO DO TOOL para schema completo dos nodes (start, send_message, wait_response, condition, action, api, set_variable, wait). Cada node tem campo 'data' com formato especifico por tipo. Edges precisam ter sourceHandle correto (ex: 'option_1', 'success', 'timeout', 'no_response')."
|
|
9260
|
+
},
|
|
9261
|
+
{
|
|
9262
|
+
"name": "tags",
|
|
9263
|
+
"type": "array",
|
|
9264
|
+
"location": "body",
|
|
9265
|
+
"required": false,
|
|
9266
|
+
"description": "Tags livres do flow para organização (array de strings; máx 20 tags, cada uma até 50 caracteres; duplicadas por maiúscula/minúscula são unificadas). A lista de flows na tela filtra por Status/Tipo/Caixa/Tags no navegador — não há filtro por query param no index."
|
|
9220
9267
|
}
|
|
9221
9268
|
],
|
|
9222
9269
|
"returns": "flow criado (com novo ID)",
|
|
@@ -9261,7 +9308,7 @@
|
|
|
9261
9308
|
"method": "PUT",
|
|
9262
9309
|
"path": "/api/v1/accounts/{account_id}/flows/{id}",
|
|
9263
9310
|
"title": "Atualizar Flow",
|
|
9264
|
-
"description": "Atualiza nome, descricao, caixas de entrada ou dados dos blocos. Mesmo schema de flow_data do tool lionchat_flows_create — consulte a descricao daquele tool para o schema completo dos nodes (start, send_message, wait_response, condition, action, api, set_variable) e dos edges. RECAP RAPIDO: action items[].config (nao params); send_message messageItems (nao items); wait_response validation='options' gera handles 'option_X' (dispensa condition node); edges sourceHandle DEVE casar com handle real do node source. Atualiza campos do flow existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: name, description, inbox_ids, flow_data. IMPORTANTE: chame lionchat_flows_schema_reference antes pra ver o schema COMPLETO e atualizado (nodes end/ai/note, etiqueta conversa vs contato, webhook embutido, timeout, anti-loop). Pra ferramentas da IA (ai_tool) use lionchat_flow_tools_create.",
|
|
9311
|
+
"description": "Atualiza nome, descricao, caixas de entrada ou dados dos blocos. Mesmo schema de flow_data do tool lionchat_flows_create — consulte a descricao daquele tool para o schema completo dos nodes (start, send_message, wait_response, condition, action, api, set_variable) e dos edges. RECAP RAPIDO: action items[].config (nao params); send_message messageItems (nao items); wait_response validation='options' gera handles 'option_X' (dispensa condition node); edges sourceHandle DEVE casar com handle real do node source. Atualiza campos do flow existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: name, description, inbox_ids, flow_data. IMPORTANTE: chame lionchat_flows_schema_reference antes pra ver o schema COMPLETO e atualizado (nodes end/ai/note, etiqueta conversa vs contato, webhook embutido, timeout, anti-loop). Pra ferramentas da IA (ai_tool) use lionchat_flow_tools_create. STICKY NOTE: o texto da nota (type note) vai em data.title + data.body — content/label/text deixam a nota EM BRANCO na tela; nunca crie nota sem body. LAYOUT: espace os nodes (colunas a >=320px no x, ramos a >=180px no y; notas AO LADO/ACIMA do trecho, nunca sobre nodes ou linhas).",
|
|
9265
9312
|
"category": "Flows",
|
|
9266
9313
|
"params": [
|
|
9267
9314
|
{
|
|
@@ -9298,6 +9345,13 @@
|
|
|
9298
9345
|
"location": "body",
|
|
9299
9346
|
"required": false,
|
|
9300
9347
|
"description": "Estrutura {nodes:[], edges:[]} em formato Vue Flow. Ver descricao do tool lionchat_flows_create para schema dos nodes."
|
|
9348
|
+
},
|
|
9349
|
+
{
|
|
9350
|
+
"name": "tags",
|
|
9351
|
+
"type": "array",
|
|
9352
|
+
"location": "body",
|
|
9353
|
+
"required": false,
|
|
9354
|
+
"description": "Tags livres do flow para organização (array de strings; máx 20 tags, cada uma até 50 caracteres; duplicadas por maiúscula/minúscula são unificadas). A lista de flows na tela filtra por Status/Tipo/Caixa/Tags no navegador — não há filtro por query param no index."
|
|
9301
9355
|
}
|
|
9302
9356
|
],
|
|
9303
9357
|
"returns": "flow atualizado",
|
|
@@ -9732,7 +9786,7 @@
|
|
|
9732
9786
|
"method": "POST",
|
|
9733
9787
|
"path": "/api/v1/accounts/{account_id}/automation_rules",
|
|
9734
9788
|
"title": "Criar Regra de Automacao",
|
|
9735
|
-
"description": "Cria uma regra de automacao. event_name validos: conversation_created, conversation_updated, conversation_resolved, message_created, conversation_opened, webhook, kanban_item_created, kanban_item_stage_changed. conditions: [{attribute_key, filter_operator, query_operator, values[]}]. actions: [{action_name, action_params[]}]. Aceita active, inbox_id.",
|
|
9789
|
+
"description": "Cria uma regra de automacao. event_name validos: conversation_created, conversation_updated, conversation_resolved, message_created, conversation_opened, webhook, kanban_item_created, kanban_item_stage_changed. conditions: [{attribute_key, filter_operator, query_operator, values[]}]. actions: [{action_name, action_params[]}]. Aceita active, inbox_id. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500).",
|
|
9736
9790
|
"category": "Regras de Automacao",
|
|
9737
9791
|
"params": [
|
|
9738
9792
|
{
|
|
@@ -9768,7 +9822,7 @@
|
|
|
9768
9822
|
"type": "array",
|
|
9769
9823
|
"location": "body",
|
|
9770
9824
|
"required": true,
|
|
9771
|
-
"description": "[{action_name, action_params[]}] Actions novas (2026-07-21): 'update_contact_attribute' e 'update_conversation_attribute' — action_params: [{attribute_key, value}], value aceita texto fixo OU variável Liquid (ex. {{contact.phone_number}}); grava atributo personalizado com MERGE (não apaga os demais) e passa pelo porteiro de data. 'pending_conversation' (2026-07-20, sem params) — deixa a conversa PENDENTE (handoff; mensagem nova do cliente NÃO reabre)."
|
|
9825
|
+
"description": "CADA item de actions DEVE ser um OBJETO {action_name (string), action_params (array)} — NUNCA um texto/string solto. Ex.: [{\"action_name\":\"send_message\",\"action_params\":[\"Oi\"]}]. [{action_name, action_params[]}] Actions novas (2026-07-21): 'update_contact_attribute' e 'update_conversation_attribute' — action_params: [{attribute_key, value}], value aceita texto fixo OU variável Liquid (ex. {{contact.phone_number}}); grava atributo personalizado com MERGE (não apaga os demais) e passa pelo porteiro de data. 'pending_conversation' (2026-07-20, sem params) — deixa a conversa PENDENTE (handoff; mensagem nova do cliente NÃO reabre)."
|
|
9772
9826
|
},
|
|
9773
9827
|
{
|
|
9774
9828
|
"name": "active",
|
|
@@ -9830,7 +9884,7 @@
|
|
|
9830
9884
|
"method": "PUT",
|
|
9831
9885
|
"path": "/api/v1/accounts/{account_id}/automation_rules/{id}",
|
|
9832
9886
|
"title": "Atualizar Regra",
|
|
9833
|
-
"description": "Atualiza uma regra de automacao (PUT, substituicao completa). Campos: name, event_name, conditions, actions, active, inbox_id.",
|
|
9887
|
+
"description": "Atualiza uma regra de automacao (PUT, substituicao completa). Campos: name, event_name, conditions, actions, active, inbox_id. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500).",
|
|
9834
9888
|
"category": "Regras de Automacao",
|
|
9835
9889
|
"params": [
|
|
9836
9890
|
{
|
|
@@ -9866,7 +9920,7 @@
|
|
|
9866
9920
|
"type": "array",
|
|
9867
9921
|
"location": "body",
|
|
9868
9922
|
"required": false,
|
|
9869
|
-
"description": "Acoes Actions novas (2026-07-21): 'update_contact_attribute' e 'update_conversation_attribute' — action_params: [{attribute_key, value}], value aceita texto fixo OU variável Liquid (ex. {{contact.phone_number}}); grava atributo personalizado com MERGE (não apaga os demais) e passa pelo porteiro de data. 'pending_conversation' (2026-07-20, sem params) — deixa a conversa PENDENTE (handoff; mensagem nova do cliente NÃO reabre)."
|
|
9923
|
+
"description": "CADA item de actions DEVE ser um OBJETO {action_name (string), action_params (array)} — NUNCA um texto/string solto. Ex.: [{\"action_name\":\"send_message\",\"action_params\":[\"Oi\"]}]. Acoes Actions novas (2026-07-21): 'update_contact_attribute' e 'update_conversation_attribute' — action_params: [{attribute_key, value}], value aceita texto fixo OU variável Liquid (ex. {{contact.phone_number}}); grava atributo personalizado com MERGE (não apaga os demais) e passa pelo porteiro de data. 'pending_conversation' (2026-07-20, sem params) — deixa a conversa PENDENTE (handoff; mensagem nova do cliente NÃO reabre)."
|
|
9870
9924
|
}
|
|
9871
9925
|
],
|
|
9872
9926
|
"returns": "regra de automação atualizado",
|
|
@@ -13540,7 +13594,7 @@
|
|
|
13540
13594
|
"method": "POST",
|
|
13541
13595
|
"path": "/api/v1/accounts/{account_id}/sla_policies",
|
|
13542
13596
|
"title": "Criar Politica SLA",
|
|
13543
|
-
"description": "Cria uma politica de SLA. ENTERPRISE-only. Body exige wrapper sla_policy. Thresholds em segundos (float).",
|
|
13597
|
+
"description": "Cria uma politica de SLA. ENTERPRISE-only. Body exige wrapper sla_policy. Thresholds em segundos (float). NOVO 22/07: only_during_business_hours agora é EFETIVO — o relógio do SLA conta só os segundos dentro do horário comercial (Chat do Site usa o horário da própria caixa; demais canais usam o horário comercial da CONTA, se ligado; tudo fechado = volta a contar 24/7).",
|
|
13544
13598
|
"category": "SLA",
|
|
13545
13599
|
"params": [
|
|
13546
13600
|
{
|
|
@@ -13584,6 +13638,13 @@
|
|
|
13584
13638
|
"location": "body",
|
|
13585
13639
|
"required": false,
|
|
13586
13640
|
"description": "Considerar apenas horario comercial"
|
|
13641
|
+
},
|
|
13642
|
+
{
|
|
13643
|
+
"name": "resolution_check_delay",
|
|
13644
|
+
"type": "number",
|
|
13645
|
+
"location": "body",
|
|
13646
|
+
"required": false,
|
|
13647
|
+
"description": "Tempo de checagem da resolução, em SEGUNDOS (novo 23/07): a conversa precisa ficar resolvida por N segundos para o SLA selar o resultado final — reaberta dentro da janela, os relógios continuam do ponto original (fecha a brecha do resolve-reabre). Null/ausente = sela na hora (comportamento antigo). Ex.: 1800 = 30 minutos."
|
|
13587
13648
|
}
|
|
13588
13649
|
],
|
|
13589
13650
|
"returns": "política SLA criado (com novo ID)",
|
|
@@ -13624,7 +13685,7 @@
|
|
|
13624
13685
|
"method": "PUT",
|
|
13625
13686
|
"path": "/api/v1/accounts/{account_id}/sla_policies/{id}",
|
|
13626
13687
|
"title": "Atualizar SLA",
|
|
13627
|
-
"description": "Atualiza uma politica de SLA. ENTERPRISE-only. Wrapper sla_policy.",
|
|
13688
|
+
"description": "Atualiza uma politica de SLA. ENTERPRISE-only. Wrapper sla_policy. NOVO 22/07: only_during_business_hours agora é EFETIVO — o relógio do SLA conta só os segundos dentro do horário comercial (Chat do Site usa o horário da própria caixa; demais canais usam o horário comercial da CONTA, se ligado; tudo fechado = volta a contar 24/7).",
|
|
13628
13689
|
"category": "SLA",
|
|
13629
13690
|
"params": [
|
|
13630
13691
|
{
|
|
@@ -13675,6 +13736,13 @@
|
|
|
13675
13736
|
"location": "body",
|
|
13676
13737
|
"required": false,
|
|
13677
13738
|
"description": "Considerar apenas horario comercial"
|
|
13739
|
+
},
|
|
13740
|
+
{
|
|
13741
|
+
"name": "resolution_check_delay",
|
|
13742
|
+
"type": "number",
|
|
13743
|
+
"location": "body",
|
|
13744
|
+
"required": false,
|
|
13745
|
+
"description": "Tempo de checagem da resolução, em SEGUNDOS (novo 23/07): a conversa precisa ficar resolvida por N segundos para o SLA selar o resultado final — reaberta dentro da janela, os relógios continuam do ponto original (fecha a brecha do resolve-reabre). Null/ausente = sela na hora (comportamento antigo). Ex.: 1800 = 30 minutos."
|
|
13678
13746
|
}
|
|
13679
13747
|
],
|
|
13680
13748
|
"returns": "política SLA atualizado",
|
|
@@ -13792,7 +13860,7 @@
|
|
|
13792
13860
|
"method": "POST",
|
|
13793
13861
|
"path": "/api/v1/accounts/{account_id}/support_access",
|
|
13794
13862
|
"title": "Solicitar Acesso de Suporte",
|
|
13795
|
-
"description": "Concede acesso de suporte (SuperAdmin) à conta. Obrigatório: support_agent_email. Grantee pode ser SuperAdmin OU usuário marcado como 'usuário de suporte' no Super Admin (isenção de vaga). 422 se o e-mail já for agente pago regular da conta (sem grant prévio).",
|
|
13863
|
+
"description": "Concede acesso de suporte (SuperAdmin) à conta. Obrigatório: support_agent_email. Grantee pode ser SuperAdmin OU usuário marcado como 'usuário de suporte' no Super Admin (isenção de vaga). 422 se o e-mail já for agente pago regular da conta (sem grant prévio). Acesso VITALÍCIO: envie lifetime:true (duration_hours é ignorado). No painel, o vitalício aparece como opção do menu de duração (23/07).",
|
|
13796
13864
|
"category": "Acesso de Suporte",
|
|
13797
13865
|
"params": [
|
|
13798
13866
|
{
|
|
@@ -20262,7 +20330,7 @@
|
|
|
20262
20330
|
"method": "DELETE",
|
|
20263
20331
|
"path": "/api/v1/accounts/{account_id}/agents/{id}",
|
|
20264
20332
|
"title": "Excluir Agente",
|
|
20265
|
-
"description": "Remove um agente da conta.
|
|
20333
|
+
"description": "Remove um agente da conta. Se o agente tiver recursos vinculados (conversas, times, inboxes etc.), reassign_to_agent_id é OBRIGATÓRIO (sem ele: 422). NOVO 22/07: a exclusão COM reatribuição roda em SEGUNDO PLANO (pode levar minutos em conta grande) — a resposta é 202 {status:'processing'} e o agente some da lista só quando o job termina; enquanto isso o index de agentes traz a flag deleting=true no agente. Tentar excluir de novo durante o processamento retorna 409 {error:'agent_already_being_deleted'} — NÃO repita a chamada, aguarde. Use lionchat_agents_assigned_resources antes para checar dependências.",
|
|
20266
20334
|
"category": "Agentes",
|
|
20267
20335
|
"params": [
|
|
20268
20336
|
{
|
|
@@ -20280,7 +20348,7 @@
|
|
|
20280
20348
|
"description": "ID do agente que receberá os recursos. Obrigatório quando o agente possui recursos vinculados."
|
|
20281
20349
|
}
|
|
20282
20350
|
],
|
|
20283
|
-
"returns": "200 OK",
|
|
20351
|
+
"returns": "200 OK (sem recursos, síncrono) | 202 Accepted {status:'processing'} (com reatribuição, roda em 2º plano) | 409 agent_already_being_deleted (exclusão já em andamento) | 422 (reassign_to_agent_id faltando ou igual ao próprio agente) | 404 (agente de destino inexistente)",
|
|
20284
20352
|
"common_use_cases": [
|
|
20285
20353
|
"Desligar um agente reatribuindo suas conversas",
|
|
20286
20354
|
"Limpeza de agentes inativos",
|
|
@@ -20709,7 +20777,7 @@
|
|
|
20709
20777
|
"method": "POST",
|
|
20710
20778
|
"path": "/api/v1/accounts/{account_id}/campaigns",
|
|
20711
20779
|
"title": "Criar Campanha",
|
|
20712
|
-
"description": "Cria campanha. O TIPO vem da inbox: WhatsApp oficial (Cloud, exige template em template_params), WhatsApp QR Code/WAHA (texto livre + variações anti-bloqueio), SMS/Twilio, ou Website (ongoing — popup de chat por URL/tempo). One-off exige audience. ENVIO EM MASSA: SEMPRE rode estimate_audience com o MESMO audience+audience_mode antes e CONFIRME com o usuário. 422 se inbox incompatível, audience vazio (one-off) ou ConversationAttribute sem key/value.",
|
|
20780
|
+
"description": "Cria campanha. O TIPO vem da inbox: WhatsApp oficial (Cloud, exige template em template_params), WhatsApp QR Code/WAHA (texto livre + variações anti-bloqueio), SMS/Twilio, ou Website (ongoing — popup de chat por URL/tempo). One-off exige audience. ENVIO EM MASSA: SEMPRE rode estimate_audience com o MESMO audience+audience_mode antes e CONFIRME com o usuário. 422 se inbox incompatível, audience vazio (one-off) ou ConversationAttribute sem key/value. COMPORTAMENTO NOVO 23/07: as ações pós-envio da campanha (tag/atributo/prioridade/atendente) aplicam SÓ quando a Meta confirma a ENTREGA (delivered/read), nunca no aceite — mensagem que falha ou é barrada por spam NÃO recebe as ações (corrige exclusão furada no disparo seguinte). Efeito visível: a tag/atributo pode levar de segundos a minutos pra aparecer após o disparo.",
|
|
20713
20781
|
"category": "Campanhas",
|
|
20714
20782
|
"params": [
|
|
20715
20783
|
{
|
|
@@ -20837,7 +20905,7 @@
|
|
|
20837
20905
|
"method": "PATCH",
|
|
20838
20906
|
"path": "/api/v1/accounts/{account_id}/campaigns/{id}",
|
|
20839
20907
|
"title": "Atualizar Campanha",
|
|
20840
|
-
"description": "Atualiza campanha (mesmos campos do create). Campanha one-off já 'completed' não pode ser editada (422). Mudar audience de campanha agendada vale pro disparo.",
|
|
20908
|
+
"description": "Atualiza campanha (mesmos campos do create). Campanha one-off já 'completed' não pode ser editada (422). Mudar audience de campanha agendada vale pro disparo. COMPORTAMENTO NOVO 23/07: as ações pós-envio da campanha (tag/atributo/prioridade/atendente) aplicam SÓ quando a Meta confirma a ENTREGA (delivered/read), nunca no aceite — mensagem que falha ou é barrada por spam NÃO recebe as ações (corrige exclusão furada no disparo seguinte). Efeito visível: a tag/atributo pode levar de segundos a minutos pra aparecer após o disparo.",
|
|
20841
20909
|
"category": "Campanhas",
|
|
20842
20910
|
"params": [
|
|
20843
20911
|
{
|
|
@@ -24133,6 +24201,144 @@
|
|
|
24133
24201
|
],
|
|
24134
24202
|
"related_tools": []
|
|
24135
24203
|
},
|
|
24204
|
+
{
|
|
24205
|
+
"id": "lionchat_eclinica_integrations_list",
|
|
24206
|
+
"method": "GET",
|
|
24207
|
+
"path": "/api/v1/accounts/{account_id}/eclinica_integrations",
|
|
24208
|
+
"title": "Listar Integração e-Clínica",
|
|
24209
|
+
"description": "Lista a integração e-Clínica da conta (no máximo 1 por conta) com id, status e configurações. Use PRIMEIRO para descobrir o {id} exigido pelas ferramentas de histórico de lembretes. Eventos mapeáveis incluem (23/07) os novos cliente_inclusao_pagamento ('Inclusão de cobrança' — cobrança/carnê criado, ainda não pago; grava eclinica_ultima_cobranca_valor/vencimento/descricao no contato) e controle_laboratorio_novo ('Controle de laboratório' — grava eclinica_laboratorio_data_prevista/data_moldagem/data_entrega/situacao). ATENÇÃO: o mapeamento evento→flow NÃO é editável via MCP (somente pelo painel).",
|
|
24210
|
+
"category": "Integracoes",
|
|
24211
|
+
"params": [],
|
|
24212
|
+
"returns": "200 {payload: {eclinica_integrations: [...]}}",
|
|
24213
|
+
"common_use_cases": [
|
|
24214
|
+
"Descobrir o id da integração e-Clínica da conta",
|
|
24215
|
+
"Conferir se a integração está ativa"
|
|
24216
|
+
],
|
|
24217
|
+
"related_tools": [
|
|
24218
|
+
"lionchat_eclinica_reminder_history_list"
|
|
24219
|
+
]
|
|
24220
|
+
},
|
|
24221
|
+
{
|
|
24222
|
+
"id": "lionchat_eclinica_reminder_history_list",
|
|
24223
|
+
"method": "GET",
|
|
24224
|
+
"path": "/api/v1/accounts/{account_id}/eclinica_integrations/{id}/reminder_history",
|
|
24225
|
+
"title": "Histórico dos Lembretes e-Clínica",
|
|
24226
|
+
"description": "Lista os disparos de lembrete agendados da integração e-Clínica (novo 23/07) — responde 'o lembrete do paciente X saiu?'. Cada item traz status (pending aguardando | fired enviado | cancelled | skipped pulado + skip_reason | failed falhou + fail_reason), datas (created_at recebido, fire_at agendado, fired_at disparado, data_consulta), flow_name, contact_name, compromisso e unidade. Somente administrador.",
|
|
24227
|
+
"category": "Integracoes",
|
|
24228
|
+
"params": [
|
|
24229
|
+
{
|
|
24230
|
+
"name": "id",
|
|
24231
|
+
"type": "integer",
|
|
24232
|
+
"location": "path",
|
|
24233
|
+
"required": true,
|
|
24234
|
+
"description": "ID da integração e-Clínica (de lionchat_eclinica_integrations_list)"
|
|
24235
|
+
},
|
|
24236
|
+
{
|
|
24237
|
+
"name": "page",
|
|
24238
|
+
"type": "integer",
|
|
24239
|
+
"location": "query",
|
|
24240
|
+
"required": false,
|
|
24241
|
+
"description": "Página"
|
|
24242
|
+
},
|
|
24243
|
+
{
|
|
24244
|
+
"name": "per",
|
|
24245
|
+
"type": "integer",
|
|
24246
|
+
"location": "query",
|
|
24247
|
+
"required": false,
|
|
24248
|
+
"description": "Itens por página (máx 100, padrão 50)"
|
|
24249
|
+
},
|
|
24250
|
+
{
|
|
24251
|
+
"name": "status",
|
|
24252
|
+
"type": "string",
|
|
24253
|
+
"location": "query",
|
|
24254
|
+
"required": false,
|
|
24255
|
+
"description": "Filtro: pending, fired, cancelled, skipped ou failed"
|
|
24256
|
+
},
|
|
24257
|
+
{
|
|
24258
|
+
"name": "date_field",
|
|
24259
|
+
"type": "string",
|
|
24260
|
+
"location": "query",
|
|
24261
|
+
"required": false,
|
|
24262
|
+
"description": "Campo do filtro de data: fire_at, created_at ou data_consulta"
|
|
24263
|
+
},
|
|
24264
|
+
{
|
|
24265
|
+
"name": "date_from",
|
|
24266
|
+
"type": "string",
|
|
24267
|
+
"location": "query",
|
|
24268
|
+
"required": false,
|
|
24269
|
+
"description": "Data inicial (AAAA-MM-DD)"
|
|
24270
|
+
},
|
|
24271
|
+
{
|
|
24272
|
+
"name": "date_to",
|
|
24273
|
+
"type": "string",
|
|
24274
|
+
"location": "query",
|
|
24275
|
+
"required": false,
|
|
24276
|
+
"description": "Data final (AAAA-MM-DD)"
|
|
24277
|
+
},
|
|
24278
|
+
{
|
|
24279
|
+
"name": "q",
|
|
24280
|
+
"type": "string",
|
|
24281
|
+
"location": "query",
|
|
24282
|
+
"required": false,
|
|
24283
|
+
"description": "Busca por nome do contato"
|
|
24284
|
+
},
|
|
24285
|
+
{
|
|
24286
|
+
"name": "sort_by",
|
|
24287
|
+
"type": "string",
|
|
24288
|
+
"location": "query",
|
|
24289
|
+
"required": false,
|
|
24290
|
+
"description": "Ordenar por: created_at, fire_at, fired_at ou data_consulta"
|
|
24291
|
+
},
|
|
24292
|
+
{
|
|
24293
|
+
"name": "sort_dir",
|
|
24294
|
+
"type": "string",
|
|
24295
|
+
"location": "query",
|
|
24296
|
+
"required": false,
|
|
24297
|
+
"description": "asc ou desc"
|
|
24298
|
+
}
|
|
24299
|
+
],
|
|
24300
|
+
"returns": "200 {payload: {firings: [{id, status, created_at, fire_at, fired_at, flow_id, flow_name, contact_id, contact_name, data_consulta, hora_consulta, compromisso, unidade_nome, days_before, skip_reason, fail_reason}]}, meta: {count, current_page, per_page, total_pages}}",
|
|
24301
|
+
"common_use_cases": [
|
|
24302
|
+
"Verificar se o lembrete de consulta de um paciente foi enviado",
|
|
24303
|
+
"Listar lembretes que falharam para reprocessar",
|
|
24304
|
+
"Auditar os disparos agendados de um período"
|
|
24305
|
+
],
|
|
24306
|
+
"related_tools": [
|
|
24307
|
+
"lionchat_eclinica_integrations_list",
|
|
24308
|
+
"lionchat_eclinica_reminder_history_reprocess"
|
|
24309
|
+
]
|
|
24310
|
+
},
|
|
24311
|
+
{
|
|
24312
|
+
"id": "lionchat_eclinica_reminder_history_reprocess",
|
|
24313
|
+
"method": "POST",
|
|
24314
|
+
"path": "/api/v1/accounts/{account_id}/eclinica_integrations/{id}/reminder_history/{firing_id}/reprocess",
|
|
24315
|
+
"title": "Reprocessar Lembrete e-Clínica Falhado",
|
|
24316
|
+
"description": "Reprocessa UM lembrete com status failed (novo 23/07): volta para pending e dispara de novo. Só funciona em lembrete FALHADO — status diferente retorna 422; corrida (dois cliques) retorna 409. Somente administrador.",
|
|
24317
|
+
"category": "Integracoes",
|
|
24318
|
+
"params": [
|
|
24319
|
+
{
|
|
24320
|
+
"name": "id",
|
|
24321
|
+
"type": "integer",
|
|
24322
|
+
"location": "path",
|
|
24323
|
+
"required": true,
|
|
24324
|
+
"description": "ID da integração e-Clínica"
|
|
24325
|
+
},
|
|
24326
|
+
{
|
|
24327
|
+
"name": "firing_id",
|
|
24328
|
+
"type": "integer",
|
|
24329
|
+
"location": "path",
|
|
24330
|
+
"required": true,
|
|
24331
|
+
"description": "ID do disparo falhado (de lionchat_eclinica_reminder_history_list com status=failed)"
|
|
24332
|
+
}
|
|
24333
|
+
],
|
|
24334
|
+
"returns": "200 {id, status: 'pending'} | 422 (não está failed) | 409 (já em reprocessamento)",
|
|
24335
|
+
"common_use_cases": [
|
|
24336
|
+
"Reenviar um lembrete de consulta que falhou"
|
|
24337
|
+
],
|
|
24338
|
+
"related_tools": [
|
|
24339
|
+
"lionchat_eclinica_reminder_history_list"
|
|
24340
|
+
]
|
|
24341
|
+
},
|
|
24136
24342
|
{
|
|
24137
24343
|
"id": "lionchat_contacts_tracking_events_list",
|
|
24138
24344
|
"method": "GET",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "MCP server for LionChat API — 547 tools + 10 resources + 9 prompts. Audit-log aware, completion API, progress notifications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|