RecursosIAPainelAPIPreçosBaixarAjuda
Aparência (Auto: light)
Experimente grátis
API e desenvolvedores

Pressione Enter.
Obtenha seus dados.

API REST /api/v1, 53 escopos, 239 endpoints, 11 eventos de webhook e uma API JS para o widget. Bate‑papos, contatos, IA, base de conhecimento, tickets e cobrança: tudo o que o painel faz, seu código também pode fazer.

smartbtn.me/api/v1
# pressione Enter ou a marca à direita
$ curl -H "Authorization: Bearer sb_••••" \
    https://smartbtn.me/api/v1/chats?limit=1 
01

Início rápido

Três passos de zero até a primeira resposta. Cada solicitação está vinculada a um widget e autenticada com um token de portador.

  1. Emitir um tokenPainel → tokens de API: um nome, uma expiração opcional e os escopos necessários. Um token pertence a exatamente um widget. O token de texto simples é mostrado uma vez; O Smartbtn armazena apenas um hash unilateral, portanto, um token perdido não pode ser recuperado – apenas revogado e reemitido.
  2. Ative a API do widgetNas configurações do widget, ative «Permitir API de widget (JS e REST)». A emissão de um token não altera essa opção para você.
  3. Envie a primeira solicitaçãoO token vai apenas para o cabeçalho Autorização — nunca para o URL.
# listar os chats do widget
curl -H "Authorization: Bearer $SMARTBTN_TOKEN" \
     https://smartbtn.me/api/v1/chats
// 200 OK · paginação do cursor
{
  "data": [ { "id": 48211, "status": "open", "last_message_at": "2026-10-17T09:41:12+03:00" }, … ],
  "next_cursor": "eyJpZCI6NDgyMTB9"   // null — na última página
}
URL base verificado. https://smartbtn.me/api/v1 é o endpoint primário da API para todos os dados do projeto. Sempre envie solicitações por HTTPS e nunca encaminhe o token em redirecionamentos.
Token ausente, inválido ou com escopo insuficiente? Você obtém 401 ou 403 com um corpo application/problem+json RFC‑7807 — consulte Erros.
02

Autenticação

Três caminhos, dependendo de quem liga para quem. O acesso é negado por padrão: sem escopo – sem chamada.

Você → Smartbtn
Chamadas REST

Cada solicitação carrega Autorização: Bearer . No servidor, o token é resolvido para um widget e seus escopos.

Smartbtn → você
Webhooks, operador externo de IA

As solicitações de saída são assinadas com um segredo por locatário: X‑Smartbtn‑Signature. Uma credencial de portador extra pode ser adicionada se o seu lado precisar de uma.

Seu operador de IA → Smartbtn
Respostas assíncronas

POST /v1/ai/replies usa seu próprio quadro assinado, fixado em seu operador e widget de IA e codificado por um causation_id durável.

A mudança que as pessoas esquecem

«Permitir API de widget (JS e REST)» nas configurações do widget abre a API REST e a API JS do widget. A emissão de um token não o habilita. Os escopos de uma chave existente podem ser editados no painel (tokens de API → chave → Editar escopos) sem reemitir — as integrações continuam funcionando.

Predefinições

PredefinidoEscoposQuando
Configuração de IA 9widget:read · widget:write · ai:read · ai:write · ai:apply · kb:read · kb:write · files:write · stats:readSeu aplicativo de IA configura o widget: assistente, base de conhecimento, textos. Substitui toda a seleção de escopo.
Somente leitura (conjunto de exemplos)chats:read · messages:read · contacts:read · stats:readDashboards, BI, exportações.
Ponte de helpdesk (conjunto de exemplos)chats:read · messages:read · messages:write · webhooks:write · support:readEspelhe caixas de diálogo e tickets em seu CRM.
As chaves do provedor são separadas. Conceda ai:credentials:write somente quando o proprietário autorizar a configuração da chave do provedor. Os direitos de conta, faturamento e parceiro não são necessários para a configuração da IA. A chave é mostrada uma vez – revogue‑a quando a configuração for concluída.
03

