CaracterísticasIAPanel de controlAPIPreciosDescargarAyuda
Apariencia (Auto: light)
Pruébalo gratis
Inicio / API
API y desarrolladores

Presiona Enter.
Obtén tus datos.

API REST /api/v1, 53 ámbitos, 239 puntos finales, 11 eventos de webhook y una API JS para el widget. Chats, contactos, inteligencia artificial, base de conocimientos, tickets y facturación: cualquier cosa que haga el panel, su código también puede hacerlo.

smartbtn.me/api/v1
# presione Enter o la marca a la derecha
$ curl -H "Authorization: Bearer sb_••••" \
    https://smartbtn.me/api/v1/chats?limit=1 
01

Inicio rápido

Tres pasos desde cero hasta la primera respuesta. Cada solicitud está vinculada a un widget y se autentica con un token de portador.

  1. Emitir una fichaPanel → Tokens de API: un nombre, una caducidad opcional y los alcances que necesita. Un token pertenece exactamente a un widget. El token de texto plano se muestra una vez; Smartbtn almacena sólo un hash unidireccional, por lo que un token perdido no se puede recuperar, sólo se puede revocar y volver a emitir.
  2. Activar la API del widgetEn la configuración del widget, active «Permitir API de widget (JS y REST)». Emitir un token no activa este interruptor por usted.
  3. Enviar la primera solicitudEl token solo va al encabezado Autorización, nunca a la URL.
# listar los chats del widget
curl -H "Authorization: Bearer $SMARTBTN_TOKEN" \
     https://smartbtn.me/api/v1/chats
// 200 OK · paginación del cursor
{
  "data": [ { "id": 48211, "status": "open", "last_message_at": "2026-10-17T09:41:12+03:00" }, … ],
  "next_cursor": "eyJpZCI6NDgyMTB9"   // null — en la última página
}
URL base verificada. https://smartbtn.me/api/v1 es el punto final API principal para todos los datos del proyecto. Envíe siempre solicitudes a través de HTTPS y nunca reenvíe el token en redirecciones.
¿Token faltante, no válido o con alcance insuficiente? Obtienes 401 o 403 con un cuerpo RFC‑7807 application/problem+json; consulta Errores.
02

Autenticación

Tres caminos, según quién llame a quién. El acceso es denegado de forma predeterminada: sin alcance, sin llamada.

Tú → Smartbtn
llamadas DESCANSO

Cada solicitud lleva Autorización: Portador . En el servidor, el token se resuelve en un widget y sus alcances.

Smartbtn → tú
Webhooks, operador externo de IA

Las solicitudes salientes se firman con un secreto por inquilino: X‑Smartbtn‑Signature. Se puede agregar una credencial de portador adicional si su lado la necesita.

Tu operador de IA → Smartbtn
Respuestas asíncronas

POST /v1/ai/replies utiliza su propio marco firmado, anclado a su operador de IA y widget y codificado por un causation_id duradero.

El cambio que la gente olvida

«Permitir API de widget (JS y REST)» en la configuración del widget abre tanto la API REST como la API JS del widget. La emisión de un token no lo habilita. Los alcances de una clave existente se pueden editar en el panel (tokens de API → clave → Editar alcances) sin volver a emitirla: las integraciones siguen funcionando.

Preajustes

PreestablecidoAlcancescuando
configuración de IA 9widget:read · widget:write · ai:read · ai:write · ai:apply · kb:read · kb:write · files:write · stats:readTu aplicación de IA configura el widget: asistente, base de conocimientos, textos. Reemplaza toda la selección de alcance.
Sólo lectura (conjunto de ejemplo)chats:read · messages:read · contacts:read · stats:readDashboards, BI, exportaciones.
Puente de soporte técnico (conjunto de ejemplos)chats:read · messages:read · messages:write · webhooks:write · support:readRefleje diálogos y tickets en su CRM.
Las claves del proveedor son independientes. Conceda ai:credentials:write solo cuando el propietario autorice la configuración de la clave del proveedor. No se necesitan derechos de cuenta, facturación ni de socio para configurar la IA. La clave se muestra una vez; revocarla cuando finalice la configuración.
03

