@lionchat/mcp-server 1.34.0 → 1.35.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/client.js +12 -0
- package/dist/client.js.map +1 -1
- package/dist/docs/instructions.md +10 -6
- package/dist/docs/resources/agenda-multiplas-unidades.md +1 -0
- package/dist/docs/resources/api-conventions.md +4 -0
- package/dist/docs/resources/assinatura-eletronica.md +4 -2
- package/dist/docs/resources/best-practices.md +69 -0
- package/dist/docs/resources/conversation-flows.md +1 -1
- package/dist/docs/resources/data-model.md +11 -6
- package/dist/docs/resources/filtros-e-relatorios.md +6 -1
- package/dist/docs/resources/flowbuilder-design-guide.md +4 -2
- package/dist/docs/resources/glossary.md +10 -3
- package/dist/docs/resources/kanban-deep-dive.md +69 -20
- package/dist/docs/resources/reports-guide.md +5 -0
- package/dist/docs/resources/troubleshooting.md +33 -2
- package/dist/sanitize.js +1 -0
- package/dist/sanitize.js.map +1 -1
- package/dist/tools.js +14 -8
- package/dist/tools.js.map +1 -1
- package/endpoints.json +187 -68
- package/package.json +1 -1
package/endpoints.json
CHANGED
|
@@ -1205,7 +1205,7 @@
|
|
|
1205
1205
|
"type": "string",
|
|
1206
1206
|
"location": "query",
|
|
1207
1207
|
"required": false,
|
|
1208
|
-
"description": "Busca rapida na lista (min 3 caracteres): casa nome, e-mail, telefone ou identifier do contato; se for so digitos, casa tambem o numero da conversa (display_id). Respeita o filtro de status. Para
|
|
1208
|
+
"description": "Busca rapida na lista (min 3 caracteres): casa nome, e-mail, telefone ou identifier do contato; se for so digitos, casa tambem o numero da conversa (display_id). Respeita o filtro de status. Para CPF/CNPJ e atributo use lionchat_search_list; para texto de mensagem, lionchat_conversations_search."
|
|
1209
1209
|
},
|
|
1210
1210
|
{
|
|
1211
1211
|
"name": "source_id",
|
|
@@ -1239,7 +1239,7 @@
|
|
|
1239
1239
|
"method": "POST",
|
|
1240
1240
|
"path": "/api/v1/accounts/{account_id}/conversations",
|
|
1241
1241
|
"title": "Criar Conversa",
|
|
1242
|
-
"description": "Cria uma nova conversa. Obrigatorios: inbox_id, contact_id. Cria ContactInbox automaticamente; para inbox WAHA valida se o numero tem WhatsApp (422 phone_not_on_whatsapp). RESERVADO (02/09/2026): additional_attributes recusa as chaves do sistema (imported_from, live_since, has_imported_history, mail_subject, type, in_reply_to, initiated_by, auto_reply, original_channel_type, conversation_language, agent_reply_time_window, conference_sid, call_status, tiktok_capabilities, captain_media_asset_id, import_digits) — sao ignoradas. A mensagem que chega ADOTA a conversa existente (uma por contato/caixa) e NAO dispara 'conversa criada'; o gatilho equivalente e 'Conversa reaberta'. Use last_incoming_message_at da conversa para saber se a janela de 24h esta aberta.",
|
|
1242
|
+
"description": "Cria uma nova conversa. Obrigatorios: inbox_id, contact_id. Cria ContactInbox automaticamente; para inbox WAHA valida se o numero tem WhatsApp (422 phone_not_on_whatsapp). RESERVADO (02/09/2026): additional_attributes recusa as chaves do sistema (imported_from, live_since, has_imported_history, mail_subject, type, in_reply_to, initiated_by, auto_reply, original_channel_type, conversation_language, agent_reply_time_window, conference_sid, call_status, tiktok_capabilities, captain_media_asset_id, import_digits) — sao ignoradas. A mensagem que chega ADOTA a conversa existente (uma por contato/caixa) e NAO dispara 'conversa criada'; o gatilho equivalente e 'Conversa reaberta'. Use last_incoming_message_at da conversa para saber se a janela de 24h esta aberta. assignee_id e team_id têm de ser da conta: fora disso responde 422 e não cria.",
|
|
1243
1243
|
"category": "Conversas",
|
|
1244
1244
|
"params": [
|
|
1245
1245
|
{
|
|
@@ -1513,7 +1513,7 @@
|
|
|
1513
1513
|
"method": "GET",
|
|
1514
1514
|
"path": "/api/v1/accounts/{account_id}/conversations/search",
|
|
1515
1515
|
"title": "Buscar Conversas",
|
|
1516
|
-
"description": "
|
|
1516
|
+
"description": "Busca por TEXTO dentro das mensagens: responde EM QUAIS CONVERSAS algo foi dito e QUANTAS, no historico inteiro. Refeita em 05/11/2026: antes levava 15 a 22 s e chegou a derrubar o servidor; resposta anterior que mandava EVITAR esta ferramenta ficou velha.\n\nO QUE PROCURA: o TRECHO EXATO digitado em `q`, com os espacos (frase, nao palavras soltas), sem diferenca de maiuscula e minuscula (acento conta), nas mensagens do cliente e da equipe. Nota privada e evento do sistema ficam fora. NAO procura no nome, telefone, e-mail ou CPF do contato: para achar a conversa DE UMA PESSOA use lionchat_search_list. Termo com menos de 3 caracteres, ou sem nenhuma letra ou numero, volta VAZIO de proposito (a busca nem rodou).\n\nRESPOSTA: 25 conversas por pagina, as de atividade mais recente primeiro. `meta.all_count` conta CONVERSAS (nao vezes) e ja responde 'quantas' na 1a pagina: peca outras paginas so para ler mais conversas. Cada conversa traz `matched_messages_count` (quantas mensagens casam nela) e `messages` com ate 5 delas, as mais novas, em ordem de data; para ler o resto use lionchat_conversations_messages_search naquela conversa.\n\nAVISOS: `meta.truncated: true` = passou de 5.000 conversas, o numero e 'pelo menos'; refine o termo. `meta.message_search_interrupted: true` = estourou o tempo: payload vazio NAO quer dizer que nao existe e os numeros vem null; refine o termo. Resposta cortada por tamanho: as conversas cortadas NAO voltam na pagina seguinte; refine o termo.\n\nRespeita o que o usuario pode ver (caixas, cargo). Recorte opcional: `inbox_id` e `team_id` recortam a lista e os numeros; `assignee_type` recorta so a lista. A situacao (aberta/resolvida) e IGNORADA aqui: a busca cobre todas. Com `meta.truncated: true` o recorte so alcanca as primeiras 5.000 conversas que casam.",
|
|
1517
1517
|
"category": "Conversas",
|
|
1518
1518
|
"params": [
|
|
1519
1519
|
{
|
|
@@ -1521,44 +1521,48 @@
|
|
|
1521
1521
|
"type": "string",
|
|
1522
1522
|
"location": "query",
|
|
1523
1523
|
"required": true,
|
|
1524
|
-
"description": "
|
|
1524
|
+
"description": "Trecho exato a procurar no texto das mensagens (minimo 3 caracteres, com ao menos uma letra ou numero)"
|
|
1525
1525
|
},
|
|
1526
1526
|
{
|
|
1527
1527
|
"name": "page",
|
|
1528
1528
|
"type": "integer",
|
|
1529
1529
|
"location": "query",
|
|
1530
1530
|
"required": false,
|
|
1531
|
-
"description": "
|
|
1531
|
+
"description": "Pagina (25 conversas por pagina)"
|
|
1532
1532
|
},
|
|
1533
1533
|
{
|
|
1534
|
-
"name": "
|
|
1535
|
-
"type": "
|
|
1534
|
+
"name": "inbox_id",
|
|
1535
|
+
"type": "integer",
|
|
1536
1536
|
"location": "query",
|
|
1537
1537
|
"required": false,
|
|
1538
|
-
"description": "
|
|
1538
|
+
"description": "So conversas desta caixa (recorta lista e numeros)"
|
|
1539
1539
|
},
|
|
1540
1540
|
{
|
|
1541
|
-
"name": "
|
|
1542
|
-
"type": "
|
|
1541
|
+
"name": "team_id",
|
|
1542
|
+
"type": "integer",
|
|
1543
1543
|
"location": "query",
|
|
1544
1544
|
"required": false,
|
|
1545
|
-
"description": "
|
|
1545
|
+
"description": "So conversas deste time (recorta lista e numeros)"
|
|
1546
1546
|
},
|
|
1547
1547
|
{
|
|
1548
|
-
"name": "
|
|
1548
|
+
"name": "assignee_type",
|
|
1549
1549
|
"type": "string",
|
|
1550
1550
|
"location": "query",
|
|
1551
1551
|
"required": false,
|
|
1552
|
-
"description": "
|
|
1552
|
+
"description": "Recorta SO a lista: 'me' (minhas), 'unassigned' (sem responsavel), 'assigned' (com responsavel). Vazio = todas. Os numeros de meta continuam do conjunto inteiro"
|
|
1553
1553
|
}
|
|
1554
1554
|
],
|
|
1555
|
-
"returns": "
|
|
1555
|
+
"returns": "{ meta: { mine_count, unassigned_count, all_count (CONVERSAS que casam), truncated, message_search_interrupted, current_page, per }, payload: [{ id (numero da conversa), uuid, created_at, contact: {id, name}, inbox: {id, name, channel_type}, matched_messages_count, messages: [ate 5: {id, content, sender_name, message_type, created_at}], account_id }] }. No corte de tempo: payload vazio e os tres numeros null.",
|
|
1556
1556
|
"common_use_cases": [
|
|
1557
|
-
"
|
|
1558
|
-
"
|
|
1559
|
-
"
|
|
1557
|
+
"Em quantas conversas o cliente falou \"cancelar\"?",
|
|
1558
|
+
"Quais conversas citaram o produto ou a promocao X (historico inteiro)",
|
|
1559
|
+
"Auditoria de palavra-chave com o numero real de conversas"
|
|
1560
1560
|
],
|
|
1561
|
-
"related_tools": [
|
|
1561
|
+
"related_tools": [
|
|
1562
|
+
"lionchat_search_list",
|
|
1563
|
+
"lionchat_search_list_2",
|
|
1564
|
+
"lionchat_conversations_messages_search"
|
|
1565
|
+
]
|
|
1562
1566
|
},
|
|
1563
1567
|
{
|
|
1564
1568
|
"id": "lionchat_conversations_create_1",
|
|
@@ -2483,7 +2487,7 @@
|
|
|
2483
2487
|
"description": "FUNIL = KANBAN (pipeline/board) — no LionChat sao a mesma coisa. Lista todos os funis com contagem de itens por etapa (stage_items_count, contada na hora em todo pedido desde 2026-10-23; os dados dos funis ficam lembrados 5 min). NAO e paginado. ACESSO (2026-06): retorna SO os funis visiveis pro usuario do token (admin, permissao kanban, funil aberto ou participante). Funil nao-visivel da 404 no show.",
|
|
2484
2488
|
"category": "Funis",
|
|
2485
2489
|
"params": [],
|
|
2486
|
-
"returns": "array de funis (cada um com stage_items_count); sem meta/paginacao Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil (2026-07-21).",
|
|
2490
|
+
"returns": "array de funis (cada um com stage_items_count); sem meta/paginacao Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil, só gente da conta (2026-07-21).",
|
|
2487
2491
|
"common_use_cases": [
|
|
2488
2492
|
"Dashboard: contar/exibir funis",
|
|
2489
2493
|
"Buscar com filtros antes de outra operação",
|
|
@@ -2574,7 +2578,7 @@
|
|
|
2574
2578
|
"description": "ID do funil"
|
|
2575
2579
|
}
|
|
2576
2580
|
],
|
|
2577
|
-
"returns": "funil (objeto completo com associações) Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil (2026-07-21).",
|
|
2581
|
+
"returns": "funil (objeto completo com associações) Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil, só gente da conta (2026-07-21).",
|
|
2578
2582
|
"common_use_cases": [
|
|
2579
2583
|
"Ver dados completos antes de editar",
|
|
2580
2584
|
"Verificar estado atual antes de uma ação",
|
|
@@ -2766,7 +2770,7 @@
|
|
|
2766
2770
|
"description": "Objeto de configuracoes do funil. Chaves: goals[], agents[] e automations[] (automacoes do funil). agents[] = [{id: <id do agente>}] — cada item e um OBJETO com id, nunca numero solto; use lionchat_agents_list para os IDs; o sistema completa sozinho nome, e-mail, cargo e foto de cada agente (e o que as telas mostram). Mande so agentes DESTA conta: id de outra conta fica sem nome e nao da acesso. Cada automacao: {id (formato 'automation_<timestamp_ms>'), enabled: true, trigger_type: 'card_created'|'stage_moved'|'status_change', trigger_value SEMPRE preenchido ('card_created' literal p/ card_created; chave da etapa de destino no hash funnel.stages p/ stage_moved; 'won'|'lost'|'snoozed' p/ status_change ('snoozed' desde 11/10/2026: roda quando o card e ADIADO)), action: 'move_to_stage'|'assign_agent'|'create_note'|'update_checklist'|'apply_checklist_template'|'notify_team'|'duplicate_item'|'send_webhook', action_config: {} (move_to_stage->{stage}; assign_agent->{agent_id}; create_note->{note_text}; update_checklist->{checklist_updates:[{checklist_item_id,completed,text}]}; apply_checklist_template->{template_id}; notify_team->{message}; send_webhook->{webhook_url}; duplicate_item->{funnel_id,stage})}. Regras: trigger_value vazio faz a UI descartar a automacao no proximo salvar do usuario (enabled=false e estado valido desde 20/10: a regra fica guardada, desligada); stage_moved + move_to_stage nunca executa (anti-loop); notify_team hoje so registra em log (nao notifica ninguem); update_checklist nao aparece na UI (so via API). ATENCAO: gravar settings SUBSTITUI o objeto inteiro — leia o funil (show) e reenvie settings completo (goals+agents+automations). NOVO (2026-07-21): settings.teams[] = [{id: <team_id>}] — vincula TIMES ao funil: membros do time ganham acesso e entram no rodízio, resolvidos AO VIVO (mudou o time, mudou o funil). Lista efetiva = agents[] + membros dos teams[]; vazia = funil aberto a todos. IMPORTANTE: settings é substituído por inteiro — reenvie completo (goals+agents+teams+automations). Regra com action 'create_task' (cria uma tarefa presa ao card quando o gatilho acontece): action_config = {title (texto, obrigatorio), description, task_type, agenda_id, priority, occupies_agenda (true|false), duration_minutes (22/10/2026: minutos que a tarefa ocupa, inteiro de 1 a 1440; ausente ou null = o tempo do TIPO: Tarefa/Follow-up/Prazo 15, Ligacao/Personalizado 30, Reuniao/Call 60, tipo da conta 30), due: {amount, unit: 'hours'|'days', at: 'HH:MM' (so em dias), business_days: true (so em dias)}, responsible: {mode: 'card_owner'|'fixed'|'funnel_rotation'|'team_rotation', fallback_user_id (card_owner), user_id (fixed), team_id (team_rotation)}}. Cada regra create_task NOVA ou alterada e conferida uma a uma: regra torta recebe 422 que diz a posicao da regra e o campo a consertar; as demais regras do funil nao sao afetadas. `settings.removed_stages` (a lista das etapas ja excluidas) e do SERVIDOR: se voce mandar essa chave dentro de funnel.settings ela e IGNORADA (nao da erro), e o servidor a mantem sozinho. Para excluir uma etapa que tem cards, NAO reenvie o funil sem a etapa nem use migrate_stage: use lionchat_funnels_remove_stage. ORDEM E ACOES MORTAS (22/10/2026): a ordem de automations[] e a ordem de execucao — regras do mesmo acontecimento (ex.: duas em status_change 'won') rodam de cima para baixo; para reordenar, reenvie a lista inteira na ordem nova (a configuracao de cada regra nao muda). NAO grave assign_agent com status_change 'won'/'lost' (a regra roda com o card ja fechado e card fechado nao aceita responsavel: nao faz nada) nem notify_team (so escreve log, nao avisa ninguem). O servidor aceita os dois, mas a regra fica morta e o painel mostra um aviso amarelo nela. "
|
|
2767
2771
|
}
|
|
2768
2772
|
],
|
|
2769
|
-
"returns": "funil atualizado Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil (2026-07-21).",
|
|
2773
|
+
"returns": "funil atualizado Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil, só gente da conta (2026-07-21).",
|
|
2770
2774
|
"common_use_cases": [
|
|
2771
2775
|
"Edição parcial de funil",
|
|
2772
2776
|
"Alteração de status/estado",
|
|
@@ -3256,7 +3260,7 @@
|
|
|
3256
3260
|
"method": "POST",
|
|
3257
3261
|
"path": "/api/v1/accounts/{account_id}/kanban_items",
|
|
3258
3262
|
"title": "Criar Item",
|
|
3259
|
-
"description": "Cria um novo item no kanban com suporte a detalhes, agentes, ofertas e automações. Cria novo item Kanban. Obrigatórios: kanban_item.funnel_id, kanban_item.funnel_stage, kanban_item.position, kanban_item.item_details.title. Valida unicidade quando aplicável. Retorna o item Kanban criado com ID atribuído.",
|
|
3263
|
+
"description": "Cria um novo item no kanban com suporte a detalhes, agentes, ofertas e automações. Cria novo item Kanban. Obrigatórios: kanban_item.funnel_id, kanban_item.funnel_stage, kanban_item.position, kanban_item.item_details.title. Valida unicidade quando aplicável. Retorna o item Kanban criado com ID atribuído. funnel_id tem de ser da conta: fora disso responde 422.",
|
|
3260
3264
|
"category": "Itens",
|
|
3261
3265
|
"params": [
|
|
3262
3266
|
{
|
|
@@ -3369,7 +3373,7 @@
|
|
|
3369
3373
|
"type": "object",
|
|
3370
3374
|
"location": "body",
|
|
3371
3375
|
"required": false,
|
|
3372
|
-
"description": "
|
|
3376
|
+
"description": "Campos de Atributos do Card, objeto {nome do campo: valor}. Grava so os campos enviados; os outros ficam. Campo que nao existe e criado como Texto, para a conta inteira: confira o nome com lionchat_kanban_config_list antes. null ou vazio apaga aquele campo. Texto ou lista aqui recusa o pedido inteiro (422)."
|
|
3373
3377
|
},
|
|
3374
3378
|
{
|
|
3375
3379
|
"name": "kanban_item.timer_started_at",
|
|
@@ -3431,7 +3435,7 @@
|
|
|
3431
3435
|
"method": "PUT",
|
|
3432
3436
|
"path": "/api/v1/accounts/{account_id}/kanban_items/{id}",
|
|
3433
3437
|
"title": "Atualizar Item",
|
|
3434
|
-
"description": "Atualiza item (detalhes, agentes, timer, ofertas, automações). Atualiza campos do item Kanban existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: kanban_item.funnel_stage, kanban_item.position, kanban_item.item_details, kanban_item.assigned_agents, kanban_item.custom_attributes, kanban_item.timer_started_at. CARD ADIADO (11/10/2026): item_details.status \"open\" NAO abre um card adiado (e o mesmo salvar que o aplicativo faz o tempo todo); para abrir use lionchat_kanban_items_unsnooze ou lionchat_kanban_items_create_2. Mandar \"won\"/\"lost\" encerra o adiamento. CO-PARTICIPANTE (13/10/2026): num card GANHO, item_details.co_attributed_to = id do co-participante da venda (ex. o SDR); null tira. Fora de ganho a chave e apagada. Mande so o id — co_attributed_name o card preenche.",
|
|
3438
|
+
"description": "Atualiza item (detalhes, agentes, timer, ofertas, automações). Atualiza campos do item Kanban existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: kanban_item.funnel_stage, kanban_item.position, kanban_item.item_details, kanban_item.assigned_agents, kanban_item.custom_attributes, kanban_item.timer_started_at. CARD ADIADO (11/10/2026): item_details.status \"open\" NAO abre um card adiado (e o mesmo salvar que o aplicativo faz o tempo todo); para abrir use lionchat_kanban_items_unsnooze ou lionchat_kanban_items_create_2. Mandar \"won\"/\"lost\" encerra o adiamento. CO-PARTICIPANTE (13/10/2026): num card GANHO, item_details.co_attributed_to = id do co-participante da venda (ex. o SDR); null tira. Fora de ganho a chave e apagada. Mande so o id — co_attributed_name o card preenche. funnel_id tem de ser da conta: fora disso responde 422.",
|
|
3435
3439
|
"category": "Itens",
|
|
3436
3440
|
"params": [
|
|
3437
3441
|
{
|
|
@@ -3460,7 +3464,7 @@
|
|
|
3460
3464
|
"type": "object",
|
|
3461
3465
|
"location": "body",
|
|
3462
3466
|
"required": false,
|
|
3463
|
-
"description": "Objeto com os detalhes do card. MESCLA SO NO 1o NIVEL: cada chave enviada troca a chave inteira no card; as nao enviadas ficam. Lista FECHADA (outras chaves sao descartadas em silencio): title, description, status, reason, win_reason, loss_reason, attributed_to, co_attributed_to (co-participante da venda, so em card ganho; id de agente; null tira), duplicated_from_id, priority, value (NUMERO; texto de numero como \"1500.5\" e convertido, \"R$ 1.500,00\" e recusado com 422), currency, custom_attributes, offers, closed_offers, closed_offer, deadline_at, scheduling_type, scheduled_at, conversation_id, automations, notes, retroativo_em. custom_attributes = campos
|
|
3467
|
+
"description": "Objeto com os detalhes do card. MESCLA SO NO 1o NIVEL: cada chave enviada troca a chave inteira no card; as nao enviadas ficam. Lista FECHADA (outras chaves sao descartadas em silencio): title, description, status, reason, win_reason, loss_reason, attributed_to, co_attributed_to (co-participante da venda, so em card ganho; id de agente; null tira), duplicated_from_id, priority, value (NUMERO; texto de numero como \"1500.5\" e convertido, \"R$ 1.500,00\" e recusado com 422), currency, custom_attributes, offers, closed_offers, closed_offer, deadline_at, scheduling_type, scheduled_at, conversation_id, automations, notes, retroativo_em. custom_attributes = campos de Atributos do Card: LISTA [{name, type, value}]. Ex.: [{\"name\": \"Origem do Lead\", \"type\": \"string\", \"value\": \"Google\"}]. A lista e TROCADA inteira: leia o card com lionchat_kanban_items_show e reenvie TODOS os campos; para mudar so alguns, use kanban_item.custom_attributes. Objeto {chave: valor} aqui e IGNORADO: nao grava nem apaga. Item que nao seja objeto recusa o pedido inteiro (422). notes e offers tambem sao listas trocadas inteiras. Motivo de ganho/perda: status \"won\"/\"lost\" + win_reason/loss_reason = o id (TEXTO) de um motivo de kanban_config.win_reasons/loss_reasons + reason = o titulo dele. Motivo livre (fora da lista): win_reason/loss_reason nulo e o texto em reason. Ex.: {\"status\": \"lost\", \"loss_reason\": \"perda-preco\", \"reason\": \"Preco alto\"}. Lancamento retroativo (marcar o fechamento com data PASSADA): retroativo_em = \"AAAA-MM-DD\" faz o ganho/perda contar no MES ESCOLHIDO em todos os relatorios, em vez do dia de hoje. So funciona JUNTO com um status \"won\"/\"lost\" que MUDA o status do card — card que ja esta ganho ignora a data (pra corrigir uma data lancada errado: mande status \"open\", que apaga o carimbo, e depois \"won\"/\"lost\" com o retroativo_em certo). A chave NAO fica gravada no card: ela so decide o carimbo item_details.status_changed_at, que e o que os relatorios contam. Data FUTURA ou ilegivel = 422. Data anterior a criacao do card e permitida. Vale SO nesta ferramenta — no criar card a chave e descartada. Ex.: {\"status\": \"won\", \"win_reason\": \"indicacao\", \"retroativo_em\": \"2026-08-05\"}."
|
|
3464
3468
|
},
|
|
3465
3469
|
{
|
|
3466
3470
|
"name": "kanban_item.assigned_agents",
|
|
@@ -3474,7 +3478,7 @@
|
|
|
3474
3478
|
"type": "object",
|
|
3475
3479
|
"location": "body",
|
|
3476
3480
|
"required": false,
|
|
3477
|
-
"description": "
|
|
3481
|
+
"description": "Campos de Atributos do Card, objeto {nome do campo: valor}. Grava so os campos enviados; os outros ficam. Campo que nao existe e criado como Texto, para a conta inteira: confira o nome com lionchat_kanban_config_list antes. null ou vazio apaga aquele campo. Texto ou lista aqui recusa o pedido inteiro (422)."
|
|
3478
3482
|
},
|
|
3479
3483
|
{
|
|
3480
3484
|
"name": "kanban_item.timer_started_at",
|
|
@@ -3614,7 +3618,7 @@
|
|
|
3614
3618
|
"method": "POST",
|
|
3615
3619
|
"path": "/api/v1/accounts/{account_id}/kanban_items/{id}/move",
|
|
3616
3620
|
"title": "Mover entre Funis",
|
|
3617
|
-
"description": "Move o card entre funis/etapas. Obrigatorios: id, funnel_id, funnel_stage. PERMISSAO (2026-06): mover sem acesso ao funil retorna 403 — confira o campo can_move no show do card antes.",
|
|
3621
|
+
"description": "Move o card entre funis/etapas. Obrigatorios: id, funnel_id, funnel_stage. PERMISSAO (2026-06): mover sem acesso ao funil retorna 403 — confira o campo can_move no show do card antes. replace_agent_id só aceita usuário desta conta: de fora recusa com 422, sem mover.",
|
|
3618
3622
|
"category": "Itens",
|
|
3619
3623
|
"params": [
|
|
3620
3624
|
{
|
|
@@ -5277,7 +5281,7 @@
|
|
|
5277
5281
|
"method": "POST",
|
|
5278
5282
|
"path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/window_reactivation",
|
|
5279
5283
|
"title": "Ativar Janela de Conversa",
|
|
5280
|
-
"description": "Ativa a janela de reativacao (WhatsApp) da conversa.",
|
|
5284
|
+
"description": "Ativa a janela de reativacao (WhatsApp) da conversa. canned_response_id tem de ser da conta: fora disso responde 404.",
|
|
5281
5285
|
"category": "Conversas",
|
|
5282
5286
|
"params": [
|
|
5283
5287
|
{
|
|
@@ -8386,7 +8390,7 @@
|
|
|
8386
8390
|
"method": "POST",
|
|
8387
8391
|
"path": "/api/v1/accounts/{account_id}/macros",
|
|
8388
8392
|
"title": "Criar Macro",
|
|
8389
|
-
"description": "Cria uma nova macro com ações. Obrigatórios: name, actions (visibility: personal ou global). As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422. CARDÁPIO (11/10/2026, 42 ações — os action_params seguem os MESMOS formatos das automações, ver conversation-flows.md 'Acoes de automacao'): send_message, add_private_note, send_canned_response ([id] — na MACRO a mensagem sai assinada pelo EXECUTOR; na automação sai como robô), send_attachment, send_email_transcript, send_email_to_team, send_webhook_event, add_label/remove_label (etiqueta da CONVERSA), add_contact_label/remove_contact_label ([titulos] — etiqueta do CONTATO), assign_agent, assign_team, remove_assigned_team, distribute_agents ([agent_ids] — rodízio de verdade, nunca sorteio), change_status, change_priority, open_conversation/pending_conversation/resolve_conversation, snooze_conversation ([] = até a próxima resposta, ou ['until_tomorrow'] etc.), mute_conversation, mark_unread ([]), add_sla ([sla_policy_id]), assign_captain_assistant ([id] ou [{assistant_id, proactive}]), deactivate_captain ([]), send_signature_document, update_contact_attribute/update_conversation_attribute ([{attribute_key, value}] — chave PROTEGIDA é recusada na execução e fica só no log: prefixos waha_whatsapp_/whatsapp_/origin_/ctwa_/meta_lead_/lt_ e atributos de sistema como utm_*/gclid), update_card_attribute ([{funnel_id, attribute_key, value}]), add_card_checklist ([{funnel_id, checklist_template_ids}]), add_card_offer ([{funnel_id, offer_ids}]), e as 8 de Kanban: create_kanban_item, move_kanban_item_to_stage, assign_agent_to_kanban_item, add_note_to_kanban_item, start_kanban_item_timer, stop_kanban_item_timer, set_kanban_item_status, snooze_kanban_item (todas exigem card já existente no funil informado, exceto create). snooze_kanban_item ([{funnel_id, amount, unit: \"hours\"|\"days\"}], desde 11/10/2026) ADIA o card e, ao contrário das irmãs, FALHA visível quando não dá para adiar (card fechado, sem card no funil, tempo inválido); set_kanban_item_status [\"open\"] num card adiado ABRE o card. send_conversion ([{destinations, event_names, value}] — Meta CAPI/GA4/Google Ads com trigger_type 'macro') só pode ser SALVO por administrador ou cargo com marketing_integrations_manage: para os demais, 422 com o motivo; EXECUTAR segue liberado; teto de 50 conversões por execução (o excedente é pulado com log e as outras ações rodam). Fora do cardápio: send_whatsapp_template. start_flow ([flow_id] — dispara um FLOW DE ACOES (flow_type 'action') na conversa; 17/09/2026). SO flow de acoes entra aqui: a macro roda em qualquer conversa e nao filtra caixa, entao um flow de MENSAGEM apontado aqui rodaria numa caixa que nao e dele. Flow inexistente, desligado ou de outro tipo e ignorado em silencio.",
|
|
8393
|
+
"description": "Cria uma nova macro com ações. Obrigatórios: name, actions (visibility: personal ou global). As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422. CARDÁPIO (11/10/2026, 42 ações — os action_params seguem os MESMOS formatos das automações, ver conversation-flows.md 'Acoes de automacao'): send_message, add_private_note, send_canned_response ([id] — na MACRO a mensagem sai assinada pelo EXECUTOR; na automação sai como robô), send_attachment, send_email_transcript, send_email_to_team, send_webhook_event, add_label/remove_label (etiqueta da CONVERSA), add_contact_label/remove_contact_label ([titulos] — etiqueta do CONTATO), assign_agent, assign_team, remove_assigned_team, distribute_agents ([agent_ids] — rodízio de verdade, nunca sorteio), change_status, change_priority, open_conversation/pending_conversation/resolve_conversation, snooze_conversation ([] = até a próxima resposta, ou ['until_tomorrow'] etc.), mute_conversation, mark_unread ([]), add_sla ([sla_policy_id]), assign_captain_assistant ([id] ou [{assistant_id, proactive}]), deactivate_captain ([]), send_signature_document, update_contact_attribute/update_conversation_attribute ([{attribute_key, value}] — chave PROTEGIDA é recusada na execução e fica só no log: prefixos waha_whatsapp_/whatsapp_/origin_/ctwa_/meta_lead_/lt_ e atributos de sistema como utm_*/gclid), update_card_attribute ([{funnel_id, attribute_key, value}]), add_card_checklist ([{funnel_id, checklist_template_ids}]), add_card_offer ([{funnel_id, offer_ids}]), e as 8 de Kanban: create_kanban_item, move_kanban_item_to_stage, assign_agent_to_kanban_item, add_note_to_kanban_item, start_kanban_item_timer, stop_kanban_item_timer, set_kanban_item_status, snooze_kanban_item (todas exigem card já existente no funil informado, exceto create). snooze_kanban_item ([{funnel_id, amount, unit: \"hours\"|\"days\"}], desde 11/10/2026) ADIA o card e, ao contrário das irmãs, FALHA visível quando não dá para adiar (card fechado, sem card no funil, tempo inválido); set_kanban_item_status [\"open\"] num card adiado ABRE o card. send_conversion ([{destinations, event_names, value}] — Meta CAPI/GA4/Google Ads com trigger_type 'macro') só pode ser SALVO por administrador ou cargo com marketing_integrations_manage: para os demais, 422 com o motivo; EXECUTAR segue liberado; teto de 50 conversões por execução (o excedente é pulado com log e as outras ações rodam). Fora do cardápio: send_whatsapp_template. start_flow ([flow_id] — dispara um FLOW DE ACOES (flow_type 'action') na conversa; 17/09/2026). SO flow de acoes entra aqui: a macro roda em qualquer conversa e nao filtra caixa, entao um flow de MENSAGEM apontado aqui rodaria numa caixa que nao e dele. Flow inexistente, desligado ou de outro tipo e ignorado em silencio. send_email_to_team só alcança times desta conta: time de outra conta na lista é ignorado.",
|
|
8390
8394
|
"category": "Macros",
|
|
8391
8395
|
"params": [
|
|
8392
8396
|
{
|
|
@@ -8448,7 +8452,7 @@
|
|
|
8448
8452
|
"method": "PATCH",
|
|
8449
8453
|
"path": "/api/v1/accounts/{account_id}/macros/{id}",
|
|
8450
8454
|
"title": "Atualizar Macro",
|
|
8451
|
-
"description": "Atualiza macro. PATCH parcial: só campos enviados são alterados (name, actions, visibility). As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado retorna 422. CARDÁPIO (11/10/2026, 42 ações — os action_params seguem os MESMOS formatos das automações, ver conversation-flows.md 'Acoes de automacao'): send_message, add_private_note, send_canned_response ([id] — na MACRO a mensagem sai assinada pelo EXECUTOR; na automação sai como robô), send_attachment, send_email_transcript, send_email_to_team, send_webhook_event, add_label/remove_label (etiqueta da CONVERSA), add_contact_label/remove_contact_label ([titulos] — etiqueta do CONTATO), assign_agent, assign_team, remove_assigned_team, distribute_agents ([agent_ids] — rodízio de verdade, nunca sorteio), change_status, change_priority, open_conversation/pending_conversation/resolve_conversation, snooze_conversation ([] = até a próxima resposta, ou ['until_tomorrow'] etc.), mute_conversation, mark_unread ([]), add_sla ([sla_policy_id]), assign_captain_assistant ([id] ou [{assistant_id, proactive}]), deactivate_captain ([]), send_signature_document, update_contact_attribute/update_conversation_attribute ([{attribute_key, value}] — chave PROTEGIDA é recusada na execução e fica só no log: prefixos waha_whatsapp_/whatsapp_/origin_/ctwa_/meta_lead_/lt_ e atributos de sistema como utm_*/gclid), update_card_attribute ([{funnel_id, attribute_key, value}]), add_card_checklist ([{funnel_id, checklist_template_ids}]), add_card_offer ([{funnel_id, offer_ids}]), e as 8 de Kanban: create_kanban_item, move_kanban_item_to_stage, assign_agent_to_kanban_item, add_note_to_kanban_item, start_kanban_item_timer, stop_kanban_item_timer, set_kanban_item_status, snooze_kanban_item (todas exigem card já existente no funil informado, exceto create). snooze_kanban_item ([{funnel_id, amount, unit: \"hours\"|\"days\"}], desde 11/10/2026) ADIA o card e, ao contrário das irmãs, FALHA visível quando não dá para adiar (card fechado, sem card no funil, tempo inválido); set_kanban_item_status [\"open\"] num card adiado ABRE o card. send_conversion ([{destinations, event_names, value}] — Meta CAPI/GA4/Google Ads com trigger_type 'macro') só pode ser SALVO por administrador ou cargo com marketing_integrations_manage: para os demais, 422 com o motivo; EXECUTAR segue liberado; teto de 50 conversões por execução (o excedente é pulado com log e as outras ações rodam). Fora do cardápio: send_whatsapp_template. start_flow ([flow_id] — dispara um FLOW DE ACOES (flow_type 'action') na conversa; 17/09/2026). SO flow de acoes entra aqui: a macro roda em qualquer conversa e nao filtra caixa, entao um flow de MENSAGEM apontado aqui rodaria numa caixa que nao e dele. Flow inexistente, desligado ou de outro tipo e ignorado em silencio.",
|
|
8455
|
+
"description": "Atualiza macro. PATCH parcial: só campos enviados são alterados (name, actions, visibility). As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado retorna 422. CARDÁPIO (11/10/2026, 42 ações — os action_params seguem os MESMOS formatos das automações, ver conversation-flows.md 'Acoes de automacao'): send_message, add_private_note, send_canned_response ([id] — na MACRO a mensagem sai assinada pelo EXECUTOR; na automação sai como robô), send_attachment, send_email_transcript, send_email_to_team, send_webhook_event, add_label/remove_label (etiqueta da CONVERSA), add_contact_label/remove_contact_label ([titulos] — etiqueta do CONTATO), assign_agent, assign_team, remove_assigned_team, distribute_agents ([agent_ids] — rodízio de verdade, nunca sorteio), change_status, change_priority, open_conversation/pending_conversation/resolve_conversation, snooze_conversation ([] = até a próxima resposta, ou ['until_tomorrow'] etc.), mute_conversation, mark_unread ([]), add_sla ([sla_policy_id]), assign_captain_assistant ([id] ou [{assistant_id, proactive}]), deactivate_captain ([]), send_signature_document, update_contact_attribute/update_conversation_attribute ([{attribute_key, value}] — chave PROTEGIDA é recusada na execução e fica só no log: prefixos waha_whatsapp_/whatsapp_/origin_/ctwa_/meta_lead_/lt_ e atributos de sistema como utm_*/gclid), update_card_attribute ([{funnel_id, attribute_key, value}]), add_card_checklist ([{funnel_id, checklist_template_ids}]), add_card_offer ([{funnel_id, offer_ids}]), e as 8 de Kanban: create_kanban_item, move_kanban_item_to_stage, assign_agent_to_kanban_item, add_note_to_kanban_item, start_kanban_item_timer, stop_kanban_item_timer, set_kanban_item_status, snooze_kanban_item (todas exigem card já existente no funil informado, exceto create). snooze_kanban_item ([{funnel_id, amount, unit: \"hours\"|\"days\"}], desde 11/10/2026) ADIA o card e, ao contrário das irmãs, FALHA visível quando não dá para adiar (card fechado, sem card no funil, tempo inválido); set_kanban_item_status [\"open\"] num card adiado ABRE o card. send_conversion ([{destinations, event_names, value}] — Meta CAPI/GA4/Google Ads com trigger_type 'macro') só pode ser SALVO por administrador ou cargo com marketing_integrations_manage: para os demais, 422 com o motivo; EXECUTAR segue liberado; teto de 50 conversões por execução (o excedente é pulado com log e as outras ações rodam). Fora do cardápio: send_whatsapp_template. start_flow ([flow_id] — dispara um FLOW DE ACOES (flow_type 'action') na conversa; 17/09/2026). SO flow de acoes entra aqui: a macro roda em qualquer conversa e nao filtra caixa, entao um flow de MENSAGEM apontado aqui rodaria numa caixa que nao e dele. Flow inexistente, desligado ou de outro tipo e ignorado em silencio. send_email_to_team só alcança times desta conta: time de outra conta na lista é ignorado.",
|
|
8452
8456
|
"category": "Macros",
|
|
8453
8457
|
"params": [
|
|
8454
8458
|
{
|
|
@@ -8517,7 +8521,7 @@
|
|
|
8517
8521
|
"method": "POST",
|
|
8518
8522
|
"path": "/api/v1/accounts/{account_id}/macros/{id}/execute",
|
|
8519
8523
|
"title": "Executar Macro",
|
|
8520
|
-
"description": "Executa uma macro em uma ou mais conversas (job assíncrono; responde 200 sem corpo). Obrigatório: conversation_ids (array). FREIOS (10/09/2026): (1) até 100 conversas por chamada — acima disso 422 'Too many conversations'; (2) a mesma macro na MESMA conversa dentro de 5 s é PULADA em silêncio (as demais conversas da lista seguem) — se todas forem puladas, 422 'executed just now'; lista vazia = 422; (3) 30 execuções por minuto por usuário — acima disso 429. Dentro da macro, send_conversion dispara no máximo 50 conversões por execução. Cada ação que falhar numa conversa fica no log do servidor e não interrompe as outras.",
|
|
8524
|
+
"description": "Executa uma macro em uma ou mais conversas (job assíncrono; responde 200 sem corpo). Obrigatório: conversation_ids (array). FREIOS (10/09/2026): (1) até 100 conversas por chamada — acima disso 422 'Too many conversations'; (2) a mesma macro na MESMA conversa dentro de 5 s é PULADA em silêncio (as demais conversas da lista seguem) — se todas forem puladas, 422 'executed just now'; lista vazia = 422; (3) 30 execuções por minuto por usuário — acima disso 429. Dentro da macro, send_conversion dispara no máximo 50 conversões por execução. Cada ação que falhar numa conversa fica no log do servidor e não interrompe as outras. Conversa que a pessoa dona da chave não consegue abrir é PULADA em silêncio (a resposta continua 200 e as demais seguem): a macro só age no que a pessoa alcança; ao relatar o resultado, não afirme que agiu em todas sem conferir. Macro que não existe, ou de outra conta, responde 404 sem enfileirar nada.",
|
|
8521
8525
|
"category": "Macros",
|
|
8522
8526
|
"params": [
|
|
8523
8527
|
{
|
|
@@ -8547,7 +8551,7 @@
|
|
|
8547
8551
|
"method": "GET",
|
|
8548
8552
|
"path": "/api/v1/accounts/{account_id}/search",
|
|
8549
8553
|
"title": "Busca Global",
|
|
8550
|
-
"description": "RAPIDO, e a opcao mais segura quando nao se sabe se o termo e o nome de alguem ou algo dito no papo — cobre os dois casos numa chamada. Busca global por texto (conversas, contatos, mensagens, artigos) — sempre retorna todos os tipos. Para um tipo unico use /search/conversations|contacts|messages.\n\
|
|
8554
|
+
"description": "RAPIDO, e a opcao mais segura quando nao se sabe se o termo e o nome de alguem ou algo dito no papo — cobre os dois casos numa chamada. Busca global por texto (conversas, contatos, mensagens, artigos) — sempre retorna todos os tipos. Para um tipo unico use /search/conversations|contacts|messages.\n\nPara saber EM QUANTAS conversas algo foi dito, no historico inteiro, use lionchat_conversations_search.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao). Sempre retorna todos os tipos: conversations, contacts, messages, articles e kanban_items. Mensagens trazem previous_message/next_message.",
|
|
8551
8555
|
"category": "Busca",
|
|
8552
8556
|
"params": [
|
|
8553
8557
|
{
|
|
@@ -8634,7 +8638,7 @@
|
|
|
8634
8638
|
"method": "GET",
|
|
8635
8639
|
"path": "/api/v1/accounts/{account_id}/search/conversations",
|
|
8636
8640
|
"title": "Buscar Conversas",
|
|
8637
|
-
"description": "RAPIDO. E uma BUSCA, nao uma listagem — o sufixo _list no id e historico, ignore. Acha a conversa PELA PESSOA/EMPRESA: nome, e-mail, telefone, identificador, CPF/CNPJ por digitos, atributos personalizados da conversa e numero da conversa.\n\nNAO procura dentro do texto das mensagens — para isso use lionchat_search_list_2 (ou lionchat_search_search para as duas coisas).
|
|
8641
|
+
"description": "RAPIDO. E uma BUSCA, nao uma listagem — o sufixo _list no id e historico, ignore. Acha a conversa PELA PESSOA/EMPRESA: nome, e-mail, telefone, identificador, CPF/CNPJ por digitos, atributos personalizados da conversa e numero da conversa.\n\nNAO procura dentro do texto das mensagens — para isso use lionchat_search_list_2 (ou lionchat_search_search para as duas coisas). lionchat_conversations_search procura so no texto das mensagens: para achar a conversa de alguem, use esta.\n\nDevolve payload.conversations[], 15 por pagina. Termo de texto com menos de 3 caracteres e descartado (so-digitos e isento); se todos os termos forem curtos a resposta vem VAZIA — isso nao significa que nao existe, significa que a busca nao rodou.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao).",
|
|
8638
8642
|
"category": "Busca",
|
|
8639
8643
|
"params": [
|
|
8640
8644
|
{
|
|
@@ -8772,7 +8776,7 @@
|
|
|
8772
8776
|
"method": "GET",
|
|
8773
8777
|
"path": "/api/v1/accounts/{account_id}/search/messages",
|
|
8774
8778
|
"title": "Buscar Mensagens",
|
|
8775
|
-
"description": "RAPIDO. E uma BUSCA, nao uma listagem — o sufixo _list no id e historico, ignore. Procura o termo DENTRO DO TEXTO das mensagens.\n\
|
|
8779
|
+
"description": "RAPIDO. E uma BUSCA, nao uma listagem — o sufixo _list no id e historico, ignore. Procura o termo DENTRO DO TEXTO das mensagens.\n\nSo os ULTIMOS 3 MESES, por palavras soltas e sem agrupar por conversa; serve para ver mensagens recentes com o contexto em volta. Indice trigram proprio e teto de tempo em duas fases (2 s + 2 s). Para saber EM QUANTAS conversas algo foi dito no historico inteiro, use lionchat_conversations_search. Devolve payload.messages[], 15 por pagina.\n\nTermo de texto com menos de 3 caracteres e descartado (so-digitos e isento, protegido pelo limite da primeira fase); se todos os termos forem curtos a resposta vem VAZIA — isso nao significa que nao existe, significa que a busca nao rodou.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao). NOVO (2026-06-16): casa por TRECHO/substring (multi-termo AND — ex.: 'época d' acha 'época do'); e cada resultado de mensagem inclui previous_message e next_message (as mensagens anterior e seguinte da MESMA conversa, em ordem cronológica, ignorando eventos de sistema) como objeto {id, content, sender_name, message_type, private, created_at} ou null quando não há vizinha. Leia message_search_interrupted no retorno antes de afirmar 'nao encontrado'.",
|
|
8776
8780
|
"category": "Busca",
|
|
8777
8781
|
"params": [
|
|
8778
8782
|
{
|
|
@@ -8932,7 +8936,7 @@
|
|
|
8932
8936
|
"method": "POST",
|
|
8933
8937
|
"path": "/api/v1/accounts/{account_id}/account_tasks",
|
|
8934
8938
|
"title": "Criar Tarefa",
|
|
8935
|
-
"description": "Cria uma tarefa/compromisso. Obrigatorios: title, scheduled_at. Requer feature unified_agenda + LionLab PRO. Para task_type video_call ou meeting, o link do Google Meet é gerado automaticamente após ~5s (campo meeting_url). Reuniões com convidados NÃO suportam recorrência. **Tratamento em sessoes (15/09):** com tipo `sessions_enabled`, o agendamento pelo painel/API nasce como sessao do tratamento do contato (proxima a marcar; cheio = sessao extra ate 60; concluido = ciclo novo) e a tarefa devolve `tratamento` {id, sessao, total, titulo} (nulo em compromisso comum). `treatment.*` cria o plano; `agenda_treatment_id` + `treatment_session_number` marcam uma sessao pedida. **Presa a card (20/10):** `kanban_item_id` prende a tarefa a um card do Kanban e `occupies_agenda` diz se ela bloqueia o horario. Tentar prender a card um agendamento, uma sessao de programa ou um evento do Google devolve 422 (errors.kanban_item_id); card inexistente, de outra conta ou que a pessoa nao ve tambem e 422.",
|
|
8939
|
+
"description": "Cria uma tarefa/compromisso. Obrigatorios: title, scheduled_at. Requer feature unified_agenda + LionLab PRO. Para task_type video_call ou meeting, o link do Google Meet é gerado automaticamente após ~5s (campo meeting_url). Reuniões com convidados NÃO suportam recorrência. **Tratamento em sessoes (15/09):** com tipo `sessions_enabled`, o agendamento pelo painel/API nasce como sessao do tratamento do contato (proxima a marcar; cheio = sessao extra ate 60; concluido = ciclo novo) e a tarefa devolve `tratamento` {id, sessao, total, titulo} (nulo em compromisso comum). `treatment.*` cria o plano; `agenda_treatment_id` + `treatment_session_number` marcam uma sessao pedida. **Presa a card (20/10):** `kanban_item_id` prende a tarefa a um card do Kanban e `occupies_agenda` diz se ela bloqueia o horario. Tentar prender a card um agendamento, uma sessao de programa ou um evento do Google devolve 422 (errors.kanban_item_id); card inexistente, de outra conta ou que a pessoa nao ve tambem e 422. assignee_ids e user_id têm de ser da conta: fora disso responde 422 e não cria.",
|
|
8936
8940
|
"category": "Agenda / Tarefas",
|
|
8937
8941
|
"params": [
|
|
8938
8942
|
{
|
|
@@ -9151,7 +9155,7 @@
|
|
|
9151
9155
|
"method": "PATCH",
|
|
9152
9156
|
"path": "/api/v1/accounts/{account_id}/account_tasks/{id}",
|
|
9153
9157
|
"title": "Atualizar Tarefa",
|
|
9154
|
-
"description": "Atualiza uma tarefa. Campos alterados em video_call/meeting disparam sync com Google Calendar. Atualiza campos do tarefa/agenda existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: title, description, task_type, priority, scheduled_at, duration_minutes. **Tratamento em sessoes (15/09):** com tipo `sessions_enabled`, o agendamento pelo painel/API nasce como sessao do tratamento do contato (proxima a marcar; cheio = sessao extra ate 60; concluido = ciclo novo) e a tarefa devolve `tratamento` {id, sessao, total, titulo} (nulo em compromisso comum). `treatment.*` cria o plano; `agenda_treatment_id` + `treatment_session_number` marcam uma sessao pedida. **Compromisso de Booking (17/09):** tarefa com `booking_id` tem responsavel FIXO (o profissional do tipo de evento) — `assignee_ids` e IGNORADO (200, o resto da edicao vale). Para mudar quem atende, edite o tipo de evento. **Presenca nao conclui:** mandar `attendance` NAO muda `status`; nao conclua a tarefa so porque a presenca foi marcada (concluir compromisso de Booking encerra lembretes/pos-atendimento e dispara o gatilho de fluxo 'agendamento concluido'). A resposta traz `selo` com o rotulo resultante. **Presa a card (20/10):** `kanban_item_id` prende a tarefa a um card do Kanban e `occupies_agenda` diz se ela bloqueia o horario. Tentar prender a card um agendamento, uma sessao de programa ou um evento do Google devolve 422 (errors.kanban_item_id); card inexistente, de outra conta ou que a pessoa nao ve tambem e 422.",
|
|
9158
|
+
"description": "Atualiza uma tarefa. Campos alterados em video_call/meeting disparam sync com Google Calendar. Atualiza campos do tarefa/agenda existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: title, description, task_type, priority, scheduled_at, duration_minutes. **Tratamento em sessoes (15/09):** com tipo `sessions_enabled`, o agendamento pelo painel/API nasce como sessao do tratamento do contato (proxima a marcar; cheio = sessao extra ate 60; concluido = ciclo novo) e a tarefa devolve `tratamento` {id, sessao, total, titulo} (nulo em compromisso comum). `treatment.*` cria o plano; `agenda_treatment_id` + `treatment_session_number` marcam uma sessao pedida. **Compromisso de Booking (17/09):** tarefa com `booking_id` tem responsavel FIXO (o profissional do tipo de evento) — `assignee_ids` e IGNORADO (200, o resto da edicao vale). Para mudar quem atende, edite o tipo de evento. **Presenca nao conclui:** mandar `attendance` NAO muda `status`; nao conclua a tarefa so porque a presenca foi marcada (concluir compromisso de Booking encerra lembretes/pos-atendimento e dispara o gatilho de fluxo 'agendamento concluido'). A resposta traz `selo` com o rotulo resultante. **Presa a card (20/10):** `kanban_item_id` prende a tarefa a um card do Kanban e `occupies_agenda` diz se ela bloqueia o horario. Tentar prender a card um agendamento, uma sessao de programa ou um evento do Google devolve 422 (errors.kanban_item_id); card inexistente, de outra conta ou que a pessoa nao ve tambem e 422. Quem ENTRA em assignee_ids e user_id tem de ser da conta: fora disso responde 422. Vale também em compromisso de Booking.",
|
|
9155
9159
|
"category": "Agenda / Tarefas",
|
|
9156
9160
|
"params": [
|
|
9157
9161
|
{
|
|
@@ -9467,7 +9471,7 @@
|
|
|
9467
9471
|
"method": "PATCH",
|
|
9468
9472
|
"path": "/api/v1/accounts/{account_id}/account_tasks/{id}/update_future",
|
|
9469
9473
|
"title": "Atualizar Futuras",
|
|
9470
|
-
"description": "Atualiza esta e todas as futuras instâncias de tarefa recorrente. Atualiza campos do tarefa/agenda existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: title, scheduled_at. **Compromisso de Booking (17/09):** tarefa com `booking_id` tem responsavel FIXO (o profissional do tipo de evento) — `assignee_ids` e IGNORADO (200, o resto da edicao vale). Para mudar quem atende, edite o tipo de evento. **Presenca nao conclui:** mandar `attendance` NAO muda `status`; nao conclua a tarefa so porque a presenca foi marcada (concluir compromisso de Booking encerra lembretes/pos-atendimento e dispara o gatilho de fluxo 'agendamento concluido'). A resposta traz `selo` com o rotulo resultante. **Presa a card (20/10):** `kanban_item_id` prende a tarefa a um card do Kanban e `occupies_agenda` diz se ela bloqueia o horario. Tentar prender a card um agendamento, uma sessao de programa ou um evento do Google devolve 422 (errors.kanban_item_id); card inexistente, de outra conta ou que a pessoa nao ve tambem e 422. Na serie, `kanban_item_id` e `occupies_agenda` valem para esta e todas as ocorrencias futuras.",
|
|
9474
|
+
"description": "Atualiza esta e todas as futuras instâncias de tarefa recorrente. Atualiza campos do tarefa/agenda existente. Suporta atualização parcial (PATCH) — só campos enviados são alterados. Campos suportados: title, scheduled_at. **Compromisso de Booking (17/09):** tarefa com `booking_id` tem responsavel FIXO (o profissional do tipo de evento) — `assignee_ids` e IGNORADO (200, o resto da edicao vale). Para mudar quem atende, edite o tipo de evento. **Presenca nao conclui:** mandar `attendance` NAO muda `status`; nao conclua a tarefa so porque a presenca foi marcada (concluir compromisso de Booking encerra lembretes/pos-atendimento e dispara o gatilho de fluxo 'agendamento concluido'). A resposta traz `selo` com o rotulo resultante. **Presa a card (20/10):** `kanban_item_id` prende a tarefa a um card do Kanban e `occupies_agenda` diz se ela bloqueia o horario. Tentar prender a card um agendamento, uma sessao de programa ou um evento do Google devolve 422 (errors.kanban_item_id); card inexistente, de outra conta ou que a pessoa nao ve tambem e 422. Na serie, `kanban_item_id` e `occupies_agenda` valem para esta e todas as ocorrencias futuras. Quem ENTRA em assignee_ids e user_id tem de ser da conta: fora disso responde 422.",
|
|
9471
9475
|
"category": "Agenda / Tarefas",
|
|
9472
9476
|
"params": [
|
|
9473
9477
|
{
|
|
@@ -10110,7 +10114,7 @@
|
|
|
10110
10114
|
"method": "POST",
|
|
10111
10115
|
"path": "/api/v1/accounts/{account_id}/kanban_items/bulk_move_items",
|
|
10112
10116
|
"title": "Mover em Massa",
|
|
10113
|
-
"description": "Move múltiplos itens para uma etapa. Cria novo operação em massa. Obrigatórios: item_ids, new_stage. Valida unicidade quando aplicável. Retorna o operação em massa criado com ID atribuído.",
|
|
10117
|
+
"description": "Move múltiplos itens para uma etapa. Cria novo operação em massa. Obrigatórios: item_ids, new_stage. Valida unicidade quando aplicável. Retorna o operação em massa criado com ID atribuído. funnel_id tem de ser da conta: fora disso o card fica onde está e o motivo vem em errors.",
|
|
10114
10118
|
"category": "Operacoes em Massa",
|
|
10115
10119
|
"params": [
|
|
10116
10120
|
{
|
|
@@ -10152,7 +10156,7 @@
|
|
|
10152
10156
|
"method": "POST",
|
|
10153
10157
|
"path": "/api/v1/accounts/{account_id}/kanban_items/bulk_assign_agent",
|
|
10154
10158
|
"title": "Agente em Massa",
|
|
10155
|
-
"description": "Atribui agente a múltiplos itens. Cria novo operação em massa. Obrigatórios: item_ids, agent_id. Valida unicidade quando aplicável. Retorna o operação em massa criado com ID atribuído.",
|
|
10159
|
+
"description": "Atribui agente a múltiplos itens. Cria novo operação em massa. Obrigatórios: item_ids, agent_id. Valida unicidade quando aplicável. Retorna o operação em massa criado com ID atribuído. Só entra usuário desta conta: id de fora recusa, sem mudar nada.",
|
|
10156
10160
|
"category": "Operacoes em Massa",
|
|
10157
10161
|
"params": [
|
|
10158
10162
|
{
|
|
@@ -10411,7 +10415,7 @@
|
|
|
10411
10415
|
"method": "POST",
|
|
10412
10416
|
"path": "/api/v1/accounts/{account_id}/flows",
|
|
10413
10417
|
"title": "Criar Flow",
|
|
10414
|
-
"description": "Cria um flow (FlowBuilder) na conta. Requer Admin. flow_data segue formato Vue Flow {nodes:[], edges:[]}. NODE SCHEMA — start: {label, items:[...]} — os GATILHOS moram em data.items (NUNCA data.triggers), cada item um OBJETO {key, config}. Ex.: {key:'message_received', config:{keywords:['oi','orcamento'], match_type:'contains'}}. config.keywords e LISTA de textos (texto solto quebra o despacho de TODA mensagem da caixa); listas de id vao como LISTA DE TEXTOS — team_ids:['3'], agent_ids:['70'], funnel_ids:['31'] (numero puro [3] nunca casa); label_names:['vip']. nodes e edges sao LISTAS de objetos; exit_conditions (irmao de nodes, no flow_data) e LISTA de {type, value}. 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. NOVIDADES 01/09/2026 no schema (lionchat_flows_schema_reference): acao send_conversion (Meta/Google Ads/GA4 de dentro do fluxo) e condicao por origem/campanha (attr_config de conversa com origin_kind=paid_ad etc.). NOVIDADES 02/09/2026: (1) send_conversion ganhou event_names — UM evento por destino ({meta, google_ads, ga4}); event_name virou reserva (grave os dois); Google Ads so aceita nome do conversion_action_map. (2) preset 'Origem do lead' (attrScope 'lead_origin', attr_key origin_platform; valores: plataforma ou 'custom:<slug>'). (3) REGRA DE VALOR na condicao de atributo: equal/not_equal/contains/not_contains gravam em values:[...] (LISTA) com value:'' — value solo abre VAZIO na tela do cliente. Ver lionchat_flows_schema_reference. TIPO DE FLUXO (17/09/2026): o parametro flow_type aceita 'conversation' (padrao) ou 'action' (Fluxo de Acoes). O de ACOES nao fica ligado a caixa nenhuma, roda em QUALQUER conversa de QUALQUER caixa e SO executa acoes — NAO pode ter os blocos send_message, wait_response nem update_group (a validacao recusa o save inteiro), nao aceita inbox_ids e ignora conversation_mode. Use pra regra que vale na empresa toda e nao depende da caixa (ex.: etiqueta 'urgente' -> atribui equipe de suporte). Se precisa FALAR com a pessoa, o tipo e 'conversation'. Pra ferramenta da IA continue usando lionchat_flow_tools_create.",
|
|
10418
|
+
"description": "Cria um flow (FlowBuilder) na conta. Requer Admin. flow_data segue formato Vue Flow {nodes:[], edges:[]}. NODE SCHEMA — start: {label, items:[...]} — os GATILHOS moram em data.items (NUNCA data.triggers), cada item um OBJETO {key, config}. Ex.: {key:'message_received', config:{keywords:['oi','orcamento'], match_type:'contains'}}. config.keywords e LISTA de textos (texto solto quebra o despacho de TODA mensagem da caixa); listas de id vao como LISTA DE TEXTOS — team_ids:['3'], agent_ids:['70'], funnel_ids:['31'] (numero puro [3] nunca casa); label_names:['vip']. nodes e edges sao LISTAS de objetos; exit_conditions (irmao de nodes, no flow_data) e LISTA de {type, value}. 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. NOVIDADES 01/09/2026 no schema (lionchat_flows_schema_reference): acao send_conversion (Meta/Google Ads/GA4 de dentro do fluxo) e condicao por origem/campanha (attr_config de conversa com origin_kind=paid_ad etc.). NOVIDADES 02/09/2026: (1) send_conversion ganhou event_names — UM evento por destino ({meta, google_ads, ga4}); event_name virou reserva (grave os dois); Google Ads so aceita nome do conversion_action_map. (2) preset 'Origem do lead' (attrScope 'lead_origin', attr_key origin_platform; valores: plataforma ou 'custom:<slug>'). (3) REGRA DE VALOR na condicao de atributo: equal/not_equal/contains/not_contains gravam em values:[...] (LISTA) com value:'' — value solo abre VAZIO na tela do cliente. Ver lionchat_flows_schema_reference. TIPO DE FLUXO (17/09/2026): o parametro flow_type aceita 'conversation' (padrao) ou 'action' (Fluxo de Acoes). O de ACOES nao fica ligado a caixa nenhuma, roda em QUALQUER conversa de QUALQUER caixa e SO executa acoes — NAO pode ter os blocos send_message, wait_response nem update_group (a validacao recusa o save inteiro), nao aceita inbox_ids e ignora conversation_mode. Use pra regra que vale na empresa toda e nao depende da caixa (ex.: etiqueta 'urgente' -> atribui equipe de suporte). Se precisa FALAR com a pessoa, o tipo e 'conversation'. Pra ferramenta da IA continue usando lionchat_flow_tools_create. inbox_ids só com caixa da conta: fora disso responde 422 e não cria.",
|
|
10415
10419
|
"category": "Flows",
|
|
10416
10420
|
"params": [
|
|
10417
10421
|
{
|
|
@@ -10513,7 +10517,7 @@
|
|
|
10513
10517
|
"method": "PUT",
|
|
10514
10518
|
"path": "/api/v1/accounts/{account_id}/flows/{id}",
|
|
10515
10519
|
"title": "Atualizar Flow",
|
|
10516
|
-
"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: start: {label, items:[...]} — os GATILHOS moram em data.items (NUNCA data.triggers), cada item um OBJETO {key, config}. Ex.: {key:'message_received', config:{keywords:['oi','orcamento'], match_type:'contains'}}. config.keywords e LISTA de textos (texto solto quebra o despacho de TODA mensagem da caixa); listas de id vao como LISTA DE TEXTOS — team_ids:['3'], agent_ids:['70'], funnel_ids:['31'] (numero puro [3] nunca casa); label_names:['vip']. nodes e edges sao LISTAS de objetos; exit_conditions (irmao de nodes, no flow_data) e LISTA de {type, value}. flow_data enviado SUBSTITUI o desenho inteiro (nodes + edges + exit_conditions): leia com lionchat_flows_show e reenvie COMPLETO. 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. NOVIDADES 01/09/2026 no schema (lionchat_flows_schema_reference): acao send_conversion (Meta/Google Ads/GA4 de dentro do fluxo) e condicao por origem/campanha (attr_config de conversa com origin_kind=paid_ad etc.). NOVIDADES 02/09/2026: (1) send_conversion ganhou event_names — UM evento por destino ({meta, google_ads, ga4}); event_name virou reserva (grave os dois); Google Ads so aceita nome do conversion_action_map. (2) preset 'Origem do lead' (attrScope 'lead_origin', attr_key origin_platform; valores: plataforma ou 'custom:<slug>'). (3) REGRA DE VALOR na condicao de atributo: equal/not_equal/contains/not_contains gravam em values:[...] (LISTA) com value:'' — value solo abre VAZIO na tela do cliente. Ver lionchat_flows_schema_reference.",
|
|
10520
|
+
"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: start: {label, items:[...]} — os GATILHOS moram em data.items (NUNCA data.triggers), cada item um OBJETO {key, config}. Ex.: {key:'message_received', config:{keywords:['oi','orcamento'], match_type:'contains'}}. config.keywords e LISTA de textos (texto solto quebra o despacho de TODA mensagem da caixa); listas de id vao como LISTA DE TEXTOS — team_ids:['3'], agent_ids:['70'], funnel_ids:['31'] (numero puro [3] nunca casa); label_names:['vip']. nodes e edges sao LISTAS de objetos; exit_conditions (irmao de nodes, no flow_data) e LISTA de {type, value}. flow_data enviado SUBSTITUI o desenho inteiro (nodes + edges + exit_conditions): leia com lionchat_flows_show e reenvie COMPLETO. 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. NOVIDADES 01/09/2026 no schema (lionchat_flows_schema_reference): acao send_conversion (Meta/Google Ads/GA4 de dentro do fluxo) e condicao por origem/campanha (attr_config de conversa com origin_kind=paid_ad etc.). NOVIDADES 02/09/2026: (1) send_conversion ganhou event_names — UM evento por destino ({meta, google_ads, ga4}); event_name virou reserva (grave os dois); Google Ads so aceita nome do conversion_action_map. (2) preset 'Origem do lead' (attrScope 'lead_origin', attr_key origin_platform; valores: plataforma ou 'custom:<slug>'). (3) REGRA DE VALOR na condicao de atributo: equal/not_equal/contains/not_contains gravam em values:[...] (LISTA) com value:'' — value solo abre VAZIO na tela do cliente. Ver lionchat_flows_schema_reference. A caixa que ENTRA em inbox_ids tem de ser da conta: fora disso responde 422 e o fluxo fica com as caixas que tinha.",
|
|
10517
10521
|
"category": "Flows",
|
|
10518
10522
|
"params": [
|
|
10519
10523
|
{
|
|
@@ -11299,7 +11303,7 @@
|
|
|
11299
11303
|
"method": "POST",
|
|
11300
11304
|
"path": "/api/v1/accounts/{account_id}/automation_rules",
|
|
11301
11305
|
"title": "Criar Regra de Automacao",
|
|
11302
|
-
"description": "Cria uma regra de automacao. event_name validos: conversation_created, conversation_updated, conversation_resolved, message_created, conversation_opened, webhook, kanban_item_created, kanban_item_stage_changed. conditions: [{attribute_key, filter_operator, query_operator, values[]}]. actions: [{action_name, action_params[]}]. Aceita active, inbox_id. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500). [27/10/2026] conditions NAO aceitam 'current_user' em assignee_id (422): automacao nao tem \"quem esta vendo\" — use o id do agente.",
|
|
11306
|
+
"description": "Cria uma regra de automacao. event_name validos: conversation_created, conversation_updated, conversation_resolved, message_created, conversation_opened, webhook, kanban_item_created, kanban_item_stage_changed. conditions: [{attribute_key, filter_operator, query_operator, values[]}]. actions: [{action_name, action_params[]}]. Aceita active, inbox_id. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500). [27/10/2026] conditions NAO aceitam 'current_user' em assignee_id (422): automacao nao tem \"quem esta vendo\" — use o id do agente. inbox_id tem de ser da conta: fora disso responde 422.",
|
|
11303
11307
|
"category": "Regras de Automacao",
|
|
11304
11308
|
"params": [
|
|
11305
11309
|
{
|
|
@@ -11397,7 +11401,7 @@
|
|
|
11397
11401
|
"method": "PUT",
|
|
11398
11402
|
"path": "/api/v1/accounts/{account_id}/automation_rules/{id}",
|
|
11399
11403
|
"title": "Atualizar Regra",
|
|
11400
|
-
"description": "Atualiza uma regra de automacao (PUT, substituicao completa). Campos: name, event_name, conditions, actions, active, inbox_id. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500). [27/10/2026] conditions NAO aceitam 'current_user' em assignee_id (422 quando as conditions mudam): automacao nao tem \"quem esta vendo\" — use o id do agente.",
|
|
11404
|
+
"description": "Atualiza uma regra de automacao (PUT, substituicao completa). Campos: name, event_name, conditions, actions, active, inbox_id. As actions DEVEM ser um array de objetos {action_name, action_params} — item malformado (ex.: texto solto) retorna 422 (novo 22/07; antes estourava 500). [27/10/2026] conditions NAO aceitam 'current_user' em assignee_id (422 quando as conditions mudam): automacao nao tem \"quem esta vendo\" — use o id do agente. inbox_id tem de ser da conta: fora disso responde 422.",
|
|
11401
11405
|
"category": "Regras de Automacao",
|
|
11402
11406
|
"params": [
|
|
11403
11407
|
{
|
|
@@ -11563,7 +11567,7 @@
|
|
|
11563
11567
|
"method": "POST",
|
|
11564
11568
|
"path": "/api/v1/accounts/{account_id}/teams/{team_id}/team_members",
|
|
11565
11569
|
"title": "Adicionar Membros ao Time",
|
|
11566
|
-
"description": "Adiciona agentes (membros) a um time/equipe existente. NÃO cria o time — apenas vincula agentes a ele. Obrigatórios: team_id (path) e user_ids (array de IDs de agentes). Para criar o time em si, use lionchat_teams_create.",
|
|
11570
|
+
"description": "Adiciona agentes (membros) a um time/equipe existente. NÃO cria o time — apenas vincula agentes a ele. Obrigatórios: team_id (path) e user_ids (array de IDs de agentes). Para criar o time em si, use lionchat_teams_create. Só entra usuário desta conta, nas duas listas: id de fora recusa o pedido inteiro com 401 'IDs de usuario invalidos', sem mudar nada. Número em texto é aceito.",
|
|
11567
11571
|
"category": "Times",
|
|
11568
11572
|
"params": [
|
|
11569
11573
|
{
|
|
@@ -11594,7 +11598,7 @@
|
|
|
11594
11598
|
"method": "PATCH",
|
|
11595
11599
|
"path": "/api/v1/accounts/{account_id}/teams/{team_id}/team_members",
|
|
11596
11600
|
"title": "Atualizar Membros do Time",
|
|
11597
|
-
"description": "Substitui a lista de membros (agentes) de um time/equipe existente. NÃO altera nome/configuração do time — apenas o conjunto de agentes vinculados. Obrigatórios: team_id (path) e user_ids (nova lista de IDs). Para editar o time em si, use lionchat_teams_update.",
|
|
11601
|
+
"description": "Substitui a lista de membros (agentes) de um time/equipe existente. NÃO altera nome/configuração do time — apenas o conjunto de agentes vinculados. Obrigatórios: team_id (path) e user_ids (nova lista de IDs). Para editar o time em si, use lionchat_teams_update. Só entra usuário desta conta, nas duas listas: id de fora recusa o pedido inteiro com 401 'IDs de usuario invalidos', sem mudar nada. Número em texto é aceito. Atenção: [null] vale como lista vazia e remove todos, porque o servidor tira o null antes de conferir; confira a variável antes de mandar.",
|
|
11598
11602
|
"category": "Times",
|
|
11599
11603
|
"params": [
|
|
11600
11604
|
{
|
|
@@ -11824,7 +11828,7 @@
|
|
|
11824
11828
|
"method": "POST",
|
|
11825
11829
|
"path": "/api/v1/accounts/{account_id}/bulk_actions",
|
|
11826
11830
|
"title": "Acoes em Massa",
|
|
11827
|
-
"description": "Executa acao em massa em CONVERSAS ou CONTATOS (roda em segundo plano: responde 200 e aplica depois). Obrigatorios: type e ids. ATENCAO ao `type`: escreva no SINGULAR com inicial maiuscula (Conversation / Contact) — o PLURAL e RECUSADO com 422. Teto de 300 ids por chamada. Esta e a acao de CONVERSAS e CONTATOS; card do Kanban tem ferramentas proprias (lionchat_kanban_bulk_create / _create_1 / _create_2).",
|
|
11831
|
+
"description": "Executa acao em massa em CONVERSAS ou CONTATOS (roda em segundo plano: responde 200 e aplica depois). Obrigatorios: type e ids. ATENCAO ao `type`: escreva no SINGULAR com inicial maiuscula (Conversation / Contact) — o PLURAL e RECUSADO com 422. Teto de 300 ids por chamada. Esta e a acao de CONVERSAS e CONTATOS; card do Kanban tem ferramentas proprias (lionchat_kanban_bulk_create / _create_1 / _create_2). Em type Conversation, fields.assignee_id, fields.team_id e fields.inbox_id têm de ser da conta: fora disso responde 422 'Invalid <campo>' e nada é aplicado. Para tirar responsável ou time, mande null ou 0; a caixa não aceita vazio.",
|
|
11828
11832
|
"category": "Operacoes em Massa",
|
|
11829
11833
|
"params": [
|
|
11830
11834
|
{
|
|
@@ -13649,7 +13653,7 @@
|
|
|
13649
13653
|
"method": "POST",
|
|
13650
13654
|
"path": "/api/v1/accounts/{account_id}/kanban_items/{id}/assign_agent",
|
|
13651
13655
|
"title": "Atribuir Agente",
|
|
13652
|
-
"description": "Atribui agente a item. Cria novo agente Kanban. Obrigatórios: id, agent_id. Valida unicidade quando aplicável. Retorna o agente Kanban criado com ID atribuído.",
|
|
13656
|
+
"description": "Atribui agente a item. Cria novo agente Kanban. Obrigatórios: id, agent_id. Valida unicidade quando aplicável. Retorna o agente Kanban criado com ID atribuído. Só entra usuário desta conta: id de fora recusa, sem mudar nada.",
|
|
13653
13657
|
"category": "Agentes (Kanban)",
|
|
13654
13658
|
"params": [
|
|
13655
13659
|
{
|
|
@@ -22005,7 +22009,7 @@
|
|
|
22005
22009
|
"method": "POST",
|
|
22006
22010
|
"path": "/api/v1/accounts/{account_id}/inbox_members",
|
|
22007
22011
|
"title": "Definir Membros da Inbox",
|
|
22008
|
-
"description": "ACRESCENTA agentes como membros da inbox (não substitui a lista nem remove ninguém; para tirar, use inbox_members_destroy). supervisor_ids[] e IGNORADO aqui (todos entram como agentes): para marcar supervisores (veem tudo, fora da distribuicao automatica) use inbox_members_update, que SUBSTITUI a lista inteira. A resposta traz is_supervisor por agente.",
|
|
22012
|
+
"description": "ACRESCENTA agentes como membros da inbox (não substitui a lista nem remove ninguém; para tirar, use inbox_members_destroy). supervisor_ids[] e IGNORADO aqui (todos entram como agentes): para marcar supervisores (veem tudo, fora da distribuicao automatica) use inbox_members_update, que SUBSTITUI a lista inteira. A resposta traz is_supervisor por agente. Só entra usuário desta conta: id de fora, valor que não é número ou user_ids ausente recusa o pedido inteiro com 422, sem mudar nada.",
|
|
22009
22013
|
"category": "Membros de Inbox",
|
|
22010
22014
|
"params": [
|
|
22011
22015
|
{
|
|
@@ -22075,7 +22079,7 @@
|
|
|
22075
22079
|
"method": "PATCH",
|
|
22076
22080
|
"path": "/api/v1/accounts/{account_id}/inbox_members",
|
|
22077
22081
|
"title": "Atualizar Membros da Inbox",
|
|
22078
|
-
"description": "Atualiza os agentes membros da inbox (substitui a lista). Use supervisor_ids[] para marcar supervisores (veem tudo, fora da distribuicao automatica); a resposta traz is_supervisor por agente.",
|
|
22082
|
+
"description": "Atualiza os agentes membros da inbox (substitui a lista). Use supervisor_ids[] para marcar supervisores (veem tudo, fora da distribuicao automatica); a resposta traz is_supervisor por agente. Só entra usuário desta conta, nas duas listas: id de fora ou valor que não é número recusa o pedido inteiro com 422, sem mudar nada. As duas listas ausentes também recusam; lista vazia enviada esvazia. Atenção: [null] vale como lista vazia e remove todos, porque o servidor tira o null antes de conferir; confira a variável antes de mandar.",
|
|
22079
22083
|
"category": "Membros de Inbox",
|
|
22080
22084
|
"params": [
|
|
22081
22085
|
{
|
|
@@ -22090,7 +22094,7 @@
|
|
|
22090
22094
|
"type": "array",
|
|
22091
22095
|
"location": "body",
|
|
22092
22096
|
"required": true,
|
|
22093
|
-
"description": "Nova lista de IDs"
|
|
22097
|
+
"description": "Nova lista de IDs. [null] vale como lista vazia e remove todos: confira a variável antes de mandar."
|
|
22094
22098
|
},
|
|
22095
22099
|
{
|
|
22096
22100
|
"name": "supervisor_ids",
|
|
@@ -22403,7 +22407,7 @@
|
|
|
22403
22407
|
"method": "POST",
|
|
22404
22408
|
"path": "/api/v1/accounts/{account_id}/agents",
|
|
22405
22409
|
"title": "Convidar Agente",
|
|
22406
|
-
"description": "Convida um único agente para a conta. Obrigatório: email. Opcionais: name, role (agent ou administrator), availability, auto_offline, custom_role_id, team_ids (times) e inboxes (caixas com cargo Agente/Supervisor). O agente recebe um convite por e-mail. Times/caixas de um convite ainda NAO confirmado ficam pendentes e sao aplicados automaticamente quando o agente confirmar o cadastro; se o usuario ja for confirmado, valem na hora. Para convidar vários de uma vez, use lionchat_agents_bulk_create.",
|
|
22410
|
+
"description": "Convida um único agente para a conta. Obrigatório: email. Opcionais: name, role (agent ou administrator), availability, auto_offline, custom_role_id, team_ids (times) e inboxes (caixas com cargo Agente/Supervisor). O agente recebe um convite por e-mail. Times/caixas de um convite ainda NAO confirmado ficam pendentes e sao aplicados automaticamente quando o agente confirmar o cadastro; se o usuario ja for confirmado, valem na hora. Para convidar vários de uma vez, use lionchat_agents_bulk_create. custom_role_id tem de ser da conta: fora disso responde 422 e não cria.",
|
|
22407
22411
|
"category": "Agentes",
|
|
22408
22412
|
"params": [
|
|
22409
22413
|
{
|
|
@@ -22505,7 +22509,7 @@
|
|
|
22505
22509
|
"method": "PATCH",
|
|
22506
22510
|
"path": "/api/v1/accounts/{account_id}/agents/{id}",
|
|
22507
22511
|
"title": "Atualizar Agente",
|
|
22508
|
-
"description": "Atualiza um agente existente. Campos suportados: name, role (agent ou administrator), availability, auto_offline, custom_role_id, team_ids (times) e inboxes (caixas com cargo Agente/Supervisor). Ao enviar team_ids e/ou inboxes, o agente e RECONCILIADO para o estado enviado: entra nos novos, SAI dos que nao estao na lista e ajusta o cargo por caixa — envie sempre a lista COMPLETA desejada. Se NAO enviar team_ids/inboxes, os vinculos atuais ficam intactos. Use para promover/rebaixar papel, ajustar disponibilidade, aplicar cargo personalizado ou gerenciar times/caixas do agente. PROPRIO USUARIO (02/09/2026): editar a si mesmo e permitido para times e caixas, mas NAO para o cargo — mandar role/custom_role_id do proprio usuario devolve 422 e DESCARTA a chamada inteira (a recusa e antes do update), entao as outras alteracoes tambem se perdem. Troca de cargo so por outro administrador.",
|
|
22512
|
+
"description": "Atualiza um agente existente. Campos suportados: name, role (agent ou administrator), availability, auto_offline, custom_role_id, team_ids (times) e inboxes (caixas com cargo Agente/Supervisor). Ao enviar team_ids e/ou inboxes, o agente e RECONCILIADO para o estado enviado: entra nos novos, SAI dos que nao estao na lista e ajusta o cargo por caixa — envie sempre a lista COMPLETA desejada. Se NAO enviar team_ids/inboxes, os vinculos atuais ficam intactos. Use para promover/rebaixar papel, ajustar disponibilidade, aplicar cargo personalizado ou gerenciar times/caixas do agente. PROPRIO USUARIO (02/09/2026): editar a si mesmo e permitido para times e caixas, mas NAO para o cargo — mandar role/custom_role_id do proprio usuario devolve 422 e DESCARTA a chamada inteira (a recusa e antes do update), entao as outras alteracoes tambem se perdem. Troca de cargo so por outro administrador. custom_role_id tem de ser da conta: fora disso responde 422 e nada do pedido é gravado.",
|
|
22509
22513
|
"category": "Agentes",
|
|
22510
22514
|
"params": [
|
|
22511
22515
|
{
|
|
@@ -25371,10 +25375,10 @@
|
|
|
25371
25375
|
"method": "GET",
|
|
25372
25376
|
"path": "/api/v1/accounts/{account_id}/meta_pixel_integrations",
|
|
25373
25377
|
"title": "Listar Integrações Meta CAPI",
|
|
25374
|
-
"description": "Lista os pixels da Meta (Conversions API) configurados na conta. ADMIN-ONLY.",
|
|
25378
|
+
"description": "Lista os pixels da Meta (Conversions API) configurados na conta. ADMIN-ONLY.\n\nSITUACAO (04/11/2026): `last_success_at` preenchido = a Meta ja ACEITOU um envio deste pixel com este token (a tela mostra 'Conectado'). `enabled: true` sem `last_success_at` = 'Salvo, sem envio aceito': ligado, mas a Meta nunca aceitou um evento deste par. `last_success_at` e apagado ao trocar o pixel ou o token e quando o teste e recusado (4xx). Motivo das recusas reais: `last_failure_reason`, `failed_count`, `last_failure_at`.",
|
|
25375
25379
|
"category": "Integracoes",
|
|
25376
25380
|
"params": [],
|
|
25377
|
-
"returns": "[{ id, pixel_id, enabled, test_event_code, funnel_id }]",
|
|
25381
|
+
"returns": "[{ id, pixel_id, access_token (mascarado), enabled, test_event_code, funnel_id, last_event_sent_at, last_success_at, last_failure_at, failed_count, last_failure_reason, degraded_7d, test_event_active }]",
|
|
25378
25382
|
"common_use_cases": [
|
|
25379
25383
|
"Auditar pixels configurados"
|
|
25380
25384
|
],
|
|
@@ -25432,7 +25436,7 @@
|
|
|
25432
25436
|
"method": "PATCH",
|
|
25433
25437
|
"path": "/api/v1/accounts/{account_id}/meta_pixel_integrations/{id}",
|
|
25434
25438
|
"title": "Atualizar Integração Meta CAPI",
|
|
25435
|
-
"description": "Atualiza pixel/token/
|
|
25439
|
+
"description": "Atualiza pixel/token/codigo de teste/funil. ADMIN-ONLY. Trocar o pixel ou o token apaga `last_success_at` (a prova de envio aceito era do par antigo): rode lionchat_meta_pixel_integrations_test_event depois.",
|
|
25436
25440
|
"category": "Integracoes",
|
|
25437
25441
|
"params": [
|
|
25438
25442
|
{
|
|
@@ -25504,7 +25508,7 @@
|
|
|
25504
25508
|
"method": "POST",
|
|
25505
25509
|
"path": "/api/v1/accounts/{account_id}/meta_pixel_integrations/{id}/test_event",
|
|
25506
25510
|
"title": "Testar Evento Meta CAPI",
|
|
25507
|
-
"description": "Dispara evento de teste REAL contra a API da Meta. 200 OK =
|
|
25511
|
+
"description": "Dispara evento de teste REAL contra a API da Meta. 200 OK = integracao ativada (enabled) e `last_success_at` gravado. ADMIN-ONLY.\n\nRECUSA: 502 com `ok: false` e o motivo da Meta em `response.error`; recusa 4xx apaga `last_success_at`. Codigo 100 com subcodigo 33 = este token nao tem acesso a este pixel (numero do pixel errado, ou token gerado em outro pixel). 190 = token invalido ou vencido. `response.error` em texto solto = a Meta nem respondeu (tente de novo).",
|
|
25508
25512
|
"category": "Integracoes",
|
|
25509
25513
|
"params": [
|
|
25510
25514
|
{
|
|
@@ -27519,7 +27523,7 @@
|
|
|
27519
27523
|
"method": "PATCH",
|
|
27520
27524
|
"path": "/api/v1/accounts/{account_id}/inboxes/{id}",
|
|
27521
27525
|
"title": "Atualizar Caixa de Entrada",
|
|
27522
|
-
"description": "Atualiza configurações da caixa (nome, saudação, atribuição automática, atributos extras). MUDANÇA DE CONFIG — confirme com o usuário antes. channel.additional_attributes.mark_as_seen (bool, default true, WhatsApp oficial, 2026-06-11): envia o visto/check azul quando o agente abre a conversa — desligar em coexistência app+API. channel.additional_attributes SOMA no 1o nivel nas caixas de WhatsApp/Instagram/Facebook/TikTok (troca inteiro so na caixa de API); no QR Code mande SO as chaves da tela (accept_*, reject_calls, reject_calls_message, mark_as_seen) com true/false de verdade — o resto e interno do sistema. Email (sincronizacao de mao dupla, admin, via objeto channel): two_way_sync_enabled, sync_sent, sync_deletions, sync_read, delete_strategy. CAIXA OFICIAL CRIADA A MAO (26/08): channel.provider_config aceita phone_number_id, business_account_id e api_key — mas o objeto SUBSTITUI o salvo: SEMPRE mande o provider_config INTEIRO (leia o atual antes e reenvie tudo com o campo alterado), senao webhook_verify_token e a marca source sao APAGADOS em silencio e a caixa para de receber. Os 3 campos sao validados JUNTOS na Meta a cada gravacao (422 'Invalid Credentials' = algum dos tres errado ou chave vencida). O telefone da caixa e somente leitura.",
|
|
27526
|
+
"description": "Atualiza configurações da caixa (nome, saudação, atribuição automática, atributos extras). MUDANÇA DE CONFIG — confirme com o usuário antes. channel.additional_attributes.mark_as_seen (bool, default true, WhatsApp oficial, 2026-06-11): envia o visto/check azul quando o agente abre a conversa — desligar em coexistência app+API. channel.additional_attributes SOMA no 1o nivel nas caixas de WhatsApp/Instagram/Facebook/TikTok (troca inteiro so na caixa de API); no QR Code mande SO as chaves da tela (accept_*, reject_calls, reject_calls_message, mark_as_seen) com true/false de verdade — o resto e interno do sistema. Email (sincronizacao de mao dupla, admin, via objeto channel): two_way_sync_enabled, sync_sent, sync_deletions, sync_read, delete_strategy. CAIXA OFICIAL CRIADA A MAO (26/08): channel.provider_config aceita phone_number_id, business_account_id e api_key — mas o objeto SUBSTITUI o salvo: SEMPRE mande o provider_config INTEIRO (leia o atual antes e reenvie tudo com o campo alterado), senao webhook_verify_token e a marca source sao APAGADOS em silencio e a caixa para de receber. Os 3 campos sao validados JUNTOS na Meta a cada gravacao (422 'Invalid Credentials' = algum dos tres errado ou chave vencida). O telefone da caixa e somente leitura. portal_id tem de ser da conta: fora disso responde 422.",
|
|
27523
27527
|
"category": "Caixas de Entrada",
|
|
27524
27528
|
"params": [
|
|
27525
27529
|
{
|
|
@@ -28411,7 +28415,7 @@
|
|
|
28411
28415
|
"method": "POST",
|
|
28412
28416
|
"path": "/api/v1/accounts/{account_id}/voip/vtcall_ramals",
|
|
28413
28417
|
"title": "Definir Ramal VTCall",
|
|
28414
|
-
"description": "Define/atualiza o ramal de um agente no VTCall (upsert por user_id, admin).",
|
|
28418
|
+
"description": "Define/atualiza o ramal de um agente no VTCall (upsert por user_id, admin). user_id tem de ser da conta: fora disso responde 422.",
|
|
28415
28419
|
"category": "Chamadas",
|
|
28416
28420
|
"params": [
|
|
28417
28421
|
{
|
|
@@ -28633,7 +28637,7 @@
|
|
|
28633
28637
|
"method": "PUT",
|
|
28634
28638
|
"path": "/api/v1/accounts/{account_id}",
|
|
28635
28639
|
"title": "Atualizar Configurações da Conta",
|
|
28636
|
-
"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).",
|
|
28640
|
+
"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. TRANSCRICAO DE AUDIO (04/11/2026): `audio_transcriptions` + `audio_transcription_provider`, para toda conta, com a chave do cliente. 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).",
|
|
28637
28641
|
"category": "Conta",
|
|
28638
28642
|
"params": [
|
|
28639
28643
|
{
|
|
@@ -28670,12 +28674,27 @@
|
|
|
28670
28674
|
"location": "body",
|
|
28671
28675
|
"required": false,
|
|
28672
28676
|
"description": "Fuso horário IANA da conta (ex. America/Sao_Paulo, America/Manaus). Gravado em custom_attributes.timezone; vem no topo do payload da conta. Inválido = ignorado em silêncio."
|
|
28677
|
+
},
|
|
28678
|
+
{
|
|
28679
|
+
"name": "audio_transcriptions",
|
|
28680
|
+
"type": "boolean",
|
|
28681
|
+
"location": "body",
|
|
28682
|
+
"required": false,
|
|
28683
|
+
"description": "Liga/desliga 'Transcrever Mensagens de Audio' (Configuracoes > Conta). Desde 04/11/2026 vale para TODA conta, com ou sem Agente de IA; nasce desligada e usa a chave do proprio cliente (OpenAI ou Groq cadastrada em Integracoes)."
|
|
28684
|
+
},
|
|
28685
|
+
{
|
|
28686
|
+
"name": "audio_transcription_provider",
|
|
28687
|
+
"type": "string",
|
|
28688
|
+
"location": "body",
|
|
28689
|
+
"required": false,
|
|
28690
|
+
"description": "Provedor da transcricao: 'openai' ou 'groq'. So funciona se a conta tiver a chave daquele provedor. Sem escolher, usa a OpenAI se houver chave e depois a Groq."
|
|
28673
28691
|
}
|
|
28674
28692
|
],
|
|
28675
28693
|
"returns": "Conta atualizada (payload completo, com timezone no topo)",
|
|
28676
28694
|
"common_use_cases": [
|
|
28677
28695
|
"Mudar o fuso horário da conta",
|
|
28678
|
-
"Atualizar nome/idioma/e-mail de suporte"
|
|
28696
|
+
"Atualizar nome/idioma/e-mail de suporte",
|
|
28697
|
+
"Ligar a transcricao de audio da conta"
|
|
28679
28698
|
],
|
|
28680
28699
|
"related_tools": [
|
|
28681
28700
|
"lionchat_account_show",
|
|
@@ -28719,7 +28738,7 @@
|
|
|
28719
28738
|
"method": "POST",
|
|
28720
28739
|
"path": "/api/v1/accounts/{account_id}/teams/{team_id}/team_members/remove_agents_with_reassignment",
|
|
28721
28740
|
"title": "Remover agentes do time reatribuindo os cards",
|
|
28722
|
-
"description": "Remove agentes de um time vinculado a funil Kanban REATRIBUINDO os cards deles em uma operação atômica (2026-07-21). Use a prévia (kanban_reassignment_preview) antes pra montar o destino por funil. 422 {error: 'reassignment_failed'} se algum destino for inválido — nada é aplicado.",
|
|
28741
|
+
"description": "Remove agentes de um time vinculado a funil Kanban REATRIBUINDO os cards deles em uma operação atômica (2026-07-21). Use a prévia (kanban_reassignment_preview) antes pra montar o destino por funil. 422 {error: 'reassignment_failed'} se algum destino for inválido — nada é aplicado. Só entra usuário desta conta, nas duas listas: id de fora recusa o pedido inteiro com 401 'IDs de usuario invalidos', sem mudar nada. Número em texto é aceito. Atenção: [null] vale como lista vazia e remove todos, porque o servidor tira o null antes de conferir; confira a variável antes de mandar.",
|
|
28723
28742
|
"category": "Times",
|
|
28724
28743
|
"params": [
|
|
28725
28744
|
{
|
|
@@ -29423,7 +29442,7 @@
|
|
|
29423
29442
|
"method": "GET",
|
|
29424
29443
|
"path": "/api/v1/accounts/{account_id}/kanban_ai_analyses/{id}/items",
|
|
29425
29444
|
"title": "Sugestões da análise com IA",
|
|
29426
|
-
"description": "A lista de sugestões de uma análise pronta (422 `list_analyzing` antes). Vem uma linha por card QUE TEM sugestão (ou que voltou ou foi aplicado); o resto é contado em `counts` (`no_change` = lidos sem motivo para mudar). Cada sugestão traz `id` (o que vai no apply: `stage`, `funnel`, `outcome`, `label_add:...`, `label_remove:...`), `kind`, `value`, `label`, `force` (`high` = Alta, confiança >= 70%; `medium` = Média, 50 a 70%), `checked` (vem marcada: Alta de etapa, funil e
|
|
29445
|
+
"description": "A lista de sugestões de uma análise pronta (422 `list_analyzing` antes). Vem uma linha por card QUE TEM sugestão (ou que voltou ou foi aplicado); o resto é contado em `counts` (`no_change` = lidos sem motivo para mudar). Cada sugestão traz `id` (o que vai no apply: `stage`, `funnel`, `outcome`, `label_add:...`, `label_remove:...`), `kind`, `value`, `label`, `force` (`high` = Alta, confiança >= 70%; `medium` = Média, 50 a 70%; em etiqueta, `high` = chance >= 90% para pôr ou <= 10% para tirar, e o resto é `medium`), `checked` (vem marcada: Alta de etapa, funil, perdido e etiqueta, e TUDO com 90% ou mais de certeza, inclusive ganho, card adiado, card sem conversa e etapa com conversão de venda; abaixo disso, ganho, Média e essas exceções vêm desmarcadas, com o motivo em `unchecked_reason`) e o que a ação dispara (`hints`: conversão, regras do funil, fluxos). Linha com `locked` (`client_wrote` = o cliente escreveu depois da análise; `card_changed` = o card mudou) NÃO deve ser aplicada: use `lionchat_kanban_ai_analyses_reanalyze`. `return_code` = voltou para a lista: `interrupted`, `card_busy` e `apply_failed` podem ser aplicadas de novo; `agent_no_access` = o responsável não acessa o funil de destino. Mostre as sugestões ao usuário agrupadas por etapa, com a força e o motivo. Com `no_change: true` vem também `no_change_items`: os cards lidos e deixados como estão, cada um com `lines` (`kind` stage, funnel, outcome ou label + `state`: `same` = confirmou o que já está, `doubt` = as duas ordens discordaram, `weak` = abaixo de 50%, `other_funnel`, `not_chosen`, `no_answer`; na etiqueta `add_no` e `remove_keeps`; `confidence` e `probability` em %). `lines: null` = análise antiga, sem detalhes. Use para responder \"por que a IA não mudou nada?\". Quem pode: administrador ou cargo com a permissão `kanban_ai_analyze` (\"Analisar funil com IA\"), com o recurso de plano `kanban_ai_analysis` ligado na conta e o menu do Kanban visível. Funil que a pessoa não vê = 404 `funnel_not_visible`.",
|
|
29427
29446
|
"category": "Itens",
|
|
29428
29447
|
"params": [
|
|
29429
29448
|
{
|
|
@@ -29596,7 +29615,7 @@
|
|
|
29596
29615
|
"method": "GET",
|
|
29597
29616
|
"path": "/api/v1/accounts/{account_id}/audit_logs",
|
|
29598
29617
|
"title": "Registro de Auditoria",
|
|
29599
|
-
"description": "Histórico de quem mexeu no quê dentro da conta (criação, edição, exclusão, login e logout), com o autor, o IP e o antes/depois de cada campo. ATENÇÃO ao formato das datas: aqui 'since' e 'until' são DATA POR EXTENSO (AAAA-MM-DD) e NÃO timestamp Unix — é o oposto dos relatórios; mandar um número Unix derruba a chamada com erro. Somente administradores; a conta precisa ter o recurso de auditoria habilitado, senão a lista volta VAZIA sem nenhum aviso de erro. MENSAGEM APAGADA (26/09/2026): quando alguém apaga uma mensagem pelo painel, fica um registro auditable_type 'Message', action 'destroy', com audited_changes = { content (texto, até 2000 caracteres), display_id (conversa), inbox_id, sender_type, sender_id, sender_name, attachments (nomes dos arquivos) } — é a foto tirada ANTES de apagar; auditable vem null nesse caso. Busque com q='trecho da mensagem' ou auditable_type=Message.",
|
|
29618
|
+
"description": "Histórico de quem mexeu no quê dentro da conta (criação, edição, exclusão, login e logout), com o autor, o IP e o antes/depois de cada campo. ATENÇÃO ao formato das datas: aqui 'since' e 'until' são DATA POR EXTENSO (AAAA-MM-DD) e NÃO timestamp Unix — é o oposto dos relatórios; mandar um número Unix derruba a chamada com erro. Somente administradores; a conta precisa ter o recurso de auditoria habilitado, senão a lista volta VAZIA sem nenhum aviso de erro. MENSAGEM APAGADA (26/09/2026): quando alguém apaga uma mensagem pelo painel, fica um registro auditable_type 'Message', action 'destroy', com audited_changes = { content (texto, até 2000 caracteres), display_id (conversa), inbox_id, sender_type, sender_id, sender_name, attachments (nomes dos arquivos) } — é a foto tirada ANTES de apagar; auditable vem null nesse caso. Busque com q='trecho da mensagem' ou auditable_type=Message. CREDENCIAIS (03/11/2026): audited_changes nunca traz senha, token, chave nem PIN: as chaves continuam e o valor vem '[FILTERED]', inclusive em registro antigo; de proxy_config só 'server' fica aberto. Isso é máscara, não dado perdido: não trate '[FILTERED]' como valor real nem tente regravá-lo.",
|
|
29600
29619
|
"category": "Auditoria",
|
|
29601
29620
|
"params": [
|
|
29602
29621
|
{
|
|
@@ -29660,7 +29679,7 @@
|
|
|
29660
29679
|
"type": "string",
|
|
29661
29680
|
"location": "query",
|
|
29662
29681
|
"required": false,
|
|
29663
|
-
"description": "Busca por texto (3+ letras): nome de quem fez OU conteúdo da mudança (inclusive o texto de mensagem apagada). Menos de 3 letras = ignorado. Em conta grande pode levar ~1 s; combine com since/until pra encurtar."
|
|
29682
|
+
"description": "Busca por texto (3+ letras): nome de quem fez OU conteúdo da mudança (inclusive o texto de mensagem apagada). NÃO olha additional_attributes, custom_attributes, provider_config nem colunas de credencial: texto dentro delas não é achado. Menos de 3 letras = ignorado. Em conta grande pode levar ~1 s; combine com since/until pra encurtar."
|
|
29664
29683
|
},
|
|
29665
29684
|
{
|
|
29666
29685
|
"name": "sort",
|
|
@@ -29670,7 +29689,7 @@
|
|
|
29670
29689
|
"description": "Ordem por data: desc (mais recentes primeiro, padrão) ou asc."
|
|
29671
29690
|
}
|
|
29672
29691
|
],
|
|
29673
|
-
"returns": "{ per_page, total_entries, current_page, audit_logs: [{ id, auditable_id, auditable_type, auditable, associated_id, associated_type, user_id, user_type, username, action, audited_changes (antes/depois por campo), version, comment, request_uuid, created_at (Unix em segundos), remote_address (IP inteiro), ip_masked (IP parcial, ex. 177.12.x.x; null pra IP interno), ip_city, ip_region (cidade/estado do IP — só do que já foi descoberto; o que falta aparece na próxima consulta) }] }",
|
|
29692
|
+
"returns": "{ per_page, total_entries, current_page, audit_logs: [{ id, auditable_id, auditable_type, auditable, associated_id, associated_type, user_id, user_type, username, action, audited_changes (antes/depois por campo; credencial vem '[FILTERED]'), version, comment, request_uuid, created_at (Unix em segundos), remote_address (IP inteiro), ip_masked (IP parcial, ex. 177.12.x.x; null pra IP interno), ip_city, ip_region (cidade/estado do IP — só do que já foi descoberto; o que falta aparece na próxima consulta) }] }",
|
|
29674
29693
|
"common_use_cases": [
|
|
29675
29694
|
"Descobrir quem apagou uma caixa de entrada ou uma automação",
|
|
29676
29695
|
"Ver todos os logins de um agente num intervalo de datas",
|
|
@@ -31423,7 +31442,7 @@
|
|
|
31423
31442
|
"method": "POST",
|
|
31424
31443
|
"path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/participants",
|
|
31425
31444
|
"title": "Adicionar Participantes",
|
|
31426
|
-
"description": "ACRESCENTA atendentes à lista de quem acompanha a conversa, sem mexer em quem já está — quem já é participante é simplesmente ignorado. Mande user_ids como lista de IDs de usuário. Se a intenção for deixar a lista EXATAMENTE igual à enviada (entrando e saindo gente), use a versão PATCH desta mesma rota.",
|
|
31445
|
+
"description": "ACRESCENTA atendentes à lista de quem acompanha a conversa, sem mexer em quem já está — quem já é participante é simplesmente ignorado. Mande user_ids como lista de IDs de usuário. Se a intenção for deixar a lista EXATAMENTE igual à enviada (entrando e saindo gente), use a versão PATCH desta mesma rota. Só entra quem é da conta: número de fora responde 422 e nada é gravado. Colega da conta sem acesso à caixa não entra e não aparece na resposta: o retorno lista só quem entrou.",
|
|
31427
31446
|
"category": "Conversas",
|
|
31428
31447
|
"params": [
|
|
31429
31448
|
{
|
|
@@ -31465,7 +31484,7 @@
|
|
|
31465
31484
|
"method": "PATCH",
|
|
31466
31485
|
"path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/participants",
|
|
31467
31486
|
"title": "Substituir Participantes",
|
|
31468
|
-
"description": "SUBSTITUI a lista inteira de quem acompanha a conversa pela lista enviada em user_ids: quem está na lista e ainda não acompanhava entra, e quem acompanhava e NÃO está na lista é REMOVIDO. Mandar lista vazia tira todo mundo. Se a intenção é só acrescentar sem tirar ninguém, use o POST desta mesma rota.",
|
|
31487
|
+
"description": "SUBSTITUI a lista inteira de quem acompanha a conversa pela lista enviada em user_ids: quem está na lista e ainda não acompanhava entra, e quem acompanhava e NÃO está na lista é REMOVIDO. Mandar lista vazia tira todo mundo. Se a intenção é só acrescentar sem tirar ninguém, use o POST desta mesma rota. Quem ENTRA tem de ser da conta: número de fora responde 422 e a lista fica como estava. Quem já acompanhava e saiu da conta pode continuar na lista enviada.",
|
|
31469
31488
|
"category": "Conversas",
|
|
31470
31489
|
"params": [
|
|
31471
31490
|
{
|
|
@@ -33033,7 +33052,107 @@
|
|
|
33033
33052
|
"related_tools": [
|
|
33034
33053
|
"lionchat_captain_assistants_list",
|
|
33035
33054
|
"lionchat_captain_assistants_show",
|
|
33036
|
-
"lionchat_reports_summary"
|
|
33055
|
+
"lionchat_reports_summary",
|
|
33056
|
+
"lionchat_captain_judge_runs_results"
|
|
33057
|
+
]
|
|
33058
|
+
},
|
|
33059
|
+
{
|
|
33060
|
+
"id": "lionchat_captain_judge_runs_current",
|
|
33061
|
+
"method": "GET",
|
|
33062
|
+
"path": "/api/v1/accounts/{account_id}/captain/judge_runs/current",
|
|
33063
|
+
"title": "Juiz do Supervisor: andamento",
|
|
33064
|
+
"description": "Devolve a análise viva ou a última da conta: situação, quantas conversas foram escolhidas e lidas, quantas ficaram de fora e por quê, tokens e custo. Só leitura. A análise é iniciada apenas pelo botão do Supervisor no painel, por um administrador: não há ferramenta para iniciar, porque gasta a chave da conta.",
|
|
33065
|
+
"category": "Assistentes",
|
|
33066
|
+
"params": [],
|
|
33067
|
+
"returns": "{ run: { id, status, days, assistant_ids, selected_count, analyzed_count, pending_count, selecting, not_analyzed, error_code, input_tokens, cost_usd, created_at, finished_at } } ou { run: null }",
|
|
33068
|
+
"common_use_cases": [
|
|
33069
|
+
"Saber se há análise rodando",
|
|
33070
|
+
"Ver quando foi a última análise e o que ficou de fora"
|
|
33071
|
+
],
|
|
33072
|
+
"related_tools": [
|
|
33073
|
+
"lionchat_captain_supervisor_show",
|
|
33074
|
+
"lionchat_captain_judge_runs_results"
|
|
33075
|
+
]
|
|
33076
|
+
},
|
|
33077
|
+
{
|
|
33078
|
+
"id": "lionchat_captain_judge_runs_results",
|
|
33079
|
+
"method": "GET",
|
|
33080
|
+
"path": "/api/v1/accounts/{account_id}/captain/judge_runs/results",
|
|
33081
|
+
"title": "Juiz do Supervisor: resultados por IA",
|
|
33082
|
+
"description": "O que o juiz respondeu nas conversas já analisadas, por IA: nota do atendimento de 1 a 5, disse e não fez, não soube responder, perguntas sem resposta, pediu dado de novo, cliente irritado, o que travou e objeções nas conversas que não converteram, e a média de 0 a 100% de quanto a IA seguiu cada cenário (average vem de 0 a 1, do menor para o maior). Só leitura. Traga junto os avisos em warnings: com menos de 30 conversas analisadas o número ainda não permite concluir. O juiz não muda nada na conversa.",
|
|
33083
|
+
"category": "Assistentes",
|
|
33084
|
+
"params": [
|
|
33085
|
+
{
|
|
33086
|
+
"name": "days",
|
|
33087
|
+
"type": "number",
|
|
33088
|
+
"location": "query",
|
|
33089
|
+
"required": false,
|
|
33090
|
+
"description": "Período em dias, pela data da última fala da IA. Padrão 30."
|
|
33091
|
+
}
|
|
33092
|
+
],
|
|
33093
|
+
"returns": "{ has_judgments, assistants: [{ id, name, analyzed, note_average, said_not_done, didnt_know, irritated, asked_again, unanswered, lost_count, objections, stuck, scenarios, same_model_as_judge }], warnings }",
|
|
33094
|
+
"common_use_cases": [
|
|
33095
|
+
"Entender por que uma IA perde",
|
|
33096
|
+
"Achar o cenário que precisa de ajuste",
|
|
33097
|
+
"Comparar a qualidade do atendimento entre IAs"
|
|
33098
|
+
],
|
|
33099
|
+
"related_tools": [
|
|
33100
|
+
"lionchat_captain_supervisor_show",
|
|
33101
|
+
"lionchat_captain_judge_runs_conversations"
|
|
33102
|
+
]
|
|
33103
|
+
},
|
|
33104
|
+
{
|
|
33105
|
+
"id": "lionchat_captain_judge_runs_conversations",
|
|
33106
|
+
"method": "GET",
|
|
33107
|
+
"path": "/api/v1/accounts/{account_id}/captain/judge_runs/conversations",
|
|
33108
|
+
"title": "Juiz do Supervisor: conversas por trás de um número",
|
|
33109
|
+
"description": "Lista as conversas que formam um número do juiz, só as que a pessoa conectada pode abrir. Só leitura. Para scenario, value é o id do cenário e a lista vem da menor para a maior porcentagem.",
|
|
33110
|
+
"category": "Assistentes",
|
|
33111
|
+
"params": [
|
|
33112
|
+
{
|
|
33113
|
+
"name": "assistant_id",
|
|
33114
|
+
"type": "number",
|
|
33115
|
+
"location": "query",
|
|
33116
|
+
"required": true,
|
|
33117
|
+
"description": "ID da IA."
|
|
33118
|
+
},
|
|
33119
|
+
{
|
|
33120
|
+
"name": "metric",
|
|
33121
|
+
"type": "string",
|
|
33122
|
+
"location": "query",
|
|
33123
|
+
"required": true,
|
|
33124
|
+
"description": "said_not_done, didnt_know, unanswered, asked_again, irritated, note, analyzed, stuck, objection ou scenario."
|
|
33125
|
+
},
|
|
33126
|
+
{
|
|
33127
|
+
"name": "value",
|
|
33128
|
+
"type": "string",
|
|
33129
|
+
"location": "query",
|
|
33130
|
+
"required": false,
|
|
33131
|
+
"description": "Para stuck e objection, a opção (ex.: ia_errou, preco). Para scenario, o id do cenário."
|
|
33132
|
+
},
|
|
33133
|
+
{
|
|
33134
|
+
"name": "days",
|
|
33135
|
+
"type": "number",
|
|
33136
|
+
"location": "query",
|
|
33137
|
+
"required": false,
|
|
33138
|
+
"description": "Período em dias. Padrão 30."
|
|
33139
|
+
},
|
|
33140
|
+
{
|
|
33141
|
+
"name": "page",
|
|
33142
|
+
"type": "number",
|
|
33143
|
+
"location": "query",
|
|
33144
|
+
"required": false,
|
|
33145
|
+
"description": "Página; 25 por página."
|
|
33146
|
+
}
|
|
33147
|
+
],
|
|
33148
|
+
"returns": "{ total, page, per_page, conversations: [{ display_id, status, contact_name, inbox_name, value }] }",
|
|
33149
|
+
"common_use_cases": [
|
|
33150
|
+
"Abrir as conversas em que a IA disse e não fez",
|
|
33151
|
+
"Ver as conversas com a menor nota de um cenário"
|
|
33152
|
+
],
|
|
33153
|
+
"related_tools": [
|
|
33154
|
+
"lionchat_captain_judge_runs_results",
|
|
33155
|
+
"lionchat_conversations_show"
|
|
33037
33156
|
]
|
|
33038
33157
|
},
|
|
33039
33158
|
{
|