Escopos

53 escopos de rota, mais um condicional e um reservado. Uma solicitação só será bem‑sucedida se o token contiver o escopo da rota (ou uma alternativa listada).

53 + 1 condicional + 1 reservado
sensívelcondicionalreservado
EscopoSubsídios
chats · 2
chats:readLeia bate‑papos e seus metadados
chats:writeFechar um chat, solicitar uma classificação, transferir, reivindicar, anexar ou desanexar um agente
messages · 2
messages:readLer o histórico de mensagens de um bate‑papo
messages:writeEnvie mensagens, digitando indicadores e leia recibos como agente
contacts · 2
contacts:readLer contatos
contacts:writeAtualizar campos e atributos de contato
agents · 3
agents:readLeia os agentes e sua presença
agents:writesensívelConvidar, atualizar, suspender, restaurar ou remover agentes; um convidado vê todos os chats do widget
agents:events:readLeia o log de eventos de um agente e as métricas por agente
tags · 2
tags:readLer tags
tags:writeAnexar tags a um contato
files · 2
files:readBaixar um arquivo enviado
files:writeCarregar um novo arquivo
stats · 1
stats:readLeia estatísticas agregadas de bate‑papo, mensagem e classificação
channels · 3
channels:readLer o status on‑line de um canal personalizado
channels:writeEntregue uma mensagem de entrada em um canal personalizado
channels:registerRegistre um novo canal personalizado (somente aplicativos instalados)
webhooks · 2
webhooks:readListar assinaturas de webhook
webhooks:writeCriar, excluir ou entregar novamente uma assinatura
quick_phrases · 2
quick_phrases:readLeia as frases rápidas de um agente
quick_phrases:writeCrie, edite ou exclua frases rápidas
ratings · 1
ratings:readLeia as avaliações dos visitantes e qual agente cada um pontua
responder · 2
responder:injectsensívelInjete uma resposta em um chat ao vivo como um operador ou bot externo de IA
responder:escalatecondicionalPara POST /v1/ai/replies: transferência direcionada ao chamador via escalate=true
widget · 2
widget:readLeia a aparência, o comportamento e as configurações de incorporação do widget
widget:writeAtualize as configurações do widget e limpe o cache do widget
departments · 2
departments:readLeia departamentos, seus agentes e horários
departments:writeCrie, atualize ou exclua departamentos e programações
messengers · 2
messengers:readLeia quais mensageiros estão conectados (nunca credenciais)
messengers:writesensívelConecte ou desconecte um mensageiro; grava credenciais do provedor
ai · 4
ai:readLeia assistentes de IA, suas configurações e alertas
ai:writeCrie e atualize assistentes, configurações de IA e operadores de IA, persona e prompt incluídos
ai:credentials:writesensívelArmazene credenciais de provedor LLM de terceiros (BYOK)
ai:applyAprovar uma melhoria que reescreva a personalidade de um assistente ao vivo
kb · 2
kb:readLer regras da base de conhecimento e fontes ingeridas
kb:writeCriar, atualizar ou excluir regras e fontes da base de conhecimento
transcripts · 1
transcripts:readExportar uma transcrição de bate‑papo
account · 2
account:readLeia o perfil da conta e todas as suas entidades legais
account:writeAtualize apenas o nome, sobrenome e telefone da conta
billing · 2
billing:readLeia os registros de cobrança e entidades legais do widget
billing:writeCriar, atualizar, excluir pessoas jurídicas; não emite faturas, não movimenta dinheiro
partners · 2
partners:readLeia dados de parceiros e referências
partners:withdrawreservadoReservado: nenhuma operação de pagamento o utiliza hoje
support · 4
support:readLeia tickets, chats ativos, suas mensagens e ações auditadas próprias
support:replysensívelResponder a um cliente como operador de suporte
support:writeReivindique ou libere um bate‑papo, feche sem responder, reabra
support:tickets:closeFeche apenas um ticket – nada mais
marketing · 2
marketing:readLeia campanhas de marketing: banners, pop‑ups, e‑mail
marketing:writeCrie e edite campanhas, altere status, inicie um envio de e‑mail
broadcasts · 2
broadcasts:readLeia transmissões de mensageiros (WhatsApp, Telegram, Messenger, Viber, VK, MAX)
broadcasts:writeCrie, edite e inicie uma transmissão
problems · 2
problems:readLeia clusters e configurações de problemas do cliente
problems:writeAlterar configurações e status do cluster: novo, em andamento, resolvido, recorrente
invitations · 2
invitations:readLeia regras de convite, variantes A/B, modelos e funil
invitations:writeCriar, editar, ativar ou excluir regras e modelos
04

