@lionchat/mcp-server 1.19.2 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/instructions.md +18 -4
- package/dist/docs/resources/assinatura-eletronica.md +75 -0
- package/dist/docs/resources/best-practices.md +13 -10
- package/dist/docs/resources/data-model.md +17 -0
- package/dist/docs/resources/filtros-e-relatorios.md +1 -1
- package/dist/docs/resources/flowbuilder-design-guide.md +7 -5
- package/dist/docs/resources/formularios-publicos.md +13 -1
- package/dist/docs/resources/glossary.md +20 -1
- package/dist/docs/resources/troubleshooting.md +14 -2
- package/dist/resources.js +6 -0
- package/dist/resources.js.map +1 -1
- package/dist/tools.js +29 -1
- package/dist/tools.js.map +1 -1
- package/endpoints.json +485 -12
- package/package.json +1 -1
|
@@ -19,9 +19,11 @@ Comprovado em produção (24/07): a sessão que dizia "não há função de list
|
|
|
19
19
|
kanban_items, funnels, flows, flow_tools, campaigns, macros, automation_rules, agents, teams,
|
|
20
20
|
inboxes, labels, canned_responses, reports, sla, csat, captain_assistants, captain_documents,
|
|
21
21
|
scheduled_messages, custom_attributes, webhooks, eclinica_integrations, tasks, notifications,
|
|
22
|
-
lead_forms (Formulários públicos de captação)
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
lead_forms (Formulários públicos de captação), signature_documents / signature_envelopes
|
|
23
|
+
(assinatura ELETRÔNICA de contratos — modelos e contratos enviados).
|
|
24
|
+
- **Fora do MCP por decisão do dono (19/08): assinatura DO PLANO (cobrança), plano, fatura, forma de
|
|
25
|
+
pagamento, cartão, saldo e recarga.** (A assinatura ELETRÔNICA de contratos é outra coisa e TEM
|
|
26
|
+
ferramentas: `lionchat_signature_*`.) Não existem ferramentas dessas áreas e não devem ser criadas. Se o usuário
|
|
25
27
|
pedir, diga que isso se resolve no painel, na área de assinatura da conta — não tente por
|
|
26
28
|
ferramenta nem por chamada direta.
|
|
27
29
|
- Só depois de pesquisar e não encontrar é que se pode dizer que a função não existe.
|
|
@@ -223,6 +225,17 @@ lionchat_conversations_messages_list (conversation_id: 123)
|
|
|
223
225
|
3. lionchat_inboxes_public_conversations_create (vincula contato à inbox)
|
|
224
226
|
```
|
|
225
227
|
|
|
228
|
+
**Telefone com ou sem o nono dígito (desde 05/09/2026):** a busca do passo 1 acha o contato
|
|
229
|
+
mesmo que ele esteja salvo na OUTRA forma do celular brasileiro (com o 9 quando você busca sem, e
|
|
230
|
+
vice-versa). Não precisa buscar duas vezes. Se mesmo assim `lionchat_contacts_create` devolver 422
|
|
231
|
+
com `attributes: ["phone_number"]`, o contato já existe — busque de novo e ATUALIZE em vez de criar.
|
|
232
|
+
Nunca tente "resolver" trocando a forma do número no create: a criação recusa as duas formas de
|
|
233
|
+
propósito (a recusa protege contra ficha em dobro).
|
|
234
|
+
**Atenção:** como a busca e o `contacts_filter` agora enxergam as duas formas, uma pessoa que tenha
|
|
235
|
+
ficha duplicada pode voltar como **2 resultados**. Nunca pegue o primeiro às cegas para
|
|
236
|
+
`contacts_update` — confira nome/e-mail ou pergunte ao usuário qual é a ficha certa. A lupa geral
|
|
237
|
+
(`lionchat_search_list`) NÃO tem essa tolerância: para telefone, use `lionchat_contacts_search`.
|
|
238
|
+
|
|
226
239
|
### Criar funil (kanban) novo com etapas
|
|
227
240
|
|
|
228
241
|
**FUNIL = KANBAN = pipeline = board — são a MESMA coisa no LionChat.** Quando o usuário pedir "cria um kanban", "monta um pipeline" ou "cria um funil", a ferramenta é `lionchat_funnels_create` (não existe endpoint separado de "criar kanban").
|
|
@@ -372,13 +385,14 @@ Antes de escolher a ferramenta, cheque se a intenção bate com a coluna da dire
|
|
|
372
385
|
|---|---|---|
|
|
373
386
|
| Listar / ver não lidas | `lionchat_conversations_list` (`conversation_type: 'unread'`) ou `lionchat_conversations_meta` | NÃO use `lionchat_conversations_unread` — é AÇÃO DE ESCRITA (marca como não-lida) |
|
|
374
387
|
| Achar a conversa **de uma pessoa/empresa** (nome, telefone, e-mail, CPF/CNPJ, nº da conversa) | `lionchat_search_list` (`/search/conversations`) ou `lionchat_contacts_search` | RÁPIDO. **NÃO use `lionchat_conversations_search`**: apesar do nome, ele é o legado que procura dentro das mensagens e leva **15 a 22 s** (medido em produção 11/08). O sufixo `_list` aqui é histórico — `lionchat_search_list*` **são buscas**, não listagens; a regra "não baixe tudo com `*_list`" vale para `lionchat_<recurso>_list` |
|
|
375
|
-
| Achar **onde foi dito** algo (palavra dentro da conversa) | `lionchat_search_list_2` (`/search/messages`) | RÁPIDO: índice trigram próprio e teto de tempo em duas fases (2 s / 14 s). É a substituta certa do `lionchat_conversations_search` |
|
|
388
|
+
| Achar **onde foi dito** algo (palavra dentro da conversa) | `lionchat_search_list_2` (`/search/messages`) | RÁPIDO: índice trigram próprio e teto de tempo em duas fases (2 s / 2 s desde 04/09 — antes a 2ª fase herdava 14 s e o pior caso da seção era 16 s). Estourou as duas, o payload volta com `message_search_interrupted: true` e a lista VAZIA — isso NÃO quer dizer que não existe, quer dizer que não deu tempo: tente de novo. É a substituta certa do `lionchat_conversations_search` |
|
|
376
389
|
| Não sei se o termo é nome de alguém ou algo dito no papo | `lionchat_search_search` (`/search`) | Cobre os dois numa chamada. Opção mais segura quando a intenção é ambígua |
|
|
377
390
|
| (qualquer busca) termo com menos de 3 caracteres | — | Volta **vazio de propósito** em todas as buscas. Vazio ≠ "não existe": quer dizer que a busca não rodou. Refaça com 3+ caracteres. Só-dígitos é isento nas rotas `/search/*`, mas **não** no `lionchat_conversations_search` legado |
|
|
378
391
|
| Só a contagem / números | `lionchat_conversations_meta` / `lionchat_reports_summary` | Não liste o conteúdo completo |
|
|
379
392
|
| Criar contato | `lionchat_contacts_create` base (path `/contacts`) | NÃO use as variantes `_1` … `_9` |
|
|
380
393
|
| Pausar a IA agora (botão de pânico) | `lionchat_captain_assistants_update` (`paused: true`, top-level) | — |
|
|
381
394
|
| 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 |
|
|
395
|
+
| **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). Importar Word, pré-visualizar e baixar PDF: só pela tela (o conector não envia arquivo nem recebe PDF) |
|
|
382
396
|
| **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 |
|
|
383
397
|
| 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 |
|
|
384
398
|
| 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 |
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Assinatura eletrônica de contratos
|
|
2
|
+
|
|
3
|
+
**Não confundir com "assinatura" de PLANO/cobrança** (fatura, cartão, saldo) — essa área fica fora do MCP.
|
|
4
|
+
Aqui é a **assinatura eletrônica de documentos**: o cliente assina um contrato pelo WhatsApp (ou e-mail),
|
|
5
|
+
com código de uso único, e o LionChat guarda a prova (IP, aparelho, localização, hash, PDF selado).
|
|
6
|
+
Feature `document_signing` (ligada por conta; 403 `feature_disabled` quando desligada).
|
|
7
|
+
|
|
8
|
+
## As três camadas
|
|
9
|
+
|
|
10
|
+
| Camada | O que é | Ferramentas |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| **Modelo** (`signature_documents`) | O contrato padrão, escrito uma vez com `{{variáveis}}` da ficha. `kind`: `text` (escrito no editor — o único que a API cria), `file` (PDF pronto, igual pra todos) ou `word` (.docx que sai idêntico com os campos mapeados) — os dois últimos só pela tela (upload). | `lionchat_signature_documents_list/show/create/update/destroy/field_catalog` |
|
|
13
|
+
| **Contrato** (`signature_envelopes`) | Cada ENVIO a uma pessoa: PDF próprio com os dados dela, prazo, linha do tempo. | `lionchat_signature_envelopes_list/show/create/resend/cancel/limits` |
|
|
14
|
+
| **Participante** | Quem assina dentro de um contrato: `signer` (titular, pode ser mais de um), `witness` (testemunha, opcional), `sender` (o remetente, quando o modelo tem "eu também assino" — assina NO PAINEL, sem link). Cada um tem link e código próprios. | dentro do contrato (`participants[]`) |
|
|
15
|
+
|
|
16
|
+
## Estados do contrato (`status`) e os baldes de filtro
|
|
17
|
+
|
|
18
|
+
| Balde (`status` na listagem) | Estados | Significado |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| `aguardando` | `draft`, `sent` | criado sem entrega (draft) ou enviado e ainda não aberto |
|
|
21
|
+
| `visualizado` | `viewed`, `partially_signed` | abriu o link / parte das pessoas já assinou |
|
|
22
|
+
| `assinado` | `signed_pending_seal`, `signed` | todos assinaram; selando / documento final pronto |
|
|
23
|
+
| `encerrado` | `refused`, `cancelled`, `expired` | recusado / cancelado pela equipe / prazo venceu |
|
|
24
|
+
| `falta_eu` | — | contratos abertos em que o usuário do token é o remetente e ainda não assinou |
|
|
25
|
+
|
|
26
|
+
Participante: `pending` → `viewed` → `verified` (confirmou o código) → `signed` | `refused`.
|
|
27
|
+
|
|
28
|
+
## Linha do tempo (`events[].kind`)
|
|
29
|
+
`created` · `delivered` (link entregue a uma pessoa) · `sent` · `opened` (cada abertura) · `code_requested` ·
|
|
30
|
+
`code_verified` · `signed` (com `ip`, `device`, `location`; `panel: true` = assinou no painel) · `all_signed` ·
|
|
31
|
+
`sealed` (documento final gerado, `sealed_sha256`) · `refused` · `cancelled` · `expired` · `delivery_failed`
|
|
32
|
+
(motivo em `delivery.failed[]`) · `reminded` · `resent`. Tudo append-only — é o relatório de evidências.
|
|
33
|
+
|
|
34
|
+
## Como mandar um contrato (receita)
|
|
35
|
+
1. `lionchat_signature_documents_list` → escolha o modelo (ou crie um `text` com `signature_documents_create`;
|
|
36
|
+
variáveis em `signature_documents_field_catalog`).
|
|
37
|
+
2. Confira a ficha: toda `{{variável}}` do modelo precisa ter valor no contato (nome, CPF, endereço…) —
|
|
38
|
+
senão o envio volta `422 variaveis_sem_valor` com a lista do que falta.
|
|
39
|
+
3. `lionchat_signature_envelopes_create` com `signature_document_id`, `contact_id` e `participants`
|
|
40
|
+
(`[{name, role: 'signer', phone, delivery_channel: 'whatsapp', contact_id}]`; testemunha = mais um item
|
|
41
|
+
com `role: 'witness'` e o telefone dela).
|
|
42
|
+
4. `422 escolher_caixa` → a pessoa conversa em mais de uma caixa de WhatsApp: repita com `inbox_id`.
|
|
43
|
+
5. Acompanhe com `signature_envelopes_show` (linha do tempo) ou `signature_envelopes_list`
|
|
44
|
+
(`contact_id`, `status`, `q`). Não chegou? `resend`. Errou? `cancel` (admin). Falta a SUA assinatura
|
|
45
|
+
(modelo com "eu também assino")? `signature_envelopes_sign_as_sender` — ver regra abaixo.
|
|
46
|
+
|
|
47
|
+
## Regras que valem sempre
|
|
48
|
+
- **Quem pode**: administrador ou cargo personalizado com "Gerenciar Assinaturas" (`signature_manage`) — vale para
|
|
49
|
+
criar/editar modelo, prévia, enviar, reenviar, baixar e "eu também assino" (403 sem a chave). A LISTA de modelos e a
|
|
50
|
+
leitura de um modelo continuam abertas a qualquer membro. Cancelar contrato e apagar modelo: só administrador.
|
|
51
|
+
- **Trava sagrada**: campo do modelo sem valor na ficha bloqueia o envio. Preencher a ficha primeiro.
|
|
52
|
+
- **Validade** (`roles_layout.validity_days`, padrão 7) conta do ENVIO; `{{document.deadline}}` imprime a data no
|
|
53
|
+
texto; passou = `expired` (cron de hora em hora). **Lembrete** (`reminder_days`, padrão 2, 0 = off): quem não
|
|
54
|
+
assinou recebe o link de novo a cada N dias.
|
|
55
|
+
- **Conversor de Word** é um serviço separado (docx-converter). Fora do ar = `422 conversor_indisponivel` na prévia e no envio de modelo Word — é o serviço, não o arquivo; repetir em instantes. Modelos `text` e `file` não passam por ele.
|
|
56
|
+
- **Fila única de conversão do Word**: uma conversão por vez em toda a instalação (todas as contas); pela tela espera-se até 10 s, automação/macro/fluxo/formulário até 2 s.
|
|
57
|
+
Passou disso o envio/prévia volta `422 fila_cheia` — é só repetir em instantes (o modelo está bom).
|
|
58
|
+
- **Limite mensal** (`signature_envelopes_limits`): cada contrato criado consome 1 vaga; cancelar não devolve.
|
|
59
|
+
- **PDFs** (original, assinado, evidências) e o **QR de conferência** só existem pela tela/download autenticado —
|
|
60
|
+
não há ferramenta que devolva os bytes. O `sealed_sha256` é o hash do documento final.
|
|
61
|
+
- **Só pela tela, de propósito** (existem na API, mas NÃO como ferramenta): importar um Word (`import_docx`),
|
|
62
|
+
pré-visualizar modelo ou rascunho (`preview`, `preview_draft`) e baixar PDF (`download`). O conector não envia
|
|
63
|
+
arquivo nem recebe PDF — não prometa "vou gerar a prévia" ou "vou baixar o assinado"; oriente a tela.
|
|
64
|
+
- **Assinar no painel** ("eu também assino", 08/09): `lionchat_signature_envelopes_sign_as_sender` assina como o
|
|
65
|
+
REMETENTE (a pessoa do token) — nunca no lugar do cliente. Manda `signature_image` (PNG em base64 com prefixo
|
|
66
|
+
`data:image/png;base64,...`), opcional `location {latitude, longitude, accuracy}` (vai pra prova) e
|
|
67
|
+
`remember_drawing`. 422: `nao_e_sua` (não é o remetente deste contrato), `ja_assinado`, `sem_desenho`. Era a
|
|
68
|
+
última que faltava? o contrato fecha e o PDF final é gerado em seguida. Os que esperam você: `status=falta_eu`.
|
|
69
|
+
- **Envio por outros caminhos**: ação `send_signature_document` no FlowBuilder, na Macro e na Automação;
|
|
70
|
+
bloco `generate_contract` no Formulário público (gera pelas respostas e manda o link). Gatilhos do Flow
|
|
71
|
+
`signature_*` (8 acontecimentos) trazem `{{contrato.*}}` — ver `lionchat_flows_schema_reference`.
|
|
72
|
+
|
|
73
|
+
## Onde o cliente vê
|
|
74
|
+
Menu **Assinaturas** (modelos e contratos, filtros, "Falta você assinar"), aba **Contratos** na ficha do contato,
|
|
75
|
+
pílulas na conversa a cada acontecimento e avisos no sininho para quem enviou.
|
|
@@ -160,11 +160,11 @@ Travas que valem conhecer (não dá pra desligar):
|
|
|
160
160
|
## Limite do prompt e cache OpenAI (2026-05-22)
|
|
161
161
|
|
|
162
162
|
- `config.instructions` (system prompt do agente) aceita até **20.000 caracteres** (antes 10k). Acima de 15k, o frontend mostra aviso "lost in the middle" — prefira colocar instruções críticas no início ou final.
|
|
163
|
-
- **Cache automático** ativo em todos os
|
|
163
|
+
- **Cache automático** ativo em todos os 19 modelos oferecidos na plataforma. Desconto 50-75% no input cachado, sem configuração. Reuso do prompt do agente em múltiplas conversas maximiza a economia.
|
|
164
164
|
|
|
165
165
|
### Lista real de modelos (`config.model`)
|
|
166
166
|
|
|
167
|
-
Estes são os
|
|
167
|
+
Estes são os 19 valores que o seletor de modelo do painel oferece (`ModelSelector.vue`). Só recomende
|
|
168
168
|
valores desta lista:
|
|
169
169
|
|
|
170
170
|
| Faixa | Modelos |
|
|
@@ -172,18 +172,21 @@ valores desta lista:
|
|
|
172
172
|
| Econômicos / rápidos | `gpt-4.1-nano`, `gpt-4o-mini`, `gpt-4.1-mini`, `gpt-5.4-nano`, `gpt-5.4-mini` |
|
|
173
173
|
| Intermediários | `gpt-4o`, `gpt-4.1`, `gpt-5-mini`, `gpt-5.4` |
|
|
174
174
|
| Raciocínio | `o3-mini`, `o4-mini` |
|
|
175
|
-
| Premium | `gpt-5`, `gpt-5.2`, `gpt-5.5`, `o1`, `o3` |
|
|
175
|
+
| Premium | `gpt-5`, `gpt-5.2`, `gpt-5.5`, `gpt-5.6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`, `o1`, `o3` |
|
|
176
176
|
|
|
177
177
|
**`GPT-5.2 Pro` não existe.** O valor válido é `gpt-5.2`, sem "Pro".
|
|
178
178
|
|
|
179
|
-
> **
|
|
180
|
-
>
|
|
181
|
-
>
|
|
182
|
-
>
|
|
183
|
-
> **
|
|
179
|
+
> **Família `gpt-5.6` (`gpt-5.6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`) — LIBERADA em 09/2026.**
|
|
180
|
+
> Foi removida em 29/07/2026 porque recusa function tools no canal antigo da OpenAI e deixava a IA MUDA.
|
|
181
|
+
> Desde 09/2026 o servidor fala com esses três pela porta `/v1/responses` (só para eles — nenhum outro
|
|
182
|
+
> modelo muda de canal). Podem ser gravados em `config.model` do assistente, no Copilot e no bloco de IA do
|
|
183
|
+
> Flow. **Recusam temperatura personalizada: `config.temperature` é ignorada** (só o padrão). O `sol` custa
|
|
184
|
+
> ~5x o `luna` — recomende o `luna` salvo pedido explícito. **NUNCA no bloco de IA do Formulário de Lead**
|
|
185
|
+
> (teto de 15 s; o servidor exclui e cai no fallback).
|
|
184
186
|
>
|
|
185
|
-
>
|
|
186
|
-
>
|
|
187
|
+
> Desde 09/2026 o campo `config.model` **tem lista branca no servidor** (`LlmConstants::SELECTABLE_MODELS`):
|
|
188
|
+
> trocar para um modelo fora da lista devolve **422** (`model is not included in the list`). Registro
|
|
189
|
+
> antigo com modelo fora da lista continua salvando os outros campos; só a troca é recusada.
|
|
187
190
|
> Desde 29/07 o erro vira uma **nota privada em português** na conversa (`llm_request_rejected`) — é o
|
|
188
191
|
> primeiro lugar a olhar quando "a IA parou de responder logo depois de mexerem nas configurações".
|
|
189
192
|
|
|
@@ -724,3 +724,20 @@ Os limites que a API devolve (`resource_limits.*` da conta, `email_usage.limit`,
|
|
|
724
724
|
duas contas no MESMO plano podem ter limites diferentes — não é defeito. Limite `0` significa
|
|
725
725
|
ILIMITADO em toda a plataforma. A contratação/remoção de adicionais é feita SÓ pela tela de
|
|
726
726
|
Cobrança do painel (não há ferramenta MCP para isso, por decisão do dono).
|
|
727
|
+
|
|
728
|
+
## Assinatura eletrônica de contratos (04/09)
|
|
729
|
+
|
|
730
|
+
```
|
|
731
|
+
SignatureDocument (modelo) 1 ──── N SignatureEnvelope (contrato de UMA pessoa) 1 ──── N SignatureParticipant
|
|
732
|
+
name, kind (text|file|word) title, status, sent_at, expires_at, name, role (signer|witness|sender),
|
|
733
|
+
body ({{variáveis}}), tags, contact_id, conversation_id, status, phone/email, delivery_channel,
|
|
734
|
+
roles_layout {signers, witnesses, original_sha256, sealed_sha256, conversation_id (a conversa DELE),
|
|
735
|
+
sender_signs, require_id_photo, created_by (quem mandou) public_url, signed_at, viewed_at
|
|
736
|
+
validity_days, reminder_days} │
|
|
737
|
+
progress (contagem por balde) └── N SignatureEvent (append-only: kind, occurred_at, ip, user_agent, detail)
|
|
738
|
+
```
|
|
739
|
+
- Contrato aponta pro contato (`contact_id`, nulifica se a ficha for apagada — a prova sobrevive) e pra conversa
|
|
740
|
+
do titular; cada participante tem a PRÓPRIA conversa (testemunha na dela).
|
|
741
|
+
- `roles_layout` é jsonb aberto e MESCLADO no update; `progress` é calculado (aguardando/visualizado/assinado/encerrado).
|
|
742
|
+
- Feature por conta: `document_signing`. Limite mensal em `usage_limits.signature_requests_per_month` (0 = ilimitado).
|
|
743
|
+
- Detalhe completo: resource `lionchat://docs/assinatura-eletronica`.
|
|
@@ -79,7 +79,7 @@ Mesmo shape de condição. 15/página.
|
|
|
79
79
|
|---|---|
|
|
80
80
|
| `id` (id interno do contato) | equal_to, not_equal_to |
|
|
81
81
|
| `name`, `email`, `identifier`, `city`, `company`, `profession` | equal_to, not_equal_to, contains, does_not_contain |
|
|
82
|
-
| `phone_number` | + starts_with (busca por DDD/prefixo) — **corrigido na atualização de 26/07/2026**; em instalação anterior devolve SEMPRE lista vazia (virava igualdade exata). Vazio com prefixo que existe = instalação antiga |
|
|
82
|
+
| `phone_number` | + starts_with (busca por DDD/prefixo) — **corrigido na atualização de 26/07/2026**; em instalação anterior devolve SEMPRE lista vazia (virava igualdade exata). Vazio com prefixo que existe = instalação antiga. **`equal_to`/`not_equal_to` casam as DUAS formas do celular BR (com e sem o 9º dígito) desde 05/09/2026** — mande `+5541999887766` ou `+554199887766`, os dois acham a mesma ficha; `not_equal_to` exclui as duas. Termo que não é celular BR completo (fixo, estrangeiro, trecho) segue exato |
|
|
83
83
|
| `cpf`, `cnpj`, `rg` (cadastral) | equal_to, not_equal_to, contains, does_not_contain, is_present, is_not_present |
|
|
84
84
|
| `country_code` | equal_to, not_equal_to |
|
|
85
85
|
| `labels` | equal_to, not_equal_to, is_present, is_not_present |
|
|
@@ -672,13 +672,15 @@ aiModel nos modos novos (proteção de nós antigos que carregam aiModel de defa
|
|
|
672
672
|
padrão da conta).
|
|
673
673
|
Exemplo: `{"aiMode":"sentiment","aiAssistantId":"12","aiModel":"gpt-4.1-mini","aiModelExplicit":true}`.
|
|
674
674
|
|
|
675
|
-
**A whitelist (`FlowBuilder::RawLlmService::SUPPORTED_MODELS`) é uma lista FECHADA de
|
|
675
|
+
**A whitelist (`FlowBuilder::RawLlmService::SUPPORTED_MODELS`) é uma lista FECHADA de 19 nomes, SEM
|
|
676
676
|
curinga** — não existe "a família gpt-5 inteira":
|
|
677
677
|
`gpt-4o-mini`, `gpt-4o`, `gpt-4.1-nano`, `gpt-4.1-mini`, `gpt-4.1`, `gpt-5-mini`, `gpt-5`,
|
|
678
|
-
`gpt-5.2`, `gpt-5.4-nano`, `gpt-5.4-mini`, `gpt-5.4`, `gpt-5.5`, `
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
678
|
+
`gpt-5.2`, `gpt-5.4-nano`, `gpt-5.4-mini`, `gpt-5.4`, `gpt-5.5`, `gpt-5.6-luna`, `gpt-5.6-terra`,
|
|
679
|
+
`gpt-5.6-sol`, `o1`, `o3`, `o3-mini`, `o4-mini`.
|
|
680
|
+
A família **`gpt-5.6` (luna/terra/sol) voltou em 09/2026** (tinha sido removida em 2026-07-29 porque
|
|
681
|
+
recusa function tools no canal antigo): o servidor fala com esses três pela porta `/v1/responses`.
|
|
682
|
+
Eles ignoram a temperatura do bloco (só o padrão) e **NÃO valem no bloco de IA do Formulário de Lead**
|
|
683
|
+
(teto de 15 s — o servidor exclui e usa o fallback). Também não existem `o1-mini`, `gpt-4.5-preview`,
|
|
682
684
|
`gpt-5.2-pro` nem `gpt-5.5-pro` (a OpenAI recusa).
|
|
683
685
|
|
|
684
686
|
**OBRIGATÓRIO via API — `aiAssistantId`:** os modos `generate`/`intent`/`sentiment`/`extract`
|
|
@@ -23,7 +23,7 @@ caixa de WhatsApp vinculada e (opcionalmente) dispara um fluxo do FlowBuilder no
|
|
|
23
23
|
responde 404** — ninguém consegue preencher. As tools de dashboard (listar, criar, editar,
|
|
24
24
|
publicar, ver respostas, simular) **funcionam mesmo assim**. Dá pra montar tudo antes de ligar a
|
|
25
25
|
flag; não adianta divulgar o link antes.
|
|
26
|
-
- **Escrita é
|
|
26
|
+
- **Escrita é de administrador ou de cargo personalizado com "Gerenciar Formulários" (`lead_form_manage`).** `create`, `update`, `destroy`, `publish`, `duplicate` e
|
|
27
27
|
`check_embed` passam por `check_admin_authorization?`; usuário não-admin recebe **401**. Leitura
|
|
28
28
|
(`list`, `show`, `stats`, `responses`) e o **simulador** (`test_run`) são liberados a qualquer
|
|
29
29
|
agente da conta.
|
|
@@ -194,6 +194,7 @@ whitelist do `metadata` segue sem ela) — a decisão é do servidor.
|
|
|
194
194
|
| `end` | `title, description, redirect_url, button_label, image, video_url` | — | sim |
|
|
195
195
|
| `api_request` | `label, method, url, headers, body, timeout` | `success`, `error` | não (mostra bloco de espera) |
|
|
196
196
|
| `ai` | `label, mode, prompt, categories, include_answers, model` | modo `generate`: `success`, `error` / modo `classify`: um `cat_<id>` por categoria + `other` | não (mostra bloco de espera) |
|
|
197
|
+
| `generate_contract` | `label, document_id, send_link` | `success`, `error` | não (mostra bloco de espera) |
|
|
197
198
|
|
|
198
199
|
**Chave fora da lista não é lida pelo motor** e o editor a **remove no próximo salvamento pela
|
|
199
200
|
tela**. Escrever um campo inventado pela API não gera erro nenhum — ele simplesmente não faz nada e
|
|
@@ -318,6 +319,16 @@ respostas já dadas como contexto. `model` é validado contra a lista suportada;
|
|
|
318
319
|
da conta. A IA usa a **chave da própria conta** — conta sem chave faz o bloco sair pela saída de
|
|
319
320
|
erro.
|
|
320
321
|
|
|
322
|
+
**`generate_contract`** (04/09 — bloco "Gerar contrato", feature `document_signing`): gera o CONTRATO de
|
|
323
|
+
assinatura eletrônica daquela pessoa a partir de um modelo (`document_id` = id de
|
|
324
|
+
`lionchat_signature_documents_list`) com os dados da FICHA — mapeie as perguntas com `map_to` para os
|
|
325
|
+
campos que o modelo usa (nome, CPF, endereço…); campo sem valor = saída `error` com o motivo
|
|
326
|
+
(`variaveis_sem_valor: contact.cpf`). `send_link` (padrão `true`) manda o link de assinatura no WhatsApp da
|
|
327
|
+
pessoa (conversa da caixa vinculada); `false` deixa o contrato pronto e você manda `{{contrato.<node_id>.link}}`
|
|
328
|
+
pelo bloco `send_message`. Roda DEPOIS do vínculo do contato, como efeito (bloco de espera), dentro dos
|
|
329
|
+
orçamentos do formulário (200 contratos/formulário/dia, 2.000/conta/dia). Consome 1 vaga do limite mensal
|
|
330
|
+
de contratos. Saídas: `success` (contrato criado) e `error`.
|
|
331
|
+
|
|
321
332
|
### Variáveis
|
|
322
333
|
|
|
323
334
|
| Variável | O que traz | Onde vale |
|
|
@@ -326,6 +337,7 @@ erro.
|
|
|
326
337
|
| `{{contact.name}}` `{{contact.phone}}` `{{contact.email}}` | O que a pessoa respondeu (a ficha é reserva) | idem |
|
|
327
338
|
| `{{api.<node_id>.<caminho>}}` | Um pedaço da resposta de uma consulta | idem |
|
|
328
339
|
| `{{ia.<node_id>}}` | O texto que a IA gerou naquele bloco | idem |
|
|
340
|
+
| `{{contrato.<node_id>.link}}` `.titulo` `.prazo` `.id` `.status` | O contrato gerado pelo bloco Gerar contrato (endereço de assinatura, título, data-limite) | mensagem, prompt, valores |
|
|
329
341
|
| `{{var.<nome>}}` | Variável criada pelo bloco Definir variável | idem |
|
|
330
342
|
| `{{conta.<variável>}}` | Variável da conta (cofre) | cabeçalho e CORPO de `api_request` (com segredo); em `set_variable` e no valor das Ações só as NÃO-secretas |
|
|
331
343
|
|
|
@@ -566,7 +566,7 @@ com data futura ou `has_imported_history` fecharia a janela de 24h daquela conve
|
|
|
566
566
|
|---|---|---|
|
|
567
567
|
| `medium` | caixa (`inboxes_list`/`_show`) | sub-tipo do canal. Numa caixa de Página do Facebook diz se ela é Messenger ou **só Instagram** — é o que separa os dois |
|
|
568
568
|
| `content` | mensagem | já vem no formato de exibição (mensagem apagada mostra o aviso, não o texto cru) |
|
|
569
|
-
| `last_incoming_message_at` | conversa | data da última mensagem VIVA do cliente (unix). Use para saber se a janela de 24h está aberta — não confie na data da conversa, que pode vir de histórico importado |
|
|
569
|
+
| `last_incoming_message_at` | conversa | data da última mensagem VIVA do cliente (unix). Use para saber se a janela de 24h está aberta — não confie na data da conversa, que pode vir de histórico importado. Mensagem que a Meta entregou ATRASADA (reentrega depois de uma queda) conta pela hora de ENVIO da Meta, não pela chegada (08/09): o campo, `can_reply` e a tela seguem a mesma régua que a Meta usa pra recusar |
|
|
570
570
|
|
|
571
571
|
## Formulário público: código para incorporar no site (02/09/2026)
|
|
572
572
|
|
|
@@ -584,3 +584,22 @@ A gravação permanente só nasce cerca de 24h depois da ligação. O card agora
|
|
|
584
584
|
conversa). Quem atendeu voltou a aparecer nas recebidas. Se o cliente diz que o botão de ouvir não
|
|
585
585
|
funciona numa ligação de hoje, o mais provável é que o arquivo permanente ainda não exista — a
|
|
586
586
|
reconferência resolve sozinha dentro de 36h.
|
|
587
|
+
|
|
588
|
+
## Assinatura eletrônica de contratos (04/09)
|
|
589
|
+
|
|
590
|
+
### `status` do contrato (`signature_envelopes`)
|
|
591
|
+
| Valor | Balde de filtro | Significado |
|
|
592
|
+
|---|---|---|
|
|
593
|
+
| `draft` | aguardando | criado sem nenhuma entrega (falhou) — use `resend` |
|
|
594
|
+
| `sent` | aguardando | link entregue, ninguém abriu ainda |
|
|
595
|
+
| `viewed` | visualizado | alguém abriu o link |
|
|
596
|
+
| `partially_signed` | visualizado | parte das pessoas assinou |
|
|
597
|
+
| `signed_pending_seal` | assinado | todos assinaram; o documento final está sendo gerado |
|
|
598
|
+
| `signed` | assinado | documento final pronto (`sealed_sha256`) |
|
|
599
|
+
| `refused` / `cancelled` / `expired` | encerrado | recusado / cancelado pela equipe / prazo venceu |
|
|
600
|
+
|
|
601
|
+
### `role` do participante: `signer` (titular), `witness` (testemunha), `sender` (remetente — assina no painel).
|
|
602
|
+
### `status` do participante: `pending` → `viewed` → `verified` → `signed` | `refused`.
|
|
603
|
+
### Erros do envio (`signature_envelopes_create`): `variaveis_sem_valor` (+ `missing[]`), `escolher_caixa` (+ `inboxes[]`),
|
|
604
|
+
`entrega_falhou`, `sem_caixa_whatsapp`, `telefone_invalido`, `limite_do_mes`, `cpf_invalido`, `funcionalidade_desligada`,
|
|
605
|
+
`fila_cheia` (fila única de conversão do Word cheia — repetir em instantes), `conversor_indisponivel` (o serviço de conversão de Word não respondeu — repetir em instantes).
|
|
@@ -168,8 +168,12 @@ Feature flag específica (ex: `feature_kanban`, `feature_captain`) está OFF.
|
|
|
168
168
|
- `"phone_number has already been taken"` — mesmo problema. **Desde 2026-09-01 é trava do BANCO** (índice
|
|
169
169
|
único telefone+conta, como e-mail e identifier têm desde 2023): dois `contacts_create` com o mesmo
|
|
170
170
|
telefone em paralelo já não criam gêmeos — o segundo volta 422. Antes de criar, procure com
|
|
171
|
-
`lionchat_contacts_search`
|
|
172
|
-
|
|
171
|
+
`lionchat_contacts_search` — **a busca acha o telefone com e sem o 9º dígito a partir da versão de
|
|
172
|
+
05/09/2026** (29/08 entregou só a busca de ficha ÚNICA usada pela criação; a busca de LISTA e o filtro
|
|
173
|
+
ficaram exatos até 05/09 — por isso a integração ficava presa: buscava, não achava, criava e levava 422).
|
|
174
|
+
Para atualizar, use `contacts_update` no que já existe. Duplicado só aparece se as fichas nasceram
|
|
175
|
+
ANTES da trava. O texto do 422 sai no idioma padrão da instalação (inglês) mesmo em conta pt_BR —
|
|
176
|
+
case `attributes: ["phone_number"]`, nunca a frase
|
|
173
177
|
- `"phone_number must be a valid number with country code"` — formato E.164: `+5511999999999`
|
|
174
178
|
|
|
175
179
|
### Message
|
|
@@ -626,6 +630,14 @@ aquele contato nunca escreveu pela conexão oficial (a mensagem existe no painel
|
|
|
626
630
|
copiou do celular). O envio de texto livre é recusado mesmo com a fala do cliente visível na tela.
|
|
627
631
|
Saída: modelo aprovado (template) ou esperar o cliente escrever de verdade pela caixa oficial.
|
|
628
632
|
|
|
633
|
+
## "A conversa mostra fala do cliente de hoje, mas a Meta recusou com 131047" — 08/09
|
|
634
|
+
A Meta às vezes entrega uma mensagem HORAS depois de o cliente mandar (reentrega depois de uma queda ou
|
|
635
|
+
congelamento). Até 08/09 o LionChat contava a janela de 24h pela CHEGADA no servidor, e a Meta conta pelo
|
|
636
|
+
ENVIO — a tela dizia "dentro da janela", o `can_reply` vinha `true`, e a Meta recusava (131047). Desde 08/09
|
|
637
|
+
a mensagem atrasada carrega a hora de envio da Meta e a janela é contada por ela: `last_incoming_message_at`,
|
|
638
|
+
`can_reply` e a tela passam a concordar com a Meta. Diagnóstico: se `can_reply` é `false` com uma fala recente
|
|
639
|
+
na tela, é isso — mande template (utilidade) em vez de texto livre. Caso real: Onipresença, 28 conversas.
|
|
640
|
+
|
|
629
641
|
## "Adicionei etiqueta e as antigas sumiram" — CORRIGIDO em 24/08
|
|
630
642
|
|
|
631
643
|
Era defeito real (o segundo bloco "Adicionar etiqueta" do mesmo fluxo apagava as do primeiro, e
|
package/dist/resources.js
CHANGED
|
@@ -77,6 +77,12 @@ export const RESOURCES = [
|
|
|
77
77
|
description: 'Feature Formularios (captacao estilo Typeform/Typebot): contrato completo do form_data (blocos, handles, variaveis, blocos de API e IA), regras de publicacao, tetos e receitas. Use SEMPRE antes de criar/editar formularios via lionchat_lead_forms_*.',
|
|
78
78
|
filename: 'formularios-publicos.md',
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
name: 'Assinatura Eletronica de Contratos',
|
|
82
|
+
uri: 'lionchat://docs/assinatura-eletronica',
|
|
83
|
+
description: 'Assinatura eletronica de DOCUMENTOS (nao e a assinatura do plano): modelos, contratos, participantes, estados, linha do tempo/evidencias, receita de envio, trava de variaveis, limites; gatilhos/acao do Flow e bloco do Formulario. Use antes de lionchat_signature_*.',
|
|
84
|
+
filename: 'assinatura-eletronica.md',
|
|
85
|
+
},
|
|
80
86
|
];
|
|
81
87
|
function findDocsPath(filename) {
|
|
82
88
|
// __dirname e dist/ quando publicado (dist/docs/resources/) ou dist/ em dev.
|
package/dist/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,iEAAiE;AAEjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAS1D,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC;QACE,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,0BAA0B;QAC/B,WAAW,EACT,mIAAmI;QACrI,QAAQ,EAAE,aAAa;KACxB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,4BAA4B;QACjC,WAAW,EACT,sGAAsG;QACxG,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,+BAA+B;QACpC,WAAW,EACT,4GAA4G;QAC9G,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,iCAAiC;QACtC,WAAW,EACT,iHAAiH;QACnH,QAAQ,EAAE,oBAAoB;KAC/B;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,sCAAsC;QAC3C,WAAW,EACT,8NAA8N;QAChO,QAAQ,EAAE,yBAAyB;KACpC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,oCAAoC;QACzC,WAAW,EACT,oJAAoJ;QACtJ,QAAQ,EAAE,uBAAuB;KAClC;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,kCAAkC;QACvC,WAAW,EACT,oIAAoI;QACtI,QAAQ,EAAE,qBAAqB;KAChC;IACD;QACE,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,gCAAgC;QACrC,WAAW,EACT,2HAA2H;QAC7H,QAAQ,EAAE,mBAAmB;KAC9B;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,iCAAiC;QACtC,WAAW,EACT,yHAAyH;QAC3H,QAAQ,EAAE,oBAAoB;KAC/B;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,GAAG,EAAE,0CAA0C;QAC/C,WAAW,EACT,+LAA+L;QACjM,QAAQ,EAAE,6BAA6B;KACxC;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,sCAAsC;QAC3C,WAAW,EACT,qNAAqN;QACvN,QAAQ,EAAE,yBAAyB;KACpC;IACD;QACE,GAAG,EAAE,sCAAsC;QAC3C,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,0PAA0P;QAC5P,QAAQ,EAAE,yBAAyB;KACpC;CACF,CAAC;AAEF,SAAS,YAAY,CAAC,QAAgB;IACpC,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAS,kCAAkC;QACtF,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAM,oBAAoB;QACxE,IAAI,CAAC,SAAS,EAAE,0BAA0B,EAAE,QAAQ,CAAC,EAAE,oBAAoB;KAC5E,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,gBAAgB,CACrB,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,GAAG,EACP;YACE,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,eAAe;SAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG,CAAC,IAAI;wBACb,QAAQ,EAAE,eAAe;wBACzB,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -346,7 +346,7 @@ function registerListCategoriesTool(server, allEndpoints) {
|
|
|
346
346
|
// Helps LLMs build correct flow_data without hitting trial-and-error on
|
|
347
347
|
// node types, action keys, source handles, etc.
|
|
348
348
|
function registerFlowsSchemaReferenceTool(server) {
|
|
349
|
-
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-09-
|
|
349
|
+
const reference = `LIONCHAT FLOW BUILDER — SCHEMA REFERENCE (atualizado 2026-09-08)
|
|
350
350
|
|
|
351
351
|
flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
352
352
|
|
|
@@ -470,6 +470,26 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
470
470
|
receber duas mensagens (a tela avisa). Caixa WhatsApp OFICIAL: conversa criada nova (ou parada ha
|
|
471
471
|
mais de 24h) esta FORA da janela — texto livre no 1o bloco cai em "window_closed"/erro; comece por
|
|
472
472
|
template.
|
|
473
|
+
signature_sent / signature_viewed / signature_signed_signer / signature_signed_witness /
|
|
474
|
+
signature_signed_other / signature_all_signed / signature_refused / signature_expired (NOVOS
|
|
475
|
+
2026-09-04 — gatilhos de ASSINATURA ELETRONICA de contratos; aba "Assinatura" do Inicio, so com a
|
|
476
|
+
feature document_signing ligada na conta): documento enviado pra alguem assinar / a pessoa abriu o
|
|
477
|
+
link (1a vez) / o titular assinou / uma testemunha assinou / o remetente ou outro papel assinou /
|
|
478
|
+
todos assinaram (documento final gerado) / alguem recusou / o prazo terminou sem todas as
|
|
479
|
+
assinaturas. INERTES a evento de conversa (quem dispara e o SignatureEnvelopes::FlowTriggerDispatcher,
|
|
480
|
+
a partir do proprio registro da prova). Item: {key:'signature_signed_signer', config:{document_ids:[]}}
|
|
481
|
+
— document_ids = ids de MODELO de contrato (STRINGS; vazio = qualquer modelo). A sessao nasce na
|
|
482
|
+
conversa da PESSOA do acontecimento (a testemunha tem a dela); contrato so por e-mail (sem conversa)
|
|
483
|
+
nao dispara; o flow precisa estar ligado a caixa da conversa (ou a nenhuma). Sessao ativa do MESMO
|
|
484
|
+
flow na conversa NAO e atropelada (pulo visivel 'session_already_active'). Idempotente por 24h.
|
|
485
|
+
SO flow individual. Variaveis {{contrato.*}}: contrato.id, contrato.evento (sent|opened|signed|
|
|
486
|
+
sealed|refused|expired), contrato.titulo, contrato.modelo, contrato.modelo_id, contrato.status,
|
|
487
|
+
contrato.enviado_em, contrato.prazo, contrato.validade_dias, contrato.assinado_por_todos (sim|nao),
|
|
488
|
+
contrato.conversa_id; quem agiu: contrato.assinante.nome / .papel (Assinante|Testemunha|Remetente) /
|
|
489
|
+
.papel_chave (signer|witness|sender) / .email / .telefone / .cpf / .status / .assinou_em /
|
|
490
|
+
.abriu_em / .link (endereco de assinatura; vazio pra quem assina no painel) / .ip / .dispositivo /
|
|
491
|
+
.localizacao / .foto_documento (sim|nao) / .pelo_painel (sim|nao); lista: contrato.participantes
|
|
492
|
+
(array de {nome, papel, status, assinou_em}). trigger.type = a chave do gatilho.
|
|
473
493
|
CONFLITO (flow_trigger_conflict): e por CONTA, nao por caixa — dois flows ATIVOS com o mesmo
|
|
474
494
|
booking_* colidem quando os tipos se cruzam E os agentes se cruzam (lista vazia = todos, entao dois
|
|
475
495
|
flows "vazio + vazio" colidem). Resolva com filtros disjuntos ou um flow so com condition.
|
|
@@ -705,6 +725,12 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
705
725
|
add_sla({sla_policy_id}) — NOVO 24/07: aplica politica de SLA na conversa (id de sla_list;
|
|
706
726
|
aceita variavel Liquid). NO-OP se a conversa JA tem SLA (nunca troca/reinicia); politica
|
|
707
727
|
inexistente nao quebra o fluxo
|
|
728
|
+
send_signature_document({document_id, inbox_id?}) — NOVO 04/09: manda um MODELO de contrato
|
|
729
|
+
(assinatura eletronica; id de lionchat_signature_documents_list) pra pessoa desta conversa; o
|
|
730
|
+
link sai NESTA conversa (ou por e-mail se a ficha nao tem telefone). O PDF e gerado com os
|
|
731
|
+
dados da ficha: variavel do modelo sem valor na ficha = o bloco fica com ERRO e o motivo
|
|
732
|
+
('variaveis_sem_valor: contact.cpf'), nunca verde por engano. A mesma acao existe em macro e
|
|
733
|
+
automacao (send_signature_document, action_params [document_id]). Exige document_signing.
|
|
708
734
|
Contato: add_label({labels:[...]}), remove_label({labels:[...]}), // etiqueta NO CONTATO
|
|
709
735
|
update_attribute({attr_source:'contact'|'conversation'|'card', attr_key, attr_value})
|
|
710
736
|
— campos EXATOS (NAO entity/key/value). Somar/subtrair via Liquid no attr_value:
|
|
@@ -780,6 +806,8 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
|
|
|
780
806
|
aiModel, // opcional: modelo LLM SO deste node (ex "gpt-4.1-mini");
|
|
781
807
|
// vazio/ausente = modelo padrao da conta; vale em TODOS os
|
|
782
808
|
// modos e tambem com assistente (sobrepoe o modelo dele)
|
|
809
|
+
// gpt-5.6-luna/terra/sol aceitos desde 08/09 (sem temperatura);
|
|
810
|
+
// modelo fora da lista de 19 = 422 na hora de salvar o assistente
|
|
783
811
|
aiModelExplicit: true, // OBRIGATORIO junto do aiModel — sem esta flag o backend
|
|
784
812
|
// IGNORA o aiModel (protecao de nodes antigos)
|
|
785
813
|
aiIntents: [{name}], // se intent — ARRAY DE OBJETOS (NAO array de strings)
|
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
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"method": "POST",
|
|
174
174
|
"path": "/api/v1/accounts/{account_id}/contacts",
|
|
175
175
|
"title": "Criar Contato",
|
|
176
|
-
"description": "Cria um contato. Nenhum campo e estritamente obrigatorio (recomendado phone_number ou email). Aceita name, email, phone_number, identifier, additional_attributes, custom_attributes, blocked. TELEFONE UNICO POR CONTA (trava no BANCO desde 01/09/2026, como e-mail e identifier): phone_number ja cadastrado em outro contato da conta = 422 'phone_number has already been taken' — inclusive em chamadas paralelas. Procure antes com contacts_search (acha com e sem o 9o digito) e use contacts_update no que existe.",
|
|
176
|
+
"description": "Cria um contato. Nenhum campo e estritamente obrigatorio (recomendado phone_number ou email). Aceita name, email, phone_number, identifier, additional_attributes, custom_attributes, blocked. TELEFONE UNICO POR CONTA (trava no BANCO desde 01/09/2026, como e-mail e identifier): phone_number ja cadastrado em outro contato da conta = 422 'phone_number has already been taken' — inclusive em chamadas paralelas. Procure antes com contacts_search (acha com e sem o 9o digito) e use contacts_update no que existe.\n\nSE VOLTAR 422 com attributes:['phone_number']: o contato JA EXISTE — na forma exata OU na outra forma do nono digito. Nao tente criar de novo trocando a forma do numero (a recusa protege contra ficha em dobro): busque com lionchat_contacts_search e use contacts_update. Case os 'attributes' da resposta, nunca o texto da mensagem (ela sai no idioma padrao da instalacao, em ingles).",
|
|
177
177
|
"category": "Contatos",
|
|
178
178
|
"params": [
|
|
179
179
|
{
|
|
@@ -646,7 +646,7 @@
|
|
|
646
646
|
"method": "GET",
|
|
647
647
|
"path": "/api/v1/accounts/{account_id}/contacts/search",
|
|
648
648
|
"title": "Buscar Contatos",
|
|
649
|
-
"description": "Busca contatos por texto (insensivel a acento) em nome/email/telefone/identifier. Obrigatorio: q.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao).",
|
|
649
|
+
"description": "Busca contatos por texto (insensivel a acento) em nome/email/telefone/identifier. Obrigatorio: q.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao).\n\nTELEFONE COM E SEM O 9 (desde 05/09/2026): quando 'q' e um celular brasileiro completo (com ou sem o nono digito, com ou sem '+', formatado ou nao), a busca acha o contato salvo em QUALQUER das duas formas. Nao precisa buscar duas vezes. Uma pessoa com ficha duplicada pode voltar como 2 resultados — nunca pegue o primeiro as cegas para contacts_update; confira nome/e-mail. A lupa geral (lionchat_search_list) NAO tem essa tolerancia: para telefone, use esta.",
|
|
650
650
|
"category": "Contatos",
|
|
651
651
|
"params": [
|
|
652
652
|
{
|
|
@@ -654,7 +654,7 @@
|
|
|
654
654
|
"type": "string",
|
|
655
655
|
"location": "query",
|
|
656
656
|
"required": true,
|
|
657
|
-
"description": "Termo de busca"
|
|
657
|
+
"description": "Termo de busca. Telefone: qualquer forma (com/sem +, com/sem o nono digito, formatado) acha a mesma ficha."
|
|
658
658
|
},
|
|
659
659
|
{
|
|
660
660
|
"name": "page",
|
|
@@ -698,7 +698,7 @@
|
|
|
698
698
|
"method": "POST",
|
|
699
699
|
"path": "/api/v1/accounts/{account_id}/contacts/filter",
|
|
700
700
|
"title": "Filtrar Contatos",
|
|
701
|
-
"description": "Filtra contatos com condicoes avancadas (payload de condicoes). 15/pagina.\n\nCHAVES FILTRAVEIS: name, email, identifier (equal_to/not_equal_to/contains/does_not_contain — match parcial case-insensitive); phone_number (+starts_with); country_code, city, company; cpf, cnpj, rg, profession (cadastral; cpf/cnpj/rg aceitam is_present/is_not_present); labels; created_at, last_activity_at (is_greater_than/is_less_than/days_before); blocked (equal_to true/false); QUALQUER outra chave = atributo personalizado do contato.\n\nREGISTROS VINCULADOS (acha o contato pelo que aconteceu com ele): attribute_key 'conversation_search' (conversa vinculada: conversation_status/conversation_labels/conversation_inbox_id), condicoes com custom_attribute_type 'conversation_attribute' (atributo da conversa vinculada) e attribute_key 'kanban_card' (card vinculado: card_funnel_id/card_stage/card_priority/card_status). Combinaveis com E/OU.\n\nCada condicao: {attribute_key, filter_operator, values[], query_operator:'and'|'or', custom_attribute_type?}. Operador fora da lista da chave = 422. [2026-07-25] Nova chave id (id interno do contato, equal_to/not_equal_to) — serve pra exportar/checar UM contato especifico. NOTA 18/08: data FIXA com is_greater_than/is_less_than corta o dia no FUSO DA CONTA (padrao America/Sao_Paulo), nao mais em UTC — mesmo criterio das datas relativas.",
|
|
701
|
+
"description": "Filtra contatos com condicoes avancadas (payload de condicoes). 15/pagina.\n\nCHAVES FILTRAVEIS: name, email, identifier (equal_to/not_equal_to/contains/does_not_contain — match parcial case-insensitive); phone_number (+starts_with); country_code, city, company; cpf, cnpj, rg, profession (cadastral; cpf/cnpj/rg aceitam is_present/is_not_present); labels; created_at, last_activity_at (is_greater_than/is_less_than/days_before); blocked (equal_to true/false); QUALQUER outra chave = atributo personalizado do contato.\n\nREGISTROS VINCULADOS (acha o contato pelo que aconteceu com ele): attribute_key 'conversation_search' (conversa vinculada: conversation_status/conversation_labels/conversation_inbox_id), condicoes com custom_attribute_type 'conversation_attribute' (atributo da conversa vinculada) e attribute_key 'kanban_card' (card vinculado: card_funnel_id/card_stage/card_priority/card_status). Combinaveis com E/OU.\n\nCada condicao: {attribute_key, filter_operator, values[], query_operator:'and'|'or', custom_attribute_type?}. Operador fora da lista da chave = 422. [2026-07-25] Nova chave id (id interno do contato, equal_to/not_equal_to) — serve pra exportar/checar UM contato especifico. NOTA 18/08: data FIXA com is_greater_than/is_less_than corta o dia no FUSO DA CONTA (padrao America/Sao_Paulo), nao mais em UTC — mesmo criterio das datas relativas.\n\nTELEFONE COM E SEM O 9 (desde 05/09/2026): phone_number com equal_to/not_equal_to casa as DUAS formas do celular brasileiro (mande +5541999887766 ou +554199887766 — acham a mesma ficha; not_equal_to exclui as duas). Valor formatado ('(41) 99988-7766') tambem casa. Telefone fixo, estrangeiro ou trecho segue exato. ATENCAO: 'Selecionar todos' + excluir sobre um filtro de telefone apaga as 2 fichas da mesma pessoa (decisao do dono, 05/09).",
|
|
702
702
|
"category": "Contatos",
|
|
703
703
|
"params": [
|
|
704
704
|
{
|
|
@@ -4347,7 +4347,7 @@
|
|
|
4347
4347
|
"type": "string",
|
|
4348
4348
|
"location": "body",
|
|
4349
4349
|
"required": false,
|
|
4350
|
-
"description": "Modelo LLM do assistente.
|
|
4350
|
+
"description": "Modelo LLM do assistente. VALIDADO no servidor desde 08/09/2026: valor fora da lista devolve 422 (message 'Model is not included in the list') e nada e gravado. Valores validos — os mesmos 19 da tela: gpt-4.1-nano, gpt-4o-mini, gpt-4.1-mini, gpt-5.4-nano, gpt-5.4-mini, gpt-4o, gpt-4.1, gpt-5-mini, gpt-5.4, o3-mini, o4-mini, gpt-5, gpt-5.2, gpt-5.5, o1, o3, gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol. Familia gpt-5.6 (luna/terra/sol) LIBERADA em 08/09/2026: o servidor fala com esses tres por um canal proprio da OpenAI (/v1/responses, so pra eles; os outros 16 seguem como sempre). Regras dela: nao aceita temperatura (o campo some na tela e e ignorado), custo premium, e o Formulario publico (bloco de IA) NAO usa esses tres — la o servidor cai no modelo padrao da conta. Nao existe 'gpt-5.6' sem sufixo. Default: openai_model da conta ou LlmConstants::DEFAULT_MODEL. Assistente antigo com modelo fora da lista continua salvando o resto do config; so a TROCA de modelo e conferida."
|
|
4351
4351
|
},
|
|
4352
4352
|
{
|
|
4353
4353
|
"name": "config.instructions",
|
|
@@ -4572,7 +4572,7 @@
|
|
|
4572
4572
|
"type": "string",
|
|
4573
4573
|
"location": "body",
|
|
4574
4574
|
"required": false,
|
|
4575
|
-
"description": "Modelo LLM do assistente.
|
|
4575
|
+
"description": "Modelo LLM do assistente. VALIDADO no servidor desde 08/09/2026: valor fora da lista devolve 422 (message 'Model is not included in the list') e nada e gravado. Valores validos — os mesmos 19 da tela: gpt-4.1-nano, gpt-4o-mini, gpt-4.1-mini, gpt-5.4-nano, gpt-5.4-mini, gpt-4o, gpt-4.1, gpt-5-mini, gpt-5.4, o3-mini, o4-mini, gpt-5, gpt-5.2, gpt-5.5, o1, o3, gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol. Familia gpt-5.6 (luna/terra/sol) LIBERADA em 08/09/2026: o servidor fala com esses tres por um canal proprio da OpenAI (/v1/responses, so pra eles; os outros 16 seguem como sempre). Regras dela: nao aceita temperatura (o campo some na tela e e ignorado), custo premium, e o Formulario publico (bloco de IA) NAO usa esses tres — la o servidor cai no modelo padrao da conta. Nao existe 'gpt-5.6' sem sufixo. Default: openai_model da conta ou LlmConstants::DEFAULT_MODEL. Assistente antigo com modelo fora da lista continua salvando o resto do config; so a TROCA de modelo e conferida."
|
|
4576
4576
|
},
|
|
4577
4577
|
{
|
|
4578
4578
|
"name": "config.instructions",
|
|
@@ -8228,7 +8228,7 @@
|
|
|
8228
8228
|
"method": "GET",
|
|
8229
8229
|
"path": "/api/v1/accounts/{account_id}/search/messages",
|
|
8230
8230
|
"title": "Buscar Mensagens",
|
|
8231
|
-
"description": "RAPIDO. E uma BUSCA, nao uma listagem — o sufixo _list no id e historico, ignore. Procura o termo DENTRO DO TEXTO das mensagens.\n\nE A SUBSTITUTA CERTA do lionchat_conversations_search legado, que faz a mesma busca em 15 a 22 segundos: aqui ha indice trigram proprio e teto de tempo em duas fases (2 s na primeira tentativa, 14 s no limite absoluto), entao nao trava. Devolve payload.messages[], 15 por pagina.\n\nTermo de texto com menos de 3 caracteres e descartado (so-digitos e isento, protegido pelo limite da primeira fase); se todos os termos forem curtos a resposta vem VAZIA — isso nao significa que nao existe, significa que a busca nao rodou.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao). NOVO (2026-06-16): casa por TRECHO/substring (multi-termo AND — ex.: 'época d' acha 'época do'); e cada resultado de mensagem inclui previous_message e next_message (as mensagens anterior e seguinte da MESMA conversa, em ordem cronológica, ignorando eventos de sistema) como objeto {id, content, sender_name, message_type, private, created_at} ou null quando não há vizinha.",
|
|
8231
|
+
"description": "RAPIDO. E uma BUSCA, nao uma listagem — o sufixo _list no id e historico, ignore. Procura o termo DENTRO DO TEXTO das mensagens.\n\nE A SUBSTITUTA CERTA do lionchat_conversations_search legado, que faz a mesma busca em 15 a 22 segundos: aqui ha indice trigram proprio e teto de tempo em duas fases (2 s na primeira tentativa, 14 s no limite absoluto), entao nao trava. Devolve payload.messages[], 15 por pagina.\n\nTermo de texto com menos de 3 caracteres e descartado (so-digitos e isento, protegido pelo limite da primeira fase); se todos os termos forem curtos a resposta vem VAZIA — isso nao significa que nao existe, significa que a busca nao rodou.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao). NOVO (2026-06-16): casa por TRECHO/substring (multi-termo AND — ex.: 'época d' acha 'época do'); e cada resultado de mensagem inclui previous_message e next_message (as mensagens anterior e seguinte da MESMA conversa, em ordem cronológica, ignorando eventos de sistema) como objeto {id, content, sender_name, message_type, private, created_at} ou null quando não há vizinha. Leia message_search_interrupted no retorno antes de afirmar 'nao encontrado'.",
|
|
8232
8232
|
"category": "Busca",
|
|
8233
8233
|
"params": [
|
|
8234
8234
|
{
|
|
@@ -8274,7 +8274,7 @@
|
|
|
8274
8274
|
"description": "Página"
|
|
8275
8275
|
}
|
|
8276
8276
|
],
|
|
8277
|
-
"returns": "{ payload: { messages: [...] } } — sem meta e sem total. 15 mensagens por pagina, das MAIS RECENTES para as mais antigas; para ver o resto use `page` (a resposta NAO informa quantas paginas existem, entao vindo 15 itens assuma que pode haver mais). Cada mensagem traz contact_name, contact_thumbnail, conversation_status e previous_message/next_message (as vizinhas da MESMA conversa, ou null). O resultado de MENSAGEM nao traz `labels` — as etiquetas so vem nos cards de conversa e de contato.",
|
|
8277
|
+
"returns": "{ payload: { messages: [...] } } — sem meta e sem total. 15 mensagens por pagina, das MAIS RECENTES para as mais antigas; para ver o resto use `page` (a resposta NAO informa quantas paginas existem, entao vindo 15 itens assuma que pode haver mais). Cada mensagem traz contact_name, contact_thumbnail, conversation_status e previous_message/next_message (as vizinhas da MESMA conversa, ou null). O resultado de MENSAGEM nao traz `labels` — as etiquetas so vem nos cards de conversa e de contato. Desde 04/09 o payload traz tambem message_search_interrupted (boolean): true = a secao de mensagens estourou o teto de tempo (2 s + 2 s) e a lista voltou VAZIA/incompleta — NAO quer dizer que nao existe; refine o termo ou recorte por conversa.",
|
|
8278
8278
|
"common_use_cases": [
|
|
8279
8279
|
"Dashboard: contar/exibir resultados de busca",
|
|
8280
8280
|
"Buscar com filtros antes de outra operação",
|
|
@@ -10101,7 +10101,7 @@
|
|
|
10101
10101
|
"type": "string",
|
|
10102
10102
|
"location": "body",
|
|
10103
10103
|
"required": false,
|
|
10104
|
-
"description": "Modelo LLM (gpt-4o-mini, gpt-
|
|
10104
|
+
"description": "Modelo LLM (gpt-4o-mini, gpt-4.1-mini, gpt-5.4, gpt-5.6-luna/terra/sol etc. — a mesma lista de 19 do assistente). A familia gpt-5.6 e aceita no bloco de IA do fluxo desde 08/09/2026 e nao usa temperatura."
|
|
10105
10105
|
},
|
|
10106
10106
|
{
|
|
10107
10107
|
"name": "instructions",
|
|
@@ -13558,7 +13558,7 @@
|
|
|
13558
13558
|
"type": "array",
|
|
13559
13559
|
"location": "body",
|
|
13560
13560
|
"required": true,
|
|
13561
|
-
"description": "Array de permissoes"
|
|
13561
|
+
"description": "Array de permissoes (array de strings). Valores aceitos (22): conversation_manage, conversation_delete, conversation_unassigned_manage, conversation_participating_manage, conversation_team_manage, contact_manage, contact_export_import, report_manage, knowledge_base_manage, kanban_manage, kanban_view, kanban_delete, kanban_export_import, offer_manage, funnel_manage, campaign_manage, automation_manage, marketing_integrations_manage, captain_manage, flowbuilder_manage, lead_form_manage (Formularios publicos, 05/09), signature_manage (Assinatura eletronica, 05/09). Fora da lista = recusado. Administrador tem tudo sem cargo; agente sem cargo nao tem lead_form_manage nem signature_manage (nao ve Formularios nem Assinaturas no menu)."
|
|
13562
13562
|
}
|
|
13563
13563
|
],
|
|
13564
13564
|
"returns": "papel personalizado criado (com novo ID)",
|
|
@@ -13636,7 +13636,7 @@
|
|
|
13636
13636
|
"type": "array",
|
|
13637
13637
|
"location": "body",
|
|
13638
13638
|
"required": false,
|
|
13639
|
-
"description": "Permissoes"
|
|
13639
|
+
"description": "Permissoes (array de strings). Valores aceitos (22): conversation_manage, conversation_delete, conversation_unassigned_manage, conversation_participating_manage, conversation_team_manage, contact_manage, contact_export_import, report_manage, knowledge_base_manage, kanban_manage, kanban_view, kanban_delete, kanban_export_import, offer_manage, funnel_manage, campaign_manage, automation_manage, marketing_integrations_manage, captain_manage, flowbuilder_manage, lead_form_manage (Formularios publicos, 05/09), signature_manage (Assinatura eletronica, 05/09). Fora da lista = recusado. Administrador tem tudo sem cargo; agente sem cargo nao tem lead_form_manage nem signature_manage (nao ve Formularios nem Assinaturas no menu)."
|
|
13640
13640
|
}
|
|
13641
13641
|
],
|
|
13642
13642
|
"returns": "papel personalizado atualizado",
|
|
@@ -22851,7 +22851,7 @@
|
|
|
22851
22851
|
"description": "ID da caixa de entrada WAHA"
|
|
22852
22852
|
}
|
|
22853
22853
|
],
|
|
22854
|
-
"returns": "{ status, connected, phone_number, qr_code_available, phone_number_changed }",
|
|
22854
|
+
"returns": "{ status, connected, phone_number, qr_code_available, phone_number_changed, previous_phone_number, qr_link_active, qr_link_expires_at, contacts_quota, reachout_timelock }. contacts_quota vem do WhatsApp (nao da Meta) e traz cappingStatus/totalQuota/usedQuota/cycleStart/cycleEnd; totalQuota -1 = sem limite (o caso de quase toda caixa). reachout_timelock null = pode iniciar conversas; presente = o WhatsApp bloqueou temporariamente abordagem fria por esse numero. Os dois podem vir AUSENTES (servidor WAHA que nao reporta saude) — ausencia nao significa \"sem limite\".",
|
|
22855
22855
|
"common_use_cases": [
|
|
22856
22856
|
"Diagnosticar 'mensagens não estão saindo' (sessão caiu?)"
|
|
22857
22857
|
],
|
|
@@ -32564,5 +32564,478 @@
|
|
|
32564
32564
|
"related_tools": [
|
|
32565
32565
|
"lionchat_report_alerts_preview"
|
|
32566
32566
|
]
|
|
32567
|
+
},
|
|
32568
|
+
{
|
|
32569
|
+
"id": "lionchat_signature_documents_list",
|
|
32570
|
+
"method": "GET",
|
|
32571
|
+
"path": "/api/v1/accounts/{account_id}/signature_documents",
|
|
32572
|
+
"title": "Listar Modelos de Contrato",
|
|
32573
|
+
"description": "Lista os MODELOS de documento para assinatura eletronica da conta (o 'contrato padrao' escrito uma vez com {{variaveis}} e reaproveitado), com o andamento agregado dos contratos de cada um (progress: aguardando/visualizado/assinado/encerrado). Exige a feature document_signing ligada na conta (403 feature_disabled). Guia: resource lionchat://docs/assinatura-eletronica.",
|
|
32574
|
+
"category": "Assinatura eletronica",
|
|
32575
|
+
"params": [
|
|
32576
|
+
{
|
|
32577
|
+
"name": "archived",
|
|
32578
|
+
"type": "boolean",
|
|
32579
|
+
"location": "query",
|
|
32580
|
+
"required": false,
|
|
32581
|
+
"description": "true = inclui os modelos arquivados"
|
|
32582
|
+
}
|
|
32583
|
+
],
|
|
32584
|
+
"returns": "payload: [{id, name, kind (text|file|word), body, variables, tags, archived, roles_layout, progress, envelopes_count, has_source_file, source_file_name}]",
|
|
32585
|
+
"common_use_cases": [
|
|
32586
|
+
"Ver quais modelos existem antes de mandar um contrato",
|
|
32587
|
+
"Acompanhar quantos contratos de cada modelo estao aguardando/assinados",
|
|
32588
|
+
"Achar o id do modelo pra usar em signature_envelopes_create, na acao de fluxo ou no bloco do formulario"
|
|
32589
|
+
],
|
|
32590
|
+
"related_tools": [
|
|
32591
|
+
"lionchat_signature_documents_show",
|
|
32592
|
+
"lionchat_signature_documents_create",
|
|
32593
|
+
"lionchat_signature_envelopes_list"
|
|
32594
|
+
]
|
|
32595
|
+
},
|
|
32596
|
+
{
|
|
32597
|
+
"id": "lionchat_signature_documents_show",
|
|
32598
|
+
"method": "GET",
|
|
32599
|
+
"path": "/api/v1/accounts/{account_id}/signature_documents/{id}",
|
|
32600
|
+
"title": "Detalhes do Modelo de Contrato",
|
|
32601
|
+
"description": "Um modelo de contrato com as variaveis que ele usa, a configuracao (roles_layout) e os contratos ja mandados a partir dele (envelopes, ate 200 — pra listar com filtro/busca/pagina use signature_envelopes_list com signature_document_id).",
|
|
32602
|
+
"category": "Assinatura eletronica",
|
|
32603
|
+
"params": [
|
|
32604
|
+
{
|
|
32605
|
+
"name": "id",
|
|
32606
|
+
"type": "integer",
|
|
32607
|
+
"location": "path",
|
|
32608
|
+
"required": true,
|
|
32609
|
+
"description": "ID do modelo"
|
|
32610
|
+
}
|
|
32611
|
+
],
|
|
32612
|
+
"returns": "modelo + envelopes: [{id, title, status, contact_id, contact_name, sent_at, completed_at, expires_at, participants[]}]",
|
|
32613
|
+
"common_use_cases": [
|
|
32614
|
+
"Ver o texto e as variaveis do modelo antes de editar",
|
|
32615
|
+
"Conferir quem ja recebeu este contrato"
|
|
32616
|
+
],
|
|
32617
|
+
"related_tools": [
|
|
32618
|
+
"lionchat_signature_documents_list",
|
|
32619
|
+
"lionchat_signature_documents_update",
|
|
32620
|
+
"lionchat_signature_envelopes_list"
|
|
32621
|
+
]
|
|
32622
|
+
},
|
|
32623
|
+
{
|
|
32624
|
+
"id": "lionchat_signature_documents_create",
|
|
32625
|
+
"method": "POST",
|
|
32626
|
+
"path": "/api/v1/accounts/{account_id}/signature_documents",
|
|
32627
|
+
"title": "Criar Modelo de Contrato (texto)",
|
|
32628
|
+
"description": "Cria um MODELO de contrato ESCRITO (kind=text) usando o editor de texto do LionChat: o corpo e texto/markdown simples (**negrito**, listas, paragrafos) com {{variaveis}} da ficha — {{contact.name}}, {{contact.cpf}}, {{contact.phone_number}}, {{contact.email}}, {{contact.address.street}}, {{contact.marital_status}}, {{contact.profession}}, {{account.name}}, {{document.deadline}} (data-limite) e {{document.validity_days}} — veja o catalogo em signature_documents_field_catalog. Cada pessoa recebe o PDF com os dados DELA; campo mapeado sem valor na ficha BLOQUEIA o envio (trava). NAO da pra subir arquivo (PDF/Word) por aqui — isso e so pela tela (kind file/word); aqui e so escrever o contrato.",
|
|
32629
|
+
"category": "Assinatura eletronica",
|
|
32630
|
+
"params": [
|
|
32631
|
+
{
|
|
32632
|
+
"name": "name",
|
|
32633
|
+
"type": "string",
|
|
32634
|
+
"location": "body",
|
|
32635
|
+
"required": true,
|
|
32636
|
+
"description": "Nome do modelo (ex.: Contrato de prestacao de servicos)"
|
|
32637
|
+
},
|
|
32638
|
+
{
|
|
32639
|
+
"name": "body",
|
|
32640
|
+
"type": "string",
|
|
32641
|
+
"location": "body",
|
|
32642
|
+
"required": true,
|
|
32643
|
+
"description": "Texto do contrato com {{variaveis}}. Blocos de assinatura de cada pessoa sao desenhados automaticamente no fim."
|
|
32644
|
+
},
|
|
32645
|
+
{
|
|
32646
|
+
"name": "kind",
|
|
32647
|
+
"type": "string",
|
|
32648
|
+
"location": "body",
|
|
32649
|
+
"required": false,
|
|
32650
|
+
"description": "Sempre 'text' pela API (padrao). file/word exigem upload pela tela."
|
|
32651
|
+
},
|
|
32652
|
+
{
|
|
32653
|
+
"name": "tags",
|
|
32654
|
+
"type": "array",
|
|
32655
|
+
"location": "body",
|
|
32656
|
+
"required": false,
|
|
32657
|
+
"description": "Etiquetas do modelo (strings) — organizam e filtram a lista"
|
|
32658
|
+
},
|
|
32659
|
+
{
|
|
32660
|
+
"name": "roles_layout",
|
|
32661
|
+
"type": "object",
|
|
32662
|
+
"location": "body",
|
|
32663
|
+
"required": false,
|
|
32664
|
+
"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), reminder_days (lembrete a cada N dias a quem nao assinou; 0 desliga; padrao 2)."
|
|
32665
|
+
}
|
|
32666
|
+
],
|
|
32667
|
+
"returns": "o modelo criado (id, name, kind, body, variables, roles_layout, progress)",
|
|
32668
|
+
"common_use_cases": [
|
|
32669
|
+
"Escrever um contrato padrao com variaveis da ficha pra mandar depois",
|
|
32670
|
+
"Criar o modelo que um fluxo, uma macro ou um formulario vai usar"
|
|
32671
|
+
],
|
|
32672
|
+
"related_tools": [
|
|
32673
|
+
"lionchat_signature_documents_field_catalog",
|
|
32674
|
+
"lionchat_signature_documents_update",
|
|
32675
|
+
"lionchat_signature_envelopes_create"
|
|
32676
|
+
]
|
|
32677
|
+
},
|
|
32678
|
+
{
|
|
32679
|
+
"id": "lionchat_signature_documents_update",
|
|
32680
|
+
"method": "PATCH",
|
|
32681
|
+
"path": "/api/v1/accounts/{account_id}/signature_documents/{id}",
|
|
32682
|
+
"title": "Editar Modelo de Contrato",
|
|
32683
|
+
"description": "Edita nome, texto, etiquetas, arquivamento ou configuracao do modelo. roles_layout e MESCLADO (mande so as chaves que mudam; as posicoes de assinatura e o mapeamento do Word gravados pela tela ficam intactos). Contratos JA mandados nao mudam (o PDF de cada um e fixo).",
|
|
32684
|
+
"category": "Assinatura eletronica",
|
|
32685
|
+
"params": [
|
|
32686
|
+
{
|
|
32687
|
+
"name": "id",
|
|
32688
|
+
"type": "integer",
|
|
32689
|
+
"location": "path",
|
|
32690
|
+
"required": true,
|
|
32691
|
+
"description": "ID do modelo"
|
|
32692
|
+
},
|
|
32693
|
+
{
|
|
32694
|
+
"name": "name",
|
|
32695
|
+
"type": "string",
|
|
32696
|
+
"location": "body",
|
|
32697
|
+
"required": false,
|
|
32698
|
+
"description": "Novo nome"
|
|
32699
|
+
},
|
|
32700
|
+
{
|
|
32701
|
+
"name": "body",
|
|
32702
|
+
"type": "string",
|
|
32703
|
+
"location": "body",
|
|
32704
|
+
"required": false,
|
|
32705
|
+
"description": "Novo texto (so modelo kind=text)"
|
|
32706
|
+
},
|
|
32707
|
+
{
|
|
32708
|
+
"name": "tags",
|
|
32709
|
+
"type": "array",
|
|
32710
|
+
"location": "body",
|
|
32711
|
+
"required": false,
|
|
32712
|
+
"description": "Etiquetas (substitui a lista)"
|
|
32713
|
+
},
|
|
32714
|
+
{
|
|
32715
|
+
"name": "archived",
|
|
32716
|
+
"type": "boolean",
|
|
32717
|
+
"location": "body",
|
|
32718
|
+
"required": false,
|
|
32719
|
+
"description": "true = arquiva (some da lista padrao, sem apagar); false = desarquiva"
|
|
32720
|
+
},
|
|
32721
|
+
{
|
|
32722
|
+
"name": "roles_layout",
|
|
32723
|
+
"type": "object",
|
|
32724
|
+
"location": "body",
|
|
32725
|
+
"required": false,
|
|
32726
|
+
"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), reminder_days (lembrete a cada N dias a quem nao assinou; 0 desliga; padrao 2)."
|
|
32727
|
+
}
|
|
32728
|
+
],
|
|
32729
|
+
"returns": "o modelo atualizado",
|
|
32730
|
+
"common_use_cases": [
|
|
32731
|
+
"Trocar o nome ou corrigir o texto do contrato",
|
|
32732
|
+
"Mudar validade, lembrete, testemunhas ou 'eu tambem assino'",
|
|
32733
|
+
"Arquivar um modelo antigo"
|
|
32734
|
+
],
|
|
32735
|
+
"related_tools": [
|
|
32736
|
+
"lionchat_signature_documents_show",
|
|
32737
|
+
"lionchat_signature_documents_list"
|
|
32738
|
+
]
|
|
32739
|
+
},
|
|
32740
|
+
{
|
|
32741
|
+
"id": "lionchat_signature_documents_destroy",
|
|
32742
|
+
"method": "DELETE",
|
|
32743
|
+
"path": "/api/v1/accounts/{account_id}/signature_documents/{id}",
|
|
32744
|
+
"title": "Apagar Modelo de Contrato",
|
|
32745
|
+
"description": "Apaga o modelo (so ADMINISTRADOR). Os contratos ja mandados NAO sao apagados (ficam sem o nome do modelo). Prefira arquivar (update archived=true).",
|
|
32746
|
+
"category": "Assinatura eletronica",
|
|
32747
|
+
"params": [
|
|
32748
|
+
{
|
|
32749
|
+
"name": "id",
|
|
32750
|
+
"type": "integer",
|
|
32751
|
+
"location": "path",
|
|
32752
|
+
"required": true,
|
|
32753
|
+
"description": "ID do modelo"
|
|
32754
|
+
}
|
|
32755
|
+
],
|
|
32756
|
+
"returns": "204 sem corpo",
|
|
32757
|
+
"common_use_cases": [
|
|
32758
|
+
"Remover um modelo criado por engano"
|
|
32759
|
+
],
|
|
32760
|
+
"related_tools": [
|
|
32761
|
+
"lionchat_signature_documents_update"
|
|
32762
|
+
]
|
|
32763
|
+
},
|
|
32764
|
+
{
|
|
32765
|
+
"id": "lionchat_signature_documents_field_catalog",
|
|
32766
|
+
"method": "GET",
|
|
32767
|
+
"path": "/api/v1/accounts/{account_id}/signature_documents/field_catalog",
|
|
32768
|
+
"title": "Catalogo de Variaveis do Contrato",
|
|
32769
|
+
"description": "As variaveis que o contrato consegue preencher a partir da ficha do contato e da conta (value + label), pra escrever o texto do modelo ou mapear campos de um Word.",
|
|
32770
|
+
"category": "Assinatura eletronica",
|
|
32771
|
+
"params": [],
|
|
32772
|
+
"returns": "catalog: [{value: 'contact.name', label: 'Nome do contato'}, ...] (inclui document.deadline)",
|
|
32773
|
+
"common_use_cases": [
|
|
32774
|
+
"Saber quais {{variaveis}} existem antes de escrever um modelo"
|
|
32775
|
+
],
|
|
32776
|
+
"related_tools": [
|
|
32777
|
+
"lionchat_signature_documents_create"
|
|
32778
|
+
]
|
|
32779
|
+
},
|
|
32780
|
+
{
|
|
32781
|
+
"id": "lionchat_signature_envelopes_list",
|
|
32782
|
+
"method": "GET",
|
|
32783
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes",
|
|
32784
|
+
"title": "Listar Contratos Enviados",
|
|
32785
|
+
"description": "Lista os CONTRATOS (cada envio a uma pessoa e um contrato, com PDF proprio e linha do tempo), paginada (25 por pagina) com filtro e busca no servidor. Recortes: por modelo (signature_document_id), por contato (contact_id — o que aparece na aba Contratos da ficha) ou por conversa (conversation_id). status aceita os baldes aguardando (draft/sent), visualizado (viewed/partially_signed), assinado (signed_pending_seal/signed), encerrado (refused/cancelled/expired) ou falta_eu (contratos em que o usuario do token e o remetente e ainda nao assinou). Resposta traz meta.counts com a contagem por balde.",
|
|
32786
|
+
"category": "Assinatura eletronica",
|
|
32787
|
+
"params": [
|
|
32788
|
+
{
|
|
32789
|
+
"name": "signature_document_id",
|
|
32790
|
+
"type": "integer",
|
|
32791
|
+
"location": "query",
|
|
32792
|
+
"required": false,
|
|
32793
|
+
"description": "So contratos deste modelo"
|
|
32794
|
+
},
|
|
32795
|
+
{
|
|
32796
|
+
"name": "contact_id",
|
|
32797
|
+
"type": "integer",
|
|
32798
|
+
"location": "query",
|
|
32799
|
+
"required": false,
|
|
32800
|
+
"description": "So contratos desta pessoa"
|
|
32801
|
+
},
|
|
32802
|
+
{
|
|
32803
|
+
"name": "conversation_id",
|
|
32804
|
+
"type": "integer",
|
|
32805
|
+
"location": "query",
|
|
32806
|
+
"required": false,
|
|
32807
|
+
"description": "So contratos desta conversa (display_id)"
|
|
32808
|
+
},
|
|
32809
|
+
{
|
|
32810
|
+
"name": "status",
|
|
32811
|
+
"type": "string",
|
|
32812
|
+
"location": "query",
|
|
32813
|
+
"required": false,
|
|
32814
|
+
"description": "Balde: aguardando | visualizado | assinado | encerrado | falta_eu"
|
|
32815
|
+
},
|
|
32816
|
+
{
|
|
32817
|
+
"name": "q",
|
|
32818
|
+
"type": "string",
|
|
32819
|
+
"location": "query",
|
|
32820
|
+
"required": false,
|
|
32821
|
+
"description": "Busca por nome, telefone ou e-mail de quem assina"
|
|
32822
|
+
},
|
|
32823
|
+
{
|
|
32824
|
+
"name": "page",
|
|
32825
|
+
"type": "integer",
|
|
32826
|
+
"location": "query",
|
|
32827
|
+
"required": false,
|
|
32828
|
+
"description": "Pagina (padrao 1, 25 por pagina)"
|
|
32829
|
+
}
|
|
32830
|
+
],
|
|
32831
|
+
"returns": "payload: [{id, title, status, signature_document_id, document_name, contact_id, contact_name, conversation_id, sent_at, completed_at, expires_at, participants[{id, name, role, status, delivery_channel, phone, email, signed_at, viewed_at, public_url, signs_in_panel}], delivery: {failed[], delivered_participant_ids[]}, has_signed_document, pending_for_me}], meta: {page, per_page, has_more, counts}",
|
|
32832
|
+
"common_use_cases": [
|
|
32833
|
+
"Ver o status dos contratos de um cliente (assinou? abriu? expirou?)",
|
|
32834
|
+
"Relatorio de um modelo: quantos aguardando/assinados, quem falta",
|
|
32835
|
+
"Achar contratos nao entregues (delivery.failed) pra reenviar"
|
|
32836
|
+
],
|
|
32837
|
+
"related_tools": [
|
|
32838
|
+
"lionchat_signature_envelopes_show",
|
|
32839
|
+
"lionchat_signature_envelopes_resend",
|
|
32840
|
+
"lionchat_signature_envelopes_create"
|
|
32841
|
+
]
|
|
32842
|
+
},
|
|
32843
|
+
{
|
|
32844
|
+
"id": "lionchat_signature_envelopes_show",
|
|
32845
|
+
"method": "GET",
|
|
32846
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}",
|
|
32847
|
+
"title": "Detalhes do Contrato (linha do tempo)",
|
|
32848
|
+
"description": "Um contrato com quem assina e a LINHA DO TEMPO completa (events): created, delivered, sent, opened, code_requested, code_verified, signed (com ip, device, location e panel=true quando foi assinado no painel), all_signed, sealed (documento final gerado, com hash), refused, expired, cancelled, delivery_failed, reminded, resent. E o relatorio de evidencias em dados; os PDFs (original, assinado, evidencias) so saem pela tela/API de download.",
|
|
32849
|
+
"category": "Assinatura eletronica",
|
|
32850
|
+
"params": [
|
|
32851
|
+
{
|
|
32852
|
+
"name": "id",
|
|
32853
|
+
"type": "integer",
|
|
32854
|
+
"location": "path",
|
|
32855
|
+
"required": true,
|
|
32856
|
+
"description": "ID do contrato"
|
|
32857
|
+
}
|
|
32858
|
+
],
|
|
32859
|
+
"returns": "contrato + events: [{kind, occurred_at, ip, device, location, participant_id, panel}] + original_sha256/sealed_sha256",
|
|
32860
|
+
"common_use_cases": [
|
|
32861
|
+
"Conferir quando e de onde a pessoa abriu e assinou",
|
|
32862
|
+
"Ver por que um contrato nao foi entregue (delivery.failed) ou foi recusado"
|
|
32863
|
+
],
|
|
32864
|
+
"related_tools": [
|
|
32865
|
+
"lionchat_signature_envelopes_list",
|
|
32866
|
+
"lionchat_signature_envelopes_resend",
|
|
32867
|
+
"lionchat_signature_envelopes_cancel"
|
|
32868
|
+
]
|
|
32869
|
+
},
|
|
32870
|
+
{
|
|
32871
|
+
"id": "lionchat_signature_envelopes_create",
|
|
32872
|
+
"method": "POST",
|
|
32873
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes",
|
|
32874
|
+
"title": "Enviar Contrato para Assinar",
|
|
32875
|
+
"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 (nao ha ferramenta pra assinar por ele).",
|
|
32876
|
+
"category": "Assinatura eletronica",
|
|
32877
|
+
"params": [
|
|
32878
|
+
{
|
|
32879
|
+
"name": "signature_document_id",
|
|
32880
|
+
"type": "integer",
|
|
32881
|
+
"location": "body",
|
|
32882
|
+
"required": true,
|
|
32883
|
+
"description": "ID do modelo"
|
|
32884
|
+
},
|
|
32885
|
+
{
|
|
32886
|
+
"name": "contact_id",
|
|
32887
|
+
"type": "integer",
|
|
32888
|
+
"location": "body",
|
|
32889
|
+
"required": false,
|
|
32890
|
+
"description": "Ficha do titular (recomendado — preenche as variaveis e a conversa)"
|
|
32891
|
+
},
|
|
32892
|
+
{
|
|
32893
|
+
"name": "conversation_id",
|
|
32894
|
+
"type": "integer",
|
|
32895
|
+
"location": "body",
|
|
32896
|
+
"required": false,
|
|
32897
|
+
"description": "Conversa (display_id) por onde o link sai, quando ja se sabe qual"
|
|
32898
|
+
},
|
|
32899
|
+
{
|
|
32900
|
+
"name": "inbox_id",
|
|
32901
|
+
"type": "integer",
|
|
32902
|
+
"location": "body",
|
|
32903
|
+
"required": false,
|
|
32904
|
+
"description": "Caixa de WhatsApp por onde entregar (obrigatorio quando a resposta anterior foi escolher_caixa)"
|
|
32905
|
+
},
|
|
32906
|
+
{
|
|
32907
|
+
"name": "participants",
|
|
32908
|
+
"type": "array",
|
|
32909
|
+
"location": "body",
|
|
32910
|
+
"required": true,
|
|
32911
|
+
"description": "Quem assina (array). Cada item: {name (obrigatorio), role: signer|witness (titular|testemunha; NAO mande sender — o remetente e criado sozinho quando o modelo tem sender_signs), phone (+55DDDNUMERO, quando delivery_channel=whatsapp), email (quando delivery_channel=email), delivery_channel: whatsapp|email (padrao whatsapp), cpf (opcional; invalido = 422 cpf_invalido), contact_id (ficha da pessoa; recomendado no titular)}. Cada pessoa recebe o proprio link e assina com codigo de uso unico."
|
|
32912
|
+
}
|
|
32913
|
+
],
|
|
32914
|
+
"returns": "201: o contrato (status sent) com participants[] (public_url de cada um), events[] e delivery_failures[]; 422: {error, detail, missing, inboxes, envelope}",
|
|
32915
|
+
"common_use_cases": [
|
|
32916
|
+
"Mandar o contrato padrao pra um cliente assinar pelo WhatsApp",
|
|
32917
|
+
"Mandar com testemunha (participants com role witness e o telefone dela)",
|
|
32918
|
+
"Reenviar um contrato que ficou como rascunho por falha de entrega (use resend)"
|
|
32919
|
+
],
|
|
32920
|
+
"related_tools": [
|
|
32921
|
+
"lionchat_signature_documents_list",
|
|
32922
|
+
"lionchat_signature_envelopes_limits",
|
|
32923
|
+
"lionchat_signature_envelopes_show",
|
|
32924
|
+
"lionchat_signature_envelopes_resend"
|
|
32925
|
+
]
|
|
32926
|
+
},
|
|
32927
|
+
{
|
|
32928
|
+
"id": "lionchat_signature_envelopes_resend",
|
|
32929
|
+
"method": "POST",
|
|
32930
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}/resend",
|
|
32931
|
+
"title": "Reenviar Link do Contrato",
|
|
32932
|
+
"description": "Reenvia o link a quem ainda nao assinou (nao cria contrato novo, nao consome vaga). Le o resultado: {ok, resent, failures[{participant_id, name, motivo}]}. Contrato que nasceu sem entrega vira 'sent' no primeiro link que sai.",
|
|
32933
|
+
"category": "Assinatura eletronica",
|
|
32934
|
+
"params": [
|
|
32935
|
+
{
|
|
32936
|
+
"name": "id",
|
|
32937
|
+
"type": "integer",
|
|
32938
|
+
"location": "path",
|
|
32939
|
+
"required": true,
|
|
32940
|
+
"description": "ID do contrato"
|
|
32941
|
+
}
|
|
32942
|
+
],
|
|
32943
|
+
"returns": "{ok, resent, failures[]}",
|
|
32944
|
+
"common_use_cases": [
|
|
32945
|
+
"Cliente diz que nao recebeu o link",
|
|
32946
|
+
"Contrato marcado como 'nao entregue'"
|
|
32947
|
+
],
|
|
32948
|
+
"related_tools": [
|
|
32949
|
+
"lionchat_signature_envelopes_show"
|
|
32950
|
+
]
|
|
32951
|
+
},
|
|
32952
|
+
{
|
|
32953
|
+
"id": "lionchat_signature_envelopes_sign_as_sender",
|
|
32954
|
+
"method": "POST",
|
|
32955
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}/sign_as_sender",
|
|
32956
|
+
"title": "Remetente Assina o Contrato pelo Painel",
|
|
32957
|
+
"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.",
|
|
32958
|
+
"category": "Assinatura eletronica",
|
|
32959
|
+
"params": [
|
|
32960
|
+
{
|
|
32961
|
+
"name": "id",
|
|
32962
|
+
"type": "integer",
|
|
32963
|
+
"location": "path",
|
|
32964
|
+
"required": true,
|
|
32965
|
+
"description": "ID do contrato"
|
|
32966
|
+
},
|
|
32967
|
+
{
|
|
32968
|
+
"name": "signature_image",
|
|
32969
|
+
"type": "string",
|
|
32970
|
+
"location": "body",
|
|
32971
|
+
"required": true,
|
|
32972
|
+
"description": "Desenho da assinatura em base64, com prefixo data URL (data:image/png;base64,...). Obrigatorio — sem ele 422 sem_desenho"
|
|
32973
|
+
},
|
|
32974
|
+
{
|
|
32975
|
+
"name": "location",
|
|
32976
|
+
"type": "object",
|
|
32977
|
+
"location": "body",
|
|
32978
|
+
"required": false,
|
|
32979
|
+
"description": "Onde o remetente assinou, se souber: {latitude, longitude, accuracy} (graus decimais; fora da faixa e ignorado). Vai pra prova (evidencias)"
|
|
32980
|
+
},
|
|
32981
|
+
{
|
|
32982
|
+
"name": "remember_drawing",
|
|
32983
|
+
"type": "boolean",
|
|
32984
|
+
"location": "body",
|
|
32985
|
+
"required": false,
|
|
32986
|
+
"description": "true = guarda o desenho nas preferencias do usuario pra reaproveitar no proximo contrato"
|
|
32987
|
+
}
|
|
32988
|
+
],
|
|
32989
|
+
"returns": "o contrato atualizado com participants[] e events[] (o seu participante vira signed); 422: {error: nao_e_sua | ja_assinado | sem_desenho}",
|
|
32990
|
+
"common_use_cases": [
|
|
32991
|
+
"Fechar um contrato em que so falta a assinatura do remetente",
|
|
32992
|
+
"Assinar em lote os contratos listados com status=falta_eu"
|
|
32993
|
+
],
|
|
32994
|
+
"related_tools": [
|
|
32995
|
+
"lionchat_signature_envelopes_list",
|
|
32996
|
+
"lionchat_signature_envelopes_show",
|
|
32997
|
+
"lionchat_signature_envelopes_create"
|
|
32998
|
+
]
|
|
32999
|
+
},
|
|
33000
|
+
{
|
|
33001
|
+
"id": "lionchat_signature_envelopes_cancel",
|
|
33002
|
+
"method": "POST",
|
|
33003
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes/{id}/cancel",
|
|
33004
|
+
"title": "Cancelar Contrato",
|
|
33005
|
+
"description": "Cancela um contrato ainda aberto (so ADMINISTRADOR). O link para de funcionar; a linha do tempo guarda o cancelamento. Contrato assinado/recusado/expirado nao cancela (422 ja_concluido).",
|
|
33006
|
+
"category": "Assinatura eletronica",
|
|
33007
|
+
"params": [
|
|
33008
|
+
{
|
|
33009
|
+
"name": "id",
|
|
33010
|
+
"type": "integer",
|
|
33011
|
+
"location": "path",
|
|
33012
|
+
"required": true,
|
|
33013
|
+
"description": "ID do contrato"
|
|
33014
|
+
}
|
|
33015
|
+
],
|
|
33016
|
+
"returns": "o contrato com status cancelled",
|
|
33017
|
+
"common_use_cases": [
|
|
33018
|
+
"Mandou pro cliente errado",
|
|
33019
|
+
"O negocio nao vai acontecer"
|
|
33020
|
+
],
|
|
33021
|
+
"related_tools": [
|
|
33022
|
+
"lionchat_signature_envelopes_show"
|
|
33023
|
+
]
|
|
33024
|
+
},
|
|
33025
|
+
{
|
|
33026
|
+
"id": "lionchat_signature_envelopes_limits",
|
|
33027
|
+
"method": "GET",
|
|
33028
|
+
"path": "/api/v1/accounts/{account_id}/signature_envelopes/limits",
|
|
33029
|
+
"title": "Limite Mensal de Contratos",
|
|
33030
|
+
"description": "Quantos contratos a conta ja mandou no mes e o teto do plano ({used, limit, unlimited}). Contrato cancelado/expirado NAO devolve a vaga.",
|
|
33031
|
+
"category": "Assinatura eletronica",
|
|
33032
|
+
"params": [],
|
|
33033
|
+
"returns": "{used, limit, unlimited}",
|
|
33034
|
+
"common_use_cases": [
|
|
33035
|
+
"Avisar antes de um disparo em lote que o teto vai estourar"
|
|
33036
|
+
],
|
|
33037
|
+
"related_tools": [
|
|
33038
|
+
"lionchat_signature_envelopes_create"
|
|
33039
|
+
]
|
|
32567
33040
|
}
|
|
32568
33041
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.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",
|