@lionchat/mcp-server 1.33.0 → 1.34.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.d.ts +1 -0
- package/dist/client.js +24 -0
- package/dist/client.js.map +1 -1
- package/dist/docs/instructions.md +1 -1
- package/dist/docs/resources/assinatura-eletronica.md +68 -13
- package/dist/docs/resources/best-practices.md +9 -5
- package/dist/docs/resources/filtros-e-relatorios.md +6 -3
- package/dist/docs/resources/flowbuilder-design-guide.md +16 -2
- package/dist/docs/resources/glossary.md +9 -0
- package/dist/docs/resources/kanban-deep-dive.md +16 -9
- package/dist/tools.js +29 -9
- package/dist/tools.js.map +1 -1
- package/endpoints.json +152 -36
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
package/dist/client.js
CHANGED
|
@@ -95,12 +95,27 @@ function sleep(ms) {
|
|
|
95
95
|
// - Array with meta/payload pagination -> PaginatedResponse
|
|
96
96
|
// - Plain array -> { data: [...] }
|
|
97
97
|
// - Single object -> returned as-is
|
|
98
|
+
// AIDEV-NOTE: [ligar-com-ia-agente-errado 30/10] so e paginacao se o meta trouxer ALGUM dado de paginacao. Sem
|
|
99
|
+
// nenhum (agentes de ligacao: so dial_inboxes; mensagens: etiquetas/contato, paginam por before_id), dizer
|
|
100
|
+
// "tem mais pagina" manda a IA atras de uma pagina 2 que nao existe. Lista sem total MAS com pagina continua
|
|
101
|
+
// "ate esvaziar" (fix 18/07). Mesma lista no remoto (runner.ts#attachPagination).
|
|
102
|
+
const PAGINATION_KEYS = ['all_count', 'count', 'total_count', 'total', 'current_page', 'page', 'per', 'total_pages'];
|
|
103
|
+
// Numero OU texto so de digitos: artigos mandam current_page como texto ("2") quando a pagina vem na URL.
|
|
104
|
+
function hasPaginationKey(meta) {
|
|
105
|
+
return PAGINATION_KEYS.some((key) => {
|
|
106
|
+
const value = meta[key];
|
|
107
|
+
return typeof value === 'number' || (typeof value === 'string' && /^\d+$/.test(value));
|
|
108
|
+
});
|
|
109
|
+
}
|
|
98
110
|
function normalizeResponse(body) {
|
|
99
111
|
if (body && typeof body === 'object' && !Array.isArray(body)) {
|
|
100
112
|
const obj = body;
|
|
101
113
|
// AIDEV-NOTE: Chatwoot pagination format: { payload: [...], meta: { count|all_count, current_page } }
|
|
102
114
|
if (Array.isArray(obj.payload) && obj.meta && typeof obj.meta === 'object') {
|
|
103
115
|
const meta = obj.meta;
|
|
116
|
+
if (!hasPaginationKey(meta)) {
|
|
117
|
+
return { data: obj.payload, meta };
|
|
118
|
+
}
|
|
104
119
|
// AIDEV-NOTE: [fix paginacao 18/07] Chave do total VARIA por endpoint no Chatwoot:
|
|
105
120
|
// conversas=all_count, contatos=count, busca de mensagens/kanban items/anexos=total_count.
|
|
106
121
|
// Ler so all_count zerava total_count/has_more nos demais (a IA parava cedo e entregava
|
|
@@ -128,6 +143,7 @@ function normalizeResponse(body) {
|
|
|
128
143
|
: currentPage;
|
|
129
144
|
return {
|
|
130
145
|
data: obj.payload,
|
|
146
|
+
meta,
|
|
131
147
|
pagination: {
|
|
132
148
|
current_page: currentPage,
|
|
133
149
|
total_pages: totalPages,
|
|
@@ -139,6 +155,9 @@ function normalizeResponse(body) {
|
|
|
139
155
|
// AIDEV-NOTE: Some endpoints return { data: [...], meta: {...} } format
|
|
140
156
|
if (Array.isArray(obj.data) && obj.meta && typeof obj.meta === 'object') {
|
|
141
157
|
const meta = obj.meta;
|
|
158
|
+
if (!hasPaginationKey(meta)) {
|
|
159
|
+
return { data: obj.data, meta };
|
|
160
|
+
}
|
|
142
161
|
// AIDEV-NOTE: [fix paginacao 18/07] Chamadas VoIP/LionCalls, WhatsApp calls e logs de evento
|
|
143
162
|
// (ga4/google_ads/meta_capi) usam meta.total e meta.page (nao total_count/current_page) —
|
|
144
163
|
// sem estes fallbacks o has_more vinha SEMPRE false e o relatorio parava na 1a pagina.
|
|
@@ -165,6 +184,7 @@ function normalizeResponse(body) {
|
|
|
165
184
|
: Math.ceil(totalCount / pageSize);
|
|
166
185
|
return {
|
|
167
186
|
data: obj.data,
|
|
187
|
+
meta,
|
|
168
188
|
pagination: {
|
|
169
189
|
current_page: currentPage,
|
|
170
190
|
total_pages: totalPages,
|
|
@@ -182,6 +202,9 @@ function normalizeResponse(body) {
|
|
|
182
202
|
inner.meta &&
|
|
183
203
|
typeof inner.meta === 'object') {
|
|
184
204
|
const meta = inner.meta;
|
|
205
|
+
if (!hasPaginationKey(meta)) {
|
|
206
|
+
return { data: inner.payload, meta };
|
|
207
|
+
}
|
|
185
208
|
const allCount = typeof meta.all_count === 'number'
|
|
186
209
|
? meta.all_count
|
|
187
210
|
: typeof meta.count === 'number'
|
|
@@ -200,6 +223,7 @@ function normalizeResponse(body) {
|
|
|
200
223
|
: currentPage;
|
|
201
224
|
return {
|
|
202
225
|
data: inner.payload,
|
|
226
|
+
meta,
|
|
203
227
|
pagination: {
|
|
204
228
|
current_page: currentPage,
|
|
205
229
|
total_pages: totalPages,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -461,7 +461,7 @@ Antes de escolher a ferramenta, cheque se a intenção bate com a coluna da dire
|
|
|
461
461
|
| Criar contato | `lionchat_contacts_create` base (path `/contacts`) | NÃO use as variantes `_1` … `_9` |
|
|
462
462
|
| Pausar a IA agora (botão de pânico) | `lionchat_captain_assistants_update` (`paused: true`, top-level) | — |
|
|
463
463
|
| Criar/editar **formulário público de captação** (página de captura própria) | `lionchat_lead_forms_create` / `_update` | Leia `lionchat://docs/formularios-publicos` ANTES — o desenho vai em `form_data` e só entra no ar depois do `publish` (que valida o desenho e pode voltar 422 com a lista de pendências). Caixa de WhatsApp vinculada (`inbox_id`) é obrigatória pra publicar. Escrita é só de administrador |
|
|
464
|
-
| **Mandar um contrato pra assinar** / ver quem assinou / reenviar / cancelar / criar ou editar o modelo escrito | `lionchat_signature_envelopes_create` / `_list` / `_show` / `_resend` / `_cancel`; `lionchat_signature_documents_list` / `_create` / `_update`; `lionchat_signature_envelopes_sign_as_sender` (o remetente assina pelo painel) | Leia `lionchat://docs/assinatura-eletronica` ANTES. Modelo `text` a API cria e edita (texto com `{{contact.*}}`); PDF/Word só pela tela. Campo do modelo sem valor na ficha bloqueia o envio (422 `variaveis_sem_valor` com a lista); `422 escolher_caixa` = repita com `inbox_id`. Cada contrato consome 1 vaga do limite mensal. Modelo Word: `422 fila_cheia` = muita gente convertendo agora, repita em instantes; `422 conversor_indisponivel` = o serviço de conversão está fora (não é o arquivo) — avise o operador. Remetente assina pelo painel com `_sign_as_sender` (PNG em base64; `signature_method` drawn/typed + `typed_name`). Dois jeitos de mandar (27/10): `collection: 'ready'` (completa o que falta com `contact_data`; veja antes `lionchat_signature_documents_fill_fields`) ou `collection: 'form'` (a pessoa preenche pelo link); `message` vai junto. Documentos pedidos (
|
|
464
|
+
| **Mandar um contrato pra assinar** / ver quem assinou / reenviar / cancelar / criar ou editar o modelo escrito | `lionchat_signature_envelopes_create` / `_list` / `_show` / `_resend` / `_cancel`; `lionchat_signature_documents_list` / `_create` / `_update`; `lionchat_signature_envelopes_sign_as_sender` (o remetente assina pelo painel) | Leia `lionchat://docs/assinatura-eletronica` ANTES. Modelo `text` a API cria e edita (texto com `{{contact.*}}`); PDF/Word só pela tela. Campo do modelo sem valor na ficha bloqueia o envio (422 `variaveis_sem_valor` com a lista); `422 escolher_caixa` = repita com `inbox_id`. Cada contrato consome 1 vaga do limite mensal. Modelo Word: `422 fila_cheia` = muita gente convertendo agora, repita em instantes; `422 conversor_indisponivel` = o serviço de conversão está fora (não é o arquivo) — avise o operador. Remetente assina pelo painel com `_sign_as_sender` (PNG em base64; `signature_method` drawn/typed + `typed_name`). Dois jeitos de mandar (27/10): `collection: 'ready'` (completa o que falta com `contact_data`; veja antes `lionchat_signature_documents_fill_fields`) ou `collection: 'form'` (a pessoa preenche pelo link); `message` vai junto. Documentos pedidos (`roles_layout.proof_requests` desde 29/10: documento com foto — `id_document` com `accepted_types` = os aceitos entre RG, CNH e CPF, a pessoa manda um deles (30/10) —, comprovante, selfie e documentos criados `custom_*`, cada um podendo ser anexado ao contrato e pedido das testemunhas; `ai_document_check` liga a conferência das fotos e dos PDFs de até 5 páginas pela IA da conta; documento criado aceita `description` só para a IA (30/10); o antigo `required_proofs` continua aceito): contrato fica `awaiting_approval` até a equipe aprovar — `lionchat_signature_envelopes_proofs` / `_approve_proofs` / `_reject_proofs` (as duas últimas mandam mensagem ao cliente: confirme antes; os arquivos só pela tela). Link do contrato para divulgar: `roles_layout.public_link` (29/10: a pessoa preenche um formulário e confirma o WhatsApp com um código). Caixa por onde saem todas as mensagens do contrato e o texto/modelo de cada uma (29/10): `roles_layout.communication`. Importar Word, pré-visualizar e baixar PDF: só pela tela (nesta área o conector não sobe o Word do modelo nem baixa o PDF) |
|
|
465
465
|
| **Testar um formulário** antes de publicar | `lionchat_lead_forms_test_run` | Roda o RASCUNHO no motor real e desfaz tudo no fim — zero rastro. Mande `answers: [{node_id, value}]` (até 60) pra reproduzir um caminho; a resposta traz o bloco atual + o log do percurso |
|
|
466
466
|
| Conferir se um site **aceita ser exibido dentro do formulário** (bloco Página externa) | `lionchat_lead_forms_check_embed` | Body `{url}`; devolve `{status: allowed\|blocked\|unknown, reason}`. Grave o veredito em `embed_allowed` do bloco. Admin-only |
|
|
467
467
|
| Ver **tudo que uma pessoa preencheu** (nosso formulário, anúncio do Meta, Webhook Universal, fluxo) | `lionchat_contacts_form_entries_list` / `_show` | Por CONTATO, sem paginação (teto 250 por origem, `meta.truncated`). O detalhe de Meta/webhook mostra SÓ os campos vinculados e gravados — nunca o payload cru. `show` exige `source` + `id` da mesma linha |
|
|
@@ -75,8 +75,8 @@ a autoria é o código de uso único. A folha de assinaturas e o relatório de e
|
|
|
75
75
|
mão" ou "Assinatura digitada: <nome>"; contratos assinados antes de 28/10 não dizem nada.
|
|
76
76
|
|
|
77
77
|
## Documentos de quem assina (28/10)
|
|
78
|
-
- No modelo, `roles_layout.required_proofs`: lista com `id_document` (documento com foto — a pessoa escolhe
|
|
79
|
-
CPF), `selfie_with_document` e `address_proof` (comprovante, foto ou PDF). `[]` = nenhum. Outro valor = 422. O
|
|
78
|
+
- No modelo, `roles_layout.required_proofs`: lista com `id_document` (documento com foto — a pessoa escolhe entre os
|
|
79
|
+
aceitos, RG, CNH ou CPF; ver `accepted_types` abaixo), `selfie_with_document` e `address_proof` (comprovante, foto ou PDF). `[]` = nenhum. Outro valor = 422. O
|
|
80
80
|
contrato guarda uma cópia ao nascer: mudar o modelo depois não muda contrato já enviado (`required_proofs` vem no
|
|
81
81
|
`list` e no `show` do contrato).
|
|
82
82
|
- A pessoa manda os documentos na página, antes de assinar. Com algum documento pedido, o contrato NÃO fecha quando
|
|
@@ -93,23 +93,78 @@ mão" ou "Assinatura digitada: <nome>"; contratos assinados antes de 28/10 não
|
|
|
93
93
|
esperando aprovação), `sem_documentos`, `motivo_obrigatorio`, `documentos_mudaram` (a pessoa mandou outro depois do
|
|
94
94
|
que foi visto — leia `_proofs` de novo). Quem pode: administrador ou `signature_manage`.
|
|
95
95
|
|
|
96
|
+
## Documentos pedidos com anexo e conferência por IA (29/10)
|
|
97
|
+
- `roles_layout.proof_requests` é a lista completa (o que vale de verdade): itens `{key, label, accepts_pdf,
|
|
98
|
+
attach_to_contract, from_witnesses}` (+ `accepted_types` no `id_document` e `description` nos criados). `key`: `id_document`, `rg`, `cnh`, `cpf`, `selfie_with_document`,
|
|
99
|
+
`address_proof` ou um documento CRIADO, `custom_<6 a 12 letras/números minúsculos>` com `label` obrigatório (1 a 60).
|
|
100
|
+
**Você inventa a chave do criado** (ex.: `custom_oab2026`) e a mantém igual nas gravações seguintes — o servidor não
|
|
101
|
+
cria chave, e trocar a chave vira outro documento. Aceita `["rg", "cnh"]` (texto solto = padrões). Máximo 12 itens.
|
|
102
|
+
- **Documento com foto = `id_document` com `accepted_types`** (30/10): a lista dos documentos ACEITOS (`rg`, `cnh`, `cpf`;
|
|
103
|
+
um ou mais) e a pessoa manda QUALQUER UM deles. Ex.: `{"key": "id_document", "accepted_types": ["rg", "cnh"]}` = aceita
|
|
104
|
+
RG ou CNH. Sem a lista = os três. Com um só aceito a página não pergunta o tipo. O nome que a pessoa e a equipe veem
|
|
105
|
+
diz os aceitos ("Documento com foto (RG ou CNH)") e a IA confere se a foto é do tipo que a pessoa ESCOLHEU na página
|
|
106
|
+
(tocou em CNH e mandou RG = dúvida). Lista vazia, tipo desconhecido
|
|
107
|
+
ou `accepted_types` em outro item = 422. **Quando o usuário pedir "RG ou CNH", use isto** — `rg`, `cnh` e `cpf` como
|
|
108
|
+
itens soltos continuam aceitos, mas cada um EXIGE aquele documento (pedir os três soltos = a pessoa manda os três), e a
|
|
109
|
+
tela não os oferece mais.
|
|
110
|
+
- `accepts_pdf`: só no comprovante (sempre) e nos criados; RG/CNH/CPF/selfie com PDF = 422.
|
|
111
|
+
- `attach_to_contract: true` = o arquivo entra como páginas no contrato assinado. Teto: 10 arquivos anexados por
|
|
112
|
+
contrato (itens "anexar" × pessoas que mandam) — 422 ao salvar o modelo e `anexos_demais` ao enviar.
|
|
113
|
+
- `from_witnesses: true` = as testemunhas também mandam aquele documento (padrão: sim nos fixos, não nos criados).
|
|
114
|
+
- Com anexo e testemunha o contrato fecha com DUAS vias: testemunha recebe a sua SEM as páginas de anexo.
|
|
115
|
+
- `roles_layout.ai_document_check: true` liga a conferência das FOTOS e dos PDFs de até 5 páginas pela IA (só com a
|
|
116
|
+
chave da OpenAI da conta; gasta crédito dela). Arquivo em dúvida não conta como entregue até a pessoa mandar outro ou
|
|
117
|
+
tocar "Manter" (da 2ª dúvida em diante); a equipe vê o aviso em "Ver documentos". Falha da IA = arquivo aceito. PDF com
|
|
118
|
+
mais de 5 páginas não é conferido.
|
|
119
|
+
- **`description`** (30/10, só nos documentos criados `custom_*`, opcional, até 300 caracteres): explica à IA o que o
|
|
120
|
+
documento é, além do nome (ex.: `"description": "comprovante de inscrição no conselho de classe, com o nome da pessoa"`).
|
|
121
|
+
Quem assina NÃO vê. Em documento fixo = 422. Quando o usuário criar um documento cujo nome não diz tudo, sugira escrever.
|
|
122
|
+
- `required_proofs` continua aceito (só as três antigas) e preserva os itens novos; prefira `proof_requests`.
|
|
123
|
+
- `_proofs` ganhou `requests`, `label`/`ai_check`/`ai_kept` por prova e `seal_blocked` (lista: anexo que não entrou no
|
|
124
|
+
selo; o contrato fica parado em `signed_pending_seal` e só dá para REPROVAR aquele documento, com o motivo — aí ele
|
|
125
|
+
volta a esperar a aprovação).
|
|
126
|
+
- Gatilhos do Flow novos: `signature_awaiting_approval`, `signature_proofs_approved`, `signature_proofs_rejected`, com
|
|
127
|
+
`{{contrato.documentos_situacao}}` e `{{contrato.assinante.documentos_situacao}}` para condicionar.
|
|
128
|
+
|
|
96
129
|
## Confirmar pelo WhatsApp (28/10)
|
|
97
130
|
Quem recebe o link pelo WhatsApp pode confirmar que é ela mandando uma frase pronta (com um código `CT-XXXXXX`) para o
|
|
98
131
|
WhatsApp do contrato, em vez de digitar o código de 6 dígitos — resolve a caixa oficial com a janela de 24 h fechada.
|
|
99
132
|
Só vale do telefone da pessoa e na caixa do contrato. A mensagem aparece na conversa, mas a IA, os fluxos e as
|
|
100
133
|
automações não respondem a ela. Não há ferramenta: é só a página da pessoa.
|
|
101
134
|
|
|
102
|
-
##
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
135
|
+
## Caixa do modelo e as mensagens (29/10)
|
|
136
|
+
- `roles_layout.communication: {inbox_id, code_message, invite_message, copy_message, proofs_again_message,
|
|
137
|
+
code_template, invite_template, copy_template, proofs_again_template}`. A caixa (`inbox_id`, WhatsApp da conta: oficial ou QR Code) vale para TODA a comunicação dos contratos
|
|
138
|
+
do modelo: código, link de quem assina e das testemunhas, cópia assinada e o link do contrato para divulgar.
|
|
139
|
+
- Caixa de QR Code: os quatro textos (em branco = o texto de sempre). `code_message` precisa ter `{{codigo}}`;
|
|
140
|
+
`invite_message`, `copy_message` e `proofs_again_message` (pedido de documento de novo), `{{link}}`; `{{contrato}}`
|
|
141
|
+
põe o nome e, no pedido de documento de novo, `{{motivo}}` põe o motivo da equipe. Sem a variável = 422.
|
|
142
|
+
- Caixa oficial: os quatro modelos (`code_template`, `invite_template`, `copy_template`, `proofs_again_template`), cada um `{name, language}` de um modelo do WhatsApp APROVADO com UMA variável no corpo e
|
|
143
|
+
sem foto/arquivo/variável no cabeçalho; o do código é de Autenticação. `null` tira. Para criar o modelo na Meta use
|
|
144
|
+
`lionchat_inboxes_whatsapp_templates_create` (o do código: categoria `AUTHENTICATION`, corpo com
|
|
145
|
+
`add_security_recommendation: true`, rodapé `code_expiration_minutes: 10`, botão `OTP`/`COPY_CODE`) — confirme com o
|
|
146
|
+
usuário antes: cada código enviado por ele é cobrado pela Meta.
|
|
147
|
+
- Mande só o que muda: o que não vem fica o guardado.
|
|
148
|
+
- O código de 6 dígitos aparece no painel (decisão do dono, 29/10); no webhook de saída ele vai escondido.
|
|
149
|
+
|
|
150
|
+
## Como a pessoa pode assinar (29/10)
|
|
151
|
+
- `roles_layout.signature_methods`: `["drawn","typed"]` (os dois, o padrão quando não vem), `["drawn"]` (só desenhar) ou
|
|
152
|
+
`["typed"]` (só digitar o nome). Lista vazia ou valor desconhecido = 422. Vale para os próximos envios; o contrato
|
|
153
|
+
grava o que valia quando saiu.
|
|
154
|
+
|
|
155
|
+
## Link do contrato para divulgar (28/10; formulário e código desde 29/10)
|
|
156
|
+
- No modelo, `roles_layout.public_link: {enabled: true}`. O link usa a caixa de `communication` (o `inbox_id` dentro de
|
|
157
|
+
`public_link` só vale para modelo sem caixa em `communication`). A leitura devolve `{enabled, inbox_id, path}` — o
|
|
158
|
+
endereço é o domínio da instalação + `path` (`/contrato/<código>`). Mande `regenerate: true` para trocar o código (o
|
|
159
|
+
endereço antigo para de funcionar). Salvar sem `regenerate` mantém o mesmo endereço; desligar e religar também.
|
|
107
160
|
- Só para modelo com UM assinante principal e sem `sender_signs` (422 com `public_link` no texto do erro), e só caixa de
|
|
108
|
-
WhatsApp (oficial ou QR Code).
|
|
109
|
-
- Quem abre o endereço
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
161
|
+
WhatsApp (oficial ou QR Code). Na oficial o link fica "indisponível" até o modelo do código estar aprovado.
|
|
162
|
+
- Quem abre o endereço preenche um formulário (os dados do contrato, o WhatsApp dela e as testemunhas do modelo), recebe
|
|
163
|
+
um código no WhatsApp digitado e, com o código certo, o contrato dela nasce com os dados preenchidos
|
|
164
|
+
(`additional_attributes.link_padrao: true`). Contato que já existe não tem a ficha alterada. A mesma pessoa (mesmo
|
|
165
|
+
WhatsApp e mesmo CPF) preenchendo de novo em 24 h ganha contrato novo e o anterior sem assinatura é cancelado.
|
|
166
|
+
- **Limite do mês:** o contrato do link só nasce (e conta) depois que a pessoa confirma o código. Quem abre e some não
|
|
167
|
+
gasta vaga.
|
|
113
168
|
|
|
114
169
|
## Como mandar um contrato (receita)
|
|
115
170
|
1. `lionchat_signature_documents_list` → escolha o modelo (ou crie um `text` com `signature_documents_create`;
|
|
@@ -157,7 +212,7 @@ automações não respondem a ela. Não há ferramenta: é só a página da pess
|
|
|
157
212
|
`message` junto do link e `send_link: false` para só gerar; o contrato criado vira `{{contrato.*}}`, com
|
|
158
213
|
`{{contrato.link}}`, para os blocos seguintes), na Macro e na Automação;
|
|
159
214
|
bloco `generate_contract` no Formulário público (gera pelas respostas e manda o link). Gatilhos do Flow
|
|
160
|
-
`signature_*` (
|
|
215
|
+
`signature_*` (12 acontecimentos, 29/10) trazem `{{contrato.*}}` — ver `lionchat_flows_schema_reference`.
|
|
161
216
|
|
|
162
217
|
## Onde o cliente vê
|
|
163
218
|
Menu **Assinaturas** (modelos e contratos, filtros, "Falta você assinar"), aba **Contratos** na ficha do contato,
|
|
@@ -67,7 +67,7 @@ Quando existir endpoint específico, prefira:
|
|
|
67
67
|
Conversa com 200 mensagens? **Não baixe tudo**:
|
|
68
68
|
|
|
69
69
|
1. `conversations_show` (1 chamada) → metadata + última mensagem
|
|
70
|
-
2. Se precisa contexto: pegue só as últimas 20-30 mensagens com `conversations_messages_list` (use `
|
|
70
|
+
2. Se precisa contexto: pegue só as últimas 20-30 mensagens com `conversations_messages_list` (sem parâmetro vêm as últimas 20; para as anteriores use `before_id` com o `id` da mais antiga recebida)
|
|
71
71
|
3. Pra análise/resumo completo, use `conversations_messages_list` paginando — é a fonte do texto.
|
|
72
72
|
|
|
73
73
|
> **Atenção:** `conversations_transcript` NÃO retorna o texto da conversa pra você ler. Ele EXIGE o
|
|
@@ -201,7 +201,7 @@ própria: cada agente de ligação tem um objetivo e **não ocupa vaga de IA do
|
|
|
201
201
|
|
|
202
202
|
| Ferramenta | Para quê |
|
|
203
203
|
|---|---|
|
|
204
|
-
| `captain_call_agents_list` | lista os agentes de ligação e `meta.dial_inboxes` (caixas que podem ligar) |
|
|
204
|
+
| `captain_call_agents_list` | lista os agentes de ligação e `meta.dial_inboxes` (caixas que podem ligar). É daqui que sai o `aiCallAgentId` do bloco "Ligar com IA" — **nunca** o id de um agente de texto |
|
|
205
205
|
| `captain_call_agents_create` / `_update` / `_duplicate` / `_destroy` | cadastro |
|
|
206
206
|
| `captain_call_test_phones_list` / `_create` / `_destroy` | números autorizados a receber ligação de teste |
|
|
207
207
|
| `captain_call_agents_test_call` | **liga de verdade** para um número de teste cadastrado |
|
|
@@ -258,9 +258,13 @@ teto de 1380**).
|
|
|
258
258
|
|
|
259
259
|
(O exemplo acima soma exatamente 1380: 30 + 240 + 1110.)
|
|
260
260
|
|
|
261
|
-
Dispara quando o CLIENTE fica inativo após resposta da IA.
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
Dispara quando o CLIENTE fica inativo após resposta da IA. Passo SEM ferramenta marcada: o motor de
|
|
262
|
+
follow-up só redige a mensagem de retomada. Desde 24/10, o texto de cada passo (até 2.000 caracteres) aceita
|
|
263
|
+
a mesma menção de ferramenta do cenário, `[Nome](tool://slug)` (nativa = id, personalizada = slug, fluxo =
|
|
264
|
+
`flow_<id>`): com menção a uma ferramenta que o agente pode usar e janela de 24h aberta, o passo roda um
|
|
265
|
+
turno completo da IA só com as ferramentas marcadas (+ as de leitura). Transferir/encerrar só valem se
|
|
266
|
+
`handoff`/`resolve_conversation` estiverem marcados no passo. `paused=true` no assistente corta os
|
|
267
|
+
follow-ups também.
|
|
264
268
|
|
|
265
269
|
### "A IA nunca faz o follow-up" — o conserto é de 29/07, NÃO de 24/07
|
|
266
270
|
|
|
@@ -265,9 +265,12 @@ categoria: 15/página (kanban: primeiros 15, sem paginação).
|
|
|
265
265
|
lista/show pesadas). Anexos de mensagem (data_url/download_url) NUNCA são podados.
|
|
266
266
|
- **Segredos:** chaves de credencial (api_key, tokens, senhas) saem SEMPRE como `[REDACTED]` —
|
|
267
267
|
sem exceção, nem com full_response. Precisa de um token? Painel, não robô.
|
|
268
|
-
- **Paginação:** os DOIS conectores
|
|
269
|
-
total_count,has_more}` — pagine até `has_more=false`. (No
|
|
270
|
-
do shape original.)
|
|
268
|
+
- **Paginação:** nas listas que paginam por página, os DOIS conectores informam
|
|
269
|
+
`pagination.{current_page,total_pages,total_count,has_more}` — pagine até `has_more=false`. (No
|
|
270
|
+
remoto o bloco é ADICIONADO ao lado do shape original.) Lista que NÃO pagina por página vem SEM
|
|
271
|
+
`pagination` e com o `meta` do servidor intacto: mensagens de uma conversa (volte com `before_id` =
|
|
272
|
+
id da mais antiga recebida) e agentes de ligação (lista inteira; `meta.dial_inboxes` = caixas que
|
|
273
|
+
ligam). Ausência do bloco NÃO quer dizer "acabou" nas mensagens.
|
|
271
274
|
- **Corte:** resposta acima do teto é enxugada por ITENS INTEIROS (aviso `[LISTA ENXUGADA...]`
|
|
272
275
|
com contagem exibida/total) — o JSON nunca vem quebrado no meio.
|
|
273
276
|
|
|
@@ -765,6 +765,13 @@ mensagem elas são bloqueadas por segurança); aqui resolvem no `apiUrl`, `apiHe
|
|
|
765
765
|
NÃO existe `.payload`/`.response` (`{{api_response.payload.x}}` resolve vazio). O status fica em
|
|
766
766
|
`{{api_response_status}}`. Se a resposta não for JSON, só `{{api_response}}` inteiro funciona.
|
|
767
767
|
|
|
768
|
+
**Listas na resposta:** item de lista pelo índice com PONTO — `{{api_response.data.0.id}}`,
|
|
769
|
+
`{{api_response.data.0.itens.1.nome}}` — funciona em qualquer versão. Tamanho da lista com FILTRO:
|
|
770
|
+
`{{api_response.data | size}}`. Colchete (`{{api_response.data[0].id}}`) e `.size` sem filtro
|
|
771
|
+
(`{{api_response.data.size}}`) só funcionam depois da correção de 30/10/2026 estar no ar; antes disso saem
|
|
772
|
+
VAZIOS sem erro (a prévia da tela mostra o valor e a execução real não). Prefira sempre o ponto e o `| size`.
|
|
773
|
+
Posição que não existe sai vazia.
|
|
774
|
+
|
|
768
775
|
**Handles que SAEM:** `success`, `error`.
|
|
769
776
|
|
|
770
777
|
### 2.7 `ai`
|
|
@@ -1172,8 +1179,12 @@ pela linha de ligacao do WhatsApp (LionCalls).
|
|
|
1172
1179
|
"data": { "aiCallAgentId": 4, "aiCallInboxId": 82 } }
|
|
1173
1180
|
```
|
|
1174
1181
|
|
|
1175
|
-
- `aiCallAgentId`: id de `lionchat_captain_call_agents_list`. O que a IA fala, a
|
|
1176
|
-
vem do agente (`max_duration_seconds`, 30-600 s; no tempo o motor desliga sozinho).
|
|
1182
|
+
- `aiCallAgentId`: id de um **agente de LIGACAO**, vindo de `lionchat_captain_call_agents_list`. O que a IA fala, a
|
|
1183
|
+
voz e o **tempo maximo** da ligacao vem do agente (`max_duration_seconds`, 30-600 s; no tempo o motor desliga sozinho).
|
|
1184
|
+
**NUNCA** use o id de um agente de TEXTO (`lionchat_captain_assistants_*`): sao cadastros diferentes, e o agente de
|
|
1185
|
+
ligacao so APONTA para um de texto em `captain_assistant_id`. Se `captain_call_agents_list` nao estiver entre as
|
|
1186
|
+
suas ferramentas, **pesquise pelo nome** antes de concluir que nao existe. Agente de ligacao que ja existe na conta
|
|
1187
|
+
**nao se recria** — use o id que a lista devolve.
|
|
1177
1188
|
- `aiCallInboxId`: id de `meta.dial_inboxes` da mesma lista (caixa com a ligacao ligada).
|
|
1178
1189
|
- Saidas: `answered` (atendeu), `no_answer` (nao atendeu/recusou), `error` (nao deu pra ligar; motivo no historico).
|
|
1179
1190
|
`answered`/`no_answer` sem edge = o flow termina; `error` sem edge = execucao "Falhou".
|
|
@@ -1182,6 +1193,9 @@ pela linha de ligacao do WhatsApp (LionCalls).
|
|
|
1182
1193
|
- Nao confere horario (use `condition` antes). Linha ocupada: espera a vez por ate 2 h (a IA sempre deixa uma vaga
|
|
1183
1194
|
para a equipe).
|
|
1184
1195
|
- **Proibido** em flow `action`, em flow de grupo e em `ai_tool` (o save recusa). Id de outra conta tambem e recusado.
|
|
1196
|
+
- O save tambem recusa agente ou caixa **escolhidos ou trocados** que nao existem nesta conta ("ai_call block uses a
|
|
1197
|
+
call agent that does not exist in this account" / "...an inbox without a calling line..."). Agente apagado ou
|
|
1198
|
+
caixa excluida DEPOIS nao travam o save — falham na execucao.
|
|
1185
1199
|
|
|
1186
1200
|
**Receita — a IA de atendimento pede a ligacao:** etiqueta `ligar`; o cenario manda por a etiqueta quando o cliente
|
|
1187
1201
|
pede para falar por telefone; flow `conversation` com gatilho `label_added` (`label_names: ["ligar"]`) -> action
|
|
@@ -468,6 +468,15 @@ caixa oficial → `whatsapp_calls`; telefone/ramal → Zenvia (softphone) ou VTC
|
|
|
468
468
|
WhatsApp Calling (Cloud) fica fora, em `whatsapp_calls_*`. Ligações antigas do **Wavoip** (integração
|
|
469
469
|
encerrada em 30/07/2026) continuam aparecendo nesse histórico, com `provider: "wavoip"`.
|
|
470
470
|
|
|
471
|
+
**Agente de Ligação com IA pelo TELEFONE (ramal VTCall, 30/10/2026).** O Agente de Ligação
|
|
472
|
+
(`captain_call_agents_*`) é a IA de voz. Por padrão ela liga pelo WhatsApp; se o agente tiver um
|
|
473
|
+
**ramal VTCall** configurado (`sip_ramal` + `sip_server`, com `sip_port` e `max_concurrent_calls`),
|
|
474
|
+
ela passa a **ligar por TELEFONE** por esse ramal, e a conversa de cada ligação nasce na caixa
|
|
475
|
+
`new_conversation_inbox_id`. Os campos do ramal vão no `create`/`update` do agente; **a senha do ramal
|
|
476
|
+
(`sip_password`) NUNCA entra pelo MCP — só pela tela do painel** (o MCP só lê `has_sip_password`
|
|
477
|
+
true/false). `captain_call_agents_ramal_status` lê no motor se o ramal conectou (`comprovado`),
|
|
478
|
+
foi recusado (`senha_recusada`) ou ainda está registrando (`aguardando_teste`).
|
|
479
|
+
|
|
471
480
|
**Wavoip — INTEGRAÇÃO REMOVIDA (12/08/2026).** O vínculo com a Wavoip acabou; o último uso real foi
|
|
472
481
|
em 30/07/2026. Saíram do produto: a aba "Ligação WP" da caixa, o discador, o Super Admin, as rotas,
|
|
473
482
|
os webhooks, as tarefas automáticas e a tabela. As 8 tools `wavoip_*` já haviam sido removidas do MCP
|
|
@@ -469,8 +469,9 @@ acesso a uma conversa solta vem de estar atribuído ao card dela.
|
|
|
469
469
|
|
|
470
470
|
## Funil arquivado vs ativo
|
|
471
471
|
|
|
472
|
-
|
|
473
|
-
|
|
472
|
+
Arquivar e `active = false` são a MESMA coisa (`funnels_archive` grava `active: false`; `funnels_unarchive`
|
|
473
|
+
volta para `true`). Não existe campo `archived` separado. O funil arquivado some da tela principal e os cards
|
|
474
|
+
continuam guardados.
|
|
474
475
|
|
|
475
476
|
Use cases:
|
|
476
477
|
- Arquivar funis antigos no fim do ano
|
|
@@ -572,7 +573,7 @@ PUT /api/v1/accounts/43/funnels/43
|
|
|
572
573
|
|
|
573
574
|
**Regras críticas (gravar diferente disso = automação perdida ou morta):**
|
|
574
575
|
|
|
575
|
-
- `trigger_value` vazio
|
|
576
|
+
- `trigger_value` vazio → a UI DESCARTA a automação no próximo "Salvar" do usuário. `enabled: false` é estado válido desde 20/10: a regra desligada que já existe fica guardada, desligada (antes a tela a descartava).
|
|
576
577
|
- Nomes de trigger/action fora das tabelas acima (ex.: `status_changed`, `duplicate_to_funnel`, `send_message`, `set_priority` — NÃO existem) são salvos mas NUNCA disparam, sem erro nenhum.
|
|
577
578
|
- `id` no formato `automation_<timestamp_ms>` — a UI usa pra editar/remover a automação.
|
|
578
579
|
- Trigger `card_created` + ação `duplicate_item` funciona (backend tem anti-loop), mas a UI esconde essa combinação.
|
|
@@ -615,11 +616,11 @@ Use para: "ao ganhar um card de Vendas → criar automaticamente em Pós-Venda n
|
|
|
615
616
|
|
|
616
617
|
`AutomationRule` é o motor geral da conta (mensagens, contatos, conversas, e também eventos Kanban). Bem mais genérico, com sistema completo de condições/ações.
|
|
617
618
|
|
|
618
|
-
Eventos Kanban: `kanban_item_created
|
|
619
|
+
Eventos Kanban: `kanban_item_created` e `kanban_item_stage_changed` (não existe `kanban_item_moved`).
|
|
619
620
|
|
|
620
621
|
```json
|
|
621
622
|
{
|
|
622
|
-
"event_name": "
|
|
623
|
+
"event_name": "kanban_item_stage_changed",
|
|
623
624
|
"conditions": [
|
|
624
625
|
{"attribute_key": "funnel_stage", "operator": "equal_to", "value": "ganho"}
|
|
625
626
|
],
|
|
@@ -775,8 +776,9 @@ A planilha do financeiro (ou de outro sistema) entra e:
|
|
|
775
776
|
|
|
776
777
|
| Situação do card no funil | O que acontece |
|
|
777
778
|
|---|---|
|
|
778
|
-
| Card **aberto** (mais antigo, se houver vários) | Grava o valor e marca **ganho com a DATA DA VENDA** |
|
|
779
|
-
| Card **já ganho**
|
|
779
|
+
| Card **aberto** (mais antigo, se houver vários) | Grava o valor (e os produtos, se vierem) e marca **ganho com a DATA DA VENDA** |
|
|
780
|
+
| Card **já ganho** com o mesmo valor e a mesma data | É a mesma venda: **nada muda** (`ja_ganho`) |
|
|
781
|
+
| Card **já ganho** com outro valor ou outra data | Venda nova: nasce **outro card ganho** (`nova_venda`, só se `criar_sem_card: true`) |
|
|
780
782
|
| Card marcado como **perdido** | **Não é tocado** — vai pra conferência humana |
|
|
781
783
|
| **Sem card nenhum** | Cria card já ganho (só se `criar_sem_card: true`) |
|
|
782
784
|
| Linha com telefone sem DDI, valor ilegível ou data no futuro | Vira **erro da linha**, com motivo |
|
|
@@ -803,6 +805,11 @@ arquivo, aponta as colunas e ainda oferece uma planilha de exemplo pra baixar.
|
|
|
803
805
|
| `email` | não | |
|
|
804
806
|
| `agent` | não | Nome ou e-mail do vendedor |
|
|
805
807
|
| `order_id` | não | Número do pedido, guardado no card |
|
|
808
|
+
| `co_participant` | não | Nome ou e-mail de quem ajudou na venda |
|
|
809
|
+
| `products` | não | TEXTO `"Plano Pro:1200; Instalação:300"` (até 20). Troca os produtos do card e o valor vira a soma; com ele, `value` pode ir vazio. Lista ou objeto é recusado |
|
|
810
|
+
|
|
811
|
+
Card **ganho nunca é editado** (regra de 30/10/2026). Produto que não está no catálogo da conta entra só no
|
|
812
|
+
card (aviso na conferência). A conferência devolve, por linha, `produtos` e `avisos`.
|
|
806
813
|
|
|
807
814
|
### O que você PRECISA saber antes de aplicar
|
|
808
815
|
|
|
@@ -813,8 +820,8 @@ arquivo, aponta as colunas e ainda oferece uma planilha de exemplo pra baixar.
|
|
|
813
820
|
- **A conciliação não dispara conversão por conta própria.** Quem dispara é o caminho normal do ganho
|
|
814
821
|
(Meta/GA4/Google Ads), e só nos funis com o evento de Ganho configurado. Por isso rodar a mesma
|
|
815
822
|
planilha duas vezes não reenvia conversão: o identificador do evento de ganho é estável.
|
|
816
|
-
- **Rodar a mesma planilha duas vezes é seguro**:
|
|
817
|
-
|
|
823
|
+
- **Rodar a mesma planilha duas vezes é seguro**: a venda já registrada (mesmo valor e mesma data) volta
|
|
824
|
+
como `ja_ganho`/`sem_mudanca` e nada é gravado.
|
|
818
825
|
- **`criar_sem_card: true` abre uma CONVERSA nova por card criado**, e conversa nova acorda o que a conta
|
|
819
826
|
tiver em "Conversa criada" (automação, fluxo, notificação). Avise a pessoa antes de ligar isso numa
|
|
820
827
|
planilha grande.
|
package/dist/tools.js
CHANGED
|
@@ -359,7 +359,7 @@ function registerListCategoriesTool(server, allEndpoints) {
|
|
|
359
359
|
// Helps LLMs build correct flow_data without hitting trial-and-error on
|
|
360
360
|
// node types, action keys, source handles, etc.
|
|
361
361
|
function registerFlowsSchemaReferenceTool(server) {
|
|
362
|
-
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-10-
|
|
362
|
+
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-10-30)
|
|
363
363
|
|
|
364
364
|
flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
365
365
|
|
|
@@ -533,17 +533,28 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
533
533
|
NAO dispara — de proposito nao cai pra conversa do contrato, senao o lembrete da testemunha iria
|
|
534
534
|
pro WhatsApp do titular com as variaveis da outra pessoa.
|
|
535
535
|
Item: {key:'signature_delivered', config:{document_ids:[]}}
|
|
536
|
+
signature_awaiting_approval / signature_proofs_approved / signature_proofs_rejected (NOVOS
|
|
537
|
+
2026-10-29 — DOCUMENTOS PEDIDOS na assinatura): os documentos esperam a conferencia da equipe (no
|
|
538
|
+
fechamento, com participante nulo, roda na conversa do CONTRATO; e de novo A CADA reenvio de
|
|
539
|
+
documento, na conversa de quem reenviou) / a equipe aprovou os documentos de uma pessoa / a equipe
|
|
540
|
+
reprovou (por pessoa, na conversa dela; a mensagem de "mande de novo" ja sai sozinha pela secao
|
|
541
|
+
Comunicacao do modelo — se o flow tambem escrever, a pessoa recebe as duas). Por pessoa sem conversa
|
|
542
|
+
(so e-mail) NAO dispara. Item: {key:'signature_proofs_rejected', config:{document_ids:[]}}
|
|
536
543
|
— document_ids = ids de MODELO de contrato (STRINGS; vazio = qualquer modelo). A sessao nasce na
|
|
537
544
|
conversa da PESSOA do acontecimento (a testemunha tem a dela); contrato so por e-mail (sem conversa)
|
|
538
545
|
nao dispara; o flow precisa estar ligado a caixa da conversa (ou a nenhuma). Sessao ativa do MESMO
|
|
539
546
|
flow na conversa NAO e atropelada (pulo visivel 'session_already_active'). Idempotente por 24h.
|
|
540
547
|
SO flow individual. Variaveis {{contrato.*}}: contrato.id, contrato.evento (sent|opened|signed|
|
|
541
|
-
sealed|refused|expired), contrato.titulo, contrato.modelo, contrato.modelo_id, contrato.status,
|
|
548
|
+
sealed|refused|expired|awaiting_approval|proofs_approved|proofs_rejected), contrato.titulo, contrato.modelo, contrato.modelo_id, contrato.status,
|
|
542
549
|
contrato.enviado_em, contrato.prazo, contrato.validade_dias, contrato.assinado_por_todos (sim|nao),
|
|
543
|
-
contrato.conversa_id
|
|
550
|
+
contrato.conversa_id, contrato.documentos_situacao (sem_documentos|pendentes|esperando_aprovacao|
|
|
551
|
+
aprovados|reprovados), contrato.pessoas_com_documento_reprovado; quem agiu: contrato.assinante.nome / .papel (Assinante|Testemunha|Remetente) /
|
|
544
552
|
.papel_chave (signer|witness|sender) / .email / .telefone / .cpf / .status / .assinou_em /
|
|
545
553
|
.abriu_em / .link (endereco de assinatura; vazio pra quem assina no painel) / .ip / .dispositivo /
|
|
546
|
-
.localizacao / .foto_documento (sim|nao) / .pelo_painel (sim|nao)
|
|
554
|
+
.localizacao / .foto_documento (sim|nao) / .pelo_painel (sim|nao) / .documentos_pedidos /
|
|
555
|
+
.documentos_enviados (nomes) / .documentos_situacao (sem_documentos|faltando|enviados|
|
|
556
|
+
esperando_aprovacao|aprovados|reprovados) / .motivo_da_reprovacao / .documento_reenviado /
|
|
557
|
+
.aviso_da_ia (sim|nao); valores FIXOS de proposito (para comparar no bloco Condicao). Lista: contrato.participantes
|
|
547
558
|
(array de {nome, papel, status, assinou_em}). trigger.type = a chave do gatilho.
|
|
548
559
|
CONFLITO (flow_trigger_conflict): e por CONTA, nao por caixa — dois flows ATIVOS com o mesmo
|
|
549
560
|
booking_* colidem quando os tipos se cruzam E os agentes se cruzam (lista vazia = todos, entao dois
|
|
@@ -670,8 +681,8 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
670
681
|
ja preenchido NAO e sobrescrito (imutavel). saveTo contact_attr/conversation_attr: se o atributo tiver tipo
|
|
671
682
|
(number/currency/percent/date/list ou text+regex), a resposta tambem e validada/formatada por esse tipo.
|
|
672
683
|
saveTo "attribute"/"contact_attribute" NAO EXISTEM — nao salvam nada.
|
|
673
|
-
TIMEOUT DISPARA DE VERDADE (corrigido 2026-06-09): waitTime estourou -> handle "timeout"
|
|
674
|
-
|
|
684
|
+
TIMEOUT DISPARA DE VERDADE (corrigido 2026-06-09): waitTime estourou -> handle "timeout" (tambem
|
|
685
|
+
no modo options; nao existe handle por opcao). Sempre ligue um edge no timeout.
|
|
675
686
|
FALLBACK DE SAIDA (regra de 20/08/2026, substitui a de 15/08): fio COM rotulo so e seguido por quem
|
|
676
687
|
CASA o rotulo. O "ultimo recurso" do avanco segue EXCLUSIVAMENTE a ligacao SEM sourceHandle (fluxo
|
|
677
688
|
legado de bloco simples) — nunca mais "pega o primeiro fio que existir": resposta A num menu com so a
|
|
@@ -906,8 +917,8 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
906
917
|
vaga futura fica verde "nasce as HH:MM:SS"). Quem agendou = o Fluxo (booking_source 'fluxo'); o historico do
|
|
907
918
|
card diz "Fluxo X criou uma tarefa ..." / "Fluxo X nao criou a tarefa: motivo".
|
|
908
919
|
Sistema (SO flow conversation e flow action): send_webhook({url,headers?,body?}), start_flow({flow_id}
|
|
909
|
-
— flow_id tem que ser de OUTRO flow: apontar pro proprio flow e aceito no save mas
|
|
910
|
-
|
|
920
|
+
— flow_id tem que ser de OUTRO flow: apontar pro proprio flow e aceito no save, mas na execucao
|
|
921
|
+
o passo fica com ERRO visivel no historico (self_reference) e o fluxo para ali.
|
|
911
922
|
CAIXA TEM QUE BATER [17/09/2026]: se o flow-alvo e do tipo conversation e NAO esta ligado a
|
|
912
923
|
caixa da conversa, a execucao e RECUSADA e o passo fica com ERRO no historico
|
|
913
924
|
(inbox_mismatch) — antes rodava no lugar errado em silencio. Flow-alvo do tipo 'action' e
|
|
@@ -962,6 +973,10 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
962
973
|
-> 401). Secret so resolve dentro do node api (apiUrl/apiHeaders/apiBody).
|
|
963
974
|
Ler a resposta adiante: {{apiResponseVar.campo}} navega por ponto (default var api_response, ex
|
|
964
975
|
{{api_response.user.name}}); NAO existe .payload/.response; status em {{api_response_status}}.
|
|
976
|
+
LISTA na resposta: item pelo indice com PONTO ({{api_response.data.0.id}}) e tamanho com FILTRO
|
|
977
|
+
({{api_response.data | size}}) — funcionam em qualquer versao. Colchete ({{x.data[0].id}}) e .size sem
|
|
978
|
+
filtro so funcionam depois da correcao de 30/10/2026 estar no ar; antes saem VAZIOS sem erro (a previa
|
|
979
|
+
da tela mostra o valor e a execucao nao). Prefira ponto e | size.
|
|
965
980
|
Handles: "success", "error"
|
|
966
981
|
|
|
967
982
|
▸ ai
|
|
@@ -1037,6 +1052,9 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
1037
1052
|
▸ ai_call ("Ligar com IA", 17/10/2026 — so em conta com ai_calling + lioncalls_calling)
|
|
1038
1053
|
A IA liga para o TELEFONE DO CONTATO da conversa do fluxo pela linha de ligacao do WhatsApp (LionCalls).
|
|
1039
1054
|
data: { aiCallAgentId: <id de lionchat_captain_call_agents_list>, aiCallInboxId: <id de meta.dial_inboxes> }
|
|
1055
|
+
aiCallAgentId e de um AGENTE DE LIGACAO. NUNCA use o id de um agente de TEXTO (lionchat_captain_assistants_*): o
|
|
1056
|
+
agente de ligacao so aponta para um de texto em captain_assistant_id. Se captain_call_agents_list nao estiver
|
|
1057
|
+
entre as suas ferramentas, PESQUISE pelo nome antes de dizer que nao existe; agente que ja existe nao se recria.
|
|
1040
1058
|
(aiCallAgentName/aiCallInboxName sao opcionais, so pro resumo do card). O que a IA fala, a voz e o TEMPO
|
|
1041
1059
|
MAXIMO da ligacao vem do agente de ligacao (max_duration_seconds, 30-600 s): no tempo o motor desliga sozinho.
|
|
1042
1060
|
Handles: "answered" (a pessoa atendeu), "no_answer" (nao atendeu ou recusou), "error" (nao deu pra ligar:
|
|
@@ -1047,7 +1065,9 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
1047
1065
|
condition antes. A IA so liga se sobrar uma vaga na linha para uma pessoa; senao espera a vez (fila por
|
|
1048
1066
|
ordem de chegada, ate 2 h). O card da ligacao vai para a conversa do lead na caixa da linha.
|
|
1049
1067
|
PROIBIDO em flow 'action', em flow de GRUPO e em ai_tool (o save recusa); id de agente/caixa de OUTRA conta
|
|
1050
|
-
tambem e recusado
|
|
1068
|
+
tambem e recusado, e agente ou caixa ESCOLHIDOS/TROCADOS que nao existem nesta conta tambem ("ai_call block
|
|
1069
|
+
uses a call agent that does not exist in this account"). Agente apagado ou caixa excluida DEPOIS NAO travam o
|
|
1070
|
+
save — falham na execucao.
|
|
1051
1071
|
Receita "a IA de atendimento pede a ligacao" (sem ferramenta nova): cenario manda por a etiqueta 'ligar';
|
|
1052
1072
|
flow conversation com gatilho label_added 'ligar' -> action remove_conversation_label 'ligar' (LOGO depois
|
|
1053
1073
|
do start) -> ai_call.
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/endpoints.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"method": "PUT",
|
|
37
37
|
"path": "/api/v1/profile",
|
|
38
38
|
"title": "Atualizar Perfil",
|
|
39
|
-
"description": "Atualiza o perfil do usuário atual. Campos (nested em profile): name, email, display_name, avatar, message_signature, timezone, ui_settings, current_password, password. NÃO altera availability aqui.
|
|
39
|
+
"description": "Atualiza o perfil do usuário atual. Campos (nested em profile): name, email, display_name, avatar, message_signature, timezone, ui_settings, current_password, password. NÃO altera availability aqui. Esta ferramenta grava o PERFIL do usuário (/profile): NÃO grava o horário comercial da conta (working_hours) — isso se ajusta no painel.",
|
|
40
40
|
"category": "Conta",
|
|
41
41
|
"params": [
|
|
42
42
|
{
|
|
@@ -1987,7 +1987,7 @@
|
|
|
1987
1987
|
"method": "GET",
|
|
1988
1988
|
"path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/messages",
|
|
1989
1989
|
"title": "Listar Mensagens",
|
|
1990
|
-
"description": "Lista mensagens de uma conversa (mais
|
|
1990
|
+
"description": "Lista mensagens de uma conversa, da mais ANTIGA para a mais nova (a mais antiga recebida e a PRIMEIRA do payload). Sem parâmetro vêm as ÚLTIMAS 20 mensagens. Para as anteriores use before_id = id da mais antiga recebida (vem 20 por vez); after_id e around_id também existem. NÃO há paginação por página: o servidor ignora page. Retorna meta (etiquetas, contato e responsável da conversa, SEM contadores) + payload (array de mensagem). Cada mensagem traz original_sent_at (20/10/2026): unix s da hora em que foi ENVIADA quando chegou atrasada mais de 2 min (WhatsApp oficial e QR Code, mensagens de 20/10/2026 em diante); null no resto. created_at continua sendo a hora de CHEGADA e a ordem da lista nao muda.",
|
|
1991
1991
|
"category": "Mensagens",
|
|
1992
1992
|
"params": [
|
|
1993
1993
|
{
|
|
@@ -2002,17 +2002,34 @@
|
|
|
2002
2002
|
"type": "integer",
|
|
2003
2003
|
"location": "query",
|
|
2004
2004
|
"required": false,
|
|
2005
|
-
"description": "
|
|
2005
|
+
"description": "Sem efeito nesta lista (o servidor pagina por before_id/after_id/around_id). Mantido por compatibilidade."
|
|
2006
2006
|
},
|
|
2007
2007
|
{
|
|
2008
2008
|
"name": "before_id",
|
|
2009
2009
|
"type": "integer",
|
|
2010
2010
|
"location": "query",
|
|
2011
2011
|
"required": false,
|
|
2012
|
-
"description": "
|
|
2012
|
+
"description": "Traz as 20 mensagens ANTERIORES a este id (use o id da mais antiga recebida para ir voltando).",
|
|
2013
|
+
"query_name": "before"
|
|
2014
|
+
},
|
|
2015
|
+
{
|
|
2016
|
+
"name": "after_id",
|
|
2017
|
+
"type": "integer",
|
|
2018
|
+
"location": "query",
|
|
2019
|
+
"required": false,
|
|
2020
|
+
"query_name": "after",
|
|
2021
|
+
"description": "Traz até 100 mensagens POSTERIORES a este id."
|
|
2022
|
+
},
|
|
2023
|
+
{
|
|
2024
|
+
"name": "around_id",
|
|
2025
|
+
"type": "integer",
|
|
2026
|
+
"location": "query",
|
|
2027
|
+
"required": false,
|
|
2028
|
+
"query_name": "around",
|
|
2029
|
+
"description": "Traz ~50 mensagens ao redor deste id (útil para abrir uma mensagem achada na busca)."
|
|
2013
2030
|
}
|
|
2014
2031
|
],
|
|
2015
|
-
"returns": "Objeto com `meta` + `payload`. `payload` = array de mensagens, das mais antigas para as mais novas. `meta` NAO tem contadores: traz `labels` (etiquetas da conversa), `additional_attributes`, `contact`, `assignee`, `agent_last_seen_at` e `assignee_last_seen_at`. Sem parametro vem as ULTIMAS 20 mensagens; para paginar use `
|
|
2032
|
+
"returns": "Objeto com `meta` + `payload`. `payload` = array de mensagens, das mais antigas para as mais novas. `meta` NAO tem contadores: traz `labels` (etiquetas da conversa), `additional_attributes`, `contact`, `assignee`, `agent_last_seen_at` e `assignee_last_seen_at`. Sem parametro vem as ULTIMAS 20 mensagens; para paginar use `before_id` (20 anteriores ao id), `after_id` (ate 100 posteriores) ou `around_id` (~50 ao redor de um id). `page` nao tem efeito.",
|
|
2016
2033
|
"common_use_cases": [
|
|
2017
2034
|
"Dashboard: contar/exibir mensagens",
|
|
2018
2035
|
"Buscar com filtros antes de outra operação",
|
|
@@ -2746,7 +2763,7 @@
|
|
|
2746
2763
|
"type": "object",
|
|
2747
2764
|
"location": "body",
|
|
2748
2765
|
"required": false,
|
|
2749
|
-
"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
|
|
2766
|
+
"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. "
|
|
2750
2767
|
}
|
|
2751
2768
|
],
|
|
2752
2769
|
"returns": "funil atualizado Inclui resolved_agents: [{id, name, avatar_url, via: 'agent'|'team'}] — quem efetivamente participa do funil (2026-07-21).",
|
|
@@ -17351,7 +17368,7 @@
|
|
|
17351
17368
|
"method": "GET",
|
|
17352
17369
|
"path": "/api/v1/accounts/{account_id}/google_calendar/connect",
|
|
17353
17370
|
"title": "Conectar Google Calendar",
|
|
17354
|
-
"description": "Inicia o fluxo de conexao com Google Calendar. Lista configs Google Calendar paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de config Google Calendar). [07/08] SO ADMINISTRADOR conecta (usuario nao-admin recebe 403) e
|
|
17371
|
+
"description": "Inicia o fluxo de conexao com Google Calendar. Lista configs Google Calendar paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de config Google Calendar). [07/08] SO ADMINISTRADOR conecta (usuario nao-admin recebe 403) e UMA conta Google por AGENDA (desde 13/09; conta com varias agendas pode ter uma conexao por agenda, informe agenda_id) — se a agenda ja tiver a conexao de outro admin, a nova e recusada (409); desconecte a atual antes.",
|
|
17355
17372
|
"category": "Google Calendar",
|
|
17356
17373
|
"params": [
|
|
17357
17374
|
{
|
|
@@ -21988,7 +22005,7 @@
|
|
|
21988
22005
|
"method": "POST",
|
|
21989
22006
|
"path": "/api/v1/accounts/{account_id}/inbox_members",
|
|
21990
22007
|
"title": "Definir Membros da Inbox",
|
|
21991
|
-
"description": "
|
|
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.",
|
|
21992
22009
|
"category": "Membros de Inbox",
|
|
21993
22010
|
"params": [
|
|
21994
22011
|
{
|
|
@@ -22010,7 +22027,7 @@
|
|
|
22010
22027
|
"type": "array",
|
|
22011
22028
|
"location": "body",
|
|
22012
22029
|
"required": false,
|
|
22013
|
-
"description": "
|
|
22030
|
+
"description": "Ignorado nesta ferramenta. Supervisores so por inbox_members_update."
|
|
22014
22031
|
}
|
|
22015
22032
|
],
|
|
22016
22033
|
"returns": "lista de agentes atualizada",
|
|
@@ -23235,7 +23252,7 @@
|
|
|
23235
23252
|
"method": "POST",
|
|
23236
23253
|
"path": "/api/v1/accounts/{account_id}/campaigns",
|
|
23237
23254
|
"title": "Criar Campanha",
|
|
23238
|
-
"description": "Cria campanha. O TIPO vem da inbox: WhatsApp oficial (Cloud, exige template em template_params), WhatsApp QR Code/WAHA (texto livre + variações anti-bloqueio), SMS/Twilio, ou Website (ongoing — popup de chat por URL/tempo). One-off exige audience. ENVIO EM MASSA: SEMPRE rode estimate_audience com o MESMO audience+audience_mode antes e CONFIRME com o usuário. 422 se inbox incompatível
|
|
23255
|
+
"description": "Cria campanha. O TIPO vem da inbox: WhatsApp oficial (Cloud, exige template em template_params), WhatsApp QR Code/WAHA (texto livre + variações anti-bloqueio), SMS/Twilio, ou Website (ongoing — popup de chat por URL/tempo). One-off exige audience. ENVIO EM MASSA: SEMPRE rode estimate_audience com o MESMO audience+audience_mode antes e CONFIRME com o usuário. 422 se inbox incompatível ou ConversationAttribute sem key/value. ATENÇÃO: audience vazio NÃO dá 422 — a campanha nasce e não manda para ninguém; confira antes com estimate_audience. COMPORTAMENTO NOVO 23/07: as ações pós-envio da campanha (tag/atributo/prioridade/atendente) aplicam SÓ quando a Meta confirma a ENTREGA (delivered/read), nunca no aceite — mensagem que falha ou é barrada por spam NÃO recebe as ações (corrige exclusão furada no disparo seguinte). Efeito visível: a tag/atributo pode levar de segundos a minutos pra aparecer após o disparo. CAMPANHA DE FLUXO (NOVO 28/07/2026): passando `flow_id` a campanha dispara um FLUXO do FlowBuilder para cada pessoa do publico, cadenciado, em vez de mandar uma mensagem — vale nas duas familias de WhatsApp (oficial e QR Code). Nesse modo `message` e ignorado e o ritmo vai em template_params (delay_min/delay_max/daily_cap). Acompanhe com lionchat_campaigns_flow_report e interrompa com lionchat_campaigns_stop_flow.",
|
|
23239
23256
|
"category": "Campanhas",
|
|
23240
23257
|
"params": [
|
|
23241
23258
|
{
|
|
@@ -29089,7 +29106,7 @@
|
|
|
29089
29106
|
"method": "POST",
|
|
29090
29107
|
"path": "/api/v1/accounts/{account_id}/kanban_items/sales_reconciliation/preview",
|
|
29091
29108
|
"title": "Conferir planilha de vendas",
|
|
29092
|
-
"description": "CONFERE uma planilha de vendas contra os cards de um funil e NAO GRAVA NADA. Devolve, linha a linha, o que aconteceria: completar um card aberto,
|
|
29109
|
+
"description": "CONFERE uma planilha de vendas contra os cards de um funil e NAO GRAVA NADA. Devolve, linha a linha, o que aconteceria: completar um card aberto, ja registrada (card ganho igual), venda nova (outro card ganho), criar card pra quem nao tem, conferir a mao (card marcado como perdido) ou erro da linha. Regra por pessoa no funil: card ABERTO (o mais antigo) e completado e marcado ganho com a DATA DA VENDA; sem products, card com 1 produto recebe o valor nesse produto e card com 2 ou mais produtos NAO muda de valor (aviso). Card GANHO nunca e editado: ganho com o MESMO valor e a MESMA data = a mesma venda, nada muda (ja_ganho); senao e uma venda nova e nasce OUTRO card ja ganho (nova_venda, so com criar_sem_card: true). So card perdido = conferir a mao. Ninguem com card = cria (so com criar_sem_card: true). SEMPRE chame isto antes de `lionchat_kanban_sales_reconciliation_apply` e mostre o resumo pra pessoa confirmar. O MCP NAO sobe arquivo: mande as linhas da planilha em `rows` (lista de objetos). Se a pessoa anexar uma planilha na conversa, LEIA o arquivo e monte as linhas voce mesmo. Quem prefere a tela usa Kanban > botao azul + > Importar vendas (o mesmo menu tem 'Baixar modelo de vendas', planilha de exemplo em Excel). Cada item aceita: phone (obrigatorio, COM codigo do pais, ex.: 5511999887766), value (valor da venda; aceita 1500, '1500,00', 'R$ 1.500,00'; obrigatorio, MENOS quando vier products), sale_date (obrigatorio, data da VENDA; aceita '01/08/2026' ou '2026-08-01'), name, email, agent (nome ou e-mail do vendedor), order_id, co_participant e products (30/10). products e TEXTO no formato 'Nome:valor; Nome:valor' (ex.: 'Plano Pro:1200; Instalação:300'), ate 20 por linha; o nome e casado com o catalogo de produtos da conta (sem diferenca de maiuscula/acento) e o que nao esta no catalogo entra SO no card, como produto avulso (a conferencia avisa). Com products, os produtos do card sao TROCADOS pelos da planilha e o valor vira a SOMA; se value tambem vier e nao bater, valem os produtos (aviso). Lista ou objeto em products = erro da linha (mande texto).",
|
|
29093
29110
|
"category": "Itens",
|
|
29094
29111
|
"params": [
|
|
29095
29112
|
{
|
|
@@ -29118,10 +29135,10 @@
|
|
|
29118
29135
|
"type": "array",
|
|
29119
29136
|
"location": "body",
|
|
29120
29137
|
"required": true,
|
|
29121
|
-
"description": "Linhas da planilha. Cada item aceita: phone (obrigatorio, COM codigo do pais, ex.: 5511999887766), value (
|
|
29138
|
+
"description": "Linhas da planilha. Cada item aceita: phone (obrigatorio, COM codigo do pais, ex.: 5511999887766), value (valor da venda; aceita 1500, '1500,00', 'R$ 1.500,00'; obrigatorio, MENOS quando vier products), sale_date (obrigatorio, data da VENDA; aceita '01/08/2026' ou '2026-08-01'), name, email, agent (nome ou e-mail do vendedor), order_id, co_participant e products (30/10). products e TEXTO no formato 'Nome:valor; Nome:valor' (ex.: 'Plano Pro:1200; Instalação:300'), ate 20 por linha; o nome e casado com o catalogo de produtos da conta (sem diferenca de maiuscula/acento) e o que nao esta no catalogo entra SO no card, como produto avulso (a conferencia avisa). Com products, os produtos do card sao TROCADOS pelos da planilha e o valor vira a SOMA; se value tambem vier e nao bater, valem os produtos (aviso). Lista ou objeto em products = erro da linha (mande texto)."
|
|
29122
29139
|
}
|
|
29123
29140
|
],
|
|
29124
|
-
"returns": "{ total, erros, conversoes, conversao_ligada, pos_venda, automacoes_de_ganho, responsavel, contagem: { completa, ja_ganho, cria, conferir, erro }, linhas: [...] } —
|
|
29141
|
+
"returns": "{ total, erros, conversoes, conversao_ligada, pos_venda, automacoes_de_ganho, responsavel, contagem: { completa, ja_ganho, nova_venda, cria, conferir, erro }, linhas: [...] } — cada linha traz tipo, valor final e, quando houver, produtos ([{nome, valor, do_catalogo}] = os produtos que o card vai ter) e avisos (produto fora do catalogo, nome repetido no catalogo, diferenca entre value e a soma dos produtos, card com varios produtos que nao muda de valor). Nada e gravado.",
|
|
29125
29142
|
"common_use_cases": [
|
|
29126
29143
|
"Conferir a planilha do financeiro antes de aplicar",
|
|
29127
29144
|
"Saber quantas vendas viram conversao e quantos cards de pos-venda nascem",
|
|
@@ -29138,7 +29155,7 @@
|
|
|
29138
29155
|
"method": "POST",
|
|
29139
29156
|
"path": "/api/v1/accounts/{account_id}/kanban_items/sales_reconciliation/apply",
|
|
29140
29157
|
"title": "Aplicar planilha de vendas",
|
|
29141
|
-
"description": "APLICA a planilha de vendas: grava o valor no card e marca o GANHO com a DATA DA VENDA (nao com a data de hoje), pra o relatorio de faturamento contar a venda no mes certo.
|
|
29158
|
+
"description": "APLICA a planilha de vendas: grava o valor (e os produtos, se vierem) no card e marca o GANHO com a DATA DA VENDA (nao com a data de hoje), pra o relatorio de faturamento contar a venda no mes certo. Regra por pessoa no funil: card ABERTO (o mais antigo) e completado e marcado ganho com a DATA DA VENDA; sem products, card com 1 produto recebe o valor nesse produto e card com 2 ou mais produtos NAO muda de valor (aviso). Card GANHO nunca e editado: ganho com o MESMO valor e a MESMA data = a mesma venda, nada muda (ja_ganho); senao e uma venda nova e nasce OUTRO card ja ganho (nova_venda, so com criar_sem_card: true). So card perdido = conferir a mao. Ninguem com card = cria (so com criar_sem_card: true). A gravacao segue EXATAMENTE a mesma regra da conferencia. Roda em segundo plano — acompanhe com `lionchat_kanban_sales_reconciliation_status`. Rodar a mesma planilha duas vezes nao dobra valor nem cria card repetido (a 2a rodada da 'ja registrada'). ATENCAO: `criar_sem_card: true` abre uma CONVERSA nova por card criado (inclusive na venda nova de quem ja ganhou), e conversa nova aciona o que a conta tiver em 'Conversa criada' (automacao, fluxo, notificacao) — avise a pessoa antes de ligar isso numa planilha grande. O MCP NAO sobe arquivo: mande as linhas da planilha em `rows` (lista de objetos). Se a pessoa anexar uma planilha na conversa, LEIA o arquivo e monte as linhas voce mesmo. Quem prefere a tela usa Kanban > botao azul + > Importar vendas. Cada item aceita: phone (obrigatorio, COM codigo do pais, ex.: 5511999887766), value (valor da venda; aceita 1500, '1500,00', 'R$ 1.500,00'; obrigatorio, MENOS quando vier products), sale_date (obrigatorio, data da VENDA; aceita '01/08/2026' ou '2026-08-01'), name, email, agent (nome ou e-mail do vendedor), order_id, co_participant e products (30/10). products e TEXTO no formato 'Nome:valor; Nome:valor' (ex.: 'Plano Pro:1200; Instalação:300'), ate 20 por linha; o nome e casado com o catalogo de produtos da conta (sem diferenca de maiuscula/acento) e o que nao esta no catalogo entra SO no card, como produto avulso (a conferencia avisa). Com products, os produtos do card sao TROCADOS pelos da planilha e o valor vira a SOMA; se value tambem vier e nao bater, valem os produtos (aviso). Lista ou objeto em products = erro da linha (mande texto).",
|
|
29142
29159
|
"category": "Itens",
|
|
29143
29160
|
"params": [
|
|
29144
29161
|
{
|
|
@@ -29167,7 +29184,7 @@
|
|
|
29167
29184
|
"type": "array",
|
|
29168
29185
|
"location": "body",
|
|
29169
29186
|
"required": true,
|
|
29170
|
-
"description": "Linhas da planilha. Cada item aceita: phone (obrigatorio, COM codigo do pais, ex.: 5511999887766), value (
|
|
29187
|
+
"description": "Linhas da planilha. Cada item aceita: phone (obrigatorio, COM codigo do pais, ex.: 5511999887766), value (valor da venda; aceita 1500, '1500,00', 'R$ 1.500,00'; obrigatorio, MENOS quando vier products), sale_date (obrigatorio, data da VENDA; aceita '01/08/2026' ou '2026-08-01'), name, email, agent (nome ou e-mail do vendedor), order_id, co_participant e products (30/10). products e TEXTO no formato 'Nome:valor; Nome:valor' (ex.: 'Plano Pro:1200; Instalação:300'), ate 20 por linha; o nome e casado com o catalogo de produtos da conta (sem diferenca de maiuscula/acento) e o que nao esta no catalogo entra SO no card, como produto avulso (a conferencia avisa). Com products, os produtos do card sao TROCADOS pelos da planilha e o valor vira a SOMA; se value tambem vier e nao bater, valem os produtos (aviso). Lista ou objeto em products = erro da linha (mande texto)."
|
|
29171
29188
|
},
|
|
29172
29189
|
{
|
|
29173
29190
|
"name": "criar_sem_card",
|
|
@@ -29218,7 +29235,7 @@
|
|
|
29218
29235
|
"description": "Codigo da rodada, devolvido pela aplicacao"
|
|
29219
29236
|
}
|
|
29220
29237
|
],
|
|
29221
|
-
"returns": "{ status, total, completados,
|
|
29238
|
+
"returns": "{ status, total, completados, criados, sem_mudanca, pulados, erros, co_participantes } — 'sem_mudanca' e a linha ja registrada (card ganho com o mesmo valor e a mesma data); 'criados' inclui a venda nova de quem ja tinha card ganho; 'pulados' e a linha que precisaria criar card com criar_sem_card desligado. Desde 30/10 nao existe mais 'valor_atualizado' (card ganho nunca e editado).",
|
|
29222
29239
|
"common_use_cases": [
|
|
29223
29240
|
"Saber se a planilha terminou de ser aplicada",
|
|
29224
29241
|
"Contar quantos cards foram completados e quantos foram criados"
|
|
@@ -30162,7 +30179,7 @@
|
|
|
30162
30179
|
"description": "Agente de LIGACAO (area \"Agentes de ligacao\", separada dos agentes de texto desde 24/09/2026). Nao ocupa vaga de IA do plano. Exige Admin ou cargo com captain_manage — EXCETO para quem edita fluxo (Admin ou flowbuilder_manage): esse recebe a forma LEVE (so id e name de cada agente, e as linhas recortadas pelas caixas que ve), que e o que o node ai_call do FlowBuilder precisa. Devolve tambem meta.dial_inboxes: as caixas que podem fazer ligacao (LionCalls ligada) — use o id no data.aiCallInboxId do node ai_call.",
|
|
30163
30180
|
"category": "Assistentes",
|
|
30164
30181
|
"params": [],
|
|
30165
|
-
"returns": "{ payload: [agente de ligacao], meta: { dial_inboxes: [{id, name}] } }",
|
|
30182
|
+
"returns": "{ payload: [agente de ligacao { id, name, objective, first_message, style, voice_provider, engine, voice_id, elevenlabs_agent_id, max_duration_seconds, captain_assistant_id, captain_assistant_name, sip_ramal, sip_server, sip_port, max_concurrent_calls, new_conversation_inbox_id, has_sip_password }], meta: { dial_inboxes: [{id, name}] } }",
|
|
30166
30183
|
"common_use_cases": [
|
|
30167
30184
|
"Ver agentes de ligacao configurados",
|
|
30168
30185
|
"Descobrir qual caixa pode ligar"
|
|
@@ -30190,7 +30207,7 @@
|
|
|
30190
30207
|
"description": "ID do agente de ligacao"
|
|
30191
30208
|
}
|
|
30192
30209
|
],
|
|
30193
|
-
"returns": "agente de ligacao { id, name, objective, first_message, style, voice_provider, engine, voice_id, elevenlabs_agent_id, max_duration_seconds, captain_assistant_id, captain_assistant_name }",
|
|
30210
|
+
"returns": "agente de ligacao { id, name, objective, first_message, style, voice_provider, engine, voice_id, elevenlabs_agent_id, max_duration_seconds, captain_assistant_id, captain_assistant_name, sip_ramal, sip_server, sip_port, max_concurrent_calls, new_conversation_inbox_id, has_sip_password }",
|
|
30194
30211
|
"common_use_cases": [
|
|
30195
30212
|
"Conferir a configuracao antes de editar"
|
|
30196
30213
|
],
|
|
@@ -30198,7 +30215,8 @@
|
|
|
30198
30215
|
"lionchat_captain_call_agents_list",
|
|
30199
30216
|
"lionchat_captain_call_agents_update",
|
|
30200
30217
|
"lionchat_captain_call_agents_test_call",
|
|
30201
|
-
"lionchat_captain_call_test_phones_list"
|
|
30218
|
+
"lionchat_captain_call_test_phones_list",
|
|
30219
|
+
"lionchat_captain_call_agents_ramal_status"
|
|
30202
30220
|
]
|
|
30203
30221
|
},
|
|
30204
30222
|
{
|
|
@@ -30206,7 +30224,7 @@
|
|
|
30206
30224
|
"method": "POST",
|
|
30207
30225
|
"path": "/api/v1/accounts/{account_id}/captain/call_agents",
|
|
30208
30226
|
"title": "Criar Agente de Ligacao",
|
|
30209
|
-
"description": "Agente de LIGACAO (area \"Agentes de ligacao\", separada dos agentes de texto desde 24/09/2026). Nao ocupa vaga de IA do plano. Exige Admin ou cargo com captain_manage. Campos em body (pode mandar solto ou dentro de call_agent). Durante a ligacao a voz so CONSULTA agenda e REPASSA pedidos; quem executa e o agente de texto de captain_assistant_id.",
|
|
30227
|
+
"description": "Agente de LIGACAO (area \"Agentes de ligacao\", separada dos agentes de texto desde 24/09/2026). Nao ocupa vaga de IA do plano. Exige Admin ou cargo com captain_manage. Campos em body (pode mandar solto ou dentro de call_agent). Durante a ligacao a voz so CONSULTA agenda e REPASSA pedidos; quem executa e o agente de texto de captain_assistant_id. Com ramal VTCall (sip_ramal + sip_server) o agente LIGA POR TELEFONE; sem ramal, a ligacao sai pelo WhatsApp Calling. A senha do ramal nunca entra pelo MCP — so pela tela.",
|
|
30210
30228
|
"category": "Assistentes",
|
|
30211
30229
|
"params": [
|
|
30212
30230
|
{
|
|
@@ -30278,6 +30296,41 @@
|
|
|
30278
30296
|
"location": "body",
|
|
30279
30297
|
"required": false,
|
|
30280
30298
|
"description": "Agente de TEXTO que EXECUTA durante a ligacao o que o cliente pedir (mandar link no WhatsApp, mover card, anotar), com as ferramentas e a configuracao DELE. Sem ele a voz so conversa. Tem de ser desta conta (422 se nao for)."
|
|
30299
|
+
},
|
|
30300
|
+
{
|
|
30301
|
+
"name": "sip_ramal",
|
|
30302
|
+
"type": "string",
|
|
30303
|
+
"location": "body",
|
|
30304
|
+
"required": false,
|
|
30305
|
+
"description": "Numero do ramal VTCall. Com ele preenchido, este agente LIGA POR TELEFONE (nao pelo WhatsApp). Exige sip_server junto. A SENHA do ramal (sip_password) NAO entra pelo MCP — so pela tela do painel."
|
|
30306
|
+
},
|
|
30307
|
+
{
|
|
30308
|
+
"name": "sip_server",
|
|
30309
|
+
"type": "string",
|
|
30310
|
+
"location": "body",
|
|
30311
|
+
"required": false,
|
|
30312
|
+
"description": "Servidor SIP do ramal, no formato <algo>.vtcall.app ou <algo>.vtcall.com.br. Exigido junto com sip_ramal."
|
|
30313
|
+
},
|
|
30314
|
+
{
|
|
30315
|
+
"name": "sip_port",
|
|
30316
|
+
"type": "integer",
|
|
30317
|
+
"location": "body",
|
|
30318
|
+
"required": false,
|
|
30319
|
+
"description": "Porta SIP: 5060, 5061, 5068 ou 5080 (lista fechada). Padrao 5060."
|
|
30320
|
+
},
|
|
30321
|
+
{
|
|
30322
|
+
"name": "max_concurrent_calls",
|
|
30323
|
+
"type": "integer",
|
|
30324
|
+
"location": "body",
|
|
30325
|
+
"required": false,
|
|
30326
|
+
"description": "Teto de ligacoes simultaneas por este ramal, 0 a 50 (padrao 1; 0 = nao liga)."
|
|
30327
|
+
},
|
|
30328
|
+
{
|
|
30329
|
+
"name": "new_conversation_inbox_id",
|
|
30330
|
+
"type": "integer",
|
|
30331
|
+
"location": "body",
|
|
30332
|
+
"required": false,
|
|
30333
|
+
"description": "Caixa de entrada onde nasce a conversa de cada ligacao feita por este ramal. Tem de ser desta conta."
|
|
30281
30334
|
}
|
|
30282
30335
|
],
|
|
30283
30336
|
"returns": "agente de ligacao criado",
|
|
@@ -30289,7 +30342,8 @@
|
|
|
30289
30342
|
"lionchat_captain_call_agents_list",
|
|
30290
30343
|
"lionchat_captain_call_agents_update",
|
|
30291
30344
|
"lionchat_captain_call_agents_test_call",
|
|
30292
|
-
"lionchat_captain_call_test_phones_list"
|
|
30345
|
+
"lionchat_captain_call_test_phones_list",
|
|
30346
|
+
"lionchat_captain_call_agents_ramal_status"
|
|
30293
30347
|
]
|
|
30294
30348
|
},
|
|
30295
30349
|
{
|
|
@@ -30297,7 +30351,7 @@
|
|
|
30297
30351
|
"method": "PATCH",
|
|
30298
30352
|
"path": "/api/v1/accounts/{account_id}/captain/call_agents/{id}",
|
|
30299
30353
|
"title": "Atualizar Agente de Ligacao",
|
|
30300
|
-
"description": "Agente de LIGACAO (area \"Agentes de ligacao\", separada dos agentes de texto desde 24/09/2026). Nao ocupa vaga de IA do plano. Exige Admin ou cargo com captain_manage. Edicao parcial.",
|
|
30354
|
+
"description": "Agente de LIGACAO (area \"Agentes de ligacao\", separada dos agentes de texto desde 24/09/2026). Nao ocupa vaga de IA do plano. Exige Admin ou cargo com captain_manage. Edicao parcial. Com ramal VTCall (sip_ramal + sip_server) o agente LIGA POR TELEFONE; sem ramal, a ligacao sai pelo WhatsApp Calling. A senha do ramal nunca entra pelo MCP — so pela tela.",
|
|
30301
30355
|
"category": "Assistentes",
|
|
30302
30356
|
"params": [
|
|
30303
30357
|
{
|
|
@@ -30376,6 +30430,41 @@
|
|
|
30376
30430
|
"location": "body",
|
|
30377
30431
|
"required": false,
|
|
30378
30432
|
"description": "Agente de TEXTO que EXECUTA durante a ligacao o que o cliente pedir (mandar link no WhatsApp, mover card, anotar), com as ferramentas e a configuracao DELE. Sem ele a voz so conversa. Tem de ser desta conta (422 se nao for)."
|
|
30433
|
+
},
|
|
30434
|
+
{
|
|
30435
|
+
"name": "sip_ramal",
|
|
30436
|
+
"type": "string",
|
|
30437
|
+
"location": "body",
|
|
30438
|
+
"required": false,
|
|
30439
|
+
"description": "Numero do ramal VTCall. Com ele preenchido, este agente LIGA POR TELEFONE (nao pelo WhatsApp). Exige sip_server junto. A SENHA do ramal (sip_password) NAO entra pelo MCP — so pela tela do painel."
|
|
30440
|
+
},
|
|
30441
|
+
{
|
|
30442
|
+
"name": "sip_server",
|
|
30443
|
+
"type": "string",
|
|
30444
|
+
"location": "body",
|
|
30445
|
+
"required": false,
|
|
30446
|
+
"description": "Servidor SIP do ramal, no formato <algo>.vtcall.app ou <algo>.vtcall.com.br. Exigido junto com sip_ramal."
|
|
30447
|
+
},
|
|
30448
|
+
{
|
|
30449
|
+
"name": "sip_port",
|
|
30450
|
+
"type": "integer",
|
|
30451
|
+
"location": "body",
|
|
30452
|
+
"required": false,
|
|
30453
|
+
"description": "Porta SIP: 5060, 5061, 5068 ou 5080 (lista fechada). Padrao 5060."
|
|
30454
|
+
},
|
|
30455
|
+
{
|
|
30456
|
+
"name": "max_concurrent_calls",
|
|
30457
|
+
"type": "integer",
|
|
30458
|
+
"location": "body",
|
|
30459
|
+
"required": false,
|
|
30460
|
+
"description": "Teto de ligacoes simultaneas por este ramal, 0 a 50 (padrao 1; 0 = nao liga)."
|
|
30461
|
+
},
|
|
30462
|
+
{
|
|
30463
|
+
"name": "new_conversation_inbox_id",
|
|
30464
|
+
"type": "integer",
|
|
30465
|
+
"location": "body",
|
|
30466
|
+
"required": false,
|
|
30467
|
+
"description": "Caixa de entrada onde nasce a conversa de cada ligacao feita por este ramal. Tem de ser desta conta."
|
|
30379
30468
|
}
|
|
30380
30469
|
],
|
|
30381
30470
|
"returns": "agente de ligacao atualizado",
|
|
@@ -30386,7 +30475,8 @@
|
|
|
30386
30475
|
"lionchat_captain_call_agents_list",
|
|
30387
30476
|
"lionchat_captain_call_agents_update",
|
|
30388
30477
|
"lionchat_captain_call_agents_test_call",
|
|
30389
|
-
"lionchat_captain_call_test_phones_list"
|
|
30478
|
+
"lionchat_captain_call_test_phones_list",
|
|
30479
|
+
"lionchat_captain_call_agents_ramal_status"
|
|
30390
30480
|
]
|
|
30391
30481
|
},
|
|
30392
30482
|
{
|
|
@@ -30518,6 +30608,32 @@
|
|
|
30518
30608
|
"lionchat_captain_call_test_phones_list"
|
|
30519
30609
|
]
|
|
30520
30610
|
},
|
|
30611
|
+
{
|
|
30612
|
+
"id": "lionchat_captain_call_agents_ramal_status",
|
|
30613
|
+
"method": "GET",
|
|
30614
|
+
"path": "/api/v1/accounts/{account_id}/captain/call_agents/{id}/ramal_status",
|
|
30615
|
+
"title": "Estado do Ramal VTCall",
|
|
30616
|
+
"description": "So para agente de ligacao COM ramal (sip_ramal). Le NO MOTOR o estado do cadastro do ramal: aguardando_teste (registrando), comprovado (o ramal conectou), senha_recusada, aguardando_liberacao ou erro. Agente sem ramal devolve estado nulo. A senha nunca aparece — so has_sip_password.",
|
|
30617
|
+
"category": "Assistentes",
|
|
30618
|
+
"params": [
|
|
30619
|
+
{
|
|
30620
|
+
"name": "id",
|
|
30621
|
+
"type": "integer",
|
|
30622
|
+
"location": "path",
|
|
30623
|
+
"required": true,
|
|
30624
|
+
"description": "ID do agente de ligacao"
|
|
30625
|
+
}
|
|
30626
|
+
],
|
|
30627
|
+
"returns": "{ estado: null|aguardando_teste|comprovado|senha_recusada|aguardando_liberacao|erro, has_sip_password, message }",
|
|
30628
|
+
"common_use_cases": [
|
|
30629
|
+
"Conferir se o ramal VTCall conectou depois de salvar o agente de ligacao"
|
|
30630
|
+
],
|
|
30631
|
+
"related_tools": [
|
|
30632
|
+
"lionchat_captain_call_agents_show",
|
|
30633
|
+
"lionchat_captain_call_agents_update",
|
|
30634
|
+
"lionchat_captain_call_agents_test_call"
|
|
30635
|
+
]
|
|
30636
|
+
},
|
|
30521
30637
|
{
|
|
30522
30638
|
"id": "lionchat_captain_call_test_phones_list",
|
|
30523
30639
|
"method": "GET",
|
|
@@ -30695,7 +30811,7 @@
|
|
|
30695
30811
|
"method": "POST",
|
|
30696
30812
|
"path": "/api/v1/accounts/{account_id}/captain/media_assets",
|
|
30697
30813
|
"title": "Adicionar Mídia à Biblioteca",
|
|
30698
|
-
"description": "Cadastra um arquivo na Biblioteca de Mídia do AI Agente. ATENÇÃO: o arquivo em si NÃO sobe por aqui — é obrigatório informar `blob_signed_id`, o identificador de um arquivo JÁ carregado no armazenamento
|
|
30814
|
+
"description": "Cadastra um arquivo na Biblioteca de Mídia do AI Agente. ATENÇÃO: o arquivo em si NÃO sobe por aqui — é obrigatório informar `blob_signed_id`, o identificador de um arquivo JÁ carregado no armazenamento; sem ele o cadastro é recusado (422, arquivo obrigatório). Pelo conector: suba o arquivo por link com `lionchat_upload_create` (`external_url`) e use o `blob_id` devolvido como `blob_signed_id`. O `media_kind` precisa casar com o tipo real do arquivo, e só formatos e tamanhos aceitos pelo WhatsApp passam (imagem JPG/PNG/WEBP até 5MB; vídeo MP4/3GP até 16MB; áudio MP3/AAC/M4A/AMR/OGG até 16MB; documento PDF/DOC/DOCX/XLS/XLSX/PPT/PPTX/TXT até 100MB). Depois de criar, ainda é preciso liberar o ID no assistente (config.media_asset_ids) para a IA poder enviar. Exige Admin ou papel com permissão de gerenciar o AI Agente.",
|
|
30699
30815
|
"category": "Biblioteca de Midia",
|
|
30700
30816
|
"params": [
|
|
30701
30817
|
{
|
|
@@ -35489,7 +35605,7 @@
|
|
|
35489
35605
|
"method": "PATCH",
|
|
35490
35606
|
"path": "/api/v1/accounts/{account_id}/eclinica_integrations/{id}",
|
|
35491
35607
|
"title": "Configurar Integração e-Clínica (mapeamento de eventos e lembretes)",
|
|
35492
|
-
"description": "AÇÃO DE ESCRITA, somente administrador. Configura a integração e-Clínica: o MAPEAMENTO evento→automação/fluxo (event_mapping) e os LEMBRETES automáticos (reminder_config). Até 31/08/2026 os dois só existiam na tela — este comando fecha a lacuna.\n\nSUBSTITUIÇÃO TOTAL — LEIA ANTES DE GRAVAR: os dois campos SUBSTITUEM o conteúdo inteiro, NÃO mesclam (o backend faz update! direto no jsonb). Mandar event_mapping com um evento só APAGA todos os outros mapeamentos do cliente; o mesmo vale pra reminder_config. SEMPRE chame lionchat_eclinica_integrations_show ANTES, pegue o objeto atual, altere só o que precisa e devolva o objeto COMPLETO.\n\nevent_mapping: objeto {tipo_do_evento: {automation_id, flow_id}} — pode deixar um dos dois nulo. Tipos aceitos: cliente_novo, cliente_alteracao, agendamento_novo, agendamento_alterado, agendamento_atendido, agendamento_desmarcado, agendamento_transferido, falta, pagamento, cliente_baixa_pagamento, cliente_inclusao_pagamento, controle_laboratorio_novo, controle_laboratorio_alterado, agendamento_aguardando, odontograma_aprovado, cliente_alteracao_pagamento (NOVO 01/09 — a cobrança foi EDITADA: mesmos campos da inclusão e o lembrete de vencimento é MOVIDO, não duplicado; dispara a cada edição, então não sirva para avisar \"nova cobrança\"), procedimento_finalizado (NOVO 31/08 — um procedimento do plano de tratamento foi concluído; dispara UMA VEZ POR PROCEDIMENTO e grava eclinica_procedimento_id/_dente/_valor/_finalizado_em/_profissional no contato, então o fluxo ligado aqui precisa filtrar pelo número do procedimento). odontograma_finalizado (NOVO 01/09 — o plano de tratamento INTEIRO foi concluido; nao confundir com procedimento_finalizado, que e UM item do plano; grava eclinica_odontograma_finalizado_em e nao mexe na data de aprovacao), inclusao_procedimento (NOVO 01/09 — um procedimento foi ACRESCENTADO ao plano, ainda nao executado: serve para aviso de orcamento, NAO e gatilho de orientacao pos-procedimento; grava eclinica_procedimento_incluido_id/_dente/_valor, nunca nos campos do finalizado). Tipo fora da lista = 422; flow_id e automation_id precisam ser da PRÓPRIA conta = 422 senão.\n\nreminder_config: array de {days_before (inteiro >= 0), event_type ('agendamento' padrão | 'controle_laboratorio_novo' | 'cliente_inclusao_pagamento'), flow_id e/ou automation_id (pelo menos um dos dois; com os dois a AUTOMAÇÃO vence), label, dispatch_time (OBRIGATÓRIA — 'HH:MM' fixo ou fórmula Liquid), filter_field/filter_operator/filter_value (opcional; filter_field precisa começar com eclinica_, operadores contains/equal/not_equal)}. Duas linhas com a MESMA régua = 422.\n\nALERTA de regra de negócio: isto muda, na hora e em produção, o que o paciente recebe. E no lembrete por automação as AÇÕES rodam SEM avaliar as CONDIÇÕES da automação. Desde 17/09/2026 os DOIS caminhos (fluxo e automacao) mandam um aviso POR CONSULTA: paciente com duas consultas no dia (ou dois pacientes no mesmo celular) recebe um aviso para cada uma, ~10 min um do outro (fila por contato). Quem quer so um por dia monta no FLUXO (condicao num atributo com {{data_consulta}}); na automacao nao da, porque as condicoes dela nao sao avaliadas.",
|
|
35608
|
+
"description": "AÇÃO DE ESCRITA, somente administrador. Configura a integração e-Clínica: o MAPEAMENTO evento→automação/fluxo (event_mapping) e os LEMBRETES automáticos (reminder_config). Até 31/08/2026 os dois só existiam na tela — este comando fecha a lacuna.\n\nSUBSTITUIÇÃO TOTAL — LEIA ANTES DE GRAVAR: os dois campos SUBSTITUEM o conteúdo inteiro, NÃO mesclam (o backend faz update! direto no jsonb). Mandar event_mapping com um evento só APAGA todos os outros mapeamentos do cliente; o mesmo vale pra reminder_config. SEMPRE chame lionchat_eclinica_integrations_show ANTES, pegue o objeto atual, altere só o que precisa e devolva o objeto COMPLETO.\n\nevent_mapping: objeto {tipo_do_evento: {automation_id, flow_id}} — pode deixar um dos dois nulo. Tipos aceitos: cliente_novo, cliente_alteracao, agendamento_novo, agendamento_alterado, agendamento_atendido, agendamento_desmarcado, agendamento_transferido, falta, pagamento, cliente_baixa_pagamento, cliente_inclusao_pagamento, controle_laboratorio_novo, controle_laboratorio_alterado, agendamento_aguardando, odontograma_aprovado, agendamento_confirmado_link e agendamento_cancelado_link (NOVOS 18/09 — o paciente confirmou ou cancelou pelo link da e-Clinica), cliente_alteracao_pagamento (NOVO 01/09 — a cobrança foi EDITADA: mesmos campos da inclusão e o lembrete de vencimento é MOVIDO, não duplicado; dispara a cada edição, então não sirva para avisar \"nova cobrança\"), procedimento_finalizado (NOVO 31/08 — um procedimento do plano de tratamento foi concluído; dispara UMA VEZ POR PROCEDIMENTO e grava eclinica_procedimento_id/_dente/_valor/_finalizado_em/_profissional no contato, então o fluxo ligado aqui precisa filtrar pelo número do procedimento). odontograma_finalizado (NOVO 01/09 — o plano de tratamento INTEIRO foi concluido; nao confundir com procedimento_finalizado, que e UM item do plano; grava eclinica_odontograma_finalizado_em e nao mexe na data de aprovacao), inclusao_procedimento (NOVO 01/09 — um procedimento foi ACRESCENTADO ao plano, ainda nao executado: serve para aviso de orcamento, NAO e gatilho de orientacao pos-procedimento; grava eclinica_procedimento_incluido_id/_dente/_valor, nunca nos campos do finalizado). Tipo fora da lista = 422; flow_id e automation_id precisam ser da PRÓPRIA conta = 422 senão.\n\nreminder_config: array de {days_before (inteiro >= 0), event_type ('agendamento' padrão | 'controle_laboratorio_novo' | 'cliente_inclusao_pagamento'), flow_id e/ou automation_id (pelo menos um dos dois; com os dois a AUTOMAÇÃO vence), label, dispatch_time (OBRIGATÓRIA — 'HH:MM' fixo ou fórmula Liquid), filter_field/filter_operator/filter_value (opcional; filter_field precisa começar com eclinica_, operadores contains/equal/not_equal)}. Duas linhas com a MESMA régua = 422.\n\nALERTA de regra de negócio: isto muda, na hora e em produção, o que o paciente recebe. E no lembrete por automação as AÇÕES rodam SEM avaliar as CONDIÇÕES da automação. Desde 17/09/2026 os DOIS caminhos (fluxo e automacao) mandam um aviso POR CONSULTA: paciente com duas consultas no dia (ou dois pacientes no mesmo celular) recebe um aviso para cada uma, ~10 min um do outro (fila por contato). Quem quer so um por dia monta no FLUXO (condicao num atributo com {{data_consulta}}); na automacao nao da, porque as condicoes dela nao sao avaliadas.",
|
|
35493
35609
|
"category": "Integracoes",
|
|
35494
35610
|
"params": [
|
|
35495
35611
|
{
|
|
@@ -36110,7 +36226,7 @@
|
|
|
36110
36226
|
"description": "ID do modelo"
|
|
36111
36227
|
}
|
|
36112
36228
|
],
|
|
36113
|
-
"returns": "modelo (roles_layout com required_proofs e public_link {enabled, inbox_id, path}) + envelopes: [{id, title, status, contact_id, contact_name, sent_at, completed_at, expires_at, participants[]}]",
|
|
36229
|
+
"returns": "modelo (roles_layout com required_proofs (so as tres antigas), proof_requests (os itens completos), ai_document_check, communication, signature_methods e public_link {enabled, inbox_id, path}) + envelopes: [{id, title, status, contact_id, contact_name, sent_at, completed_at, expires_at, participants[]}]",
|
|
36114
36230
|
"common_use_cases": [
|
|
36115
36231
|
"Ver o texto e as variaveis do modelo antes de editar",
|
|
36116
36232
|
"Conferir quem ja recebeu este contrato"
|
|
@@ -36162,7 +36278,7 @@
|
|
|
36162
36278
|
"type": "object",
|
|
36163
36279
|
"location": "body",
|
|
36164
36280
|
"required": false,
|
|
36165
|
-
"description": "Configuracao do modelo (objeto, MESCLADO no update — mande so o que muda): signers (quantos titulares assinam, 1..), witnesses (testemunhas, 0..), sender_signs (bool: quem envia tambem assina, NO PAINEL), require_id_photo (bool: exige foto do documento na assinatura), validity_days (validade em dias contada do ENVIO; padrao 7; 1..365 — vira {{document.deadline}} no texto). O LEMBRETE NAO E MAIS CAMPO DO MODELO (2026-09-14): o reminder_days e a tarefa diaria das 10h foram REMOVIDOS. Quem lembra e um fluxo do cliente, com o texto e a caixa dele — gatilho signature_delivered (dispara por PESSOA), bloco Esperar em dias e condicao signature_status (person_not_signed + pending, logic and). NUNCA sugerir reminder_days. FORMATO: signers, witnesses e validity_days sao NUMEROS inteiros puros (ex.: {\"signers\": 2, \"witnesses\": 1, \"validity_days\": 7}) — lista ou objeto nesses campos derruba a lista de modelos de contrato da conta; sender_signs e require_id_photo sao true/false. field_prompts (27/10): como o formulario (jeito collection=form) pergunta cada dado — objeto {variavel: {label, description, placeholder}} (ex.: {\"contact.cpf\": {\"label\": \"Qual e o seu CPF?\", \"description\": \"Igual ao documento\", \"placeholder\": \"000.000.000-00\"}}); texto ate 200 caracteres; pergunta de variavel que o modelo nao usa e descartada; sem pergunta o formulario mostra o nome do campo. required_proofs (28/10): documentos que a pessoa manda antes de assinar — lista com id_document (documento com foto; ela escolhe RG, CNH ou CPF), selfie_with_document e address_proof (comprovante, foto ou PDF); [] = nenhum; outro valor = 422. Com algum, o contrato so fecha depois de a equipe aprovar (status awaiting_approval). public_link (28/10): link do contrato para divulgar — {enabled: true, inbox_id: <caixa de WhatsApp da conta>} (regenerate: true troca o endereco; o antigo para de funcionar). So para modelo com 1 assinante principal e sem sender_signs (422 com 'public_link' no texto). A leitura devolve {enabled, inbox_id, path} — o endereco e o dominio da instalacao + path (/contrato/<codigo>); salvar sem regenerate mantem o mesmo endereco."
|
|
36281
|
+
"description": "Configuracao do modelo (objeto, MESCLADO no update — mande so o que muda): signers (quantos titulares assinam, 1..), witnesses (testemunhas, 0..), sender_signs (bool: quem envia tambem assina, NO PAINEL), require_id_photo (bool: exige foto do documento na assinatura), validity_days (validade em dias contada do ENVIO; padrao 7; 1..365 — vira {{document.deadline}} no texto). O LEMBRETE NAO E MAIS CAMPO DO MODELO (2026-09-14): o reminder_days e a tarefa diaria das 10h foram REMOVIDOS. Quem lembra e um fluxo do cliente, com o texto e a caixa dele — gatilho signature_delivered (dispara por PESSOA), bloco Esperar em dias e condicao signature_status (person_not_signed + pending, logic and). NUNCA sugerir reminder_days. FORMATO: signers, witnesses e validity_days sao NUMEROS inteiros puros (ex.: {\"signers\": 2, \"witnesses\": 1, \"validity_days\": 7}) — lista ou objeto nesses campos derruba a lista de modelos de contrato da conta; sender_signs e require_id_photo sao true/false. field_prompts (27/10): como o formulario (jeito collection=form) pergunta cada dado — objeto {variavel: {label, description, placeholder}} (ex.: {\"contact.cpf\": {\"label\": \"Qual e o seu CPF?\", \"description\": \"Igual ao documento\", \"placeholder\": \"000.000.000-00\"}}); texto ate 200 caracteres; pergunta de variavel que o modelo nao usa e descartada; sem pergunta o formulario mostra o nome do campo. required_proofs (28/10): documentos que a pessoa manda antes de assinar — lista com id_document (documento com foto; ela escolhe um dos aceitos, RG, CNH ou CPF — ver accepted_types em proof_requests), selfie_with_document e address_proof (comprovante, foto ou PDF); [] = nenhum; outro valor = 422. Com algum, o contrato so fecha depois de a equipe aprovar (status awaiting_approval). public_link (28/10): link do contrato para divulgar — {enabled: true, inbox_id: <caixa de WhatsApp da conta>} (regenerate: true troca o endereco; o antigo para de funcionar). So para modelo com 1 assinante principal e sem sender_signs (422 com 'public_link' no texto). A leitura devolve {enabled, inbox_id, path} — o endereco e o dominio da instalacao + path (/contrato/<codigo>); salvar sem regenerate mantem o mesmo endereco. communication (29/10): a CAIXA do modelo e as mensagens — {inbox_id (WhatsApp da conta, oficial ou QR Code; vale para TODA mensagem dos contratos do modelo: codigo, link, copia assinada, pedido de documento de novo e o link para divulgar), code_message ({{codigo}}), invite_message, copy_message e proofs_again_message ({{link}}; {{contrato}} poe o nome; {{motivo}} no pedido de documento de novo) para caixa de QR Code; code_template, invite_template, copy_template, proofs_again_template ({name, language} de modelo do WhatsApp APROVADO com UMA variavel no corpo; o do codigo de Autenticacao) para caixa oficial; null tira}; o que nao vem fica o guardado. signature_methods (29/10): como a pessoa pode assinar — [\"drawn\",\"typed\"] (padrao), [\"drawn\"] ou [\"typed\"]; vazio ou outro valor = 422. proof_requests (29/10, substitui required_proofs, que continua aceito so com as tres antigas): lista de documentos pedidos [{key, label, accepts_pdf, attach_to_contract, from_witnesses, accepted_types, description}] — key = id_document | rg | cnh | cpf | selfie_with_document | address_proof | custom_<6 a 12 letras/numeros minusculos> (o criado EXIGE label de 1 a 60; VOCE escolhe a chave e mantem igual nas gravacoes seguintes — o servidor nao cria chave); aceita tambem [\"rg\",\"cnh\"]; maximo 12; DOCUMENTO COM FOTO (30/10): id_document com accepted_types = lista dos ACEITOS entre rg, cnh e cpf (um ou mais; ex.: {\"key\":\"id_document\",\"accepted_types\":[\"rg\",\"cnh\"]} = aceita RG OU CNH, a pessoa manda UM deles e a IA confere se a foto e do tipo que ela ESCOLHEU na pagina; sem a lista = os tres; lista vazia, tipo desconhecido ou accepted_types em outro item = 422); rg, cnh e cpf SOLTOS continuam aceitos mas cada um EXIGE aquele documento (os tres soltos = a pessoa manda os tres) — para \"RG ou CNH\" use sempre id_document com accepted_types; accepts_pdf so no comprovante e nos criados; attach_to_contract = o arquivo entra como paginas no contrato assinado (testemunha recebe a via SEM os anexos); from_witnesses = testemunha tambem manda (padrao: sim nos fixos, nao nos criados); mais de 10 arquivos anexados (itens anexar x pessoas) = 422. ai_document_check (29/10, true/false): a IA da OpenAI DA CONTA confere as fotos e, desde 30/10, os PDFs de ate 5 paginas (so com a chave cadastrada; gasta credito da conta; duvida pede outro arquivo e, da 2a em diante, a pessoa pode manter; falha da IA = arquivo aceito). description (30/10, so nos documentos criados custom_*, opcional, ate 300 caracteres): explica a IA o que o documento e alem do nome (ex.: \"comprovante de inscricao no conselho de classe, com o nome da pessoa\"); quem assina NAO ve; em documento fixo = 422."
|
|
36166
36282
|
}
|
|
36167
36283
|
],
|
|
36168
36284
|
"returns": "o modelo criado (id, name, kind, body, variables, roles_layout, progress)",
|
|
@@ -36224,7 +36340,7 @@
|
|
|
36224
36340
|
"type": "object",
|
|
36225
36341
|
"location": "body",
|
|
36226
36342
|
"required": false,
|
|
36227
|
-
"description": "Configuracao do modelo (objeto, MESCLADO no update — mande so o que muda): signers (quantos titulares assinam, 1..), witnesses (testemunhas, 0..), sender_signs (bool: quem envia tambem assina, NO PAINEL), require_id_photo (bool: exige foto do documento na assinatura), validity_days (validade em dias contada do ENVIO; padrao 7; 1..365 — vira {{document.deadline}} no texto). O LEMBRETE NAO E MAIS CAMPO DO MODELO (2026-09-14): o reminder_days e a tarefa diaria das 10h foram REMOVIDOS. Quem lembra e um fluxo do cliente, com o texto e a caixa dele — gatilho signature_delivered (dispara por PESSOA), bloco Esperar em dias e condicao signature_status (person_not_signed + pending, logic and). NUNCA sugerir reminder_days. FORMATO: signers, witnesses e validity_days sao NUMEROS inteiros puros (ex.: {\"signers\": 2, \"witnesses\": 1, \"validity_days\": 7}) — lista ou objeto nesses campos derruba a lista de modelos de contrato da conta; sender_signs e require_id_photo sao true/false. field_prompts (27/10): como o formulario (jeito collection=form) pergunta cada dado — objeto {variavel: {label, description, placeholder}} (ex.: {\"contact.cpf\": {\"label\": \"Qual e o seu CPF?\", \"description\": \"Igual ao documento\", \"placeholder\": \"000.000.000-00\"}}); texto ate 200 caracteres; pergunta de variavel que o modelo nao usa e descartada; sem pergunta o formulario mostra o nome do campo. required_proofs (28/10): documentos que a pessoa manda antes de assinar — lista com id_document (documento com foto; ela escolhe RG, CNH ou CPF), selfie_with_document e address_proof (comprovante, foto ou PDF); [] = nenhum; outro valor = 422. Com algum, o contrato so fecha depois de a equipe aprovar (status awaiting_approval). public_link (28/10): link do contrato para divulgar — {enabled: true, inbox_id: <caixa de WhatsApp da conta>} (regenerate: true troca o endereco; o antigo para de funcionar). So para modelo com 1 assinante principal e sem sender_signs (422 com 'public_link' no texto). A leitura devolve {enabled, inbox_id, path} — o endereco e o dominio da instalacao + path (/contrato/<codigo>); salvar sem regenerate mantem o mesmo endereco."
|
|
36343
|
+
"description": "Configuracao do modelo (objeto, MESCLADO no update — mande so o que muda): signers (quantos titulares assinam, 1..), witnesses (testemunhas, 0..), sender_signs (bool: quem envia tambem assina, NO PAINEL), require_id_photo (bool: exige foto do documento na assinatura), validity_days (validade em dias contada do ENVIO; padrao 7; 1..365 — vira {{document.deadline}} no texto). O LEMBRETE NAO E MAIS CAMPO DO MODELO (2026-09-14): o reminder_days e a tarefa diaria das 10h foram REMOVIDOS. Quem lembra e um fluxo do cliente, com o texto e a caixa dele — gatilho signature_delivered (dispara por PESSOA), bloco Esperar em dias e condicao signature_status (person_not_signed + pending, logic and). NUNCA sugerir reminder_days. FORMATO: signers, witnesses e validity_days sao NUMEROS inteiros puros (ex.: {\"signers\": 2, \"witnesses\": 1, \"validity_days\": 7}) — lista ou objeto nesses campos derruba a lista de modelos de contrato da conta; sender_signs e require_id_photo sao true/false. field_prompts (27/10): como o formulario (jeito collection=form) pergunta cada dado — objeto {variavel: {label, description, placeholder}} (ex.: {\"contact.cpf\": {\"label\": \"Qual e o seu CPF?\", \"description\": \"Igual ao documento\", \"placeholder\": \"000.000.000-00\"}}); texto ate 200 caracteres; pergunta de variavel que o modelo nao usa e descartada; sem pergunta o formulario mostra o nome do campo. required_proofs (28/10): documentos que a pessoa manda antes de assinar — lista com id_document (documento com foto; ela escolhe um dos aceitos, RG, CNH ou CPF — ver accepted_types em proof_requests), selfie_with_document e address_proof (comprovante, foto ou PDF); [] = nenhum; outro valor = 422. Com algum, o contrato so fecha depois de a equipe aprovar (status awaiting_approval). public_link (28/10): link do contrato para divulgar — {enabled: true, inbox_id: <caixa de WhatsApp da conta>} (regenerate: true troca o endereco; o antigo para de funcionar). So para modelo com 1 assinante principal e sem sender_signs (422 com 'public_link' no texto). A leitura devolve {enabled, inbox_id, path} — o endereco e o dominio da instalacao + path (/contrato/<codigo>); salvar sem regenerate mantem o mesmo endereco. communication (29/10): a CAIXA do modelo e as mensagens — {inbox_id (WhatsApp da conta, oficial ou QR Code; vale para TODA mensagem dos contratos do modelo: codigo, link, copia assinada, pedido de documento de novo e o link para divulgar), code_message ({{codigo}}), invite_message, copy_message e proofs_again_message ({{link}}; {{contrato}} poe o nome; {{motivo}} no pedido de documento de novo) para caixa de QR Code; code_template, invite_template, copy_template, proofs_again_template ({name, language} de modelo do WhatsApp APROVADO com UMA variavel no corpo; o do codigo de Autenticacao) para caixa oficial; null tira}; o que nao vem fica o guardado. signature_methods (29/10): como a pessoa pode assinar — [\"drawn\",\"typed\"] (padrao), [\"drawn\"] ou [\"typed\"]; vazio ou outro valor = 422. proof_requests (29/10, substitui required_proofs, que continua aceito so com as tres antigas): lista de documentos pedidos [{key, label, accepts_pdf, attach_to_contract, from_witnesses, accepted_types, description}] — key = id_document | rg | cnh | cpf | selfie_with_document | address_proof | custom_<6 a 12 letras/numeros minusculos> (o criado EXIGE label de 1 a 60; VOCE escolhe a chave e mantem igual nas gravacoes seguintes — o servidor nao cria chave); aceita tambem [\"rg\",\"cnh\"]; maximo 12; DOCUMENTO COM FOTO (30/10): id_document com accepted_types = lista dos ACEITOS entre rg, cnh e cpf (um ou mais; ex.: {\"key\":\"id_document\",\"accepted_types\":[\"rg\",\"cnh\"]} = aceita RG OU CNH, a pessoa manda UM deles e a IA confere se a foto e do tipo que ela ESCOLHEU na pagina; sem a lista = os tres; lista vazia, tipo desconhecido ou accepted_types em outro item = 422); rg, cnh e cpf SOLTOS continuam aceitos mas cada um EXIGE aquele documento (os tres soltos = a pessoa manda os tres) — para \"RG ou CNH\" use sempre id_document com accepted_types; accepts_pdf so no comprovante e nos criados; attach_to_contract = o arquivo entra como paginas no contrato assinado (testemunha recebe a via SEM os anexos); from_witnesses = testemunha tambem manda (padrao: sim nos fixos, nao nos criados); mais de 10 arquivos anexados (itens anexar x pessoas) = 422. ai_document_check (29/10, true/false): a IA da OpenAI DA CONTA confere as fotos e, desde 30/10, os PDFs de ate 5 paginas (so com a chave cadastrada; gasta credito da conta; duvida pede outro arquivo e, da 2a em diante, a pessoa pode manter; falha da IA = arquivo aceito). description (30/10, so nos documentos criados custom_*, opcional, ate 300 caracteres): explica a IA o que o documento e alem do nome (ex.: \"comprovante de inscricao no conselho de classe, com o nome da pessoa\"); quem assina NAO ve; em documento fixo = 422."
|
|
36228
36344
|
}
|
|
36229
36345
|
],
|
|
36230
36346
|
"returns": "o modelo atualizado",
|
|
@@ -36415,7 +36531,7 @@
|
|
|
36415
36531
|
"method": "POST",
|
|
36416
36532
|
"path": "/api/v1/accounts/{account_id}/signature_envelopes",
|
|
36417
36533
|
"title": "Enviar Contrato para Assinar",
|
|
36418
|
-
"description": "Cria o contrato DAQUELA pessoa a partir de um modelo e ENTREGA o link (na conversa de WhatsApp da pessoa — uma conversa POR assinante — ou por e-mail). O PDF e gerado com os dados da ficha; variavel do modelo sem valor na ficha = 422 variaveis_sem_valor com a lista do que falta (preencha a ficha e tente de novo). Sem inbox_id e com o contato conversando em MAIS de uma caixa de WhatsApp = 422 escolher_caixa com inboxes[] — repita mandando inbox_id. Ninguem recebeu = 422 entrega_falhou (o contrato fica como rascunho; use resend). Recebeu parcialmente = 201 com delivery_failures[]. Consome 1 vaga do limite mensal (veja signature_envelopes_limits). Modelo com sender_signs cria sozinho o participante do remetente (o usuario do token), que assina
|
|
36534
|
+
"description": "Cria o contrato DAQUELA pessoa a partir de um modelo e ENTREGA o link (na conversa de WhatsApp da pessoa — uma conversa POR assinante — ou por e-mail). O PDF e gerado com os dados da ficha; variavel do modelo sem valor na ficha = 422 variaveis_sem_valor com a lista do que falta (preencha a ficha e tente de novo). Sem inbox_id e com o contato conversando em MAIS de uma caixa de WhatsApp = 422 escolher_caixa com inboxes[] — repita mandando inbox_id. Ninguem recebeu = 422 entrega_falhou (o contrato fica como rascunho; use resend). Recebeu parcialmente = 201 com delivery_failures[]. Consome 1 vaga do limite mensal (veja signature_envelopes_limits). Modelo com sender_signs cria sozinho o participante do remetente (o usuario do token), que assina no painel ou por signature_envelopes_sign_as_sender (so com o desenho feito pela propria pessoa; nunca inventar a assinatura). DOIS JEITOS (27/10): collection='ready' (padrao) = o contrato sai agora com a ficha; o que faltar pode ir em contact_data (grava na ficha E no contrato; erro de um campo = 422 dados_invalidos com field_errors). Para saber antes o que a ficha tem e o que falta: lionchat_signature_documents_fill_fields. collection='form' (exige contact_id) = o titular recebe um formulario em branco, preenche os dados dele (atualiza a ficha) e o contrato nasce com o que ele digitou; o contrato fica awaiting_data ate la e o link e o participants[].public_url do titular. message (ate 1.000 caracteres) vai junto do link nos dois jeitos. Modelo de Word com campo sem escolha no mapeamento = 422 campos_sem_escolha (missing = os rotulos do Word): ajuste o modelo pela tela.",
|
|
36419
36535
|
"category": "Assinatura eletronica",
|
|
36420
36536
|
"params": [
|
|
36421
36537
|
{
|
|
@@ -36475,7 +36591,7 @@
|
|
|
36475
36591
|
"description": "So no jeito ready: o que voce completa da ficha antes de gerar, {variavel: valor} com as variaveis do modelo (ex.: {\"contact.cpf\": \"52998224725\", \"contact.marital_status\": \"casado\"}). Grava na ficha e no contrato; tudo valido ou nada gravado. Telefone nao se preenche por aqui. Formato torto (nao objeto de textos, mais de 50 chaves, valor acima de 4 KB) = 422 contact_data_invalido"
|
|
36476
36592
|
}
|
|
36477
36593
|
],
|
|
36478
|
-
"returns": "201: o contrato (status sent) com participants[] (public_url de cada um), events[] e delivery_failures[]; 422: {error, detail, missing, inboxes, envelope}; 422 dados_invalidos traz field_errors {variavel: motivo} (invalid_cpf, invalid_option, email_em_uso, campo_desconhecido...); variaveis_sem_valor e campos_sem_escolha trazem missing (chaves) e missing_labels (nomes de gente)",
|
|
36594
|
+
"returns": "201: o contrato (status sent) com participants[] (public_url de cada um), events[] e delivery_failures[]; 422: {error, detail, missing, inboxes, envelope}; 422 dados_invalidos traz field_errors {variavel: motivo} (invalid_cpf, invalid_option, email_em_uso, campo_desconhecido...); variaveis_sem_valor e campos_sem_escolha trazem missing (chaves) e missing_labels (nomes de gente); 422 anexos_demais = com as pessoas deste envio o contrato passaria de 10 arquivos anexados (documentos marcados 'anexar ao contrato' x pessoas que mandam) — tire pessoas ou desmarque 'anexar' no modelo",
|
|
36479
36595
|
"common_use_cases": [
|
|
36480
36596
|
"Mandar o contrato padrao pra um cliente assinar pelo WhatsApp",
|
|
36481
36597
|
"Mandar com testemunha (participants com role witness e o telefone dela)",
|
|
@@ -36520,7 +36636,7 @@
|
|
|
36520
36636
|
"method": "POST",
|
|
36521
36637
|
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}/sign_as_sender",
|
|
36522
36638
|
"title": "Remetente Assina o Contrato pelo Painel",
|
|
36523
|
-
"description": "A assinatura do REMETENTE (a pessoa do token), quando o modelo tem 'eu tambem assino' (roles_layout.sender_signs). Nao serve pra assinar no lugar do cliente: titular e testemunha assinam pelo link publico deles. Manda o desenho da assinatura como PNG em base64 com o prefixo data:image/png;base64,... (o mesmo rabisco da tela; remember_drawing guarda pra proxima vez). Recusas 422: nao_e_sua (o usuario do token nao e o remetente deste contrato), ja_assinado, sem_desenho. Quando era a ultima assinatura que faltava, o contrato fecha e o PDF final e gerado em seguida (status signed_pending_seal -> signed). Ache os contratos que esperam a sua assinatura com status=falta_eu em lionchat_signature_envelopes_list. JEITO (28/10): signature_method drawn (desenhada) ou typed (o nome digitado numa letra de assinatura) + typed_name — a folha de assinaturas e o relatorio de evidencias dizem 'Assinatura desenhada a mao' ou 'Assinatura digitada: <nome>'. Sem o campo, nao dizem nada. A imagem e sempre o PNG.",
|
|
36639
|
+
"description": "A assinatura do REMETENTE (a pessoa do token), quando o modelo tem 'eu tambem assino' (roles_layout.sender_signs). Nao serve pra assinar no lugar do cliente: titular e testemunha assinam pelo link publico deles. Manda o desenho da assinatura como PNG em base64 com o prefixo data:image/png;base64,... (o mesmo rabisco da tela; remember_drawing guarda pra proxima vez). Recusas 422: nao_e_sua (o usuario do token nao e o remetente deste contrato), ja_assinado, sem_desenho. Quando era a ultima assinatura que faltava, o contrato fecha e o PDF final e gerado em seguida (status signed_pending_seal -> signed). Ache os contratos que esperam a sua assinatura com status=falta_eu em lionchat_signature_envelopes_list. JEITO (28/10): signature_method drawn (desenhada) ou typed (o nome digitado numa letra de assinatura) + typed_name — a folha de assinaturas e o relatorio de evidencias dizem 'Assinatura desenhada a mao' ou 'Assinatura digitada: <nome>'. Sem o campo, nao dizem nada. A imagem e sempre o PNG. (29/10) O modelo escolhe os jeitos permitidos (roles_layout.signature_methods): jeito fora da lista = 422 jeito_nao_permitido.",
|
|
36524
36640
|
"category": "Assinatura eletronica",
|
|
36525
36641
|
"params": [
|
|
36526
36642
|
{
|
|
@@ -36566,7 +36682,7 @@
|
|
|
36566
36682
|
"description": "So com signature_method=typed: o nome escrito (ate 120 caracteres) que aparece na folha de assinaturas"
|
|
36567
36683
|
}
|
|
36568
36684
|
],
|
|
36569
|
-
"returns": "o contrato atualizado com participants[] e events[] (o seu participante vira signed); 422: {error: nao_e_sua | ja_assinado | sem_desenho}",
|
|
36685
|
+
"returns": "o contrato atualizado com participants[] e events[] (o seu participante vira signed); 422: {error: nao_e_sua | ja_assinado | sem_desenho | jeito_nao_permitido}",
|
|
36570
36686
|
"common_use_cases": [
|
|
36571
36687
|
"Fechar um contrato em que so falta a assinatura do remetente",
|
|
36572
36688
|
"Assinar em lote os contratos listados com status=falta_eu"
|
|
@@ -36623,7 +36739,7 @@
|
|
|
36623
36739
|
"method": "GET",
|
|
36624
36740
|
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}/proofs",
|
|
36625
36741
|
"title": "Documentos de Quem Assina (Contrato)",
|
|
36626
|
-
"description": "Os documentos que o
|
|
36742
|
+
"description": "Os documentos que o contrato pede (requests: os itens de proof_requests com o nome em label) e, por pessoa que assina pelo link, o que ela mandou (kind id_document/rg/cnh/cpf/selfie_with_document/address_proof/custom_*, label, formato, document_type rg/cnh/cpf, quando) e a revisao da equipe (pending/approved/rejected, motivo, quem, quando). NUNCA devolve o arquivo: documento de identidade e selfie so se olham na tela (botao amarelo \"Ver documentos\" no contrato ou na aba Contratos da ficha). last_proof_event_id = o ultimo documento mandado (use como seen_event_id ao aprovar/reprovar). Administrador ou signature_manage. (29/10) Com a conferencia por IA ligada, cada documento traz ai_check ({veredito: ok|duvida, probabilidade}) e ai_kept (a pessoa manteve a foto apesar da duvida) — e um AVISO para olhar com atencao, nao uma recusa. seal_blocked (lista) = um anexo ao contrato nao entrou no documento final: o contrato fica parado (status signed_pending_seal) e o unico caminho e REPROVAR o documento daquela pessoa (com o motivo) para ela mandar outro; ai ele volta a esperar a aprovacao.",
|
|
36627
36743
|
"category": "Assinatura eletronica",
|
|
36628
36744
|
"params": [
|
|
36629
36745
|
{
|
|
@@ -36634,7 +36750,7 @@
|
|
|
36634
36750
|
"description": "ID do contrato"
|
|
36635
36751
|
}
|
|
36636
36752
|
],
|
|
36637
|
-
"returns": "{required[], awaiting_approval, people: [{participant_id, name, role, signed, proofs: [{kind, content_type, document_type, sent_at}], review: {status, decision, reason, by, at}, last_proof_event_id}]}",
|
|
36753
|
+
"returns": "{required[], requests: [{key, label, accepts_pdf, attach_to_contract, from_witnesses}], awaiting_approval, seal_blocked: [{participant_id, kind, label}], people: [{participant_id, name, role, signed, proofs: [{kind, label, content_type, document_type, sent_at, ai_check, ai_kept}], review: {status, decision, reason, by, at}, last_proof_event_id}]}",
|
|
36638
36754
|
"common_use_cases": [
|
|
36639
36755
|
"Saber se o contrato esta esperando a aprovacao dos documentos e de quem",
|
|
36640
36756
|
"Ver o motivo de uma reprovacao e se a pessoa ja mandou de novo"
|
|
@@ -36689,7 +36805,7 @@
|
|
|
36689
36805
|
"method": "POST",
|
|
36690
36806
|
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}/reject_proofs",
|
|
36691
36807
|
"title": "Reprovar Documentos de Quem Assina",
|
|
36692
|
-
"description": "Reprova os documentos de UMA pessoa com o motivo: ela recebe no canal dela (WhatsApp ou e-mail) o pedido de documento novo com o motivo escrito (MANDA mensagem ao cliente — confirme o texto com o usuario antes). Ela troca o que for preciso, toca Enviar e a equipe e avisada de novo. 422: motivo_obrigatorio, fora_do_momento, sem_documentos, documentos_mudaram. Administrador ou signature_manage.",
|
|
36808
|
+
"description": "Reprova os documentos de UMA pessoa com o motivo: ela recebe no canal dela (WhatsApp ou e-mail) o pedido de documento novo com o motivo escrito (MANDA mensagem ao cliente — confirme o texto com o usuario antes). Ela troca o que for preciso, toca Enviar e a equipe e avisada de novo. 422: motivo_obrigatorio, fora_do_momento, sem_documentos, documentos_mudaram. Administrador ou signature_manage. (29/10) Tambem e o caminho quando _proofs mostra seal_blocked (anexo que nao entrou no documento final): reprove o documento daquela pessoa e ela manda outro.",
|
|
36693
36809
|
"category": "Assinatura eletronica",
|
|
36694
36810
|
"params": [
|
|
36695
36811
|
{
|
|
@@ -37149,7 +37265,7 @@
|
|
|
37149
37265
|
"path": "/api/v1/accounts/{account_id}/agenda_treatments/{id}/marcar_todas",
|
|
37150
37266
|
"title": "Programa: marcar varias sessoes de uma vez",
|
|
37151
37267
|
"category": "Agenda / Tarefas",
|
|
37152
|
-
"description": "[POST] (15/09) Marca de uma vez as sessoes confirmadas do programa. Body: `sessoes: [{numero, date, slot}]` — o numero da sessao, o dia (YYYY-MM-DD) e o horario (HH:MM). NAO e transacao unica de proposito: cada sessao e uma reserva DE VERDADE (cria a tarefa, dispara confirmacao, lembrete e Google como qualquer agendamento), entao uma falha no meio NAO desfaz as que ja entraram na agenda — a resposta e 200 com `marcadas` e `falhas: [{numero, erro}]`.
|
|
37268
|
+
"description": "[POST] (15/09) Marca de uma vez as sessoes confirmadas do programa. Body: `sessoes: [{numero, date, slot}]` — o numero da sessao, o dia (YYYY-MM-DD) e o horario (HH:MM). NAO e transacao unica de proposito: cada sessao e uma reserva DE VERDADE (cria a tarefa, dispara confirmacao, lembrete e Google como qualquer agendamento), entao uma falha no meio NAO desfaz as que ja entraram na agenda — a resposta e 200 com `marcadas` e `falhas: [{numero, erro}]`. Com confirmacao ligada no tipo, o cliente recebe UMA confirmacao por DIA de marcacao do programa (nao uma por sessao); lembretes, gatilho de fluxo e conversoes continuam saindo por sessao. Teto de 60 sessoes por chamada. 422 se o programa estiver encerrado/concluido ou sem tipo de agendamento. Sessao que ja tem compromisso vivo volta em `falhas` ('Essa sessao ja foi marcada').",
|
|
37153
37269
|
"params": [
|
|
37154
37270
|
{
|
|
37155
37271
|
"name": "id",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "MCP server for LionChat API — 547 tools + 10 resources + 9 prompts. Audit-log aware, completion API, progress notifications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|