Pontos finais

Toda a superfície pública em uma lista. Filtre por recurso, pesquise por caminho, clique em uma linha para copiar um curl pronto.

Mostrando 245 de 245
GETPOSTPUTPATCHDELETE

ai Assistentes, operadores, chaves, aprendizagem, mercado54

chats Diálogos, mensagens, transferência, classificações18

kb Base de conhecimento: regras, rastreador, arquivos, pesquisa16

agents Agentes, convites, métricas14

messengers Mensageiros, redes sociais e canais de mercado13

billing Saldo, assinaturas, faturas, entidades12

support Agente de suporte: tickets e chats12

widget Configurações, idioma, traduções, skins, cache12

channels Canais personalizados8

external‑operators Seu bot como operador8

webhook‑subscriptions Assinaturas de webhook8

broadcasts Transmissões do Messenger7

departments Departamentos e cronograma7

invitations Convites inteligentes7

marketing Campanhas de marketing7

partner Programa de parceria7

wishes Desejos para a IA7

contacts Contatos e tags5

problems Análise de problemas do cliente4

quick‑phrases Frases rápidas4

compat Compatibilidade de migração3

stats Estatísticas3

account Conta2

files Arquivos2

ratings Avaliações1

tags Etiquetas1

v1 1

webhook‑events Catálogo de eventos1

Os caminhos são relativos a https://smartbtn.me/api. As gravações precisam de Content‑Type: application/json e X‑Smartbtn‑Idempotency‑Key. O grupo compat é uma camada de compatibilidade para equipes que migram de outra plataforma de chat.

05

Webhooks

Um JSON POST assinado para sua URL sempre que um evento assinado acontecer. Gerencie assinaturas via /v1/webhook‑subscriptions ou no painel.

POST sua URL · X‑Smartbtn‑Event: ticket.created
{
  "id": "evt_01JAB3K9Q7",
  "type": "ticket.created",
  "data": {
    "button_guid": "b_3f9c2e",
    "ticket_number": 10482,
    "chat_id": 48211,
    "client_id": 9134,
    "reason": "human_request",
    "priority": "high",
    "sla_hours": 4,
    "source": "chat",
    "created_at": "2026-10-17T10:15:00+03:00"
  }
}

motivo: solicitação_humana | faturamento | ai_não resolvido | pedido_de_ação | …; prioridade: alta | normal; fonte: bate‑papo | aplicativo | site. Leia o ticket e sua caixa de diálogo com GET /v1/support/tickets/{number}.

Cabeçalhos de entrega

X‑Smartbtn‑EventTipo de evento, por ex. message.created.
X‑Smartbtn‑Signaturesha256=v1: do corpo bruto.
X‑Smartbtn‑Idempotency‑KeyUm valor por evento, estável entre novas tentativas. Desduplicar isso.
X‑Smartbtn‑DeliveryUm valor por tentativa de entrega — para seus logs.
X‑Smartbtn‑TimestampHora de envio do Unix. Informativo, não assinado.