Alcances

53 alcances de ruta, más uno condicional y otro reservado. Una solicitud tiene éxito solo si el token contiene el alcance de la ruta (o una alternativa enumerada).

53 + 1 condicional + 1 reservado
sensiblecondicionalreservado
AlcanceSubvenciones
chats · 2
chats:readLeer chats y sus metadatos
chats:writeCerrar un chat, solicitar una calificación, transferir, reclamar, adjuntar o desasociar un agente
messages · 2
messages:readLeer el historial de mensajes de un chat
messages:writeEnvía mensajes, escribe indicadores y lee recibos como agente.
contacts · 2
contacts:readLeer contactos
contacts:writeActualizar campos y atributos de contacto
agents · 3
agents:readLeer agentes y su presencia.
agents:writesensibleInvitar, actualizar, suspender, restaurar o eliminar agentes; un invitado ve todos los chats del widget
agents:events:readLeer el registro de eventos de un agente y las métricas por agente
tags · 2
tags:readLeer etiquetas
tags:writeAdjuntar etiquetas a un contacto
files · 2
files:readDescargar un archivo cargado
files:writeSube un nuevo archivo
stats · 1
stats:readLeer estadísticas agregadas de chat, mensajes y calificaciones
channels · 3
channels:readLeer el estado en línea de un canal personalizado
channels:writeEntregar un mensaje entrante en un canal personalizado
channels:registerRegistrar un nuevo canal personalizado (solo aplicaciones instaladas)
webhooks · 2
webhooks:readListar suscripciones a webhooks
webhooks:writeCrear, eliminar o volver a enviar una suscripción
quick_phrases · 2
quick_phrases:readLeer las frases breves de un agente
quick_phrases:writeCrear, editar o eliminar frases rápidas
ratings · 1
ratings:readLea las valoraciones de los visitantes y qué agente puntúa cada uno.
responder · 2
responder:injectsensibleInyecte una respuesta en un chat en vivo como un operador o bot externo de IA
responder:escalatecondicionalPara POST /v1/ai/respuestas: transferencia dirigida a la persona que llama mediante escalate=true
widget · 2
widget:readLeer la apariencia, el comportamiento y la configuración de inserción del widget
widget:writeActualice la configuración del widget y borre el caché del widget
departments · 2
departments:readLeer departamentos, sus agentes y horarios.
departments:writeCrear, actualizar o eliminar departamentos y horarios.
messengers · 2
messengers:readLeer qué mensajeros están conectados (nunca credenciales)
messengers:writesensibleConectar o desconectar un mensajero; escribe las credenciales del proveedor
ai · 4
ai:readLea los asistentes de IA, su configuración y alertas
ai:writeCree y actualice asistentes, configuraciones de IA y operadores de IA, persona y aviso incluidos
ai:credentials:writesensibleAlmacenar credenciales de proveedores de LLM de terceros (BYOK)
ai:applyAprobar una mejora que reescribe la personalidad de un asistente en vivo
kb · 2
kb:readLeer reglas de la base de conocimientos y fuentes ingeridas
kb:writeCrear, actualizar o eliminar reglas y fuentes de KB
transcripts · 1
transcripts:readExportar una transcripción de chat
account · 2
account:readLea el perfil de la cuenta y todas sus entidades legales.
account:writeActualiza solo el nombre, apellido y teléfono de la cuenta.
billing · 2
billing:readLeer los registros de facturación y las entidades legales del widget.
billing:writeCrear, actualizar, eliminar personas jurídicas; no emite facturas, no mueve dinero
partners · 2
partners:readLeer datos de socios y referencias
partners:withdrawreservadoReservado: ninguna operación de pago lo utiliza hoy
support · 4
support:readLeer tickets, chats activos, sus mensajes y acciones propias auditadas.
support:replysensibleResponder a un cliente como operador de soporte
support:writeReclamar o liberar un chat, cerrar sin respuesta, volver a abrir
support:tickets:closeSólo cerrar un ticket, nada más
marketing · 2
marketing:readLeer campañas de marketing: banners, ventanas emergentes, correo electrónico.
marketing:writeCree y edite campañas, cambie el estado, inicie un envío de correo electrónico
broadcasts · 2
broadcasts:readLeer transmisiones de mensajería (WhatsApp, Telegram, Messenger, Viber, VK, MAX)
broadcasts:writeCrear, editar e iniciar una transmisión
problems · 2
problems:readLeer grupos y configuraciones de problemas de clientes
problems:writeCambiar la configuración y el estado del clúster: nuevo, en curso, resuelto, recurrente
invitations · 2
invitations:readLeer reglas de invitación, variantes A/B, plantillas y embudo
invitations:writeCrear, editar, habilitar o eliminar reglas y plantillas
04

