@lionchat/mcp-server 1.36.0 → 1.37.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.
- package/dist/docs/instructions.md +4 -1
- package/dist/docs/resources/agenda-multiplas-unidades.md +7 -2
- package/dist/docs/resources/api-conventions.md +12 -0
- package/dist/docs/resources/data-model.md +4 -1
- package/dist/docs/resources/flowbuilder-design-guide.md +8 -10
- package/dist/docs/resources/kanban-deep-dive.md +21 -0
- package/dist/tools.js +8 -8
- package/endpoints.json +100 -31
- package/package.json +1 -1
|
@@ -453,7 +453,10 @@ Antes de escolher a ferramenta, cheque se a intenção bate com a coluna da dire
|
|
|
453
453
|
| Intenção do usuário | Tool certa | Cuidado |
|
|
454
454
|
|---|---|---|
|
|
455
455
|
| Criar **pasta de conversas para a conta toda** ("Urgentes do time", "Minhas abertas" para cada um) | `lionchat_custom_filters_create` com `filter_type: conversation` + `shared: true` | Só administrador (401). Pelo menos uma condição. Para cada pessoa ver as conversas DELA use `assignee_id` com `values: ["current_user"]`. `shared: false` depois devolve a pasta a quem mandou. Detalhe no resource api-conventions |
|
|
456
|
+
| **Filtrar empresas** ("empresas de São Paulo", "com mais de 5 contatos", "sem CNPJ") | `lionchat_companies_filter` com `payload` igual ao do filtro de contatos | `lionchat_companies_search` só busca por nome/site; para cidade, CNPJ, quantidade de contatos, datas ou atributo da empresa use o filtro. Campos e regras no resource api-conventions |
|
|
457
|
+
| Salvar / mudar / apagar **segmento de empresas**, ou **listar as empresas de um segmento** | `lionchat_custom_filters_create` / `_update` / `_destroy` com `filter_type: company`; para listar, leia o segmento (`lionchat_custom_filters_list` com `filter_type: company`) e mande o `query.payload` dele para `lionchat_companies_filter` | Segmento de empresas é da conta (qualquer atendente com o menu Empresas gerencia) e NÃO vira público de campanha |
|
|
456
458
|
| Listar / ver não lidas | `lionchat_conversations_list` (`conversation_type: 'unread'`) ou `lionchat_conversations_meta` | NÃO use `lionchat_conversations_unread` — é AÇÃO DE ESCRITA (marca como não-lida) |
|
|
459
|
+
| Cadastrar empresa com **CNPJ** | `lionchat_companies_create` / `_update` com `additional_attributes.cnpj` | CNPJ unico por empresa na conta: CNPJ ja usado = 422 "Ja existe a empresa X com este CNPJ." e nada grava. Nao crie outra: atualize a X (ache pelo nome com `lionchat_companies_search`, que nao busca por CNPJ). Contato pode repetir CPF/CNPJ |
|
|
457
460
|
| Ver **uma empresa** (quem trabalha la, anotacoes, conversas) e ligar/tirar contatos | `lionchat_companies_show` + `lionchat_companies_contacts_list` / `_create` / `_destroy`, `lionchat_companies_notes_list`, `lionchat_companies_conversations_list` | Ligar pela ficha: `lionchat_contacts_update` com `company_id` (null tira). Cargo da pessoa = `additional_attributes.job_title`. Escolher a empresa troca o texto `company_name` pelo nome dela |
|
|
458
461
|
| Criar / preencher **campo personalizado da empresa** ("Segmento", "Data de fundacao") | `lionchat_custom_attributes_create` com `attribute_model: company_attribute` + `lionchat_companies_update` com `company.custom_attributes {chave: valor}` | So com o modulo Empresas ligado; tipo segredo recusado. Chave que nao existe como atributo de empresa = 422 e nada do pedido grava: crie a definicao ANTES. MESCLA; `null` limpa. Desde 2026-10-16 vira variavel `{{contact.company.custom_attribute.CHAVE}}`, condicao do fluxo (`attrSource: company`), condicao de automacao e filtro de contatos (`custom_attribute_type: company_attribute`) e a IA le — detalhe no resource data-model |
|
|
459
462
|
| **Importar muitas empresas** de uma vez (planilha, lista de clientes, cadastro de outro sistema) | `lionchat_companies_bulk_create` (ate 1000 por chamada; `check_only: true` CONFERE sem gravar) e depois `lionchat_companies_import_status` com o `import_id` | Mesma importacao do botao "Importar empresas" da tela. Mesma empresa = CNPJ; sem CNPJ, o site; sem os dois, o NOME — mais de uma empresa com aquele nome = a linha NAO entra (mande CNPJ ou site). Empresa existente e ATUALIZADA; campo vazio nunca apaga. Valor invalido fica em branco com aviso e o resto entra. Campos PLANOS (`address_city`, `social_instagram`), nunca objeto; `custom_attributes` so com chave que ja existe como atributo de EMPRESA. Exige modulo Empresas + administrador ou cargo "Exportar e importar contatos". So no conector remoto (Claude.ai/ChatGPT); no conector local (NPM) importe com `lionchat_companies_create` uma a uma |
|
|
@@ -507,7 +510,7 @@ Antes de escolher a ferramenta, cheque se a intenção bate com a coluna da dire
|
|
|
507
510
|
| **Migrar conversas** de uma caixa WhatsApp pra outra (ex.: QR Code → Oficial) | `lionchat_inboxes_inbox_migration_list` (prévia) → `_execute` → acompanhar status | Admin-only e IRREVERSÍVEL: sempre mostre os números da prévia e confirme (seção 7a). Grupos não vão pro canal oficial — ficam na caixa de origem |
|
|
508
511
|
| Qualquer coisa de Ligação WP (Wavoip) | **INTEGRAÇÃO REMOVIDA em 12/08/2026** — não há tool nem tela | A Wavoip saiu do produto: a aba "Ligação WP" **não existe mais**. NUNCA orientar o usuário a "Configurações da caixa → Ligação WP". Para voz em caixa QR Code, o caminho hoje é o **LionCalls**. As ligações antigas seguem no histórico (`provider: "wavoip"`); as gravações delas ficavam no servidor da Wavoip e vão sumir — ao tentar ouvir, o painel mostra "Esta gravação não está mais disponível", e isso é esperado, não é defeito. |
|
|
509
512
|
| Restringir agendas que a IA oferece | `lionchat_captain_assistants_update` (`config.booking_event_type_ids: [Int]`) | binding de agenda por cenário NÃO é settable via API |
|
|
510
|
-
| **Tarefas atrasadas / o que falta fazer** (da equipe ou de uma pessoa) | `lionchat_tasks_task_list` (`assignee_id`, `q`, `priority`, `group` + `page`) | Só tarefas ABERTAS, em grupos `overdue`/`today`/`tomorrow`/`next_7_days`/`later` no dia da conta; 50 por grupo — conte por `totals`. Mesma regra de quem vê o quê do calendário. Ver `lionchat://docs/agenda-multiplas-unidades` §7.2 |
|
|
513
|
+
| **Tarefas atrasadas / o que falta fazer** (da equipe ou de uma pessoa) | `lionchat_tasks_task_list` (`assignee_id`, `q`, `priority`, `group` + `page`) | `assignee_id`, `task_type`, `status` e `priority` aceitam VÁRIOS valores separados por vírgula (`"12,15"`, `"task,follow_up"`; 11/11/2026); `task_type` aceita a chave dos tipos criados pela conta; `status` número ou nome (`pending`). Só tarefas ABERTAS, em grupos `overdue`/`today`/`tomorrow`/`next_7_days`/`later` no dia da conta; 50 por grupo — conte por `totals`. Mesma regra de quem vê o quê do calendário. Ver `lionchat://docs/agenda-multiplas-unidades` §7.2 |
|
|
511
514
|
| **Programa de sessões** de um contato ("em que sessão ele está", ajustar total, encerrar/reabrir) | `lionchat_agenda_treatments_list` (por `contact_id`) / `_show` / `_update` | NÃO existe create: o programa nasce junto do agendamento (na TELA chama-se "programa"; na API segue `treatment`). Marcar TODAS de uma vez: `plano_sugerido` + `marcar_todas` de um tipo com `sessions_enabled` (`tasks_create` modo booking, `treatment: {...}` por pessoa; "marcar próxima" = `agenda_treatment_id` + `treatment_session_number`). Faltar CONSOME a sessão. Ver `lionchat://docs/agenda-multiplas-unidades` §7 |
|
|
512
515
|
| Configurar o Copiloto (modelo/temperatura/prompt base) | `lionchat_copilot_settings_update` | admin-only; copiloto tem motor próprio (padrão temp 0.3) |
|
|
513
516
|
| **Resetar/testar do zero a IA** numa conversa | `lionchat_conversations_captain_history_reset` (POST, sem body) | Cria pílula de marco na conversa; a partir dali TODA leitura autônoma da IA (respostas, resumo, follow-up) considera só mensagens pós-marco. Não apaga nada; o atendente segue vendo tudo. Enterprise-only |
|
|
@@ -308,8 +308,13 @@ atrasado?", "quantas tarefas a fulana tem em aberto?" e "o que falta fazer esta
|
|
|
308
308
|
- **Grupos**, no dia da conta: `overdue` (antes de hoje, da mais recente para a mais antiga), `today`,
|
|
309
309
|
`tomorrow`, `next_7_days` e `later`.
|
|
310
310
|
- **Quem vê o quê e filtros**: os MESMOS do calendário (`lionchat_tasks_list`): `assignee_id`, `task_type`,
|
|
311
|
-
`status` (0 pendente, 3 adiada), `priority`, `agenda_id`, `q`. Quem não gerencia a agenda da equipe vê
|
|
312
|
-
|
|
311
|
+
`status` (0 pendente, 3 adiada), `priority`, `agenda_id`, `q`. Quem não gerencia a agenda da equipe vê as
|
|
312
|
+
tarefas em que é dono ou responsável e, quando marca um colega em `assignee_id`, as do colega SÓ se ele publicou
|
|
313
|
+
a agenda. O filtro nunca mostra mais do que a pessoa já vê.
|
|
314
|
+
- **Várias opções por filtro (11/11/2026)**: `assignee_id`, `task_type`, `status` e `priority` aceitam vários
|
|
315
|
+
valores separados por vírgula (`assignee_id: "12,15"`, `task_type: "task,follow_up"`); a lista traz o que bate com
|
|
316
|
+
QUALQUER um. `task_type` aceita a chave dos tipos criados pela conta (inclusive desativados); `status` aceita número
|
|
317
|
+
ou nome (`pending`, `snoozed`). Tarefa com dois responsáveis da lista vem uma vez só.
|
|
313
318
|
- **50 por grupo**. Para quantidade, leia `totals` (a contagem real), nunca o tamanho da lista. Para ir além das
|
|
314
319
|
50: `group=overdue&page=2` devolve só aquele grupo naquela página.
|
|
315
320
|
- **Busca `q`** (vale também no calendário): título, descrição, responsável e, com 3 letras ou mais, o CLIENTE
|
|
@@ -504,6 +504,18 @@ conversa (`conversation`) são pessoais até um administrador compartilhar (seç
|
|
|
504
504
|
incompleta = 422. Segmento usado por campanha programada não pode ser apagado (422 citando a campanha). Segmento serve
|
|
505
505
|
de público de campanha (`{type: 'Segment', id}`) — ver a receita de campanha nas instruções.
|
|
506
506
|
|
|
507
|
+
### Segmento de EMPRESAS e lista filtrada (2026-11-11)
|
|
508
|
+
|
|
509
|
+
Ferramentas: `lionchat_companies_filter` (lista filtrada) e `lionchat_custom_filters_*` com `filter_type: company`
|
|
510
|
+
(segmento). Para ver as empresas de um segmento salvo, mande o `query.payload` dele para `lionchat_companies_filter`.
|
|
511
|
+
|
|
512
|
+
`custom_filters` com `filter_type: company` = segmento da aba Empresas, da conta inteira (como o de contatos). Qualquer
|
|
513
|
+
administrador ou atendente com o menu Empresas visível cria, edita e apaga; módulo Empresas desligado = 403. NÃO serve de
|
|
514
|
+
público de campanha. A lista filtrada é `POST companies/filter` com o mesmo `payload` do filtro de contatos; campos:
|
|
515
|
+
`name`, `domain`, `legal_name`, `cnpj`, `phone`, `email`, `city`, `state`, `contacts_count`, `created_at`,
|
|
516
|
+
`last_activity_at` e atributos de empresa com `custom_attribute_type: company_attribute`. Texto é comparado sem maiúscula
|
|
517
|
+
e sem acento; CNPJ e telefone só pelos números; "diferente de" traz a empresa sem o campo. Campo/operador desconhecido = 422.
|
|
518
|
+
|
|
507
519
|
### Pasta de conversa compartilhada (2026-10-27)
|
|
508
520
|
|
|
509
521
|
Pasta de conversa (`filter_type: conversation`) com `shared: true` aparece para TODA a conta, com o ícone de
|
|
@@ -207,7 +207,10 @@ atendente). Cadastro da empresa (25/09): `lionchat_companies_create`/`_update` a
|
|
|
207
207
|
`additional_attributes` com `legal_name`, `cnpj` (validado; grava so digitos), `phone`, `email`,
|
|
208
208
|
`address{cep,street,number,complement,neighborhood,city,state,country}` e
|
|
209
209
|
`social_profiles{linkedin,facebook,instagram,telegram,tiktok,twitter,github}`. MESCLA: mande so o que muda;
|
|
210
|
-
valor vazio apaga aquela chave.
|
|
210
|
+
valor vazio apaga aquela chave. CNPJ UNICO por empresa na conta (11/11/2026): CNPJ que ja e de outra empresa = 422
|
|
211
|
+
"Ja existe a empresa X com este CNPJ." e NADA do pedido grava — atualize a empresa X (ache pelo nome com
|
|
212
|
+
`lionchat_companies_search`; a busca nao acha por CNPJ). Na importacao em lote, a linha com CNPJ de empresa existente
|
|
213
|
+
ATUALIZA essa empresa. CPF/CNPJ na ficha do CONTATO podem repetir. Excluir empresa: so administrador; os contatos ficam, so deixam de estar na empresa (as anotacoes da
|
|
211
214
|
empresa vao junto).
|
|
212
215
|
|
|
213
216
|
**Atributos personalizados da EMPRESA (2026-10-15):** campos proprios da empresa que o cliente cria ("Segmento",
|
|
@@ -807,7 +807,7 @@ aiModel nos modos novos (proteção de nós antigos que carregam aiModel de defa
|
|
|
807
807
|
`aiModel` vazio/ausente = modelo padrão da conta. Com assistente selecionado, o override também vale
|
|
808
808
|
(sobrepõe o modelo que o caminho do assistente usaria). Modelo fora da whitelist = ignorado (cai no
|
|
809
809
|
padrão da conta).
|
|
810
|
-
Exemplo: `{"aiMode":"sentiment","
|
|
810
|
+
Exemplo: `{"aiMode":"sentiment","aiModel":"gpt-4.1-mini","aiModelExplicit":true}`.
|
|
811
811
|
|
|
812
812
|
**A whitelist (`FlowBuilder::RawLlmService::SUPPORTED_MODELS`) é uma lista FECHADA de 19 nomes, SEM
|
|
813
813
|
curinga** — não existe "a família gpt-5 inteira":
|
|
@@ -822,14 +822,12 @@ Eles ignoram a temperatura do bloco (só o padrão) e **NÃO valem no bloco de I
|
|
|
822
822
|
(teto de 15 s — o servidor exclui e usa o fallback). Também não existem `o1-mini`, `gpt-4.5-preview`,
|
|
823
823
|
`gpt-5.2-pro` nem `gpt-5.5-pro` (a OpenAI recusa).
|
|
824
824
|
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
assistente: `aiMode: 'custom'` (motor cru com a chave da conta + `aiModel`) e flow `ai_tool` em
|
|
832
|
-
`generate`/`custom`. A saída fica em `aiResponseVar` (default `ai_response`); `intent` também em
|
|
825
|
+
**`aiAssistantId` só é obrigatório em `generate`** (id de um assistente Captain da conta; é ele que
|
|
826
|
+
traz a base de conhecimento). **Sem ele o nó `generate` sai pela saída `error` desde 20/08/2026**
|
|
827
|
+
(`AI Assistant not configured`). Desde 10/11/2026 **`intent`, `sentiment` e `extract` NÃO usam
|
|
828
|
+
assistente** (chamam a IA direto com a chave da conta + `aiModel`) e a tela nem mostra o campo nesses
|
|
829
|
+
três: não mande `aiAssistantId` neles (se vier, é ignorado). `custom` usa o assistente se houver e roda
|
|
830
|
+
sem (motor cru). Flow `ai_tool` em `generate`/`custom` também roda sem. A saída fica em `aiResponseVar` (default `ai_response`); `intent` também em
|
|
833
831
|
`ai_intent`, `sentiment` em `ai_sentiment`. Nome de variável iniciado por `_` é IGNORADO e cai no
|
|
834
832
|
padrão (prefixo reservado das chaves internas da sessão) — vale pro `apiResponseVar` também.
|
|
835
833
|
|
|
@@ -1566,7 +1564,7 @@ Nodes nunca devem ficar com a mesma coordenada `(x, y)`. Se dois nodes têm posi
|
|
|
1566
1564
|
| `method`/`url`/`headers`/`body` no node api | Runtime NÃO lê → GET vazio (ou erro "URL not configured") | `apiMethod`/`apiUrl`/`apiHeaders`/`apiBody` |
|
|
1567
1565
|
| `{{env.X}}` no node api | Não existe → resolve vazio → 401 | `{{account.custom_attribute.X}}` (secret resolve só no node api) |
|
|
1568
1566
|
| `{{api_response.payload.campo}}` | `.payload` não existe → vazio | `{{api_response.campo}}` (o corpo fica direto sob a var); status em `{{api_response_status}}` |
|
|
1569
|
-
| node `ai` via API sem `aiAssistantId` | Sai pela saída `error` (desde 20/08; antes ficava verde com a variável vazia) | Informe `aiAssistantId` (obrigatório em generate
|
|
1567
|
+
| node `ai` em `generate` via API sem `aiAssistantId` | Sai pela saída `error` (desde 20/08; antes ficava verde com a variável vazia) | Informe `aiAssistantId` (obrigatório só em `generate`; `intent`/`sentiment`/`extract` não usam desde 10/11) |
|
|
1570
1568
|
| `contextMessages` no node `ai` | Chave errada → descartada em silêncio (fica 5) | `aiContextMessages` (0, 1, 3, 5, 10, 25, 50, 75, 100) |
|
|
1571
1569
|
| Nome de variável começando com `_` (`set_variable`, `saveVariable`, `apiResponseVar`, `aiResponseVar`) | Prefixo reservado → ignorado / cai no padrão | Nome sem `_` na frente |
|
|
1572
1570
|
| `{ type: "delay", seconds: 2 }` no send_message | A tela não lê `seconds` → abre como "undefineds" | `duration_seconds` (0-30) |
|
|
@@ -283,6 +283,27 @@ existiam).
|
|
|
283
283
|
|
|
284
284
|
**NUNCA gravar inteiros direto** — sempre objetos com `{display_id: ...}`. Inteiros diretos causam TypeError no `as_json`.
|
|
285
285
|
|
|
286
|
+
## Link do quadro filtrado (11/11/2026)
|
|
287
|
+
|
|
288
|
+
O endereço do Kanban também carrega os filtros do topo. Para mandar "o quadro do funil X só com os cards ganhos da Ana",
|
|
289
|
+
monte o endereço e entregue na resposta (não existe ferramenta para isso):
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
<painel>/app/accounts/<conta>/kanban?funnel=<funil>&assignee=<id do agente>&status=won
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
| Parte | Valor |
|
|
296
|
+
|---|---|
|
|
297
|
+
| `assignee` | `all` (todos), `-1` (sem dono) ou o id do agente |
|
|
298
|
+
| `status` | as situações ligadas, por vírgula: `open`, `won`, `lost`, `snoozed` |
|
|
299
|
+
| `label` | nome da etiqueta |
|
|
300
|
+
| `origin` | plataformas por vírgula (as mesmas de `origin_platforms` em `lionchat_kanban_items_list`) |
|
|
301
|
+
| `priority` | `urgent`, `high`, `medium`, `low`, `none` |
|
|
302
|
+
| `offer_name` | nome da oferta (nunca `offer`) |
|
|
303
|
+
| `view` | `list` para abrir na visão Lista |
|
|
304
|
+
|
|
305
|
+
Quem abre vê só o que já pode ver. Na Agenda vale o mesmo: `<painel>/app/accounts/<conta>/agenda?view=tasks&assignee=<id>&type=task`.
|
|
306
|
+
|
|
286
307
|
## Link do card, da aba e da conversa (03/11/2026)
|
|
287
308
|
|
|
288
309
|
Abrir um card no Kanban muda o endereço da página, e quem abre esse endereço vê a mesma coisa: o quadro daquele funil, o card aberto, a aba escolhida e, se houver, a conversa por cima. **Não existe ferramenta para isso e nem precisa: você monta o endereço com o que já tem e entrega na resposta.** Quando alguém pedir "o link desse card" ou "me manda onde eu vejo isso", é daqui que sai.
|
package/dist/tools.js
CHANGED
|
@@ -363,7 +363,7 @@ function registerListCategoriesTool(server, allEndpoints) {
|
|
|
363
363
|
// Helps LLMs build correct flow_data without hitting trial-and-error on
|
|
364
364
|
// node types, action keys, source handles, etc.
|
|
365
365
|
function registerFlowsSchemaReferenceTool(server) {
|
|
366
|
-
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-11-
|
|
366
|
+
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-11-11)
|
|
367
367
|
|
|
368
368
|
flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
369
369
|
|
|
@@ -1001,11 +1001,11 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
1001
1001
|
|
|
1002
1002
|
▸ ai
|
|
1003
1003
|
data: { label, aiMode: "generate"|"custom"|"intent"|"sentiment"|"extract", aiPrompt,
|
|
1004
|
-
aiAssistantId, // OBRIGATORIO em generate
|
|
1005
|
-
//
|
|
1006
|
-
//
|
|
1007
|
-
//
|
|
1008
|
-
//
|
|
1004
|
+
aiAssistantId, // OBRIGATORIO so em generate — sem ele o node sai pela saida "error"
|
|
1005
|
+
// desde 20/08 ('AI Assistant not configured'). Desde 10/11 intent/
|
|
1006
|
+
// sentiment/extract NAO usam assistente (IA direto com a chave da conta
|
|
1007
|
+
// + aiModel; assistente gravado e ignorado). Tambem roda sem: aiMode
|
|
1008
|
+
// 'custom' (motor cru) e flow ai_tool em generate/custom
|
|
1009
1009
|
aiModel, // opcional: modelo LLM SO deste node (ex "gpt-4.1-mini");
|
|
1010
1010
|
// vazio/ausente = modelo padrao da conta; vale em TODOS os
|
|
1011
1011
|
// modos e tambem com assistente (sobrepoe o modelo dele)
|
|
@@ -1288,8 +1288,8 @@ sourceHandle OBRIGATORIO casar com handle exposto pelo node source.
|
|
|
1288
1288
|
13. Assistente de Formulas no editor (2026-07-10): quem edita pela tela tem preview ao vivo
|
|
1289
1289
|
(inclusive com contato real), avisos ao digitar e 'Gerar com IA' nos campos de formula —
|
|
1290
1290
|
ao entregar um flow com Liquid, sugira ao usuario validar as formulas la.
|
|
1291
|
-
14. ai: a chave de contexto e aiContextMessages (nao contextMessages); sem aiAssistantId o bloco
|
|
1292
|
-
"error" (nao fica verde). Nome de variavel iniciado por "_" e ignorado em set_variable/saveVariable e
|
|
1291
|
+
14. ai: a chave de contexto e aiContextMessages (nao contextMessages); em generate, sem aiAssistantId o bloco
|
|
1292
|
+
sai por "error" (nao fica verde); intent/sentiment/extract dispensam assistente desde 10/11. Nome de variavel iniciado por "_" e ignorado em set_variable/saveVariable e
|
|
1293
1293
|
cai no padrao em apiResponseVar/aiResponseVar.
|
|
1294
1294
|
15. send_message: item delay usa duration_seconds (a tela nao le "seconds"). Em caixa oficial ligue
|
|
1295
1295
|
"window_closed" num bloco com template — sem o fio, janela fechada vira erro.
|
package/endpoints.json
CHANGED
|
@@ -8860,21 +8860,21 @@
|
|
|
8860
8860
|
"type": "string",
|
|
8861
8861
|
"location": "query",
|
|
8862
8862
|
"required": false,
|
|
8863
|
-
"description": "Tipo da tarefa"
|
|
8863
|
+
"description": "Tipo da tarefa: task, call, meeting, email, follow_up, reminder, booking ou a chave de um tipo criado pela conta (inclusive desativado). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma. Ex.: \"task,follow_up\"."
|
|
8864
8864
|
},
|
|
8865
8865
|
{
|
|
8866
8866
|
"name": "status",
|
|
8867
8867
|
"type": "string",
|
|
8868
8868
|
"location": "query",
|
|
8869
8869
|
"required": false,
|
|
8870
|
-
"description": "
|
|
8870
|
+
"description": "Situacao: 0 pendente, 1 concluida, 2 cancelada, 3 adiada (numero ou nome). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma."
|
|
8871
8871
|
},
|
|
8872
8872
|
{
|
|
8873
8873
|
"name": "priority",
|
|
8874
8874
|
"type": "string",
|
|
8875
8875
|
"location": "query",
|
|
8876
8876
|
"required": false,
|
|
8877
|
-
"description": "Prioridade
|
|
8877
|
+
"description": "Prioridade: urgent | high | medium | low | none. Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma."
|
|
8878
8878
|
},
|
|
8879
8879
|
{
|
|
8880
8880
|
"name": "user_id",
|
|
@@ -8885,10 +8885,10 @@
|
|
|
8885
8885
|
},
|
|
8886
8886
|
{
|
|
8887
8887
|
"name": "assignee_id",
|
|
8888
|
-
"type": "
|
|
8888
|
+
"type": "string",
|
|
8889
8889
|
"location": "query",
|
|
8890
8890
|
"required": false,
|
|
8891
|
-
"description": "
|
|
8891
|
+
"description": "Responsavel (id do agente). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma. Ex.: \"12,15\". Cada um ve so o que ja via: quem nao gerencia a agenda da equipe so traz as tarefas de um colega se ele publicou a agenda."
|
|
8892
8892
|
},
|
|
8893
8893
|
{
|
|
8894
8894
|
"name": "q",
|
|
@@ -9622,28 +9622,28 @@
|
|
|
9622
9622
|
"type": "string",
|
|
9623
9623
|
"location": "query",
|
|
9624
9624
|
"required": false,
|
|
9625
|
-
"description": "Tipo da tarefa"
|
|
9625
|
+
"description": "Tipo da tarefa: task, call, meeting, email, follow_up, reminder, booking ou a chave de um tipo criado pela conta (inclusive desativado). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma. Ex.: \"task,follow_up\"."
|
|
9626
9626
|
},
|
|
9627
9627
|
{
|
|
9628
9628
|
"name": "status",
|
|
9629
9629
|
"type": "string",
|
|
9630
9630
|
"location": "query",
|
|
9631
9631
|
"required": false,
|
|
9632
|
-
"description": "Situacao dentro das abertas: 0 = pendente, 3 = adiada
|
|
9632
|
+
"description": "Situacao dentro das abertas: 0 = pendente, 3 = adiada (concluida e cancelada nunca aparecem aqui). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma."
|
|
9633
9633
|
},
|
|
9634
9634
|
{
|
|
9635
9635
|
"name": "priority",
|
|
9636
9636
|
"type": "string",
|
|
9637
9637
|
"location": "query",
|
|
9638
9638
|
"required": false,
|
|
9639
|
-
"description": "Prioridade
|
|
9639
|
+
"description": "Prioridade: urgent | high | medium | low | none. Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma."
|
|
9640
9640
|
},
|
|
9641
9641
|
{
|
|
9642
9642
|
"name": "assignee_id",
|
|
9643
|
-
"type": "
|
|
9643
|
+
"type": "string",
|
|
9644
9644
|
"location": "query",
|
|
9645
9645
|
"required": false,
|
|
9646
|
-
"description": "
|
|
9646
|
+
"description": "Responsavel (id do agente). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma. Ex.: \"12,15\". Cada um ve so o que ja via: quem nao gerencia a agenda da equipe so traz as tarefas de um colega se ele publicou a agenda."
|
|
9647
9647
|
},
|
|
9648
9648
|
{
|
|
9649
9649
|
"name": "user_id",
|
|
@@ -10028,7 +10028,7 @@
|
|
|
10028
10028
|
"type": "string",
|
|
10029
10029
|
"location": "query",
|
|
10030
10030
|
"required": false,
|
|
10031
|
-
"description": "pending, sent, failed"
|
|
10031
|
+
"description": "Situacao dos disparos: pending, sent, failed. Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma."
|
|
10032
10032
|
},
|
|
10033
10033
|
{
|
|
10034
10034
|
"name": "date_start",
|
|
@@ -10043,6 +10043,13 @@
|
|
|
10043
10043
|
"location": "query",
|
|
10044
10044
|
"required": false,
|
|
10045
10045
|
"description": "Data fim"
|
|
10046
|
+
},
|
|
10047
|
+
{
|
|
10048
|
+
"name": "assignee_id",
|
|
10049
|
+
"location": "query",
|
|
10050
|
+
"required": false,
|
|
10051
|
+
"type": "string",
|
|
10052
|
+
"description": "Responsavel da CONVERSA do disparo (id do agente). Aceita VARIAS opcoes separadas por virgula (11/11/2026): a lista traz o que bate com QUALQUER uma. Quem nao e administrador ja ve so os disparos das proprias conversas."
|
|
10046
10053
|
}
|
|
10047
10054
|
],
|
|
10048
10055
|
"returns": "array de mensagens agendadas",
|
|
@@ -10661,7 +10668,7 @@
|
|
|
10661
10668
|
"type": "string",
|
|
10662
10669
|
"location": "query",
|
|
10663
10670
|
"required": false,
|
|
10664
|
-
"description": "ID do agente
|
|
10671
|
+
"description": "ID do agente, \"all\", ou VARIOS ids separados por virgula (11/11/2026). Ids que a pessoa nao pode ver sao ignorados."
|
|
10665
10672
|
}
|
|
10666
10673
|
],
|
|
10667
10674
|
"returns": "Lista pura: a resposta E o array, sem embrulho de meta/payload. Cada item e um tipo de evento de agendamento com os campos do registro mais `booking_availabilities`, `follow_up_schedules`, `public_url`, `agent_profile_url`, `account_booking_slug` e os dados do agente dono (`agent_name`, `agent_color`, `agent_avatar_url`). Traz ativos E inativos, ordenados do mais novo pro mais antigo, sem paginacao. Filtro opcional `user_id` (ou `user_id=all` para todos os agentes visiveis).",
|
|
@@ -11912,7 +11919,7 @@
|
|
|
11912
11919
|
"method": "GET",
|
|
11913
11920
|
"path": "/api/v1/accounts/{account_id}/custom_filters",
|
|
11914
11921
|
"title": "Listar Filtros",
|
|
11915
|
-
"description": "Lista os filtros salvos por filter_type (padrao conversation). Desde 22/10/2026: filter_type contact (segmentos) lista os segmentos da CONTA inteira (precisa do menu Contatos no cargo), ordenados por nome; conversation (pastas) traz as do usuario atual MAIS as compartilhadas da conta (campo shared, desde 27/10/2026); report continua so os do usuario atual. Em pasta compartilhada criada por OUTRA pessoa, user_id e user_name vem nulos. Cada item traz user_id/user_name (\"criado por\", pode vir nulo) e can_manage (se quem pergunta pode editar/apagar).",
|
|
11922
|
+
"description": "Lista os filtros salvos por filter_type (padrao conversation). Desde 22/10/2026: filter_type contact (segmentos) lista os segmentos da CONTA inteira (precisa do menu Contatos no cargo), ordenados por nome; conversation (pastas) traz as do usuario atual MAIS as compartilhadas da conta (campo shared, desde 27/10/2026); report continua so os do usuario atual. Em pasta compartilhada criada por OUTRA pessoa, user_id e user_name vem nulos. Cada item traz user_id/user_name (\"criado por\", pode vir nulo) e can_manage (se quem pergunta pode editar/apagar). SEGMENTO DE EMPRESAS (11/11/2026): filter_type 'company' (ou 3) = segmento da aba Empresas, da CONTA inteira como o de contatos; qualquer administrador ou atendente com o menu Empresas visivel cria, edita e apaga (menu oculto = 401; modulo Empresas desligado = 403). query = {payload:[...]} no formato de lionchat_companies_filter (regra vazia = 422). Segmento de empresas NAO serve de publico de campanha. Para ver as empresas do segmento, mande o query.payload dele para lionchat_companies_filter.",
|
|
11916
11923
|
"category": "Filtros Personalizados",
|
|
11917
11924
|
"params": [
|
|
11918
11925
|
{
|
|
@@ -11920,7 +11927,7 @@
|
|
|
11920
11927
|
"type": "string",
|
|
11921
11928
|
"location": "query",
|
|
11922
11929
|
"required": false,
|
|
11923
|
-
"description": "conversation (pastas: as suas + as compartilhadas da conta), contact (segmentos, da CONTA) ou report"
|
|
11930
|
+
"description": "conversation (pastas: as suas + as compartilhadas da conta), contact (segmentos, da CONTA) ou report; 'company' (segmento de EMPRESAS, da conta)"
|
|
11924
11931
|
}
|
|
11925
11932
|
],
|
|
11926
11933
|
"returns": "array de filtros (sem meta/payload)",
|
|
@@ -11932,7 +11939,8 @@
|
|
|
11932
11939
|
"related_tools": [
|
|
11933
11940
|
"lionchat_custom_filters_create",
|
|
11934
11941
|
"lionchat_custom_filters_show",
|
|
11935
|
-
"lionchat_custom_filters_update"
|
|
11942
|
+
"lionchat_custom_filters_update",
|
|
11943
|
+
"lionchat_companies_filter"
|
|
11936
11944
|
]
|
|
11937
11945
|
},
|
|
11938
11946
|
{
|
|
@@ -11940,7 +11948,7 @@
|
|
|
11940
11948
|
"method": "POST",
|
|
11941
11949
|
"path": "/api/v1/accounts/{account_id}/custom_filters",
|
|
11942
11950
|
"title": "Criar Filtro",
|
|
11943
|
-
"description": "Cria um filtro personalizado. Cria novo filtro personalizado. Obrigatórios: name, filter_type, query. Valida unicidade quando aplicável. Retorna o filtro personalizado criado com ID atribuído. Desde 22/10/2026 o segmento (filter_type contact) e da CONTA: criar exige administrador ou cargo com contact_manage, campaign_manage ou automation_manage (sem isso, 401). filter_type aceita o nome ou o numero. Regra vazia ou incompleta = 422. Teto de 1.000 segmentos por conta. PASTA COMPARTILHADA (27/10/2026): pasta de conversa (filter_type conversation) com shared true aparece para TODA a conta; so administrador cria, edita, compartilha ou apaga (sem isso, 401). Cada pessoa ve dentro dela so as conversas que ja pode ver. shared nulo = 422; compartilhada sem nenhuma condicao = 422; segmento e relatorio nao podem ser compartilhados (422). Para mostrar a cada pessoa as conversas DELA use assignee_id com o valor 'current_user' (\"Quem esta vendo\").",
|
|
11951
|
+
"description": "Cria um filtro personalizado. Cria novo filtro personalizado. Obrigatórios: name, filter_type, query. Valida unicidade quando aplicável. Retorna o filtro personalizado criado com ID atribuído. Desde 22/10/2026 o segmento (filter_type contact) e da CONTA: criar exige administrador ou cargo com contact_manage, campaign_manage ou automation_manage (sem isso, 401). filter_type aceita o nome ou o numero. Regra vazia ou incompleta = 422. Teto de 1.000 segmentos por conta. PASTA COMPARTILHADA (27/10/2026): pasta de conversa (filter_type conversation) com shared true aparece para TODA a conta; so administrador cria, edita, compartilha ou apaga (sem isso, 401). Cada pessoa ve dentro dela so as conversas que ja pode ver. shared nulo = 422; compartilhada sem nenhuma condicao = 422; segmento e relatorio nao podem ser compartilhados (422). Para mostrar a cada pessoa as conversas DELA use assignee_id com o valor 'current_user' (\"Quem esta vendo\"). SEGMENTO DE EMPRESAS (11/11/2026): filter_type 'company' (ou 3) = segmento da aba Empresas, da CONTA inteira como o de contatos; qualquer administrador ou atendente com o menu Empresas visivel cria, edita e apaga (menu oculto = 401; modulo Empresas desligado = 403). query = {payload:[...]} no formato de lionchat_companies_filter (regra vazia = 422). Segmento de empresas NAO serve de publico de campanha. Para ver as empresas do segmento, mande o query.payload dele para lionchat_companies_filter.",
|
|
11944
11952
|
"category": "Filtros Personalizados",
|
|
11945
11953
|
"params": [
|
|
11946
11954
|
{
|
|
@@ -11955,7 +11963,7 @@
|
|
|
11955
11963
|
"type": "string",
|
|
11956
11964
|
"location": "body",
|
|
11957
11965
|
"required": true,
|
|
11958
|
-
"description": "'conversation' (pasta de conversas), 'contact' (segmento de contatos) ou 'report' — aceita o nome ou o numero"
|
|
11966
|
+
"description": "'conversation' (pasta de conversas), 'contact' (segmento de contatos) ou 'report' — aceita o nome ou o numero; 'company' (segmento de EMPRESAS, da conta)"
|
|
11959
11967
|
},
|
|
11960
11968
|
{
|
|
11961
11969
|
"name": "query",
|
|
@@ -11981,7 +11989,8 @@
|
|
|
11981
11989
|
"related_tools": [
|
|
11982
11990
|
"lionchat_custom_filters_list",
|
|
11983
11991
|
"lionchat_custom_filters_show",
|
|
11984
|
-
"lionchat_custom_filters_update"
|
|
11992
|
+
"lionchat_custom_filters_update",
|
|
11993
|
+
"lionchat_companies_filter"
|
|
11985
11994
|
],
|
|
11986
11995
|
"body_wrapper": "custom_filter"
|
|
11987
11996
|
},
|
|
@@ -11990,7 +11999,7 @@
|
|
|
11990
11999
|
"method": "GET",
|
|
11991
12000
|
"path": "/api/v1/accounts/{account_id}/custom_filters/{id}",
|
|
11992
12001
|
"title": "Detalhe do Filtro",
|
|
11993
|
-
"description": "Retorna detalhes. Retorna detalhes completos de UM filtro personalizado específico pelo ID. Inclui campos relacionais quando aplicável. Pasta compartilhada (shared true) pode ser lida por qualquer membro da conta.",
|
|
12002
|
+
"description": "Retorna detalhes. Retorna detalhes completos de UM filtro personalizado específico pelo ID. Inclui campos relacionais quando aplicável. Pasta compartilhada (shared true) pode ser lida por qualquer membro da conta. SEGMENTO DE EMPRESAS (11/11/2026): filter_type 'company' (ou 3) = segmento da aba Empresas, da CONTA inteira como o de contatos; qualquer administrador ou atendente com o menu Empresas visivel cria, edita e apaga (menu oculto = 401; modulo Empresas desligado = 403). query = {payload:[...]} no formato de lionchat_companies_filter (regra vazia = 422). Segmento de empresas NAO serve de publico de campanha. Para ver as empresas do segmento, mande o query.payload dele para lionchat_companies_filter.",
|
|
11994
12003
|
"category": "Filtros Personalizados",
|
|
11995
12004
|
"params": [
|
|
11996
12005
|
{
|
|
@@ -12010,7 +12019,8 @@
|
|
|
12010
12019
|
"related_tools": [
|
|
12011
12020
|
"lionchat_custom_filters_list",
|
|
12012
12021
|
"lionchat_custom_filters_create",
|
|
12013
|
-
"lionchat_custom_filters_update"
|
|
12022
|
+
"lionchat_custom_filters_update",
|
|
12023
|
+
"lionchat_companies_filter"
|
|
12014
12024
|
]
|
|
12015
12025
|
},
|
|
12016
12026
|
{
|
|
@@ -12018,7 +12028,7 @@
|
|
|
12018
12028
|
"method": "PATCH",
|
|
12019
12029
|
"path": "/api/v1/accounts/{account_id}/custom_filters/{id}",
|
|
12020
12030
|
"title": "Atualizar Filtro",
|
|
12021
|
-
"description": "Atualiza filtro. Atualiza campos do filtro personalizado existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: name, query, shared. filter_type e IGNORADO no update (nao da para trocar o tipo). Segmento (contact) so pode ser editado por administrador ou cargo com contact_manage, campaign_manage ou automation_manage — sem isso, 401 (veja can_manage no list/show). PASTA COMPARTILHADA (27/10/2026): so administrador edita (401). So mande shared para MUDAR o compartilhamento: shared false numa compartilhada a transforma em pasta pessoal DE QUEM MANDOU (some para os outros). Em compartilhada, query.sort_by muda a ordem padrao de TODOS. shared nulo = 422; compartilhada sem condicao = 422. Dois administradores editando juntos: vale a ultima gravacao.",
|
|
12031
|
+
"description": "Atualiza filtro. Atualiza campos do filtro personalizado existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: name, query, shared. filter_type e IGNORADO no update (nao da para trocar o tipo). Segmento (contact) so pode ser editado por administrador ou cargo com contact_manage, campaign_manage ou automation_manage — sem isso, 401 (veja can_manage no list/show). PASTA COMPARTILHADA (27/10/2026): so administrador edita (401). So mande shared para MUDAR o compartilhamento: shared false numa compartilhada a transforma em pasta pessoal DE QUEM MANDOU (some para os outros). Em compartilhada, query.sort_by muda a ordem padrao de TODOS. shared nulo = 422; compartilhada sem condicao = 422. Dois administradores editando juntos: vale a ultima gravacao. SEGMENTO DE EMPRESAS (11/11/2026): filter_type 'company' (ou 3) = segmento da aba Empresas, da CONTA inteira como o de contatos; qualquer administrador ou atendente com o menu Empresas visivel cria, edita e apaga (menu oculto = 401; modulo Empresas desligado = 403). query = {payload:[...]} no formato de lionchat_companies_filter (regra vazia = 422). Segmento de empresas NAO serve de publico de campanha. Para ver as empresas do segmento, mande o query.payload dele para lionchat_companies_filter.",
|
|
12022
12032
|
"category": "Filtros Personalizados",
|
|
12023
12033
|
"params": [
|
|
12024
12034
|
{
|
|
@@ -12059,7 +12069,8 @@
|
|
|
12059
12069
|
"related_tools": [
|
|
12060
12070
|
"lionchat_custom_filters_list",
|
|
12061
12071
|
"lionchat_custom_filters_create",
|
|
12062
|
-
"lionchat_custom_filters_show"
|
|
12072
|
+
"lionchat_custom_filters_show",
|
|
12073
|
+
"lionchat_companies_filter"
|
|
12063
12074
|
],
|
|
12064
12075
|
"body_wrapper": "custom_filter"
|
|
12065
12076
|
},
|
|
@@ -12068,7 +12079,7 @@
|
|
|
12068
12079
|
"method": "DELETE",
|
|
12069
12080
|
"path": "/api/v1/accounts/{account_id}/custom_filters/{id}",
|
|
12070
12081
|
"title": "Deletar Filtro",
|
|
12071
|
-
"description": "Remove filtro. Remove filtro personalizado permanentemente. CUIDADO: ação irreversível em muitos casos. Verifique dependências antes. Segmento (contact) so pode ser apagado por administrador ou cargo com contact_manage, campaign_manage ou automation_manage (401). Segmento usado por campanha programada (no publico ou no 'Nao enviar para') NAO e apagado: 422 com message citando a campanha. Pasta compartilhada: so administrador apaga, e ela some para TODA a conta.",
|
|
12082
|
+
"description": "Remove filtro. Remove filtro personalizado permanentemente. CUIDADO: ação irreversível em muitos casos. Verifique dependências antes. Segmento (contact) so pode ser apagado por administrador ou cargo com contact_manage, campaign_manage ou automation_manage (401). Segmento usado por campanha programada (no publico ou no 'Nao enviar para') NAO e apagado: 422 com message citando a campanha. Pasta compartilhada: so administrador apaga, e ela some para TODA a conta. SEGMENTO DE EMPRESAS (11/11/2026): filter_type 'company' (ou 3) = segmento da aba Empresas, da CONTA inteira como o de contatos; qualquer administrador ou atendente com o menu Empresas visivel cria, edita e apaga (menu oculto = 401; modulo Empresas desligado = 403). query = {payload:[...]} no formato de lionchat_companies_filter (regra vazia = 422). Segmento de empresas NAO serve de publico de campanha. Para ver as empresas do segmento, mande o query.payload dele para lionchat_companies_filter.",
|
|
12072
12083
|
"category": "Filtros Personalizados",
|
|
12073
12084
|
"params": [
|
|
12074
12085
|
{
|
|
@@ -12088,7 +12099,8 @@
|
|
|
12088
12099
|
"related_tools": [
|
|
12089
12100
|
"lionchat_custom_filters_list",
|
|
12090
12101
|
"lionchat_custom_filters_create",
|
|
12091
|
-
"lionchat_custom_filters_show"
|
|
12102
|
+
"lionchat_custom_filters_show",
|
|
12103
|
+
"lionchat_companies_filter"
|
|
12092
12104
|
]
|
|
12093
12105
|
},
|
|
12094
12106
|
{
|
|
@@ -12447,14 +12459,16 @@
|
|
|
12447
12459
|
"Buscar com filtros antes de outra operação",
|
|
12448
12460
|
"Auditoria/relatório de empresas ativas"
|
|
12449
12461
|
],
|
|
12450
|
-
"related_tools": [
|
|
12462
|
+
"related_tools": [
|
|
12463
|
+
"lionchat_companies_filter"
|
|
12464
|
+
]
|
|
12451
12465
|
},
|
|
12452
12466
|
{
|
|
12453
12467
|
"id": "lionchat_companies_create",
|
|
12454
12468
|
"method": "POST",
|
|
12455
12469
|
"path": "/api/v1/accounts/{account_id}/companies",
|
|
12456
12470
|
"title": "Criar Empresa",
|
|
12457
|
-
"description": "Cria uma empresa. Body exige wrapper company. Aceita name, domain, description, avatar, additional_attributes (cadastro) e custom_attributes (atributos personalizados). custom_attributes (2026-10-15): atributos personalizados da EMPRESA, objeto {chave: valor} de valores SIMPLES (texto, numero, verdadeiro/falso ou null; lista ou objeto dentro = 422). MESCLA: mande so o que muda; null ou texto vazio LIMPA a chave. So chave que ja existe como definicao company_attribute da conta (lionchat_custom_attributes_list com attribute_model=company_attribute); chave desconhecida = 422 com a lista das validas e NADA do pedido e gravado. Teto de 1.500 caracteres por valor; data aceita DD/MM/AAAA. ONDE MAIS APARECE (2026-10-16): o campo personalizado vira variavel {{contact.company.custom_attribute.CHAVE}} (e o cadastro {{contact.company.name|legal_name|cnpj|phone|email|address.city|address.state}}) em mensagem, fluxo, automacao, campanha e modelo oficial; condicao do bloco Condicao do fluxo (attrSource 'company'); condicao de automacao e filtro de contatos (custom_attribute_type 'company_attribute'); a IA (Agente e Copiloto) le a empresa do contato. Modulo Empresas desligado = tudo isso para. ENTERPRISE-only. Empresa so nasce assim (manual): o sistema nao cria empresa pelo dominio do e-mail dos contatos. Cadastro da empresa em additional_attributes: { legal_name (razao social), cnpj (validado; grava so digitos), phone, email, address: {cep, street, number, complement, neighborhood, city, state, country}, social_profiles: {linkedin, facebook, instagram, telegram, tiktok, twitter, github} }. A gravacao MESCLA: mande so o que muda; valor vazio (\"\") apaga aquela chave; chave ausente nao mexe. CNPJ ou e-mail invalido = 422. additional_attributes, address e social_profiles precisam ser OBJETOS (texto ou lista = 422, nada e apagado).",
|
|
12471
|
+
"description": "Cria uma empresa. Body exige wrapper company. Aceita name, domain, description, avatar, additional_attributes (cadastro) e custom_attributes (atributos personalizados). custom_attributes (2026-10-15): atributos personalizados da EMPRESA, objeto {chave: valor} de valores SIMPLES (texto, numero, verdadeiro/falso ou null; lista ou objeto dentro = 422). MESCLA: mande so o que muda; null ou texto vazio LIMPA a chave. So chave que ja existe como definicao company_attribute da conta (lionchat_custom_attributes_list com attribute_model=company_attribute); chave desconhecida = 422 com a lista das validas e NADA do pedido e gravado. Teto de 1.500 caracteres por valor; data aceita DD/MM/AAAA. ONDE MAIS APARECE (2026-10-16): o campo personalizado vira variavel {{contact.company.custom_attribute.CHAVE}} (e o cadastro {{contact.company.name|legal_name|cnpj|phone|email|address.city|address.state}}) em mensagem, fluxo, automacao, campanha e modelo oficial; condicao do bloco Condicao do fluxo (attrSource 'company'); condicao de automacao e filtro de contatos (custom_attribute_type 'company_attribute'); a IA (Agente e Copiloto) le a empresa do contato. Modulo Empresas desligado = tudo isso para. ENTERPRISE-only. Empresa so nasce assim (manual): o sistema nao cria empresa pelo dominio do e-mail dos contatos. Cadastro da empresa em additional_attributes: { legal_name (razao social), cnpj (validado; grava so digitos), phone, email, address: {cep, street, number, complement, neighborhood, city, state, country}, social_profiles: {linkedin, facebook, instagram, telegram, tiktok, twitter, github} }. A gravacao MESCLA: mande so o que muda; valor vazio (\"\") apaga aquela chave; chave ausente nao mexe. CNPJ ou e-mail invalido = 422. additional_attributes, address e social_profiles precisam ser OBJETOS (texto ou lista = 422, nada e apagado). CNPJ UNICO POR EMPRESA NA CONTA (2026-11-11): additional_attributes.cnpj que ja e de OUTRA empresa da conta = 422 \"Ja existe a empresa X com este CNPJ.\" e NADA do pedido e gravado. Nao crie outra: atualize a empresa X (ache pelo nome com lionchat_companies_search; a busca nao acha por CNPJ). Empresa antiga ja repetida continua salvando os outros campos. Filial tem CNPJ proprio e entra normalmente. CPF/CNPJ na ficha do CONTATO podem repetir.",
|
|
12458
12472
|
"category": "Empresas",
|
|
12459
12473
|
"params": [
|
|
12460
12474
|
{
|
|
@@ -12507,7 +12521,7 @@
|
|
|
12507
12521
|
"method": "PATCH",
|
|
12508
12522
|
"path": "/api/v1/accounts/{account_id}/companies/{id}",
|
|
12509
12523
|
"title": "Atualizar Empresa",
|
|
12510
|
-
"description": "Atualiza dados da empresa. Suporta atualizacao parcial (PATCH) — so campos enviados sao alterados. Campos suportados: name, domain, description, avatar, additional_attributes (cadastro) e custom_attributes (atributos personalizados). custom_attributes (2026-10-15): atributos personalizados da EMPRESA, objeto {chave: valor} de valores SIMPLES (texto, numero, verdadeiro/falso ou null; lista ou objeto dentro = 422). MESCLA: mande so o que muda; null ou texto vazio LIMPA a chave. So chave que ja existe como definicao company_attribute da conta (lionchat_custom_attributes_list com attribute_model=company_attribute); chave desconhecida = 422 com a lista das validas e NADA do pedido e gravado. Teto de 1.500 caracteres por valor; data aceita DD/MM/AAAA. ONDE MAIS APARECE (2026-10-16): o campo personalizado vira variavel {{contact.company.custom_attribute.CHAVE}} (e o cadastro {{contact.company.name|legal_name|cnpj|phone|email|address.city|address.state}}) em mensagem, fluxo, automacao, campanha e modelo oficial; condicao do bloco Condicao do fluxo (attrSource 'company'); condicao de automacao e filtro de contatos (custom_attribute_type 'company_attribute'); a IA (Agente e Copiloto) le a empresa do contato. Modulo Empresas desligado = tudo isso para. Cadastro da empresa em additional_attributes: { legal_name (razao social), cnpj (validado; grava so digitos), phone, email, address: {cep, street, number, complement, neighborhood, city, state, country}, social_profiles: {linkedin, facebook, instagram, telegram, tiktok, twitter, github} }. A gravacao MESCLA: mande so o que muda; valor vazio (\"\") apaga aquela chave; chave ausente nao mexe. CNPJ ou e-mail invalido = 422. additional_attributes, address e social_profiles precisam ser OBJETOS (texto ou lista = 422, nada e apagado).",
|
|
12524
|
+
"description": "Atualiza dados da empresa. Suporta atualizacao parcial (PATCH) — so campos enviados sao alterados. Campos suportados: name, domain, description, avatar, additional_attributes (cadastro) e custom_attributes (atributos personalizados). custom_attributes (2026-10-15): atributos personalizados da EMPRESA, objeto {chave: valor} de valores SIMPLES (texto, numero, verdadeiro/falso ou null; lista ou objeto dentro = 422). MESCLA: mande so o que muda; null ou texto vazio LIMPA a chave. So chave que ja existe como definicao company_attribute da conta (lionchat_custom_attributes_list com attribute_model=company_attribute); chave desconhecida = 422 com a lista das validas e NADA do pedido e gravado. Teto de 1.500 caracteres por valor; data aceita DD/MM/AAAA. ONDE MAIS APARECE (2026-10-16): o campo personalizado vira variavel {{contact.company.custom_attribute.CHAVE}} (e o cadastro {{contact.company.name|legal_name|cnpj|phone|email|address.city|address.state}}) em mensagem, fluxo, automacao, campanha e modelo oficial; condicao do bloco Condicao do fluxo (attrSource 'company'); condicao de automacao e filtro de contatos (custom_attribute_type 'company_attribute'); a IA (Agente e Copiloto) le a empresa do contato. Modulo Empresas desligado = tudo isso para. Cadastro da empresa em additional_attributes: { legal_name (razao social), cnpj (validado; grava so digitos), phone, email, address: {cep, street, number, complement, neighborhood, city, state, country}, social_profiles: {linkedin, facebook, instagram, telegram, tiktok, twitter, github} }. A gravacao MESCLA: mande so o que muda; valor vazio (\"\") apaga aquela chave; chave ausente nao mexe. CNPJ ou e-mail invalido = 422. additional_attributes, address e social_profiles precisam ser OBJETOS (texto ou lista = 422, nada e apagado). CNPJ UNICO POR EMPRESA NA CONTA (2026-11-11): additional_attributes.cnpj que ja e de OUTRA empresa da conta = 422 \"Ja existe a empresa X com este CNPJ.\" e NADA do pedido e gravado. Nao crie outra: atualize a empresa X (ache pelo nome com lionchat_companies_search; a busca nao acha por CNPJ). Empresa antiga ja repetida continua salvando os outros campos. Filial tem CNPJ proprio e entra normalmente. CPF/CNPJ na ficha do CONTATO podem repetir.",
|
|
12511
12525
|
"category": "Empresas",
|
|
12512
12526
|
"params": [
|
|
12513
12527
|
{
|
|
@@ -12608,7 +12622,62 @@
|
|
|
12608
12622
|
"Buscar pelo email/telefone parcial",
|
|
12609
12623
|
"Verificar se já existe antes de criar"
|
|
12610
12624
|
],
|
|
12611
|
-
"related_tools": [
|
|
12625
|
+
"related_tools": [
|
|
12626
|
+
"lionchat_companies_filter"
|
|
12627
|
+
]
|
|
12628
|
+
},
|
|
12629
|
+
{
|
|
12630
|
+
"id": "lionchat_companies_filter",
|
|
12631
|
+
"method": "POST",
|
|
12632
|
+
"path": "/api/v1/accounts/{account_id}/companies/filter",
|
|
12633
|
+
"title": "Filtrar Empresas",
|
|
12634
|
+
"description": "[2026-11-11] Lista as empresas da conta que atendem as condicoes (aba Empresas > filtro). Mesmo formato do filtro de contatos: payload = lista de condicoes {attribute_key, filter_operator, values, query_operator ('and'/'or', a ultima sem), custom_attribute_type}. 25 por pagina; meta.total_count = total filtrado.\n\nCAMPOS: name (equal_to, not_equal_to, contains, does_not_contain); domain (site), legal_name (razao social), cnpj, phone, email, city, state (os quatro acima + is_present, is_not_present); contacts_count (equal_to, not_equal_to, is_greater_than, is_less_than; valor inteiro); created_at, last_activity_at (today, yesterday, last_days, days_ago, days_before com numero de dias; is_greater_than/is_less_than com data AAAA-MM-DD). Atributo personalizado da EMPRESA: custom_attribute_type 'company_attribute' + a chave do atributo (operadores pelo tipo: texto como os de texto; lista e sim/nao: equal_to/not_equal_to/is_present/is_not_present; numero/data/hora: + is_greater_than/is_less_than). Um atributo de empresa chamado city e OUTRO campo, nunca o endereco.\n\nREGRAS: texto sem maiuscula e sem acento ('sao paulo' acha 'São Paulo'); CNPJ e telefone comparados so pelos numeros (valor sem nenhum numero = 422); 'diferente de' e 'nao contem' trazem tambem a empresa SEM o campo. Campo, operador ou valor que o filtro nao conhece = 422 com o motivo (nunca devolve a lista inteira); payload vazio = 422. Menu Empresas oculto pelo cargo = 401; modulo Empresas desligado = 403.\n\nSEGMENTO SALVO: para listar as empresas de um segmento de empresas, leia o segmento (lionchat_custom_filters_show ou _list com filter_type company) e mande o query.payload dele aqui. Para salvar um filtro como segmento use lionchat_custom_filters_create com filter_type 'company' e query {payload: [...]}.",
|
|
12635
|
+
"category": "Empresas",
|
|
12636
|
+
"params": [
|
|
12637
|
+
{
|
|
12638
|
+
"name": "payload",
|
|
12639
|
+
"type": "array",
|
|
12640
|
+
"location": "body",
|
|
12641
|
+
"required": true,
|
|
12642
|
+
"description": "Lista de condicoes: [{attribute_key, filter_operator, values (lista), query_operator ('and' ou 'or'; a ultima sem), custom_attribute_type ('' ou 'company_attribute')}]. Ex.: [{\"attribute_key\":\"city\",\"filter_operator\":\"equal_to\",\"values\":[\"sao paulo\"]}]"
|
|
12643
|
+
},
|
|
12644
|
+
{
|
|
12645
|
+
"name": "q",
|
|
12646
|
+
"type": "string",
|
|
12647
|
+
"location": "query",
|
|
12648
|
+
"required": false,
|
|
12649
|
+
"description": "Busca por nome ou site, aplicada por cima do filtro (opcional)"
|
|
12650
|
+
},
|
|
12651
|
+
{
|
|
12652
|
+
"name": "page",
|
|
12653
|
+
"type": "integer",
|
|
12654
|
+
"location": "query",
|
|
12655
|
+
"required": false,
|
|
12656
|
+
"description": "Pagina (25 por pagina, padrao 1)"
|
|
12657
|
+
},
|
|
12658
|
+
{
|
|
12659
|
+
"name": "sort",
|
|
12660
|
+
"type": "string",
|
|
12661
|
+
"location": "query",
|
|
12662
|
+
"required": false,
|
|
12663
|
+
"description": "Ordenacao: name, domain, created_at, contacts_count, last_activity_at (prefixo - = decrescente)"
|
|
12664
|
+
}
|
|
12665
|
+
],
|
|
12666
|
+
"returns": "meta (total_count, page) + payload (array de empresas, mesmo formato de lionchat_companies_list)",
|
|
12667
|
+
"common_use_cases": [
|
|
12668
|
+
"Empresas de uma cidade ou estado",
|
|
12669
|
+
"Empresas com mais de N contatos",
|
|
12670
|
+
"Empresas sem CNPJ cadastrado (cnpj is_not_present)",
|
|
12671
|
+
"Listar as empresas de um segmento de empresas salvo",
|
|
12672
|
+
"Montar a regra antes de salvar um segmento de empresas"
|
|
12673
|
+
],
|
|
12674
|
+
"related_tools": [
|
|
12675
|
+
"lionchat_companies_list",
|
|
12676
|
+
"lionchat_companies_search",
|
|
12677
|
+
"lionchat_custom_filters_create",
|
|
12678
|
+
"lionchat_custom_filters_list",
|
|
12679
|
+
"lionchat_custom_filters_show"
|
|
12680
|
+
]
|
|
12612
12681
|
},
|
|
12613
12682
|
{
|
|
12614
12683
|
"id": "lionchat_companies_contacts_list",
|
|
@@ -14939,7 +15008,7 @@
|
|
|
14939
15008
|
"type": "array",
|
|
14940
15009
|
"location": "body",
|
|
14941
15010
|
"required": true,
|
|
14942
|
-
"description": "Array de permissoes (array de strings). Valores aceitos (
|
|
15011
|
+
"description": "Array de permissoes (array de strings). Valores aceitos (26): conversation_manage, conversation_delete, conversation_unassigned_manage, conversation_participating_manage, conversation_team_manage, conversation_assigned_manage (Ver conversas dos colegas: so as que JA TEM responsavel, nas caixas de que a pessoa e membro; nunca a fila sem dono — 02/10/2026), contact_manage, contact_export_import, report_manage, knowledge_base_manage, kanban_manage, kanban_view, kanban_delete, kanban_export_import, offer_manage, funnel_manage, kanban_ai_analyze (Analisar funil com IA: o botao \"Analisar com IA\" do Kanban; tambem precisa do recurso de plano kanban_ai_analysis, 28/10/2026), campaign_manage, automation_manage, marketing_integrations_manage, captain_manage, flowbuilder_manage, lead_form_manage (Formularios publicos, 05/09), signature_manage (Assinatura eletronica, 05/09), agenda_manage (Gerenciar a Agenda), label_manage (Gerenciar etiquetas: criar, editar e apagar etiquetas da conta; 10/11/2026 — cargos que ja existiam ganharam a caixinha; agente SEM cargo continua podendo; aplicar etiqueta na conversa nao depende dela). Fora da lista = recusado. Administrador tem tudo sem cargo; agente sem cargo nao tem lead_form_manage nem signature_manage (nao ve Formularios nem Assinaturas no menu). O editor da tela marca junto as que uma inclui: conversation_manage inclui as 4 outras de conversa; conversation_team_manage inclui conversation_participating_manage; kanban_manage inclui kanban_view. Mande a lista ja completa. Ao EDITAR um cargo, mande a lista inteira que ele ja tem (leia com lionchat_custom_roles_show): permissao que ficar de fora e TIRADA, inclusive label_manage."
|
|
14943
15012
|
},
|
|
14944
15013
|
{
|
|
14945
15014
|
"name": "hidden_menus",
|
|
@@ -15024,7 +15093,7 @@
|
|
|
15024
15093
|
"type": "array",
|
|
15025
15094
|
"location": "body",
|
|
15026
15095
|
"required": false,
|
|
15027
|
-
"description": "Permissoes (array de strings). Valores aceitos (
|
|
15096
|
+
"description": "Permissoes (array de strings). Valores aceitos (26): conversation_manage, conversation_delete, conversation_unassigned_manage, conversation_participating_manage, conversation_team_manage, conversation_assigned_manage (Ver conversas dos colegas: so as que JA TEM responsavel, nas caixas de que a pessoa e membro; nunca a fila sem dono — 02/10/2026), contact_manage, contact_export_import, report_manage, knowledge_base_manage, kanban_manage, kanban_view, kanban_delete, kanban_export_import, offer_manage, funnel_manage, kanban_ai_analyze (Analisar funil com IA: o botao \"Analisar com IA\" do Kanban; tambem precisa do recurso de plano kanban_ai_analysis, 28/10/2026), campaign_manage, automation_manage, marketing_integrations_manage, captain_manage, flowbuilder_manage, lead_form_manage (Formularios publicos, 05/09), signature_manage (Assinatura eletronica, 05/09), agenda_manage (Gerenciar a Agenda), label_manage (Gerenciar etiquetas: criar, editar e apagar etiquetas da conta; 10/11/2026 — cargos que ja existiam ganharam a caixinha; agente SEM cargo continua podendo; aplicar etiqueta na conversa nao depende dela). Fora da lista = recusado. Administrador tem tudo sem cargo; agente sem cargo nao tem lead_form_manage nem signature_manage (nao ve Formularios nem Assinaturas no menu). O editor da tela marca junto as que uma inclui: conversation_manage inclui as 4 outras de conversa; conversation_team_manage inclui conversation_participating_manage; kanban_manage inclui kanban_view. Mande a lista ja completa. Ao EDITAR um cargo, mande a lista inteira que ele ja tem (leia com lionchat_custom_roles_show): permissao que ficar de fora e TIRADA, inclusive label_manage."
|
|
15028
15097
|
},
|
|
15029
15098
|
{
|
|
15030
15099
|
"name": "hidden_menus",
|
|
@@ -23391,7 +23460,7 @@
|
|
|
23391
23460
|
"method": "PATCH",
|
|
23392
23461
|
"path": "/api/v1/accounts/{account_id}/campaigns/{id}",
|
|
23393
23462
|
"title": "Atualizar Campanha",
|
|
23394
|
-
"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.",
|
|
23463
|
+
"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. CAMPANHA DE FLUXO AGENDADA (11/11/2026): enquanto nao comecou, pode ser alterada como qualquer campanha (nome, caixa, fluxo, audience, trigger_rules, template_params, scheduled_at). Mudar scheduled_at muda a hora de COMECAR: o sistema arma um despertador para a hora nova e o da hora antiga nao faz nada (antes, adiar fazia a campanha sair na hora antiga). Ao mandar trigger_rules, mande o objeto inteiro (ele e trocado, nao somado). Depois que comeca (completed) a alteracao da 422: para o que falta, use lionchat_campaigns_reschedule_flow, lionchat_campaigns_stop_flow ou a agenda dia a dia (lionchat_campaigns_dispatch_days e irmas).",
|
|
23395
23464
|
"category": "Campanhas",
|
|
23396
23465
|
"params": [
|
|
23397
23466
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.37.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",
|