Verificação de assinatura

HMAC‑SHA256 do corpo bruto (bytes conforme recebidos, antes da análise JSON) com seu segredo do endpoint; comparar em tempo constante. O segredo é mostrado uma vez, quando a assinatura é criada; gire‑o com POST /v1/webhook‑subscriptions/{id}/rotate‑secret.

// Node.js · por exemplo, o segredo é um espaço reservado
import crypto from 'node:crypto';

function verify(rawBody, header, secret) {
  const expected = 'sha256=v1:' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  const a = Buffer.from(expected), b = Buffer.from(header || '');
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}
// PHP
$expected = 'sha256=v1:' . hash_hmac('sha256', file_get_contents('php://input'), $secret);
if (!hash_equals($expected, $_SERVER['HTTP_X_SMARTBTN_SIGNATURE'] ?? '')) { http_response_code(401); exit; }

Novas tentativas e pedidos

  • Até 4 tentativas (o primeiro envio mais 3 novas tentativas), espera min(60, 2^attempt × 5) s — cerca de 10, 20, 40 s.
  • Não‑2xx ou um tempo limite conta como uma tentativa falhada. Entregas com falha podem ser reenviadas com POST /v1/webhook‑subscriptions/{id}/redeliver — mesma chave de idempotência, novo ID de entrega.
  • A entrega é feita pelo menos uma vez e não solicitada. As cargas úteis são mínimas – ids, não registros completos; buscar detalhes por meio da API REST.
06

JS API

Passe o que você já sabe sobre o visitante direto para o agente. As chamadas são aceitas apenas do domínio definido nas configurações do widget.

smartbtn_widget_api.setContactInfo(info)

Define os dados de contato do visitante. O agente vê como se o visitante preenchesse o formulário de introdução. Nome, telefone e e‑mail desempenham um papel especial no Smartbtn – portanto, um método separado.

NomeTipoDescrição
namestringNome do visitante
emailstringE‑mail do visitante
phonestringTelefone do visitante
descriptionstringQualquer informação extra sobre o cliente
Smartbtn_api.setClientInfo({
  name: "Alex Morgan",
  email: "email@example.com",
  phone: "+17584987855",
  description: "Description text"
});

smartbtn_widget_api.setCustomData(fields)

Quaisquer dados extras para o painel de informações à direita do aplicativo do agente. Chame‑o quantas vezes quiser — em uma caixa de diálogo aberta, o painel é atualizado em tempo real. Os campos são mostrados em ordem de matriz.

NomeTipoDescrição
fieldsarrayLista de campos de dados
field.titlestringIndo acima do campo
field.contentstringConteúdo do campo; tags são escapadas
field.linkstringURL aberto ao clicar
Smartbtn_api.setClientCustomData([
  { title: "Order", content: "#10482 · 3 items", link: "https://shop.example/orders/10482" },
  { title: "Actions", content: "Open customer profile", link: "https://crm.example/c/9134" }
]);

smartbtn_widget_api.setSkin(skin, opts) · open() · close()

Mude o tema do widget rapidamente sem recarregar a página (classic, minimal, capsule, liquid) ou controle a janela de bate‑papo programaticamente. Para personalização permanente por projeto, passe os mesmos campos para PATCH /v1/widget/settings.

// JS API · mudar a aparência da página em tempo real
smartbtn_widget_api.setSkin("minimal");
smartbtn_widget_api.setSkin("capsule", { capsuleTitle: "Smartbtn AI", capsuleSubtitle: "Respostas em aproximadamente 1 s" });

// REST API · PATCH /v1/widget/settings (escopo widget:write)
{
  "skin": "minimal",
  "widget_header_align": "center",
  "widget_show_operator_avatars": false,
  "widget_show_tabs_bar": false,
  "chat_bg": "#FAF8F5",
  "capsule_title": "Smartbtn AI",
  "capsule_subtitle": "On-line 24 horas por dia, 7 dias por semana"
}
Com widget_api_contact_sync ativado, essas chamadas também acionam o webhook contact.updated.
07