Puntos finales

Toda la superficie pública en una sola lista. Filtre por recurso, busque por ruta, haga clic en una fila para copiar un rizo listo.

Mostrando 245 de 245
GETPOSTPUTPATCHDELETE

ai Asistentes, operadores, llaves, aprendizaje, mercado.54

chats Diálogos, mensajes, transferencias, valoraciones.18

kb Base de conocimientos: reglas, rastreador, archivos, búsqueda16

agents Agentes, invitaciones, métricas.14

messengers Mensajeros, redes sociales y canales de mercado13

billing Saldo, suscripciones, facturas, entidades.12

support Agente de soporte: tickets y chats12

widget Configuración, idioma, traducciones, máscaras, caché12

channels Canales personalizados8

external‑operators Tu bot como operador8

webhook‑subscriptions Suscripciones a webhooks8

broadcasts Transmisiones de mensajería7

departments Departamentos y horario7

invitations invitaciones inteligentes7

marketing Campañas de marketing7

partner Programa de socios7

wishes Deseos para la IA7

contacts Contactos y etiquetas5

problems Análisis de problemas del cliente4

quick‑phrases frases rapidas4

compat Compatibilidad de migración3

stats Estadísticas3

account cuenta2

files Archivos2

ratings Calificaciones1

tags Etiquetas1

v1 1

webhook‑events Catálogo de eventos1

Las rutas son relativas a https://smartbtn.me/api. Las escrituras necesitan Content‑Type: application/json y X‑Smartbtn‑Idempotency‑Key. El grupo compat es una capa de compatibilidad para equipos que se mudan desde otra plataforma de chat.

05

Ganchos web

Un POST JSON firmado en su URL cada vez que ocurre un evento de suscripción. Administre las suscripciones a través de /v1/webhook‑subscriptions o en el panel de control.

POST tu 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: solicitud_humana | facturación | ai_unresolved | solicitud_acción | …; prioridad: alta | normal; fuente: chat | aplicación | sitio. Lea el ticket y su cuadro de diálogo con GET /v1/support/tickets/{number}.

encabezados de entrega

X‑Smartbtn‑EventTipo de evento, p. mensaje.creado.
X‑Smartbtn‑Signaturesha256=v1: del cuerpo sin formato.
X‑Smartbtn‑Idempotency‑KeyUn valor por evento, estable entre reintentos. Deduplicarlo.
X‑Smartbtn‑DeliveryUn valor por intento de entrega, para sus registros.
X‑Smartbtn‑TimestampHora de envío Unix. Informativo, no firmado.

Verificación de firma

HMAC‑SHA256 del cuerpo sin formato (bytes tal como se recibieron, antes del análisis JSON) con su secreto de punto final; comparar en tiempo constante. El secreto se muestra una vez, cuando se crea la suscripción; gírelo con POST /v1/webhook‑subscriptions/{id}/rotate‑secret.

// Node.js · Por ejemplo, el secreto es un marcador de posición.
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; }

