@lionchat/mcp-server 1.13.0 → 1.14.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 +8 -3
- package/dist/docs/resources/best-practices.md +18 -0
- package/dist/docs/resources/data-model.md +11 -0
- package/dist/docs/resources/flowbuilder-patterns.md +27 -0
- package/dist/docs/resources/formularios-publicos.md +309 -220
- package/dist/docs/resources/glossary.md +15 -20
- package/dist/docs/resources/troubleshooting.md +67 -12
- package/dist/tools.js +11 -4
- package/dist/tools.js.map +1 -1
- package/endpoints.json +97 -239
- package/package.json +1 -1
package/endpoints.json
CHANGED
|
@@ -698,7 +698,7 @@
|
|
|
698
698
|
"method": "POST",
|
|
699
699
|
"path": "/api/v1/accounts/{account_id}/contacts/filter",
|
|
700
700
|
"title": "Filtrar Contatos",
|
|
701
|
-
"description": "Filtra contatos com condicoes avancadas (payload de condicoes). 15/pagina.\n\nCHAVES FILTRAVEIS: name, email, identifier (equal_to/not_equal_to/contains/does_not_contain — match parcial case-insensitive); phone_number (+starts_with); country_code, city, company; cpf, cnpj, rg, profession (cadastral; cpf/cnpj/rg aceitam is_present/is_not_present); labels; created_at, last_activity_at (is_greater_than/is_less_than/days_before); blocked (equal_to true/false); QUALQUER outra chave = atributo personalizado do contato.\n\nREGISTROS VINCULADOS (acha o contato pelo que aconteceu com ele): attribute_key 'conversation_search' (conversa vinculada: conversation_status/conversation_labels/conversation_inbox_id), condicoes com custom_attribute_type 'conversation_attribute' (atributo da conversa vinculada) e attribute_key 'kanban_card' (card vinculado: card_funnel_id/card_stage/card_priority/card_status). Combinaveis com E/OU.\n\nCada condicao: {attribute_key, filter_operator, values[], query_operator:'and'|'or', custom_attribute_type?}. Operador fora da lista da chave = 422. [2026-07-25] Nova chave id (id interno do contato, equal_to/not_equal_to) — serve pra exportar/checar UM contato especifico.",
|
|
701
|
+
"description": "Filtra contatos com condicoes avancadas (payload de condicoes). 15/pagina.\n\nCHAVES FILTRAVEIS: name, email, identifier (equal_to/not_equal_to/contains/does_not_contain — match parcial case-insensitive); phone_number (+starts_with); country_code, city, company; cpf, cnpj, rg, profession (cadastral; cpf/cnpj/rg aceitam is_present/is_not_present); labels; created_at, last_activity_at (is_greater_than/is_less_than/days_before); blocked (equal_to true/false); QUALQUER outra chave = atributo personalizado do contato.\n\nREGISTROS VINCULADOS (acha o contato pelo que aconteceu com ele): attribute_key 'conversation_search' (conversa vinculada: conversation_status/conversation_labels/conversation_inbox_id), condicoes com custom_attribute_type 'conversation_attribute' (atributo da conversa vinculada) e attribute_key 'kanban_card' (card vinculado: card_funnel_id/card_stage/card_priority/card_status). Combinaveis com E/OU.\n\nCada condicao: {attribute_key, filter_operator, values[], query_operator:'and'|'or', custom_attribute_type?}. Operador fora da lista da chave = 422. [2026-07-25] Nova chave id (id interno do contato, equal_to/not_equal_to) — serve pra exportar/checar UM contato especifico. NOTA 18/08: data FIXA com is_greater_than/is_less_than corta o dia no FUSO DA CONTA (padrao America/Sao_Paulo), nao mais em UTC — mesmo criterio das datas relativas.",
|
|
702
702
|
"category": "Contatos",
|
|
703
703
|
"params": [
|
|
704
704
|
{
|
|
@@ -904,7 +904,7 @@
|
|
|
904
904
|
"method": "POST",
|
|
905
905
|
"path": "/api/v1/accounts/{account_id}/contacts/import",
|
|
906
906
|
"title": "Importar Contatos",
|
|
907
|
-
"description": "Importa contatos em lote via CSV. **Requer perfil Administrador.**. Cria novo contato. Obrigatórios: import_file. Valida unicidade quando aplicável. Retorna o contato criado com ID atribuído.",
|
|
907
|
+
"description": "Importa contatos em lote via CSV. **Requer perfil Administrador.**. Cria novo contato. Obrigatórios: import_file. Valida unicidade quando aplicável. Retorna o contato criado com ID atribuído. REGRA DO DDI (18/08): o telefone precisa vir COM o codigo do pais (5511988887777 ou +351912345678; o + e opcional). O sistema NAO completa mais 55: sem DDI ou numero que nao existe em pais nenhum = ERRO na linha (o contato nao e criado; o relatorio de erros mostra linha a linha); comecando com 0 = recusado; brasileiro com 55 e 12-13 digitos e aceito mesmo no formato antigo sem o 9o digito.",
|
|
908
908
|
"category": "Contatos",
|
|
909
909
|
"params": [
|
|
910
910
|
{
|
|
@@ -1433,7 +1433,7 @@
|
|
|
1433
1433
|
"method": "POST",
|
|
1434
1434
|
"path": "/api/v1/accounts/{account_id}/conversations/filter",
|
|
1435
1435
|
"title": "Filtrar Conversas",
|
|
1436
|
-
"description": "Filtra conversas com condicoes avancadas (payload de condicoes, mesmas da tela). Ordenacao fixa last_activity_at DESC, 25/pagina.\n\nCHAVES FILTRAVEIS (attribute_key -> operadores): status, chat_type, priority (equal_to/not_equal_to); assignee_id, inbox_id, team_id, campaign_id, captain_assistant_id, labels (equal_to/not_equal_to/is_present/is_not_present); display_id (equal_to/not_equal_to/contains/does_not_contain); created_at, last_activity_at (is_greater_than/is_less_than/days_before — valor de data); browser_language, conversation_language, referer, mail_subject; card_funnel_stage (conversa POR CARD do Kanban — valor 'funnel:<id>' ou 'stage:<id>:<chave_etapa>'); QUALQUER outra chave = atributo personalizado (use custom_attribute_type na condicao: 'conversation_attribute' ou 'contact_attribute').\n\nCada condicao: {attribute_key, filter_operator, values[], query_operator:'and'|'or', custom_attribute_type?}. Operador fora da lista da chave = 422 'Operador invalido' (ex: labels NAO aceita 'includes' — use equal_to). [2026-07-25] O operador contains em display_id agora funciona de verdade (busca por trecho do numero da conversa; antes dava erro de banco).",
|
|
1436
|
+
"description": "Filtra conversas com condicoes avancadas (payload de condicoes, mesmas da tela). Ordenacao fixa last_activity_at DESC, 25/pagina.\n\nCHAVES FILTRAVEIS (attribute_key -> operadores): status, chat_type, priority (equal_to/not_equal_to); assignee_id, inbox_id, team_id, campaign_id, captain_assistant_id, labels (equal_to/not_equal_to/is_present/is_not_present); display_id (equal_to/not_equal_to/contains/does_not_contain); created_at, last_activity_at (is_greater_than/is_less_than/days_before — valor de data); browser_language, conversation_language, referer, mail_subject; card_funnel_stage (conversa POR CARD do Kanban — valor 'funnel:<id>' ou 'stage:<id>:<chave_etapa>'); QUALQUER outra chave = atributo personalizado (use custom_attribute_type na condicao: 'conversation_attribute' ou 'contact_attribute').\n\nCada condicao: {attribute_key, filter_operator, values[], query_operator:'and'|'or', custom_attribute_type?}. Operador fora da lista da chave = 422 'Operador invalido' (ex: labels NAO aceita 'includes' — use equal_to). [2026-07-25] O operador contains em display_id agora funciona de verdade (busca por trecho do numero da conversa; antes dava erro de banco). NOTA 18/08: data FIXA com is_greater_than/is_less_than corta o dia no FUSO DA CONTA (padrao America/Sao_Paulo), nao mais em UTC — mesmo criterio das datas relativas.",
|
|
1437
1437
|
"category": "Conversas",
|
|
1438
1438
|
"params": [
|
|
1439
1439
|
{
|
|
@@ -3984,7 +3984,7 @@
|
|
|
3984
3984
|
"method": "POST",
|
|
3985
3985
|
"path": "/api/v1/accounts/{account_id}/kanban_items/import",
|
|
3986
3986
|
"title": "Importar Items",
|
|
3987
|
-
"description": "Importa cards em massa (job async).",
|
|
3987
|
+
"description": "Importa cards em massa (job async). REGRA DO DDI (18/08): telefone sem codigo do pais e considerado invalido e o card e criado SEM contato e SEM conversa, EM SILENCIO (diferente do import de contatos, que da erro na linha). Oriente a planilha a vir com DDI.",
|
|
3988
3988
|
"category": "Itens",
|
|
3989
3989
|
"params": [
|
|
3990
3990
|
{
|
|
@@ -9571,7 +9571,7 @@
|
|
|
9571
9571
|
"method": "POST",
|
|
9572
9572
|
"path": "/api/v1/accounts/{account_id}/flows",
|
|
9573
9573
|
"title": "Criar Flow",
|
|
9574
|
-
"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).",
|
|
9574
|
+
"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). REGRAS 18/08: acao start_flow com flow_id do PROPRIO flow e aceita no save mas IGNORADA EM SILENCIO na execucao (o fluxo para ali) — aponte sempre pra OUTRO flow. Condicoes: preencha operator E field juntos (tabela dos pares no resource flowbuilder-patterns), senao a regra roda certa e aparece errada na tela do cliente.",
|
|
9575
9575
|
"category": "Flows",
|
|
9576
9576
|
"params": [
|
|
9577
9577
|
{
|
|
@@ -9666,7 +9666,7 @@
|
|
|
9666
9666
|
"method": "PUT",
|
|
9667
9667
|
"path": "/api/v1/accounts/{account_id}/flows/{id}",
|
|
9668
9668
|
"title": "Atualizar Flow",
|
|
9669
|
-
"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).",
|
|
9669
|
+
"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). REGRAS 18/08: acao start_flow com flow_id do PROPRIO flow e aceita no save mas IGNORADA EM SILENCIO na execucao (o fluxo para ali) — aponte sempre pra OUTRO flow. Condicoes: preencha operator E field juntos (tabela dos pares no resource flowbuilder-patterns), senao a regra roda certa e aparece errada na tela do cliente.",
|
|
9670
9670
|
"category": "Flows",
|
|
9671
9671
|
"params": [
|
|
9672
9672
|
{
|
|
@@ -9881,6 +9881,13 @@
|
|
|
9881
9881
|
"location": "body",
|
|
9882
9882
|
"required": false,
|
|
9883
9883
|
"description": "Janelas de disponibilidade"
|
|
9884
|
+
},
|
|
9885
|
+
{
|
|
9886
|
+
"name": "slug",
|
|
9887
|
+
"type": "string",
|
|
9888
|
+
"location": "body",
|
|
9889
|
+
"required": false,
|
|
9890
|
+
"description": "Endereco do link publico do tipo de evento. EDITAVEL (18/08): normalizado no servidor, 3..60 chars, minusculas+numeros+hifen, unico. Vazio = mantem; duplicado = 422. Trocar derruba link ja enviado, codigo de incorporar e anuncio — NAO quebra agendamentos feitos, IA nem links de cancelar/remarcar (trabalham por id)."
|
|
9884
9891
|
}
|
|
9885
9892
|
],
|
|
9886
9893
|
"returns": "tipo de evento criado (com novo ID)",
|
|
@@ -9958,6 +9965,13 @@
|
|
|
9958
9965
|
"location": "body",
|
|
9959
9966
|
"required": false,
|
|
9960
9967
|
"description": "Ativo?"
|
|
9968
|
+
},
|
|
9969
|
+
{
|
|
9970
|
+
"name": "slug",
|
|
9971
|
+
"type": "string",
|
|
9972
|
+
"location": "body",
|
|
9973
|
+
"required": false,
|
|
9974
|
+
"description": "Endereco do link publico do tipo de evento. EDITAVEL (18/08): normalizado no servidor, 3..60 chars, minusculas+numeros+hifen, unico. Vazio = mantem; duplicado = 422. Trocar derruba link ja enviado, codigo de incorporar e anuncio — NAO quebra agendamentos feitos, IA nem links de cancelar/remarcar (trabalham por id)."
|
|
9961
9975
|
}
|
|
9962
9976
|
],
|
|
9963
9977
|
"returns": "tipo de evento atualizado",
|
|
@@ -20141,66 +20155,6 @@
|
|
|
20141
20155
|
"lionchat_voip_calls_show"
|
|
20142
20156
|
]
|
|
20143
20157
|
},
|
|
20144
|
-
{
|
|
20145
|
-
"id": "lionchat_voip_calls_list_3",
|
|
20146
|
-
"method": "GET",
|
|
20147
|
-
"path": "/api/v1/accounts/{account_id}/voip/settings/balance",
|
|
20148
|
-
"title": "Saldo VoIP",
|
|
20149
|
-
"description": "Retorna o saldo disponivel no provedor VoIP. Lista chamadas VoIP paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de chamada VoIP).",
|
|
20150
|
-
"category": "Chamadas",
|
|
20151
|
-
"params": [],
|
|
20152
|
-
"returns": "Objeto unico com a resposta crua do provedor Zenvia (endpoint /saldo) — NAO e lista de ligacoes e nao tem meta nem payload. O valor do saldo vem em dados.saldo (o painel le exatamente `data.dados.saldo`).",
|
|
20153
|
-
"common_use_cases": [
|
|
20154
|
-
"Dashboard: contar/exibir chamadas VoIP",
|
|
20155
|
-
"Buscar com filtros antes de outra operação",
|
|
20156
|
-
"Auditoria/relatório de chamadas VoIP ativas"
|
|
20157
|
-
],
|
|
20158
|
-
"related_tools": [
|
|
20159
|
-
"lionchat_voip_calls_list",
|
|
20160
|
-
"lionchat_voip_calls_create",
|
|
20161
|
-
"lionchat_voip_calls_show"
|
|
20162
|
-
]
|
|
20163
|
-
},
|
|
20164
|
-
{
|
|
20165
|
-
"id": "lionchat_voip_calls_list_4",
|
|
20166
|
-
"method": "GET",
|
|
20167
|
-
"path": "/api/v1/accounts/{account_id}/voip/settings/recharge_url",
|
|
20168
|
-
"title": "URL de Recarga VoIP",
|
|
20169
|
-
"description": "Retorna URL para recarga de creditos VoIP. Lista chamadas VoIP paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de chamada VoIP).",
|
|
20170
|
-
"category": "Chamadas",
|
|
20171
|
-
"params": [],
|
|
20172
|
-
"returns": "NAO devolve chamadas. Este endpoint repassa cru a resposta da Zenvia para a URL de recarga de credito: um OBJETO (ex.: { sucesso, url, ... }, chaves conforme a Zenvia), sem meta/payload. Em falha de parse vem { status, body }.",
|
|
20173
|
-
"common_use_cases": [
|
|
20174
|
-
"Dashboard: contar/exibir chamadas VoIP",
|
|
20175
|
-
"Buscar com filtros antes de outra operação",
|
|
20176
|
-
"Auditoria/relatório de chamadas VoIP ativas"
|
|
20177
|
-
],
|
|
20178
|
-
"related_tools": [
|
|
20179
|
-
"lionchat_voip_calls_list",
|
|
20180
|
-
"lionchat_voip_calls_create",
|
|
20181
|
-
"lionchat_voip_calls_show"
|
|
20182
|
-
]
|
|
20183
|
-
},
|
|
20184
|
-
{
|
|
20185
|
-
"id": "lionchat_voip_calls_list_5",
|
|
20186
|
-
"method": "GET",
|
|
20187
|
-
"path": "/api/v1/accounts/{account_id}/voip/settings/recharge_report",
|
|
20188
|
-
"title": "Relatorio de Recarga VoIP",
|
|
20189
|
-
"description": "Retorna historico de recargas. Lista chamadas VoIP paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de chamada VoIP).",
|
|
20190
|
-
"category": "Chamadas",
|
|
20191
|
-
"params": [],
|
|
20192
|
-
"returns": "Repasse direto da resposta da Zenvia (/minha-conta/relatorio-recarga): objeto no formato dela, tipicamente com o campo 'sucesso' mais os dados da recarga. Nao tem meta, nao tem payload e nao sao chamadas VoIP — e o historico de RECARGAS de credito. Se a Zenvia devolver algo que nao e JSON, vem { status, body }.",
|
|
20193
|
-
"common_use_cases": [
|
|
20194
|
-
"Dashboard: contar/exibir chamadas VoIP",
|
|
20195
|
-
"Buscar com filtros antes de outra operação",
|
|
20196
|
-
"Auditoria/relatório de chamadas VoIP ativas"
|
|
20197
|
-
],
|
|
20198
|
-
"related_tools": [
|
|
20199
|
-
"lionchat_voip_calls_list",
|
|
20200
|
-
"lionchat_voip_calls_create",
|
|
20201
|
-
"lionchat_voip_calls_show"
|
|
20202
|
-
]
|
|
20203
|
-
},
|
|
20204
20158
|
{
|
|
20205
20159
|
"id": "lionchat_voip_calls_create_4",
|
|
20206
20160
|
"method": "POST",
|
|
@@ -22871,7 +22825,7 @@
|
|
|
22871
22825
|
"description": "ID da caixa de entrada"
|
|
22872
22826
|
}
|
|
22873
22827
|
],
|
|
22874
|
-
"returns": "{
|
|
22828
|
+
"returns": "{window_hours, eligible_channel, bulk_retry_running, groups: {billing, transient, window_expired, permanent, limit, spam_limit, account_locked}, group_details (cada classe + campaign + partial + accepted_then_failed + deleted, itens ate 30), campaign_count, partial_count, accepted_then_failed_count, deleted_count, retryable_count, total}. NOVO 18/08: account_locked = conta comercial TRANCADA pela Meta (erro 131031, nunca reenviavel); accepted_then_failed = aceita pelo canal e recusada depois (tem recibo — reenviar entregaria em dobro); 'partial' MUDOU de significado: agora e so envio MULTI-anexo com recibo parcial.",
|
|
22875
22829
|
"common_use_cases": [
|
|
22876
22830
|
"Diagnosticar por que mensagens nao chegaram (agrupado por motivo, com erro real)",
|
|
22877
22831
|
"Ver quantas falhas sao reenviaveis antes de disparar o reenvio em massa",
|
|
@@ -22936,7 +22890,7 @@
|
|
|
22936
22890
|
"type": "string",
|
|
22937
22891
|
"location": "body",
|
|
22938
22892
|
"required": false,
|
|
22939
|
-
"description": "
|
|
22893
|
+
"description": "Classe a cancelar: billing, transient, window_expired, permanent, limit, spam_limit, account_locked, campaign, partial, accepted_then_failed. Ausente = todas. ATENCAO 18/08: 'partial' deixou de atingir mensagem de 1 anexo com recibo — essas agora saem por 'accepted_then_failed'. Valor fora da lista = 422 invalid_classification."
|
|
22940
22894
|
}
|
|
22941
22895
|
],
|
|
22942
22896
|
"returns": "{cancelled: N} — quantidade de mensagens canceladas",
|
|
@@ -24982,7 +24936,7 @@
|
|
|
24982
24936
|
"method": "GET",
|
|
24983
24937
|
"path": "/api/v1/accounts/{account_id}/eclinica_integrations",
|
|
24984
24938
|
"title": "Listar Integração e-Clínica",
|
|
24985
|
-
"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). [2026-07-25] Cada linha de reminder_config traz agora event_type ('agendamento' padrao, 'controle_laboratorio_novo' para lembrete de laboratorio/medicacao, 'cliente_inclusao_pagamento' para lembrete de vencimento de cobranca), dispatch_time (hora do disparo, OBRIGATORIA: 'HH:MM' fixo ou formula Liquid com variavel de conta/contato) e o filtro opcional filter_field/filter_operator/filter_value. Os lembretes NAO sao editaveis via MCP — somente pelo painel (Integracoes > e-Clinica > Lembretes).",
|
|
24939
|
+
"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). [2026-07-25] Cada linha de reminder_config traz agora event_type ('agendamento' padrao, 'controle_laboratorio_novo' para lembrete de laboratorio/medicacao, 'cliente_inclusao_pagamento' para lembrete de vencimento de cobranca), dispatch_time (hora do disparo, OBRIGATORIA: 'HH:MM' fixo ou formula Liquid com variavel de conta/contato) e o filtro opcional filter_field/filter_operator/filter_value. Os lembretes NAO sao editaveis via MCP — somente pelo painel (Integracoes > e-Clinica > Lembretes). Cada unidade em units[] traz tambem settings {} (18/08). O atributo eclinica_cor (cor da agenda, hex com #) virou campo fresco dos lembretes: filtravel por filter_field e disponivel como variavel {{cor}}.",
|
|
24986
24940
|
"category": "Integracoes",
|
|
24987
24941
|
"params": [],
|
|
24988
24942
|
"returns": "200 {payload: {eclinica_integrations: [...]}}",
|
|
@@ -25170,7 +25124,7 @@
|
|
|
25170
25124
|
"description": "ID do contato"
|
|
25171
25125
|
}
|
|
25172
25126
|
],
|
|
25173
|
-
"returns": "{
|
|
25127
|
+
"returns": "{payload: [...]} ordenado por favorito e depois data. source tem 5 origens: contact, kanban, conversation, agenda e lead_form (NOVO 18/08 — arquivos que o lead enviou num formulario publico; itens trazem lead_form_id e lead_form_name; aparecem depois que a resposta e ligada ao contato). Anexo de lead_form aceita mirror (renomear/favoritar) mas NAO aceita destroy_mirror (422) — o arquivo pertence a resposta do formulario.",
|
|
25174
25128
|
"common_use_cases": [
|
|
25175
25129
|
"Ver todos os arquivos de um cliente num lugar só"
|
|
25176
25130
|
],
|
|
@@ -26032,7 +25986,7 @@
|
|
|
26032
25986
|
"method": "POST",
|
|
26033
25987
|
"path": "/api/v1/accounts/{account_id}/contacts/import_validate",
|
|
26034
25988
|
"title": "Validar Import de Contatos (pré-check)",
|
|
26035
|
-
"description": "Valida o CSV de import ANTES de importar: confere tipos dos valores contra os atributos de destino (data, número, lista...) e devolve os problemas por linha/coluna. Aceita os mesmos file + mappings + value_mappings do import_csv. Use pra conferir antes de rodar o import de verdade.",
|
|
25989
|
+
"description": "Valida o CSV de import ANTES de importar: confere tipos dos valores contra os atributos de destino (data, número, lista...) e devolve os problemas por linha/coluna. Aceita os mesmos file + mappings + value_mappings do import_csv. Use pra conferir antes de rodar o import de verdade. ATENCAO (18/08): esta conferencia NAO valida telefone — so coercao de tipo dos atributos. Validate verde NAO garante import sem erro de DDI; os erros de telefone aparecem so no relatorio do import.",
|
|
26036
25990
|
"category": "Contatos",
|
|
26037
25991
|
"params": [
|
|
26038
25992
|
{
|
|
@@ -26072,7 +26026,7 @@
|
|
|
26072
26026
|
"method": "PUT",
|
|
26073
26027
|
"path": "/api/v1/accounts/{account_id}",
|
|
26074
26028
|
"title": "Atualizar Configurações da Conta",
|
|
26075
|
-
"description": "Atualiza as configurações GERAIS da conta (Configurações > Conta). Inclui o FUSO HORÁRIO próprio da conta (novo 2026-07-21): timezone IANA, default America/Sao_Paulo — caixas novas e o Gatilho de Data do FlowBuilder herdam. ATENÇÃO: timezone inválido é DESCARTADO em silêncio (não dá erro) — confirme com account_show depois. Não confundir com account_update (que é o PERFIL do usuário logado).",
|
|
26029
|
+
"description": "Atualiza as configurações GERAIS da conta (Configurações > Conta). Inclui o FUSO HORÁRIO próprio da conta (novo 2026-07-21): timezone IANA, default America/Sao_Paulo — caixas novas e o Gatilho de Data do FlowBuilder herdam. ATENÇÃO: timezone inválido é DESCARTADO em silêncio (não dá erro) — confirme com account_show depois. Não confundir com account_update (que é o PERFIL do usuário logado). NOTA 18/08: mudar o timezone da conta move a fronteira do dia dos filtros de DATA FIXA e das datas relativas (contatos, conversas, segmentos e condicoes de automacao).",
|
|
26076
26030
|
"category": "Conta",
|
|
26077
26031
|
"params": [
|
|
26078
26032
|
{
|
|
@@ -28280,7 +28234,7 @@
|
|
|
28280
28234
|
"method": "POST",
|
|
28281
28235
|
"path": "/api/v1/accounts/{account_id}/lead_forms",
|
|
28282
28236
|
"title": "Criar Formulario",
|
|
28283
|
-
"description": "Cria um formulario publico de captacao. So name e obrigatorio (o desenho pode vir depois via update).
|
|
28237
|
+
"description": "Cria um formulario publico de captacao. So name e obrigatorio (o desenho pode vir depois via update). Nasce inativo e nao publicado — publique com lead_forms_publish e ative com update {active: true}. Pra publicar e OBRIGATORIO vincular uma caixa de WhatsApp (inbox_id). O slug pode ser escolhido (normalizado no servidor) ou fica sorteado. Escrita admin-only (401 para agente comum). Guia completo do form_data: resource lionchat://docs/formularios-publicos.",
|
|
28284
28238
|
"category": "Formularios",
|
|
28285
28239
|
"params": [
|
|
28286
28240
|
{
|
|
@@ -28309,17 +28263,31 @@
|
|
|
28309
28263
|
"type": "object",
|
|
28310
28264
|
"location": "body",
|
|
28311
28265
|
"required": false,
|
|
28312
|
-
"description": "Desenho do formulario {nodes:[{id,type,position:{x,y},data}], edges:[{id,source,target,sourceHandle}]}. Tipos: start, question, choice, message, condition, action, send_message, end, api_request, ai. Chave de data fora da lista permitida do tipo e DESCARTADA em silencio. Teto 2MB. Contrato completo, variaveis e exemplos: resource lionchat://docs/formularios-publicos. ATENCAO: substitui o desenho INTEIRO — leia com lead_forms_show antes de editar."
|
|
28266
|
+
"description": "Desenho do formulario {nodes:[{id,type,position:{x,y},data}], edges:[{id,source,target,sourceHandle}]}. Tipos: start, question, choice, message, condition, action, send_message, booking, set_variable, embed, end, api_request, ai. Bloco action usa items:[{key,config}]; send_message usa messageItems; api_request aceita method (GET/POST/PUT/PATCH/DELETE) e body. Chave de data fora da lista permitida do tipo e DESCARTADA em silencio. Teto 2MB. Contrato completo, variaveis e exemplos: resource lionchat://docs/formularios-publicos. ATENCAO: substitui o desenho INTEIRO — leia com lead_forms_show antes de editar."
|
|
28313
28267
|
},
|
|
28314
28268
|
{
|
|
28315
28269
|
"name": "settings",
|
|
28316
28270
|
"type": "object",
|
|
28317
28271
|
"location": "body",
|
|
28318
28272
|
"required": false,
|
|
28319
|
-
"description": "Configuracao visual/comportamento: {primary_color: '#7C3AED', theme: 'light'|'dark', abandon_minutes: 1..
|
|
28273
|
+
"description": "Configuracao visual/comportamento: {primary_color: '#7C3AED', theme: 'light'|'dark', abandon_minutes: 1..15 (default 15), button_label: string|null, resume: bool (continuar de onde parou, default true), chat_avatar: id de blob ja subido (foto dos baloes no formato chat)}."
|
|
28274
|
+
},
|
|
28275
|
+
{
|
|
28276
|
+
"name": "inbox_id",
|
|
28277
|
+
"type": "integer",
|
|
28278
|
+
"location": "body",
|
|
28279
|
+
"required": false,
|
|
28280
|
+
"description": "Caixa de WhatsApp vinculada (obrigatoria pra PUBLICAR). So Channel::Whatsapp (oficial) ou Channel::Waha (QR). Trocar de caixa pode; trocar de TIPO de canal nao (422 'channel type cannot change'). A troca so vale ao republicar (a foto guarda a caixa)."
|
|
28281
|
+
},
|
|
28282
|
+
{
|
|
28283
|
+
"name": "slug",
|
|
28284
|
+
"type": "string",
|
|
28285
|
+
"location": "body",
|
|
28286
|
+
"required": false,
|
|
28287
|
+
"description": "Endereco do link publico. EDITAVEL (mudou 16/08): normalizado no servidor (acento vira letra, resto vira hifen), 3..60 chars, minusculas+numeros+hifen, unico na conta. Vazio = mantem o atual; duplicado = 422. Trocar derruba links ja divulgados."
|
|
28320
28288
|
}
|
|
28321
28289
|
],
|
|
28322
|
-
"returns": "formulario criado (201) com slug
|
|
28290
|
+
"returns": "formulario criado (201) com slug, public_url, inbox {id,name,channel_type}|null e published_inbox_id; 422 {errors} em validacao (inclusive errors.inbox_id)",
|
|
28323
28291
|
"common_use_cases": [
|
|
28324
28292
|
"Criar formulario de captacao do zero via API",
|
|
28325
28293
|
"Importar um desenho pronto (form_data completo)"
|
|
@@ -28364,7 +28332,7 @@
|
|
|
28364
28332
|
"method": "PATCH",
|
|
28365
28333
|
"path": "/api/v1/accounts/{account_id}/lead_forms/{id}",
|
|
28366
28334
|
"title": "Atualizar Formulario",
|
|
28367
|
-
"description": "
|
|
28335
|
+
"description": "Edita um formulario. form_data SUBSTITUI o desenho inteiro (leia antes com lead_forms_show). Aceita trocar inbox_id (so por caixa do MESMO tipo de canal) e slug (editavel, normalizado; trocar derruba links ja divulgados). Mudancas no desenho/caixa so valem pra quem preenche depois de um novo publish. Admin-only.",
|
|
28368
28336
|
"category": "Formularios",
|
|
28369
28337
|
"params": [
|
|
28370
28338
|
{
|
|
@@ -28400,14 +28368,28 @@
|
|
|
28400
28368
|
"type": "object",
|
|
28401
28369
|
"location": "body",
|
|
28402
28370
|
"required": false,
|
|
28403
|
-
"description": "Desenho do formulario {nodes:[{id,type,position:{x,y},data}], edges:[{id,source,target,sourceHandle}]}. Tipos: start, question, choice, message, condition, action, send_message, end, api_request, ai. Chave de data fora da lista permitida do tipo e DESCARTADA em silencio. Teto 2MB. Contrato completo, variaveis e exemplos: resource lionchat://docs/formularios-publicos. ATENCAO: substitui o desenho INTEIRO — leia com lead_forms_show antes de editar."
|
|
28371
|
+
"description": "Desenho do formulario {nodes:[{id,type,position:{x,y},data}], edges:[{id,source,target,sourceHandle}]}. Tipos: start, question, choice, message, condition, action, send_message, booking, set_variable, embed, end, api_request, ai. Bloco action usa items:[{key,config}]; send_message usa messageItems; api_request aceita method (GET/POST/PUT/PATCH/DELETE) e body. Chave de data fora da lista permitida do tipo e DESCARTADA em silencio. Teto 2MB. Contrato completo, variaveis e exemplos: resource lionchat://docs/formularios-publicos. ATENCAO: substitui o desenho INTEIRO — leia com lead_forms_show antes de editar."
|
|
28404
28372
|
},
|
|
28405
28373
|
{
|
|
28406
28374
|
"name": "settings",
|
|
28407
28375
|
"type": "object",
|
|
28408
28376
|
"location": "body",
|
|
28409
28377
|
"required": false,
|
|
28410
|
-
"description": "Configuracao visual/comportamento: {primary_color: '#7C3AED', theme: 'light'|'dark', abandon_minutes: 1..
|
|
28378
|
+
"description": "Configuracao visual/comportamento: {primary_color: '#7C3AED', theme: 'light'|'dark', abandon_minutes: 1..15 (default 15), button_label: string|null, resume: bool (continuar de onde parou, default true), chat_avatar: id de blob ja subido (foto dos baloes no formato chat)}."
|
|
28379
|
+
},
|
|
28380
|
+
{
|
|
28381
|
+
"name": "inbox_id",
|
|
28382
|
+
"type": "integer",
|
|
28383
|
+
"location": "body",
|
|
28384
|
+
"required": false,
|
|
28385
|
+
"description": "Caixa de WhatsApp vinculada (obrigatoria pra PUBLICAR). So Channel::Whatsapp (oficial) ou Channel::Waha (QR). Trocar de caixa pode; trocar de TIPO de canal nao (422 'channel type cannot change'). A troca so vale ao republicar (a foto guarda a caixa)."
|
|
28386
|
+
},
|
|
28387
|
+
{
|
|
28388
|
+
"name": "slug",
|
|
28389
|
+
"type": "string",
|
|
28390
|
+
"location": "body",
|
|
28391
|
+
"required": false,
|
|
28392
|
+
"description": "Endereco do link publico. EDITAVEL (mudou 16/08): normalizado no servidor (acento vira letra, resto vira hifen), 3..60 chars, minusculas+numeros+hifen, unico na conta. Vazio = mantem o atual; duplicado = 422. Trocar derruba links ja divulgados."
|
|
28411
28393
|
}
|
|
28412
28394
|
],
|
|
28413
28395
|
"returns": "formulario atualizado; 422 {errors} em validacao",
|
|
@@ -28450,7 +28432,7 @@
|
|
|
28450
28432
|
"method": "POST",
|
|
28451
28433
|
"path": "/api/v1/accounts/{account_id}/lead_forms/{id}/publish",
|
|
28452
28434
|
"title": "Publicar Formulario",
|
|
28453
|
-
"description": "
|
|
28435
|
+
"description": "Publica: valida o desenho e tira a foto (form_data + inbox_id -> published_data). Quem preenche usa SEMPRE a foto. 422 {errors: [chaves]} quando o desenho nao passa — 34 chaves possiveis (tabela completa no resource formularios-publicos). As mais comuns: form_without_inbox (sem caixa de WhatsApp vinculada), form_requires_phone_question (todo formulario exige pergunta com map_to contact.phone), *_without_exit (saida obrigatoria desligada). Admin-only.",
|
|
28454
28436
|
"category": "Formularios",
|
|
28455
28437
|
"params": [
|
|
28456
28438
|
{
|
|
@@ -28476,7 +28458,7 @@
|
|
|
28476
28458
|
"method": "POST",
|
|
28477
28459
|
"path": "/api/v1/accounts/{account_id}/lead_forms/{id}/duplicate",
|
|
28478
28460
|
"title": "Duplicar Formulario",
|
|
28479
|
-
"description": "Cria uma copia do formulario: nome + ' (copia)', slug novo, INATIVA e NAO publicada; as imagens dos blocos sao duplicadas (arquivos novos). Admin-only.",
|
|
28461
|
+
"description": "Cria uma copia do formulario: nome + ' (copia)', slug novo, INATIVA e NAO publicada; as imagens dos blocos sao duplicadas (arquivos novos). Admin-only. A copia nasce inativa e nao publicada, com slug novo, imagens duplicadas de verdade e o MESMO inbox_id do original.",
|
|
28480
28462
|
"category": "Formularios",
|
|
28481
28463
|
"params": [
|
|
28482
28464
|
{
|
|
@@ -28567,7 +28549,7 @@
|
|
|
28567
28549
|
"description": "Pagina (default 1)"
|
|
28568
28550
|
}
|
|
28569
28551
|
],
|
|
28570
|
-
"returns": "{payload: [{id, status, contact
|
|
28552
|
+
"returns": "{payload: [{id, status, contact, current_node_label, answered_count, created_at, completed_at}], meta}. contact pode vir {id: null, name, phone, pending: true} = pessoa AINDA preenchendo (o contato so nasce ao concluir, no fechamento do abandono ou antes de um envio de WhatsApp). NUNCA traz as respostas em si.",
|
|
28571
28553
|
"common_use_cases": [
|
|
28572
28554
|
"Ver quem respondeu/abandonou",
|
|
28573
28555
|
"Achar o id de uma resposta pro detalhe"
|
|
@@ -28600,7 +28582,7 @@
|
|
|
28600
28582
|
"description": "ID da resposta"
|
|
28601
28583
|
}
|
|
28602
28584
|
],
|
|
28603
|
-
"returns": "{
|
|
28585
|
+
"returns": "Resposta completa: answers [{label, value_label, at, download_url?}] (ATENCAO: o bloco de Acoes grava entradas sinteticas com chave '<node_id>::<n>' — nem toda chave e id de bloco), conversation {id, display_id}|null (a conversa aberta na caixa vinculada), milestones, effects [{node_id, label, state, error, status, url_short, at}] e utm_params",
|
|
28604
28586
|
"common_use_cases": [
|
|
28605
28587
|
"Ler o que o lead respondeu",
|
|
28606
28588
|
"Investigar por que a consulta externa/IA falhou (effects)",
|
|
@@ -28612,186 +28594,62 @@
|
|
|
28612
28594
|
]
|
|
28613
28595
|
},
|
|
28614
28596
|
{
|
|
28615
|
-
"id": "
|
|
28616
|
-
"method": "GET",
|
|
28617
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription",
|
|
28618
|
-
"title": "Ver Assinatura (Guru)",
|
|
28619
|
-
"description": "Assinatura da PROPRIA conta na plataforma, direto do Guru (passthrough) + dados locais do plano (plan_name, billing_period, subscription_expires_at, valor). Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28620
|
-
"category": "Assinatura",
|
|
28621
|
-
"params": [],
|
|
28622
|
-
"returns": "{subscription: <objeto do Guru>, local: {plan_name, plan_slug, billing_period, subscription_expires_at, subscription_value_cents}}",
|
|
28623
|
-
"common_use_cases": [
|
|
28624
|
-
"Ver status/vencimento da assinatura da conta",
|
|
28625
|
-
"Conferir o plano atual antes de simular troca"
|
|
28626
|
-
],
|
|
28627
|
-
"related_tools": [
|
|
28628
|
-
"lionchat_guru_subscription_available_plans",
|
|
28629
|
-
"lionchat_guru_subscription_invoices"
|
|
28630
|
-
]
|
|
28631
|
-
},
|
|
28632
|
-
{
|
|
28633
|
-
"id": "lionchat_guru_subscription_available_plans",
|
|
28634
|
-
"method": "GET",
|
|
28635
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription/available_plans",
|
|
28636
|
-
"title": "Planos Disponiveis (Guru)",
|
|
28637
|
-
"description": "Ofertas do Guru FILTRADAS: so aparecem ofertas vinculadas a um plano da plataforma (cada uma com local_plan {plan_name, plan_slug, period}). Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28638
|
-
"category": "Assinatura",
|
|
28639
|
-
"params": [],
|
|
28640
|
-
"returns": "{offers: [...com local_plan], local: {...}}",
|
|
28641
|
-
"common_use_cases": [
|
|
28642
|
-
"Listar opcoes de upgrade/downgrade antes de simular"
|
|
28643
|
-
],
|
|
28644
|
-
"related_tools": [
|
|
28645
|
-
"lionchat_guru_subscription_simulate",
|
|
28646
|
-
"lionchat_guru_subscription_change_plan"
|
|
28647
|
-
]
|
|
28648
|
-
},
|
|
28649
|
-
{
|
|
28650
|
-
"id": "lionchat_guru_subscription_invoices",
|
|
28651
|
-
"method": "GET",
|
|
28652
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription/invoices",
|
|
28653
|
-
"title": "Faturas da Assinatura (Guru)",
|
|
28654
|
-
"description": "Faturas da assinatura, direto do Guru (passthrough). Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28655
|
-
"category": "Assinatura",
|
|
28656
|
-
"params": [],
|
|
28657
|
-
"returns": "{invoices: <passthrough do Guru>}",
|
|
28658
|
-
"common_use_cases": [
|
|
28659
|
-
"Historico de faturas da conta"
|
|
28660
|
-
],
|
|
28661
|
-
"related_tools": [
|
|
28662
|
-
"lionchat_guru_subscription_transactions",
|
|
28663
|
-
"lionchat_guru_subscription_show"
|
|
28664
|
-
]
|
|
28665
|
-
},
|
|
28666
|
-
{
|
|
28667
|
-
"id": "lionchat_guru_subscription_transactions",
|
|
28668
|
-
"method": "GET",
|
|
28669
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription/transactions",
|
|
28670
|
-
"title": "Transacoes da Assinatura (Guru)",
|
|
28671
|
-
"description": "Transacoes de pagamento da assinatura, direto do Guru (passthrough). Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28672
|
-
"category": "Assinatura",
|
|
28673
|
-
"params": [],
|
|
28674
|
-
"returns": "{transactions: <passthrough do Guru>}",
|
|
28675
|
-
"common_use_cases": [
|
|
28676
|
-
"Conferir pagamentos aprovados/recusados"
|
|
28677
|
-
],
|
|
28678
|
-
"related_tools": [
|
|
28679
|
-
"lionchat_guru_subscription_invoices"
|
|
28680
|
-
]
|
|
28681
|
-
},
|
|
28682
|
-
{
|
|
28683
|
-
"id": "lionchat_guru_subscription_activities",
|
|
28684
|
-
"method": "GET",
|
|
28685
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription/activities",
|
|
28686
|
-
"title": "Atividades da Assinatura (Guru)",
|
|
28687
|
-
"description": "Linha do tempo de eventos da assinatura no Guru (passthrough). Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28688
|
-
"category": "Assinatura",
|
|
28689
|
-
"params": [],
|
|
28690
|
-
"returns": "{activities: <passthrough do Guru>}",
|
|
28691
|
-
"common_use_cases": [
|
|
28692
|
-
"Auditar mudancas recentes da assinatura"
|
|
28693
|
-
],
|
|
28694
|
-
"related_tools": [
|
|
28695
|
-
"lionchat_guru_subscription_show"
|
|
28696
|
-
]
|
|
28697
|
-
},
|
|
28698
|
-
{
|
|
28699
|
-
"id": "lionchat_guru_subscription_simulate",
|
|
28597
|
+
"id": "lionchat_lead_forms_test_run",
|
|
28700
28598
|
"method": "POST",
|
|
28701
|
-
"path": "/api/v1/accounts/{account_id}/
|
|
28702
|
-
"title": "
|
|
28703
|
-
"description": "
|
|
28704
|
-
"category": "
|
|
28599
|
+
"path": "/api/v1/accounts/{account_id}/lead_forms/{lead_form_id}/test_runs",
|
|
28600
|
+
"title": "Testar Formulario (simulador)",
|
|
28601
|
+
"description": "Roda o RASCUNHO (form_data, nao a foto publicada) no motor de verdade e desfaz tudo no fim — nada fica no banco: sem contato, sem conversa, sem WhatsApp, sem pixel, sem resposta nos relatorios. NAO exige admin (qualquer agente da conta). O estado do teste vive em quem chama: cada chamada reproduz o caminho inteiro a partir da lista de respostas. Item cujo node_id nao e o bloco atual PARA a reproducao ali.",
|
|
28602
|
+
"category": "Formularios",
|
|
28705
28603
|
"params": [
|
|
28706
28604
|
{
|
|
28707
|
-
"name": "
|
|
28708
|
-
"type": "
|
|
28709
|
-
"location": "
|
|
28605
|
+
"name": "lead_form_id",
|
|
28606
|
+
"type": "integer",
|
|
28607
|
+
"location": "path",
|
|
28710
28608
|
"required": true,
|
|
28711
|
-
"description": "ID
|
|
28712
|
-
}
|
|
28713
|
-
],
|
|
28714
|
-
"returns": "previa de rateio (passthrough do Guru)",
|
|
28715
|
-
"common_use_cases": [
|
|
28716
|
-
"Mostrar ao usuario quanto custaria a troca antes de confirmar"
|
|
28717
|
-
],
|
|
28718
|
-
"related_tools": [
|
|
28719
|
-
"lionchat_guru_subscription_available_plans",
|
|
28720
|
-
"lionchat_guru_subscription_change_plan"
|
|
28721
|
-
]
|
|
28722
|
-
},
|
|
28723
|
-
{
|
|
28724
|
-
"id": "lionchat_guru_subscription_change_plan",
|
|
28725
|
-
"method": "POST",
|
|
28726
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription/change_plan",
|
|
28727
|
-
"title": "Trocar Plano (Guru)",
|
|
28728
|
-
"description": "EFETIVA a troca de plano: upgrade cobra o proporcional NA HORA; downgrade agenda pro fim do ciclo. Confirme com o usuario e rode simulate antes. Acoes de escrita tem trava de 30s por conta — segunda tentativa na janela devolve 422 'operacao em andamento'. Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28729
|
-
"category": "Assinatura",
|
|
28730
|
-
"params": [
|
|
28609
|
+
"description": "ID do formulario"
|
|
28610
|
+
},
|
|
28731
28611
|
{
|
|
28732
|
-
"name": "
|
|
28733
|
-
"type": "
|
|
28612
|
+
"name": "answers",
|
|
28613
|
+
"type": "array",
|
|
28734
28614
|
"location": "body",
|
|
28735
|
-
"required":
|
|
28736
|
-
"description": "
|
|
28615
|
+
"required": false,
|
|
28616
|
+
"description": "Respostas a reproduzir, na ordem: [{node_id, value}]. Ate 60 itens. Vazio/ausente = comeca do inicio (devolve o primeiro bloco). value null avanca bloco sem resposta (start/message/embed)."
|
|
28737
28617
|
}
|
|
28738
28618
|
],
|
|
28739
|
-
"returns": "
|
|
28619
|
+
"returns": "{block, log, answers, variables, form}. block = envelope do bloco atual (mesmo shape da pagina publica); log = caminho percorrido [{node_id, type, label, answer, detail}] (detail mostra variavel criada, acoes executadas, resultado de consulta/IA e o rumo das condicoes); 422 {error: 'invalid_value'|'test_run_failed', reason}",
|
|
28740
28620
|
"common_use_cases": [
|
|
28741
|
-
"
|
|
28621
|
+
"Validar um formulario recem-montado antes de publicar",
|
|
28622
|
+
"Reproduzir o caminho de um lead pra depurar condicao/consulta/IA",
|
|
28623
|
+
"Conferir mensagens e variaveis sem enviar WhatsApp de verdade"
|
|
28742
28624
|
],
|
|
28743
28625
|
"related_tools": [
|
|
28744
|
-
"
|
|
28745
|
-
"
|
|
28626
|
+
"lionchat_lead_forms_show",
|
|
28627
|
+
"lionchat_lead_forms_publish"
|
|
28746
28628
|
]
|
|
28747
28629
|
},
|
|
28748
28630
|
{
|
|
28749
|
-
"id": "
|
|
28631
|
+
"id": "lionchat_lead_forms_check_embed",
|
|
28750
28632
|
"method": "POST",
|
|
28751
|
-
"path": "/api/v1/accounts/{account_id}/
|
|
28752
|
-
"title": "
|
|
28753
|
-
"description": "
|
|
28754
|
-
"category": "
|
|
28633
|
+
"path": "/api/v1/accounts/{account_id}/lead_forms/check_embed",
|
|
28634
|
+
"title": "Conferir site pra Pagina externa",
|
|
28635
|
+
"description": "Confere no SERVIDOR se um site aceita ser exibido em iframe (bloco 'embed' / Pagina externa). O navegador de quem preenche NAO consegue detectar recusa — site bloqueado vira quadrado vazio sem erro; por isso a conferencia e feita aqui, lendo os cabecalhos de recusa, seguindo ate 3 redirects (cada salto validado contra rede interna) com 5s por salto. Grave o veredito em embed_allowed do bloco. Admin-only. Aviso: paginas de CHECKOUT sao as que mais recusam iframe.",
|
|
28636
|
+
"category": "Formularios",
|
|
28755
28637
|
"params": [
|
|
28756
28638
|
{
|
|
28757
|
-
"name": "
|
|
28639
|
+
"name": "url",
|
|
28758
28640
|
"type": "string",
|
|
28759
28641
|
"location": "body",
|
|
28760
|
-
"required":
|
|
28761
|
-
"description": "
|
|
28762
|
-
},
|
|
28763
|
-
{
|
|
28764
|
-
"name": "cancel_at_cycle_end",
|
|
28765
|
-
"type": "boolean",
|
|
28766
|
-
"location": "body",
|
|
28767
|
-
"required": false,
|
|
28768
|
-
"description": "Default true (cancela no fim do ciclo). false = imediato"
|
|
28642
|
+
"required": true,
|
|
28643
|
+
"description": "Endereco a conferir (precisa comecar com https://; {{variaveis}} sao ignoradas na conferencia)"
|
|
28769
28644
|
}
|
|
28770
28645
|
],
|
|
28771
|
-
"returns": "
|
|
28772
|
-
"common_use_cases": [
|
|
28773
|
-
"Cancelamento pedido explicitamente pelo dono da conta"
|
|
28774
|
-
],
|
|
28775
|
-
"related_tools": [
|
|
28776
|
-
"lionchat_guru_subscription_revert_cancel",
|
|
28777
|
-
"lionchat_guru_subscription_show"
|
|
28778
|
-
]
|
|
28779
|
-
},
|
|
28780
|
-
{
|
|
28781
|
-
"id": "lionchat_guru_subscription_revert_cancel",
|
|
28782
|
-
"method": "POST",
|
|
28783
|
-
"path": "/api/v1/accounts/{account_id}/guru_subscription/revert_cancel",
|
|
28784
|
-
"title": "Reverter Cancelamento (Guru)",
|
|
28785
|
-
"description": "Desfaz um cancelamento agendado pro fim do ciclo (enquanto ainda nao venceu). Acoes de escrita tem trava de 30s por conta — segunda tentativa na janela devolve 422 'operacao em andamento'. Requer a feature 'Gestao de assinatura (Guru)' ligada pra conta no Super Admin — desligada devolve 404 {code: 'feature_disabled'} (diferente do 404 de assinatura inexistente no Guru). Somente administrator (403). 422 = validacao/nao configurado; 503 = Guru fora do ar.",
|
|
28786
|
-
"category": "Assinatura",
|
|
28787
|
-
"params": [],
|
|
28788
|
-
"returns": "resultado (passthrough do Guru)",
|
|
28646
|
+
"returns": "{status, reason}. status: 'allowed' (aceita) | 'blocked' (reason: not_https, x_frame_options, frame_ancestors, url_blocked) | 'unknown' (reason: unreachable ou http_<codigo> — nao deu pra conferir; a pagina tenta o iframe e o botao de abrir fora cobre)",
|
|
28789
28647
|
"common_use_cases": [
|
|
28790
|
-
"
|
|
28648
|
+
"Antes de salvar um bloco Pagina externa, saber se o site vai aparecer embutido",
|
|
28649
|
+
"Explicar ao cliente por que o checkout dele nao abre dentro do formulario"
|
|
28791
28650
|
],
|
|
28792
28651
|
"related_tools": [
|
|
28793
|
-
"
|
|
28794
|
-
"lionchat_guru_subscription_show"
|
|
28652
|
+
"lionchat_lead_forms_update"
|
|
28795
28653
|
]
|
|
28796
28654
|
}
|
|
28797
28655
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.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",
|