Support‑agent API

Um agente de suporte automatizado atende a fila de tickets e bate‑papos com clientes: inicia um chat, atende como seu operador de suporte humano e fecha o ticket. Desativado até que o proprietário do widget o ative.

  1. O proprietário permiteLista os tokens autorizados a atuar como agentes de suporte e os IPs de onde eles podem ligar.
  2. Leia a filaGET /v1/support/tickets · GET /v1/support/chats
  3. Alugue um chatPOST …/chats/{id}/claim · …/release
  4. ResponderTexto simples, links apenas para os hosts permitidos do widget. 201 somente quando a mensagem for armazenada.
  5. Fechar ou reabrirPOST …/tickets/{number}/close · …/reopen
EscopoPermite
support:readTickets, chats ativos, mensagens rotuladas como cliente/ai/suporte/sistema, ações auditadas próprias
support:writeReivindique/libere um bate‑papo, feche sem responder, reabra
support:replyResponder ao cliente como operador de suporte (sensível)
support:tickets:closeFeche apenas um ticket - para um botão de “pergunta resolvida” em seu backend
curl -X POST https://smartbtn.me/api/v1/support/chats/48211/reply \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Smartbtn-Idempotency-Key: $(uuidgen)" \
  -d '{"text":"Concluído, o acesso foi restaurado."}'
O proprietário pode fornecer aos tokens do agente de suporte seu próprio limite por minuto – ou nenhum. Todas as outras rotas mantêm o limite geral.
08

API de IA

Tudo o que a seção AI do painel faz: assistentes, chaves de provedor próprias, base de conhecimento, autoaprendizagem com reversão, desejos, problemas, sinais de demanda e um assistente dentro do seu aplicativo.

Assistentes e operadores de IA

Vários assistentes com função e idioma próprios, teste antes de entrar em operação, operadores nomeados por idioma.

  • GET/v1/ai/assistants
  • POST/v1/ai/assistants/{id}/test
  • PATCH/v1/ai/operators/{id}
  • POST/v1/ai/handoff
Escopos: ai:read · ai:write
Traga sua própria chave

Claude, ChatGPT, DeepSeek, Gemini, Mistral, LLMs regionais ou qualquer compatível com OpenAI. Os modelos são listados por chave.

  • GET/v1/ai/credentials
  • POST/v1/ai/credentials
  • GET/v1/ai/credentials/{id}/models
Escopos: ai:read · ai:credentials:write
Base de conhecimento

Um rastreador para seu site, uploads de PDF e DOCX, regras, pesquisa e status de indexação.

  • PUT/v1/kb/crawler
  • POST/v1/kb/uploads
  • POST/v1/kb/rules
  • GET/v1/kb/search
Escopos: kb:read · kb:write · files:write
Autoaprendizagem

Ajustando execuções, ciclos, histórico, versões de persona com rollback e kill switch.

  • POST/v1/ai/learning/tune
  • GET/v1/ai/learning/cycles
  • POST/v1/ai/learning/persona‑versions/{version}/revert
  • GET/v1/ai/learning/kill‑switch
Escopos: ai:read · ai:write · ai:apply
Desejos para a IA

Um desejo em palavras simples → uma visualização sem efeitos colaterais → aprovar, rejeitar ou reverter.

  • POST/v1/wishes
  • GET/v1/wishes/{id}/preview
  • POST/v1/wishes/{id}/approve
  • POST/v1/wishes/{id}/revert
Escopos: ai:write · ai:apply
Problemas e sinais de demanda

Clusters de problemas com status e limite de gastos mensais; o que os clientes pediram e você não oferece.

  • GET/v1/problems
  • PATCH/v1/problems/settings
  • POST/v1/problems/{id}/status
  • GET/v1/ai/demand‑signals