Reintentos y orden

  • Hasta 4 intentos (el primer envío más 3 reintentos), retroceso min(60, 2^attempt × 5) s: aproximadamente 10, 20, 40 s.
  • No 2xx o un tiempo de espera cuentan como un intento fallido. Las entregas fallidas se pueden reenviar con POST /v1/webhook‑subscriptions/{id}/redeliver: la misma clave de idempotencia, nueva identificación de entrega.
  • La entrega se realiza al menos una vez y no se realiza pedido. Las cargas útiles son mínimas: identificaciones, no registros completos; obtener detalles a través de la API REST.
06

JS API

Pase lo que ya sabe sobre el visitante directamente al agente. Solo se aceptan llamadas desde el dominio establecido en la configuración del widget.

smartbtn_widget_api.setContactInfo(info)

Establece los datos de contacto del visitante. El agente lo ve como si el visitante hubiera completado el formulario de introducción. El nombre, el teléfono y el correo electrónico juegan un papel especial en Smartbtn, por lo que se utiliza un método independiente.

NombreTipoDescripción
namestringNombre del visitante
emailstringCorreo electrónico del visitante
phonestringTeléfono de visitante
descriptionstringCualquier información extra sobre el cliente.
Smartbtn_api.setClientInfo({
  name: "Alex Morgan",
  email: "email@example.com",
  phone: "+17584987855",
  description: "Description text"
});

smartbtn_widget_api.setCustomData(fields)

Cualquier dato adicional para el panel de información a la derecha de la aplicación del agente. Llámalo tantas veces como quieras: en un cuadro de diálogo abierto, el panel se actualiza en tiempo real. Los campos se muestran en orden de matriz.

NombreTipoDescripción
fieldsarrayLista de campos de datos
field.titlestringDirigiéndose por encima del campo
field.contentstringContenido del campo; las etiquetas se escaparon
field.linkstringURL abierta al hacer clic
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()

Cambie el tema del widget sobre la marcha sin recargar la página (classic, minimal, capsule, liquid) o controle la ventana de chat mediante programación. Para una personalización permanente por proyecto, pase los mismos campos a PATCH /v1/widget/settings.

// JS API · cambiar la máscara en la página en tiempo real
smartbtn_widget_api.setSkin("minimal");
smartbtn_widget_api.setSkin("capsule", { capsuleTitle: "Smartbtn AI", capsuleSubtitle: "Respuestas en ~1 s" });

// REST API · PATCH /v1/widget/settings (alcance 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": "En línea 24 horas al día, 7 días a la semana"
}
Con widget_api_contact_sync activado, estas llamadas también activan el webhook contact.updated.
07

Support‑agent API

Un agente de soporte automatizado trabaja en la cola de tickets y en los chats con los clientes: toma una conversación, responde como su operador de soporte humano y cierra el ticket. Apagado hasta que el propietario del widget lo active.

  1. El propietario lo habilita.Enumera los tokens autorizados para actuar como agentes de soporte y las IP desde las que pueden llamar.
  2. leer la colaGET /v1/support/tickets · GET /v1/support/chats
  3. Arrendar un chatPOST …/chats/{id}/claim · …/release
  4. ResponderTexto sin formato, enlaces solo a los hosts permitidos del widget. 201 solo una vez que se almacena el mensaje.
  5. Cerrar o volver a abrirPOST …/tickets/{number}/close · …/reopen
AlcancePermite
support:readTickets, chats activos, mensajes etiquetados cliente/ai/soporte/sistema, acciones propias auditadas
support:writeReclamar/liberar un chat, cerrar sin respuesta, volver a abrir
support:replyResponder al cliente como operador de soporte (sensible)
support:tickets:closeCierra solo un ticket: para obtener un botón de «pregunta resuelta» en tu 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":"Listo, el acceso ha sido restaurado."}'
El propietario puede dar a los tokens de agente de soporte su propio límite por minuto, o ninguno. Cualquier otra ruta mantiene el límite general.
08

API de IA

Todo lo que hace la sección de IA del tablero: asistentes, tus propias claves de proveedor, base de conocimientos, autoaprendizaje con reversión, deseos, problemas, señales de demanda y un asistente dentro de tu aplicación.

Asistentes y operadores de IA