Escopos: problems:read · problems:write · ai:read
Situação do cliente

Seu back‑end envia o status do cliente (registrado, pago, cliente desde então, estado do serviço) em uma solicitação assinada pelo HMAC – a IA avalia isso ao responder e escalar.

  • POST/v1/ai/customer‑status
  • POST/v1/ai/tickets
  • GET/v1/ai/alerts
Escopos: ai:write · ai:read
Assistente no seu aplicativo

Turnos de diálogo, vinculação de contas, conversão de fala em texto e conversão de texto em fala, tickets de aplicativos — por meio de uma integração assinada.

  • POST/v1/ai/assistant/turn
  • POST/v1/ai/assistant/account‑link
  • POST/v1/ai/assistant/speech‑to‑text
  • POST/v1/ai/assistant/text‑to‑speech
Escopos: assinatura de integração (HMAC)
Mercado de soluções

Assistentes prontos por nicho: café, clínica, loja, serviço de automóveis. Inscreva‑se em uma solicitação.

  • GET/v1/ai/marketplace/templates
  • POST/v1/ai/marketplace/templates/{slug}/apply
Escopos: ai:read · ai:write
Operador externo de IA

Seu próprio bot responde a chats: respostas assíncronas, transferência, testes e ciclo de vida.

  • POST/v1/ai/replies
  • POST/v1/external‑operators/{public_id}/tests
  • POST/v1/external‑operators/{public_id}/lifecycle
Escopos: responder:inject · responder:escalate
09

Limites de taxa

Por token, dois contadores: leituras e gravações são contadas separadamente, de modo que a pesquisa nunca consome o orçamento de gravação.

600 / mindiz: GET, CABEÇA
120 / minescreve: POST, PATCH, PUT, DELETE
429acima do limite - aguarde Retry‑After
X‑RateLimit‑LimitTamanho do contador em que esta solicitação foi contada (600 ou 120)
X‑RateLimit‑RemainingSolicitações restantes na janela atual
X‑RateLimit‑ResetQuando a janela for reiniciada
Retry‑AfterEm 429: segundos para esperar
HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
Retry-After: 12
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0

{ "status": 429, "title": "Too Many Requests", "reason": "rate_limited" }

/v1/ai/assistant/tickets/status e /v1/ai/assistant/account‑link têm seus próprios contadores; a API do agente de suporte pode ter uma substituição por widget.

10

Erros

Cada erro é RFC‑7807 application/problem+json: um status e motivo legíveis por máquina, um detalhe legível por humanos.

HTTP/1.1 403 · Content-Type: application/problem+json
{
  "type": "https://smartbtn.me/problems/forbidden",
  "title": "Forbidden",
  "status": 403,
  "detail": "Token lacks scope chats:write.",
  "required_scopes": [
    "chats:write"
  ],
  "hint": "Dashboard → API tokens → key → Edit scopes"
}

Os nomes do corpo require_scopes e onde concedê-los. Não há necessidade de reemitir a chave.

EstadoSignificado
400Solicitação malformada ou falta uma chave de idempotência necessária
401Nenhum token, token inválido ou revogado
403O token não tem escopo; o corpo adiciona required_scopes e onde concedê-lo
404Não encontrado neste widget
405Método não permitido – pare e relate; não procure gravações alternativas
409Chave de idempotência reutilizada em 24 horas ou conflito de estado
422Falha na validação (por exemplo, um campo somente leitura foi enviado)
429Limite de taxa; respeito Tentar novamente depois
11

Idempotência