Varios asistentes con rol e idioma propios, una prueba antes de entrar en funcionamiento, operadores nombrados por idioma.

  • GET/v1/ai/assistants
  • POST/v1/ai/assistants/{id}/test
  • PATCH/v1/ai/operators/{id}
  • POST/v1/ai/handoff
Alcances: ai:read · ai:write
Trae tu propia llave

Claude, ChatGPT, DeepSeek, Gemini, Mistral, LLM regionales o cualquier compatible con OpenAI. Los modelos se enumeran por clave.

  • GET/v1/ai/credentials
  • POST/v1/ai/credentials
  • GET/v1/ai/credentials/{id}/models
Alcances: ai:read · ai:credentials:write
base de conocimientos

Un rastreador para su sitio, cargas de PDF y DOCX, reglas, estado de búsqueda e indexación.

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

Ejecuciones de ajuste, ciclos, historial, versiones de personajes con reversión y interruptor de apagado.

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

Un deseo en palabras sencillas → una vista previa sin efectos secundarios → aprobar, rechazar o revertir.

  • POST/v1/wishes
  • GET/v1/wishes/{id}/preview
  • POST/v1/wishes/{id}/approve
  • POST/v1/wishes/{id}/revert
Alcances: ai:write · ai:apply
Problemas y señales de demanda.

Grupos de problemas con estados y un límite de gasto mensual; Lo que los clientes pidieron y tú no ofreces.

  • GET/v1/problems
  • PATCH/v1/problems/settings
  • POST/v1/problems/{id}/status
  • GET/v1/ai/demand‑signals
Alcances: problems:read · problems:write · ai:read
Estado del cliente

Su backend envía el estado del cliente (registrado, pagado, cliente desde, estado del servicio) en una solicitud firmada por HMAC; la IA lo sopesa al responder y escalar.

  • POST/v1/ai/customer‑status
  • POST/v1/ai/tickets
  • GET/v1/ai/alerts
Alcances: ai:write · ai:read
Asistente en tu aplicación

Turnos de diálogo, vinculación de cuentas, voz a texto y texto a voz, tickets de aplicaciones, a través de una integración firmada.

  • 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
Alcances: firma de integración (HMAC)
Mercado de soluciones

Asistentes preparados por nicho: cafetería, clínica, tienda, servicio de coche. Aplicar en una sola solicitud.

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

Tu propio bot responde a los chats: respuestas asíncronas, transferencia, pruebas y ciclo de vida.

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

Límites de tarifas

Por token, dos contadores: las lecturas y las escrituras se cuentan por separado, por lo que el sondeo nunca consume el presupuesto de escritura.

600 / mín.dice: OBTENER, CABEZA
120 / mín.escribe: PUBLICAR, PATCH, PONER, BORRAR
429por encima del límite: espere el reintento posterior
X‑RateLimit‑LimitTamaño del contador en el que se contó esta solicitud (600 o 120)
X‑RateLimit‑RemainingSolicitudes dejadas en la ventana actual
X‑RateLimit‑ResetCuando la ventana se reinicia
Retry‑AfterEn 429: segundos de espera
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 y /v1/ai/assistant/account‑link tienen sus propios contadores; la API del agente de soporte puede tener una anulación por widget.

10

Errores

Cada error es RFC‑7807 application/problem+json: un estado y motivo legibles por máquina, un detalle legible 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"
}

El cuerpo nombra los ámbitos requeridos y dónde otorgarlos. No es necesario volver a emitir la clave.

EstadoSignificado
400Solicitud mal formada o falta una clave de idempotencia requerida
401Sin token, token inválido o revocado
403El token carece de alcance; el cuerpo agrega required_scopes y dónde otorgarlo
404No encontrado en este widget
405Método no permitido: detenerse e informar; no busques escrituras alternativas
409Clave de idempotencia reutilizada en 24 h, o conflicto de estado
422La validación falló (por ejemplo, se envió un campo de solo lectura)
429Límite de tarifa; respetar el reintento después
11

Idempotencia