As redes falham. Uma chave torna segura uma nova tentativa de gravação: a mesma operação nunca é aplicada duas vezes.

  • Envie X‑Smartbtn‑Idempotency‑Key em cada POST / PATCH / PUT / DELETE: um novo UUID para uma nova operação, a mesma chave para uma nova tentativa da mesma.
  • Operações marcadas como x‑idempotency: obrigatória no OpenAPI: nenhuma chave → 400, a chave reutilizada dentro de 24 horas → 409 (não foi um sucesso em cache).
  • Não tem certeza se foi aprovado? Leia o estado primeiro. Nunca altere a chave automaticamente; respeite Repetir‑Depois.
  • Um 502 de um provedor upstream libera a chave – tente novamente com a mesma chave.
KEY=$(uuidgen)
curl -X PATCH https://smartbtn.me/api/v1/widget/settings \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Smartbtn-Idempotency-Key: $KEY" \
  -d '{"language":"ru"}'
# erro de rede? repita com a mesma $KEY
12

Changelog

Mudanças na API pública e nos webhooks em 2026. Tudo abaixo é aditivo e permanece em v1.

NovoTickets: webhook ticket.created, leituras de fila com suporte: leitura, dica 403

Novo ticket de evento ao vivo.criado. GET /v1/support/tickets responde a qualquer chave com support:read até que um agente de suporte seja configurado. Os escopos principais são editáveis ​​sem reemissão. 403 ganha escopos_requeridos.

NovoNome do operador de IA por idioma

POST/PATCH /v1/ai/operadores aceitam nome_i18n; os nomes padrão são traduzidos para o idioma do widget; escolha de saudação previsível.

MudançaLimite de taxa: leituras e gravações contadas separadamente

Lê – 600 por minuto, escreve – 120. As pesquisas não consomem mais o orçamento de gravação. X‑RateLimit-* descreve o contador que foi usado.

NovoGET /v1/chats: filtro atualizado_since

Conversa com atividade desde um instante, independentemente da idade. Cada chat agora carrega last_message_at.

NovoAPI de suporte: o chat solicitou a caixa de correio

chat.account.email_requested — o chat aguarda o endereço; os agentes não devem iniciar outro fluxo de código.

NovoSuporte de escopo:tickets:close

Feche um ticket e nada mais — para obter um botão de “pergunta resolvida” em seu backend.

NovoGET /v1/chats: pesquisa de texto e mensagens do cliente

Filtra has_client_messages=1 e q (2–100 caracteres).

NovoLink da conta do seu back‑end

POST /v1/ai/assistant/account‑link e /revoke. Desligado até que o proprietário o habilite.

CorreçãoBase de conhecimento: escreve com uma chave vinculada ao assistente

As regras são incorporadas à chave do widget ou a uma chave de assistente habilitada; um 502 libera a chave de idempotência.

MudançaAPI do agente de suporte: vida útil da conta do app‑ticket

A conta fica visível enquanto o ticket estiver aberto e por 7 dias depois.

NovoAPI do agente de suporte

Novo grupo /v1/support: fila, chats, concessões, respostas, fechamento e reabertura de tickets. Desligado até que o proprietário o habilite.

NovoAPI do agente de suporte: janela de código de e‑mail

Campos code_pending, code_expires_at, last_code_result e last_code_at.

13

Plug‑in WordPress

O widget em um site WordPress sem tocar no código do tema.

  1. Baixaro arquivo do plugin para o seu computador.
  2. InstalarColoque a pasta descompactada em wp‑content/plugins/ — ou carregue‑a no administrador do WordPress.
  3. AtivarUm item Smartbtn aparece no menu.
  4. Cole o tokenCopie o token de segurança das configurações do widget em seu painel.
É bom saber

Quando você altera sua senha, o token de segurança também muda e o antigo para de funcionar – cole o novo no plugin.

14

Amostras de código

Liste todos os bate‑papos em atividade desde sua última enquete - seguindo o cursor até o final.

# primeira página
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "updated_since=2026-10-17T09:00:00+03:00"

# next — com next_cursor da resposta
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "cursor=eyJpZCI6NDgyMDd9"
Pronto

Emita um token – e pressione Enter.