Las redes fallan. Una clave hace que un reintento de escritura sea seguro: la misma operación nunca se aplica dos veces.

  • Envíe X‑Smartbtn‑Idempotency‑Key en cada POST / PATCH / PUT / DELETE: un nuevo UUID para una nueva operación, la misma clave para un reintento de la misma.
  • Operaciones marcadas x‑idempotencia: requerida en OpenAPI: sin clave → 400, la clave se reutiliza dentro de las 24 horas → 409 (no es un éxito en caché).
  • ¿No estás seguro de que haya pasado? Lea el estado primero. Nunca cambie la clave automáticamente; Respete el reintento después.
  • Un 502 de un proveedor ascendente libera la clave; vuelva a intentarlo con la misma clave.
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"}'
# error de red? repetir con la misma $KEY
12

Changelog

Cambios en la API pública y los webhooks en 2026. Todo lo siguiente es aditivo y permanece en v1.

NuevoTickets: webhook ticket.created, lecturas en cola con soporte: lectura, sugerencia 403

Nuevo boleto para evento en vivo creado. GET /v1/support/tickets responde cualquier clave con soporte: leer hasta que se configure un agente de soporte. Los ámbitos clave se pueden editar sin volver a publicarlos. 403 ganancias requeridas_alcances.

NuevoNombre del operador de IA por idioma

POST/PATCH /v1/ai/operators aceptan name_i18n; los nombres predeterminados se traducen al idioma del widget; elección de saludo predecible.

CambiarLímite de velocidad: lecturas y escrituras contadas por separado

Lecturas: 600 por minuto, escrituras: 120. Las encuestas ya no consumen el presupuesto de escritura. X‑RateLimit-* describe el contador que se utilizó.

NuevoOBTENER /v1/chats: filtro actualizado_since

Chats con actividad desde un instante, por antiguos que sean. Cada chat ahora lleva last_message_at.

NuevoAPI de soporte: el chat pidió el buzón

chat.account.email_requested — el chat espera la dirección; los agentes no deben iniciar otro flujo de código.

NuevoSoporte de alcance:tickets:cerrar

Cierra un ticket y nada más, para obtener un botón de "pregunta resuelta" en tu backend.

NuevoGET /v1/chats: búsqueda de texto y mensajes de clientes

Filtros has_client_messages=1 y q (2–100 caracteres).

NuevoEnlace de cuenta desde su backend

POST /v1/ai/assistant/account‑link y /revoke. Apagado hasta que el propietario lo habilite.

ArreglarBase de conocimientos: escribe con una clave vinculada al asistente

Las reglas están integradas con la tecla del widget o una tecla de asistente habilitada; un 502 libera la clave de idempotencia.

CambiarAPI de agente de soporte: duración de la cuenta de ticket de aplicación

La cuenta es visible mientras el ticket está abierto y durante los 7 días posteriores.

NuevoAPI de agente de soporte

Nuevo /v1/grupo de soporte: cola, chats, arrendamientos, respuestas, cierre y reapertura de tickets. Apagado hasta que el propietario lo habilite.

NuevoAPI del agente de soporte: ventana de código de correo electrónico

Campos code_pending, code_expires_at, last_code_result y last_code_at.

13

complemento de WordPress

El widget en un sitio de WordPress sin tocar el código del tema.

  1. Descargarel archivo del complemento a su computadora.
  2. InstalarColoque la carpeta descomprimida en wp‑content/plugins/ o cárguela en el administrador de WordPress.
  3. ActivarAparece un elemento Smartbtn en el menú.
  4. Pega la fichaCopie el token de seguridad de la configuración del widget en su panel.
Es bueno saberlo

Cuando cambia su contraseña, el token de seguridad también cambia y el anterior deja de funcionar; pegue el nuevo en el complemento.

14

Ejemplos de código

Enumere todos los chats con actividad desde su última encuesta, siguiendo el cursor hasta el final.

# primera pagina
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 — con next_cursor de la respuesta
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "cursor=eyJpZCI6NDgyMDd9"
Listo

Emita un token y presione Entrar.