Lia System — API Reference (1.0.0)

Download OpenAPI specification:

Introducción

Bienvenido a la API Reference de Lia System.

Lia System es una plataforma SaaS multi-tenant para crear y operar agentes conversacionales con IA en canales como WhatsApp, Instagram, Telegram, Facebook y más. Esta API te permite integrar y automatizar todas las capacidades de la plataforma desde tu propio sistema o aplicación.


Base URL

Todos los endpoints usan la siguiente URL base:

https://api.liasystem.co

Autenticación

La API utiliza Bearer Token (JWT) en cada petición. Obtén el token al autenticar al usuario en el frontend de Lia System.

Authorization: Bearer <tu_token>

Todos los endpoints están protegidos excepto los receptores de webhooks inbound, que validan la fuente por otros mecanismos.


Formato de respuestas

  • Las respuestas exitosas devuelven HTTP 2xx con un cuerpo JSON.
  • Los errores devuelven HTTP 4xx o 5xx con el campo error en el cuerpo:
{ "error": "Descripción del error" }

Límites y paginación

Los endpoints de listado que soportan paginación usan los parámetros page y limit. El límite máximo por página es 100 registros.


Versionado

La API está en versión v1. Los cambios que rompan compatibilidad se comunicarán con al menos 30 días de anticipación.

Agents

Los agentes son las entidades de IA conversacional de Lia System. Cada agente tiene su propio prompt, modelo, base de conocimiento y permisos (imágenes, voz, herramientas).

Usa estos endpoints para crear, listar, actualizar y eliminar agentes, así como para activarlos o marcarlos como primarios. Un mismo usuario puede tener múltiples agentes asignados a diferentes canales.

List agents (id + name)

Devuelve la lista mínima de agentes del usuario autenticado, ordenados alfabéticamente. Útil para llenar selectores y dropdowns en la UI. Si necesitas todos los campos del agente, usa /agents/full.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/agents \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Create agent

Crea un nuevo agente conversacional. Solo name es obligatorio; el resto de campos toman valores por defecto sensatos (modelo gpt-4o-mini, ventana de memoria de 10 mensajes, sin permisos de imagen ni voz).

Puedes asignar canales al momento de la creación pasando un array de IDs en assigned_channels.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
role
string
system_prompt
string
whatsapp_number
string
memory_window
integer
Default: 10
allow_images
boolean
Default: false
allow_voice
boolean
Default: false
knowledge_base_id
string <uuid>
model
string
Default: "gpt-4o-mini"
channel_type
string
Default: "ycloud"
actions_config
object
assigned_channels
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "Soporte Ventas",
  • "role": "Asesor de ventas",
  • "system_prompt": "Eres un agente amable...",
  • "model": "gpt-4o-mini",
  • "memory_window": 10,
  • "allow_images": false,
  • "allow_voice": false
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "role": "string",
  • "system_prompt": "string",
  • "whatsapp_number": "string",
  • "memory_window": 10,
  • "allow_images": true,
  • "allow_voice": true,
  • "knowledge_base_id": "7f7aee98-aff7-4ac1-b5ab-74100459287d",
  • "model": "gpt-4o-mini",
  • "channel_type": "ycloud",
  • "actions_config": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "is_primary": true
}

List agents with all fields

Devuelve la lista completa de agentes del usuario con todos sus campos (prompt, modelo, configuración de acciones, etc.), ordenados por fecha de creación descendente. Úsalo en la página de gestión de agentes.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/agents/full \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Update agent

Actualiza parcialmente un agente. Solo se modifican los campos enviados en el body (PATCH). Si pasas assigned_channels, se reemplaza la asignación completa de canales del agente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
role
string
system_prompt
string
model
string
memory_window
integer
allow_images
boolean
allow_voice
boolean
knowledge_base_id
string <uuid>
actions_config
object
assigned_channels
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "role": "string",
  • "system_prompt": "string",
  • "model": "string",
  • "memory_window": 0,
  • "allow_images": true,
  • "allow_voice": true,
  • "knowledge_base_id": "7f7aee98-aff7-4ac1-b5ab-74100459287d",
  • "actions_config": { },
  • "assigned_channels": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "role": "string",
  • "system_prompt": "string",
  • "whatsapp_number": "string",
  • "memory_window": 10,
  • "allow_images": true,
  • "allow_voice": true,
  • "knowledge_base_id": "7f7aee98-aff7-4ac1-b5ab-74100459287d",
  • "model": "gpt-4o-mini",
  • "channel_type": "ycloud",
  • "actions_config": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "is_primary": true
}

Delete agent

Elimina permanentemente un agente y desasigna sus canales. Las conversaciones existentes quedan huérfanas (sin agente) y dejarán de recibir respuestas automáticas.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/agents/$AGENT_ID \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "error": "string"
}

Toggle agent active status

Activa o pausa un agente sin eliminarlo. Cuando un agente está inactivo deja de responder mensajes entrantes, pero conserva su configuración y conversaciones.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
is_active
required
boolean

Responses

Request samples

Content type
application/json
{
  • "is_active": true
}

Set agent as primary

Marca este agente como el principal del usuario. El agente primario se usa por defecto cuando una conversación no tiene un agente asignado explícitamente. Solo puede haber un primario a la vez.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X PATCH https://api.liasystem.co/agents/$AGENT_ID/primary \
  -H "Authorization: Bearer $TOKEN"

Contacts

Los contactos representan a las personas con las que tus agentes conversan. Cada contacto está asociado a un agente y a un número de teléfono único.

Estos endpoints permiten gestión completa: búsqueda con filtros avanzados (por plataforma, tags, fechas, custom fields), creación individual o masiva hasta 100 a la vez, y actualización de información personal.

List contacts with pagination and filters

Lista paginada de contactos del usuario. Soporta búsqueda por nombre o teléfono y múltiples filtros combinables: plataforma, agente, tags, rangos de fecha y custom fields.

Las peticiones sin filtros están cacheadas en Redis por 30 segundos para mejorar el rendimiento. Usa DELETE /contacts/cache para forzar invalidación tras una mutación masiva externa.

Authorizations:
bearerAuth
query Parameters
search
string

Full-text search on name or phone

page
integer
Default: 1
limit
integer <= 100
Default: 15
platform
string

Filter by channel platform

agentId
string <uuid>
tagIds
string

Comma-separated tag UUIDs

noConversations
string
Enum: "true" "false"

Filter contacts with no conversations

dateFrom
string <date>
dateTo
string <date>
customFields
string

JSON array of {fieldId, value} filters

Responses

Request samples

curl -s "https://api.liasystem.co/contacts?page=1&limit=20&search=Juan" \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "page": 0,
  • "limit": 0
}

Create a contact

Crea un nuevo contacto asociado a un agente. El par (agent_id, phone_number) debe ser único — si ya existe se devuelve un 409 Conflict.

Esta acción dispara automáticamente las automatizaciones con trigger contact_created configuradas para ese agente.

Authorizations:
bearerAuth
Request Body schema: application/json
required
agent_id
required
string <uuid>
phone_number
required
string
first_name
string
last_name
string
email
string <email>
city
string
address
string
birth_date
string <date>

Responses

Request samples

Content type
application/json
{
  • "agent_id": "550e8400-e29b-41d4-a716-446655440000",
  • "phone_number": "+5215512345678",
  • "first_name": "Juan",
  • "last_name": "Pérez",
  • "email": "juan@email.com"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",
  • "phone_number": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "city": "string",
  • "address": "string",
  • "birth_date": "2019-08-24",
  • "created_at": "2019-08-24T14:15:22Z"
}

Bulk create contacts (up to 100)

Importa hasta 100 contactos en una sola petición. Por defecto, los teléfonos duplicados se omiten silenciosamente (skip_duplicates: true) y las automatizaciones de contact_created se disparan (fire_automations: true).

La respuesta incluye conteos de insertados, omitidos y errores individuales para que puedas reconciliar lotes grandes.

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
Array of objects <= 100 items
skip_duplicates
boolean
Default: true
fire_automations
boolean
Default: true

Responses

Request samples

Content type
application/json
{
  • "contacts": [
    ],
  • "skip_duplicates": true,
  • "fire_automations": true
}

Response samples

Content type
application/json
{
  • "inserted": 0,
  • "skipped": 0,
  • "errors": [
    ]
}

Bust Redis cache for contacts

Invalida el caché Redis de listados de contactos del usuario. Útil después de mutaciones realizadas fuera de la API (por ejemplo, importaciones desde la base de datos directamente).

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/contacts/cache \
  -H "Authorization: Bearer $TOKEN"

Update contact

Actualiza parcialmente la información personal de un contacto (nombre, email, ciudad, dirección, fecha de nacimiento). El número de teléfono y el agente asociado no son modificables por esta vía.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
first_name
string
last_name
string
email
string
city
string
address
string
birth_date
string <date>

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "city": "string",
  • "address": "string",
  • "birth_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",
  • "phone_number": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string",
  • "city": "string",
  • "address": "string",
  • "birth_date": "2019-08-24",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete contact

Elimina permanentemente un contacto y todas sus conversaciones, mensajes y tags asociados. Esta acción no se puede deshacer.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/contacts/$CONTACT_ID \
  -H "Authorization: Bearer $TOKEN"

Conversations

Las conversaciones son los hilos de mensajes entre un agente y un contacto. Cada conversación tiene su propio historial, estado de IA (activa/pausada) y tags.

Aquí puedes listar conversaciones con su último mensaje, leer el historial completo, enviar mensajes manuales (sobrescribiendo a la IA), pausar la IA en hilos específicos, o resetear el contexto cuando necesites empezar "limpio" sin borrar el historial.

List conversations with contact info, tags and last message

Devuelve todas las conversaciones del usuario con datos enriquecidos: información del contacto, tags asignados, último mensaje y timestamp. Pensado para alimentar la lista lateral del inbox.

El resultado se cachea en Redis por 5 segundos para reducir carga en peticiones frecuentes.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/conversations \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Get messages for a conversation (latest 100)

Devuelve los últimos 100 mensajes de una conversación ordenados cronológicamente (más antiguo primero). Incluye contenido, multimedia, rol (user o assistant) y metadata.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/conversations/$CONV_ID/messages \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Send a manual message in a conversation

Envía un mensaje manual al contacto desde la cuenta del agente. Permite texto plano, multimedia (imagen, video, documento, audio) o ambos combinados.

Los mensajes manuales se guardan en el historial pero no se consideran respuestas de la IA. Útil para intervención humana en hilos donde la IA está pausada.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
text
string
object

Responses

Request samples

Content type
application/json
{
  • "text": "Hola, ¿en qué te puedo ayudar?"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "role": "user",
  • "content": "string",
  • "media_url": "string",
  • "media_type": "string",
  • "metadata": { },
  • "created_at": "2019-08-24T14:15:22Z"
}

Toggle AI on/off for a conversation

Activa o pausa la IA para una conversación específica. Cuando está pausada, los mensajes entrantes se siguen guardando pero no generan respuestas automáticas — ideal para tomar control humano de un hilo.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
ai_enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "ai_enabled": true
}

Reset conversation context (context cut)

Realiza un corte de contexto: el historial sigue visible en el inbox pero la IA olvidará todos los mensajes anteriores al corte para sus próximas respuestas. Útil cuando el contacto cambia de tema o sesión sin necesidad de borrar la conversación.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X PATCH https://api.liasystem.co/conversations/$CONV_ID/context-cut \
  -H "Authorization: Bearer $TOKEN"

Delete conversation and its messages

Elimina permanentemente la conversación y todos sus mensajes. El contacto y sus tags permanecen. Esta acción no se puede deshacer.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/conversations/$CONV_ID \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "error": "string"
}

Channels

Los canales son las conexiones entre Lia System y las plataformas de mensajería. Soportamos WhatsApp (oficial y manual por API key), Telegram, Instagram, Facebook, Twitter, Reddit, YouTube, LinkedIn y Threads.

Estos endpoints listan los canales conectados, agregan números de WhatsApp manuales y conectan/desconectan bots de Telegram. Para OAuth de redes sociales usa el grupo Connect.

List all connected channels

Devuelve todos los canales conectados del usuario, incluyendo plataforma, nombre visible, estado de conexión y fecha de creación. Cubre todas las plataformas soportadas en una sola respuesta.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/channels \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Connect Telegram bot by token

Conecta un bot de Telegram a Lia System usando el token que obtienes al crear el bot con @BotFather. El sistema valida el token contra la API de Telegram antes de guardarlo.

Authorizations:
bearerAuth
Request Body schema: application/json
required
bot_token
required
string

Responses

Request samples

Content type
application/json
{
  • "bot_token": "123456:ABC-DEF..."
}

Response samples

Content type
application/json
{
  • "error": "string"
}

Disconnect Telegram bot

Desconecta un bot de Telegram. El bot deja de recibir mensajes en Lia System pero sigue activo en Telegram — debes desactivarlo desde BotFather si quieres apagarlo del todo.

Authorizations:
bearerAuth
Request Body schema: application/json
required
channel_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "channel_id": "bbe8aa76-a4bb-46f6-a785-df8e831cc459"
}

List WhatsApp numbers (manual API key connections)

Lista los números de WhatsApp conectados manualmente vía API key (en lugar de OAuth/Embedded Signup). Cada número incluye su estado y nombre visible.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/channels/whatsapp-numbers \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • { }
]

Add WhatsApp number (manual API key)

Conecta un número de WhatsApp Business API usando una API key manual. Útil cuando ya tienes un proveedor de WhatsApp Business y quieres integrarlo sin pasar por el flujo de Embedded Signup.

Authorizations:
bearerAuth
Request Body schema: application/json
required
phone_number
required
string
api_key
required
string
display_name
string

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string",
  • "api_key": "string",
  • "display_name": "string"
}

Remove WhatsApp number

Elimina un número de WhatsApp manual. El número deja de procesar mensajes inmediatamente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/channels/whatsapp-numbers/$ID \
  -H "Authorization: Bearer $TOKEN"

Automations

Las automatizaciones son flujos no-code que ejecutan acciones en respuesta a triggers (mensaje recibido, contacto creado, etc.). Cada automatización es un grafo de nodos y aristas.

Aquí puedes crear flujos, activarlos/desactivarlos, dispararlos manualmente con datos custom, o ejecutar acciones aisladas como envío de mensajes, multimedia o templates desde dentro de un nodo.

Get automations page data (list + metadata)

Endpoint consolidado que devuelve todo lo necesario para renderizar la página de automatizaciones: lista de flujos, agentes disponibles y metadatos relacionados. Reduce el número de round-trips desde el frontend.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/automations/page-data \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "automations": [
    ],
  • "agents": [
    ]
}

Get single automation

Devuelve el detalle completo de una automatización: nodos, aristas, trigger y configuración. Úsalo al abrir el editor de flujos.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/automations/$AUTO_ID \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "trigger_type": "string",
  • "is_active": true,
  • "nodes": [
    ],
  • "edges": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Create automation

Crea una nueva automatización en estado inactivo por defecto. El cuerpo acepta los nodos y aristas iniciales del flujo, o puedes crearla vacía y editarla después.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
trigger_type
string
is_active
boolean
Default: false
nodes
Array of objects
edges
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "trigger_type": "string",
  • "is_active": false,
  • "nodes": [
    ],
  • "edges": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "trigger_type": "string",
  • "is_active": true,
  • "nodes": [
    ],
  • "edges": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Update automation

Actualiza parcialmente una automatización. Usa este endpoint para guardar cambios desde el editor visual o para activar/desactivar flujos sin reescribir su estructura.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
is_active
boolean
nodes
Array of objects
edges
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "nodes": [
    ],
  • "edges": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "trigger_type": "string",
  • "is_active": true,
  • "nodes": [
    ],
  • "edges": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete automation

Elimina permanentemente una automatización. Las ejecuciones en curso se cancelan; las ejecuciones futuras no se dispararán.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/automations/crud/$AUTO_ID \
  -H "Authorization: Bearer $TOKEN"

Manually trigger an automation

Dispara una automatización manualmente con datos custom en lugar de esperar a su trigger natural. Útil para pruebas o para ejecuciones programadas desde sistemas externos.

Authorizations:
bearerAuth
Request Body schema: application/json
required
automationId
required
string <uuid>
triggerData
required
object

Responses

Request samples

Content type
application/json
{
  • "automationId": "de580a02-68f2-4f04-b675-19968bf358e1",
  • "triggerData": { }
}

Send message via automation node

Envía un mensaje de texto desde un nodo de automatización al número especificado, usando la cuenta del agente indicado. Es la acción base de los nodos "Enviar mensaje".

Authorizations:
bearerAuth
Request Body schema: application/json
required
to
required
string
text
required
string
agentId
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "to": "string",
  • "text": "string",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2"
}

Templates

Los templates de WhatsApp son plantillas de mensaje pre-aprobadas por Meta para enviar comunicaciones fuera de la ventana de 24 horas (marketing, utility, authentication).

Estos endpoints permiten crear, listar, actualizar, duplicar y sincronizar templates con el proveedor de WhatsApp. Recuerda que los templates deben pasar por revisión antes de poder usarse.

List WhatsApp templates

Devuelve todos los templates de WhatsApp del usuario con su estado de aprobación (PENDING, APPROVED, REJECTED), categoría e idioma.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/templates \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Create WhatsApp template

Crea un nuevo template y lo envía a Meta para revisión. La aprobación toma típicamente de minutos a 24 horas. El template no se puede usar hasta que Meta lo apruebe.

Categorías válidas:

  • MARKETING — promocional
  • UTILITY — transaccional / actualizaciones
  • AUTHENTICATION — códigos OTP
Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
category
required
string
Enum: "MARKETING" "UTILITY" "AUTHENTICATION"
language
required
string
components
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "category": "MARKETING",
  • "language": "es_MX",
  • "components": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "category": "string",
  • "language": "string",
  • "status": "string",
  • "components": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Get template by ID

Devuelve el detalle completo de un template, incluyendo sus componentes (header, body, footer, buttons) y estado actual.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/templates/$TEMPLATE_ID \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "category": "string",
  • "language": "string",
  • "status": "string",
  • "components": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Update template

Actualiza un template existente. Cualquier cambio significativo re-envía el template a Meta para nueva aprobación, durante la cual el template no se puede usar.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
components
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "components": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "category": "string",
  • "language": "string",
  • "status": "string",
  • "components": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete template

Elimina un template tanto en Lia System como en Meta. Una vez eliminado, no se puede recuperar; tendrías que crear uno nuevo y volver a pasar por revisión.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/templates/$TEMPLATE_ID \
  -H "Authorization: Bearer $TOKEN"

Duplicate a template

Crea una copia de un template existente con un nuevo nombre. La copia se envía a Meta para nueva aprobación de forma independiente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X POST https://api.liasystem.co/templates/$TEMPLATE_ID/duplicate \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "category": "string",
  • "language": "string",
  • "status": "string",
  • "components": [
    ],
  • "created_at": "2019-08-24T14:15:22Z"
}

Sync templates from WhatsApp provider

Sincroniza los templates con el proveedor de WhatsApp. Útil cuando Meta cambia el estado de un template (aprobado/rechazado) y quieres reflejar el cambio inmediatamente sin esperar al webhook.

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X POST https://api.liasystem.co/templates/sync \
  -H "Authorization: Bearer $TOKEN"

Knowledge Bases

Las bases de conocimiento alimentan el sistema RAG (Retrieval-Augmented Generation) de Lia System. Una base contiene fuentes (texto, URLs, archivos) que se procesan en embeddings para que los agentes puedan responder con contexto relevante.

Estos endpoints permiten gestionar bases completas, agregar y editar fuentes individuales, y forzar el reprocesamiento de embeddings cuando cambia el contenido.

List knowledge bases

Lista todas las bases de conocimiento del usuario. Una base de conocimiento puede asignarse a uno o varios agentes.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/knowledge-bases \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Create knowledge base

Crea una base de conocimiento vacía. Después debes agregarle fuentes (texto, URLs o archivos) usando POST /knowledge-bases/{id}/sources.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "created_at": "2019-08-24T14:15:22Z"
}

Get knowledge base

Devuelve los metadatos de una base de conocimiento. Para obtener sus fuentes usa el endpoint /sources.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/knowledge-bases/$KB_ID \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "created_at": "2019-08-24T14:15:22Z"
}

Update knowledge base

Actualiza nombre y descripción de una base de conocimiento. No afecta sus fuentes ni embeddings ya generados.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Delete knowledge base

Elimina permanentemente una base de conocimiento, sus fuentes y todos los embeddings asociados. Los agentes que la usaban pierden el acceso a ese contexto.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/knowledge-bases/$KB_ID \
  -H "Authorization: Bearer $TOKEN"

List sources in a knowledge base

Lista todas las fuentes de una base de conocimiento, con su tipo (text, url, file) y estado de procesamiento (pendiente, embeddeado, error).

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/knowledge-bases/$KB_ID/sources \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Add source to knowledge base

Agrega una nueva fuente a la base. El procesamiento de embeddings se encola en segundo plano — la fuente queda disponible para los agentes cuando su estado pasa a embedded.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
type
required
string
Enum: "text" "url" "file"
content
string
url
string

Responses

Request samples

Content type
application/json
{
  • "type": "text",
  • "content": "string",
  • "url": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "knowledge_base_id": "7f7aee98-aff7-4ac1-b5ab-74100459287d",
  • "type": "text",
  • "content": "string",
  • "url": "string",
  • "status": "string",
  • "created_at": "2019-08-24T14:15:22Z"
}

Update a source

Actualiza el contenido o URL de una fuente. Modificar el contenido re-encola los embeddings; durante el reprocesamiento la fuente queda marcada como pendiente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
sourceId
required
string <uuid>
Request Body schema: application/json
required
content
string
url
string

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "url": "string"
}

Delete a source

Elimina una fuente y sus embeddings asociados. Los agentes ya no podrán recuperar contexto desde esa fuente en sus respuestas.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
sourceId
required
string <uuid>

Responses

Request samples

curl -s -X DELETE "https://api.liasystem.co/knowledge-bases/$KB_ID/sources/$SOURCE_ID" \
  -H "Authorization: Bearer $TOKEN"

Re-embed all sources in a knowledge base

Encola el reprocesamiento completo de todas las fuentes de la base. Útil cuando cambias de modelo de embeddings o detectas inconsistencias en las respuestas del agente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X POST https://api.liasystem.co/knowledge-bases/$KB_ID/reprocess \
  -H "Authorization: Bearer $TOKEN"

Media Library

La media library es el almacenamiento privado de archivos del usuario (imágenes, videos, documentos, audios) que pueden enviarse desde automatizaciones o conversaciones manuales.

Los archivos viven en un bucket privado y siempre se acceden mediante signed URLs temporales. Estos endpoints permiten subir, listar, eliminar y generar signed URLs bajo demanda.

List media files

Devuelve todos los archivos de la media library del usuario con sus metadatos. Las URLs no incluyen acceso directo — usa el endpoint /signed-url para obtener un link temporal cuando necesites descargar o enviar el archivo.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/media-library \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • {
    }
]

Upload a media file

Sube un archivo a la media library privada del usuario. Usa multipart/form-data con el campo file. El archivo se almacena en un bucket privado y es accesible solo mediante signed URLs temporales.

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
required
file
required
string <binary>
name
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/media-library \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@/path/to/file.pdf" \
  -F "name=Catálogo 2025"

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "file_type": "string",
  • "size": 0,
  • "signed_url": "string",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete media file

Elimina un archivo de la media library de forma permanente, tanto del bucket de almacenamiento como de la base de datos. Las automatizaciones que referencien este archivo fallarán al ejecutarse.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/media-library/$FILE_ID \
  -H "Authorization: Bearer $TOKEN"

Get a temporary signed URL for a private file

Genera una URL firmada temporal (~60 minutos de validez) para acceder a un archivo privado. Las signed URLs no se persisten — debes pedir una nueva cada vez que necesites enviar o mostrar el archivo.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/media-library/$FILE_ID/signed-url \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "url": "string"
}

Dashboard

Estadísticas agregadas y resumen de actividad de tu cuenta: conversaciones, mensajes, contactos activos y automatizaciones disparadas en el día.

Get dashboard analytics summary

Devuelve métricas agregadas del día actual: número de conversaciones, mensajes enviados/recibidos, contactos activos y automatizaciones ejecutadas. Pensado para alimentar el home del dashboard.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/dashboard \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "conversations_today": 0,
  • "messages_today": 0,
  • "active_contacts": 0,
  • "automations_fired": 0
}

Connect

Endpoints de conexión OAuth para canales sociales. El flujo es:

  1. Solicita la URL de autorización con GET /connect/{platform}/url.
  2. Redirige al usuario; al autorizar, vuelve con un code.
  3. Llama a POST /connect/callback con el código para finalizar la conexión.
  4. Para WhatsApp Embedded Signup hay un endpoint específico.

También permite listar cuentas conectadas y desconectar canales.

Get OAuth URL for a social platform

Genera la URL de autorización OAuth de la plataforma seleccionada. Redirige al usuario a esta URL para que conecte su cuenta. Al autorizar, será redirigido de vuelta con un code que debes pasar a POST /connect/callback para finalizar la conexión.

Authorizations:
bearerAuth
path Parameters
platform
required
string
Enum: "whatsapp" "instagram" "facebook" "twitter" "reddit" "youtube" "linkedin" "threads"

Responses

Request samples

curl -s https://api.liasystem.co/connect/instagram/url \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "url": "string"
}

Handle OAuth callback after user authorization

Finaliza el flujo OAuth: intercambia el code que devolvió la plataforma por tokens de acceso y crea el canal en Lia System. Tras esta llamada el canal queda listo para enviar y recibir mensajes.

Authorizations:
bearerAuth
Request Body schema: application/json
required
platform
required
string
code
required
string
state
string

Responses

Request samples

Content type
application/json
{
  • "platform": "string",
  • "code": "string",
  • "state": "string"
}

Sync channel provider bindings

Sincroniza el estado de las cuentas conectadas con sus respectivos proveedores. Útil después de cambios en la plataforma externa (cuentas removidas, permisos modificados) para mantener Lia System alineado.

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X POST https://api.liasystem.co/connect/sync \
  -H "Authorization: Bearer $TOKEN"

List connected social accounts

Lista todas las cuentas sociales conectadas del usuario, incluyendo plataforma, identificador remoto y estado de la conexión.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/connect/accounts \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • { }
]

Disconnect a social channel

Desconecta un canal social y revoca los tokens almacenados. Las conversaciones existentes se preservan pero el canal deja de recibir nuevos mensajes hasta que se reconecte.

Authorizations:
bearerAuth
path Parameters
platform
required
string
Request Body schema: application/json
required
channel_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "channel_id": "bbe8aa76-a4bb-46f6-a785-df8e831cc459"
}

Webhooks

Receptores de webhooks inbound desde proveedores de mensajería. Estos endpoints son consumidos por los proveedores externos (Meta, canales sociales) para entregar eventos como mensajes recibidos, cambios de estado, etc.

No requieren autenticación con JWT — se validan con firmas/tokens del proveedor. No deberías llamarlos directamente desde tu integración.

Social channel webhook verification (GET challenge)

Endpoint de verificación que el proveedor llama una sola vez al registrar el webhook. Devuelve el parámetro hub.challenge recibido para confirmar la propiedad del endpoint.

Responses

Request samples

curl -s "https://api.liasystem.co/webhook/social?hub.challenge=abc123"

Receive social channel inbound events

Recibe eventos en tiempo real de los canales sociales conectados: mensajes recibidos, cambios de estado, comentarios, reacciones, etc. El procesamiento es asíncrono — el endpoint encola el evento en BullMQ y responde 200 OK inmediatamente.

Request Body schema: application/json
required
object

Inbound event payload (varies by event type)

Responses

Request samples

Content type
application/json
{ }

Meta webhook verification (GET challenge)

Verificación de webhook para WhatsApp Business y Instagram (Meta). Se llama una sola vez al registrar el webhook en el Business Manager.

Responses

Receive Meta (WhatsApp/Instagram) inbound events

Recibe eventos directamente desde Meta para WhatsApp Business oficial e Instagram: mensajes, estados de entrega/lectura, cambios de plantilla, etc. Como con todos los webhooks, el procesamiento es asíncrono.

Request Body schema: application/json
required
object

Meta webhook payload

Responses

Request samples

Content type
application/json
{ }

Opportunities

Sistema CRM de Lia System: pipelines, etapas y oportunidades. Cada pipeline contiene un conjunto ordenado de etapas, y cada oportunidad pertenece a una etapa de un pipeline.

Aquí gestionas la creación de pipelines, el reordenamiento de etapas, y el movimiento de oportunidades entre etapas (drag & drop en la UI).

List opportunities (full pipeline data)

Devuelve todos los pipelines del usuario con sus etapas y las oportunidades de cada etapa. Endpoint consolidado para renderizar la vista kanban completa en una sola petición.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/opportunities \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • { }
]

Bust opportunities cache

Invalida el cache Redis del módulo de oportunidades.

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/opportunities/cache \
  -H "Authorization: Bearer $TOKEN"

Create pipeline

Crea un nuevo pipeline (embudo). Por defecto puedes generar un set de etapas iniciales o crearlo vacío y agregar etapas después.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{ }

Update pipeline

Actualiza nombre o descripción de un pipeline existente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Delete pipeline

Elimina un pipeline junto con todas sus etapas y oportunidades. Esta acción no se puede deshacer.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/opportunities/pipelines/$PIPELINE_ID \
  -H "Authorization: Bearer $TOKEN"

Create stage

Agrega una nueva etapa a un pipeline. Las etapas se ordenan según su position; usa /stages/reorder para reordenar varias a la vez.

Authorizations:
bearerAuth
Request Body schema: application/json
required
pipeline_id
required
string <uuid>
name
required
string
color
string
position
integer

Responses

Request samples

Content type
application/json
{
  • "pipeline_id": "ec036e81-7903-4e4d-bbfa-ac8516341cf0",
  • "name": "string",
  • "color": "string",
  • "position": 0
}

Update stage

Actualiza el nombre, color o posición de una etapa.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
color
string
position
integer

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string",
  • "position": 0
}

Delete stage

Elimina una etapa. Las oportunidades que estaban en ella se mueven a la primera etapa del pipeline.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/opportunities/stages/$STAGE_ID \
  -H "Authorization: Bearer $TOKEN"

Reorder stages in bulk

Reordena varias etapas del pipeline en una sola petición. Pasa un array con {id, position} para cada etapa a reordenar.

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "stages": [
    ]
}

Create opportunity

Crea una nueva oportunidad asociada a un contacto y a una etapa de un pipeline. Puedes incluir valor monetario, notas y fecha esperada de cierre.

Authorizations:
bearerAuth
Request Body schema: application/json
required
stage_id
required
string <uuid>
contact_id
required
string <uuid>
title
required
string
value
number
notes
string
expected_close_date
string <date>

Responses

Request samples

Content type
application/json
{
  • "stage_id": "f38d2b9c-0a0a-4eea-91a8-e974413bb670",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "title": "string",
  • "value": 0,
  • "notes": "string",
  • "expected_close_date": "2019-08-24"
}

Update opportunity

Actualiza datos de una oportunidad (no su etapa — usa el endpoint /items/{id}/stage para mover entre etapas).

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
title
string
value
number
notes
string
expected_close_date
string <date>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "value": 0,
  • "notes": "string",
  • "expected_close_date": "2019-08-24"
}

Delete opportunity

Elimina una oportunidad permanentemente.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/opportunities/items/$ITEM_ID \
  -H "Authorization: Bearer $TOKEN"

Move opportunity to another stage

Mueve una oportunidad a otra etapa (acción típica de drag & drop en la vista kanban). Puede disparar automatizaciones de tipo opportunity_stage_changed.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
stage_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "stage_id": "f38d2b9c-0a0a-4eea-91a8-e974413bb670"
}

List contacts available to assign

Devuelve los contactos del usuario en formato resumido para usar en selectores al crear oportunidades.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/opportunities/contacts \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • { }
]

Products

Catálogo de productos del usuario. Los productos pueden mencionarse en automatizaciones, oportunidades y mensajes de los agentes para enriquecer el contexto comercial.

List products

Lista los productos del catálogo del usuario. Cacheado en Redis por 30 segundos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/products \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
[
  • { }
]

Create product

Agrega un producto al catálogo. Los productos pueden referenciarse desde automatizaciones, mensajes de agentes y oportunidades.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
description
string
price
number
currency
string
Default: "USD"
sku
string
image_url
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "currency": "USD",
  • "sku": "string",
  • "image_url": "string"
}

Bust products cache

Invalida el cache Redis del catálogo de productos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/products/cache \
  -H "Authorization: Bearer $TOKEN"

Update product

Actualiza datos de un producto.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
description
string
price
number
currency
string
sku
string
image_url
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "currency": "string",
  • "sku": "string",
  • "image_url": "string"
}

Delete product

Elimina un producto del catálogo.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/products/$PRODUCT_ID \
  -H "Authorization: Bearer $TOKEN"

Broadcasts

Configuración de WhatsApp Business para envíos masivos: perfil de negocio, foto, nombre visible y administración de templates por nombre. Pensado para integraciones que gestionan campañas WhatsApp a escala.

List WhatsApp accounts available for broadcasts

Devuelve las cuentas de WhatsApp Business conectadas que pueden usarse para envíos masivos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/broadcasts/accounts \
  -H "Authorization: Bearer $TOKEN"

Get WhatsApp Business profile

Devuelve el perfil público (descripción, sitio web, email, dirección, vertical) de la cuenta de WhatsApp Business.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/broadcasts/wa-profile \
  -H "Authorization: Bearer $TOKEN"

Update WhatsApp Business profile

Actualiza los campos públicos del perfil de WhatsApp Business.

Authorizations:
bearerAuth
Request Body schema: application/json
required
about
string
description
string
email
string <email>
websites
Array of strings
address
string
vertical
string

Responses

Request samples

Content type
application/json
{
  • "about": "string",
  • "description": "string",
  • "email": "user@example.com",
  • "websites": [
    ],
  • "address": "string",
  • "vertical": "string"
}

Update WhatsApp Business profile photo

Sube y establece la foto de perfil del WhatsApp Business.

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
required
file
string <binary>

Responses

Request samples

curl -s -X POST https://api.liasystem.co/broadcasts/wa-profile/photo \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@/path/to/logo.jpg"

Get WhatsApp display name

Obtiene el nombre visible del número de WhatsApp Business.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/broadcasts/wa-profile/display-name \
  -H "Authorization: Bearer $TOKEN"

Update WhatsApp display name

Cambia el nombre visible del número (sujeto a aprobación de Meta).

Authorizations:
bearerAuth
Request Body schema: application/json
required
display_name
required
string

Responses

Request samples

Content type
application/json
{
  • "display_name": "string"
}

List templates by name (broadcast view)

Lista de templates disponibles para el módulo de broadcasts, con foco en su nombre para referenciarlos en envíos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/broadcasts/templates \
  -H "Authorization: Bearer $TOKEN"

Create template (broadcast)

Crea un template usando los componentes simplificados del módulo de broadcasts (atajo de /templates).

Authorizations:
bearerAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Get template by name

Obtiene un template referenciado por su nombre (en vez de UUID).

Authorizations:
bearerAuth
path Parameters
name
required
string

Responses

Request samples

curl -s https://api.liasystem.co/broadcasts/templates/promo_navidad \
  -H "Authorization: Bearer $TOKEN"

Update template by name

Actualiza un template referenciándolo por nombre.

Authorizations:
bearerAuth
path Parameters
name
required
string
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Delete template by name

Elimina un template referenciándolo por nombre.

Authorizations:
bearerAuth
path Parameters
name
required
string

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/broadcasts/templates/promo \
  -H "Authorization: Bearer $TOKEN"

Campaigns

Campañas de mensajes recurrentes y programados. Permite crear lotes de envío, lanzarlos inmediatamente, programarlos a futuro, cancelarlos y consultar el estado de los destinatarios.

List campaigns

Devuelve todas las campañas del usuario con su estado (draft, scheduled, running, completed, cancelled).

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/campaigns \
  -H "Authorization: Bearer $TOKEN"

Create campaign

Crea una nueva campaña en estado draft. Después puedes agregar destinatarios y lanzarla o programarla.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
template_name
string
message
string
agent_id
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "template_name": "string",
  • "message": "string",
  • "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978"
}

Get campaign detail

Devuelve el detalle completo de una campaña con su configuración y estadísticas.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/campaigns/$CAMPAIGN_ID \
  -H "Authorization: Bearer $TOKEN"

Update campaign

Actualiza la configuración de una campaña en estado draft o scheduled. Una vez running no se puede editar.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
template_name
string
message
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "template_name": "string",
  • "message": "string"
}

Delete campaign

Elimina una campaña. Si la opción correspondiente está activa, también elimina los grupos generados por la campaña.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/campaigns/$CAMPAIGN_ID \
  -H "Authorization: Bearer $TOKEN"

Preview campaign message rendering

Renderiza el mensaje final de la campaña reemplazando variables de ejemplo. Útil para validar antes de lanzar.

Authorizations:
bearerAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Launch campaign now

Lanza inmediatamente la campaña a todos sus destinatarios. Pasa a estado running y los envíos se procesan en background.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X POST https://api.liasystem.co/campaigns/$CAMPAIGN_ID/launch \
  -H "Authorization: Bearer $TOKEN"

Schedule campaign for later

Programa el lanzamiento de la campaña a una fecha y hora específicas (ISO 8601). Pasa a estado scheduled.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
scheduled_at
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "scheduled_at": "2019-08-24T14:15:22Z"
}

Cancel campaign

Cancela una campaña programada o en ejecución. Los envíos ya disparados no se pueden recuperar.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X POST https://api.liasystem.co/campaigns/$CAMPAIGN_ID/cancel \
  -H "Authorization: Bearer $TOKEN"

List campaign recipients with status

Lista los destinatarios de la campaña con estado de envío individual (enviado, entregado, leído, fallido).

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/campaigns/$CAMPAIGN_ID/recipients \
  -H "Authorization: Bearer $TOKEN"

Sync campaign status with provider

Sincroniza estado y métricas de la campaña con el proveedor de WhatsApp.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X PATCH https://api.liasystem.co/campaigns/$CAMPAIGN_ID/sync \
  -H "Authorization: Bearer $TOKEN"

Calendar

Integración con Google Calendar y gestión de citas. Soporta crear, actualizar y eliminar eventos, configurar horarios de atención (business hours), conectar/desconectar Google y sincronizar.

List calendar events

Devuelve todos los eventos/citas del calendario del usuario con datos de contacto y agente asociado.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/calendar \
  -H "Authorization: Bearer $TOKEN"

Create calendar event

Crea un nuevo evento. Si Google Calendar está conectado, también se replica al calendario de Google.

Authorizations:
bearerAuth
Request Body schema: application/json
required
title
required
string
description
string
start_at
required
string <date-time>
end_at
string <date-time>
contact_id
string <uuid>
agent_id
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "start_at": "2019-08-24T14:15:22Z",
  • "end_at": "2019-08-24T14:15:22Z",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978"
}

Update calendar event

Actualiza un evento. Los cambios se replican a Google Calendar si está conectado.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
title
string
description
string
start_at
string <date-time>
end_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "start_at": "2019-08-24T14:15:22Z",
  • "end_at": "2019-08-24T14:15:22Z"
}

Delete calendar event

Elimina un evento. También se elimina de Google Calendar si está conectado.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/calendar/$EVENT_ID \
  -H "Authorization: Bearer $TOKEN"

List contacts available for calendar events

Devuelve contactos en formato resumido para usar en selectores al crear eventos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/calendar/contacts \
  -H "Authorization: Bearer $TOKEN"

List agents available for calendar events

Devuelve agentes en formato resumido para asignarlos como responsables de eventos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/calendar/agents \
  -H "Authorization: Bearer $TOKEN"

Get Google Calendar connection status

Indica si Google Calendar está conectado y la cuenta asociada.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/calendar/google-status \
  -H "Authorization: Bearer $TOKEN"

Disconnect Google Calendar

Revoca la conexión con Google Calendar. Los eventos locales se mantienen pero ya no se sincronizan.

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/calendar/google-disconnect \
  -H "Authorization: Bearer $TOKEN"

Get business hours configuration

Devuelve la configuración de horarios de atención por día de la semana.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/calendar/business-hours \
  -H "Authorization: Bearer $TOKEN"

Update business hours

Actualiza los horarios de atención. Los agentes pueden usar esta info para priorizar respuestas o agendar fuera de horario.

Authorizations:
bearerAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Sync events with Google Calendar

Fuerza una sincronización inmediata bidireccional con Google Calendar.

Authorizations:
bearerAuth

Responses

Request samples

curl -s -X POST https://api.liasystem.co/calendar/sync \
  -H "Authorization: Bearer $TOKEN"

Comments

Gestión de comentarios en posts de Instagram y Facebook conectados. Permite listar comentarios, responder pública o privadamente, dar like, ocultar comentarios y generar respuestas con IA.

List recent comments across posts

Lista los comentarios recientes en posts conectados de Instagram y Facebook, agregados en una sola vista.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/comments \
  -H "Authorization: Bearer $TOKEN"

Generate AI reply suggestion for a comment

Genera una respuesta sugerida con IA para un comentario, basada en el contexto del post, el agente seleccionado y su configuración.

Authorizations:
bearerAuth
Request Body schema: application/json
required
comment_id
required
string
agent_id
string <uuid>
tone
string

Responses

Request samples

Content type
application/json
{
  • "comment_id": "string",
  • "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",
  • "tone": "string"
}

List comments of a specific post

Devuelve todos los comentarios de un post (Instagram o Facebook) ordenados cronológicamente.

Authorizations:
bearerAuth
path Parameters
postId
required
string

Responses

Request samples

curl -s https://api.liasystem.co/comments/$POST_ID \
  -H "Authorization: Bearer $TOKEN"

Reply publicly to a post

Publica una respuesta a un comentario en el post (visible a todos).

Authorizations:
bearerAuth
path Parameters
postId
required
string
Request Body schema: application/json
required
comment_id
required
string
message
required
string

Responses

Request samples

Content type
application/json
{
  • "comment_id": "string",
  • "message": "string"
}

Like a comment

Da like al comentario desde la cuenta conectada.

Authorizations:
bearerAuth
path Parameters
postId
required
string
commentId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/comments/$POST_ID/$COMMENT_ID/like \
  -H "Authorization: Bearer $TOKEN"

Remove like from a comment

Quita el like previamente dado.

Authorizations:
bearerAuth
path Parameters
postId
required
string
commentId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/comments/$POST_ID/$COMMENT_ID/unlike \
  -H "Authorization: Bearer $TOKEN"

Hide a comment

Oculta un comentario para otros usuarios. Solo el autor del comentario lo seguirá viendo.

Authorizations:
bearerAuth
path Parameters
postId
required
string
commentId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/comments/$POST_ID/$COMMENT_ID/hide \
  -H "Authorization: Bearer $TOKEN"

Unhide a comment

Restaura visibilidad pública de un comentario oculto.

Authorizations:
bearerAuth
path Parameters
postId
required
string
commentId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/comments/$POST_ID/$COMMENT_ID/unhide \
  -H "Authorization: Bearer $TOKEN"

Send private reply (DM) to comment author

Envía un mensaje privado (DM) al autor del comentario en lugar de responder públicamente. Útil para comentarios que requieren info personal o sensible.

Authorizations:
bearerAuth
path Parameters
postId
required
string
commentId
required
string
Request Body schema: application/json
required
message
required
string

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Comment Automations

Auto-respuestas a comentarios de redes sociales. Cuando alguien comenta un post con palabras clave, Lia System dispara la acción configurada (responder en público, mensaje privado, etc.).

List accounts available for comment automations

Devuelve las cuentas conectadas (Instagram, Facebook) que pueden tener auto-respuestas a comentarios.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/comment-automations/accounts \
  -H "Authorization: Bearer $TOKEN"

List comment automations

Lista todas las auto-respuestas a comentarios configuradas.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/comment-automations \
  -H "Authorization: Bearer $TOKEN"

Create comment automation

Crea una auto-respuesta a comentarios. Define las palabras clave a detectar y la acción (responder público, mensaje privado, dar like).

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
keywords
required
Array of strings
action
required
string
Enum: "reply" "private_reply" "like" "hide"
response_text
string
post_id
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "keywords": [
    ],
  • "action": "reply",
  • "response_text": "string",
  • "post_id": "string"
}

Get comment automation

Devuelve el detalle completo de una auto-respuesta.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/comment-automations/$AUTO_ID \
  -H "Authorization: Bearer $TOKEN"

Update comment automation

Actualiza la configuración de una auto-respuesta.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Delete comment automation

Elimina permanentemente una auto-respuesta.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/comment-automations/$AUTO_ID \
  -H "Authorization: Bearer $TOKEN"

Get automation execution logs

Devuelve el historial de ejecuciones de la auto-respuesta: comentarios detectados, acción tomada y resultado.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>

Responses

Request samples

curl -s https://api.liasystem.co/comment-automations/$AUTO_ID/logs \
  -H "Authorization: Bearer $TOKEN"

Settings

Configuración global de la cuenta del usuario. Incluye reglas de enrutamiento de leads (lead routing) y otras preferencias de comportamiento del sistema.

Get lead routing configuration

Devuelve la configuración de enrutamiento de leads: qué agente atiende qué tipo de contacto, reglas de fallback y prioridades.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/settings/lead-routing \
  -H "Authorization: Bearer $TOKEN"

Update lead routing configuration

Actualiza las reglas de enrutamiento de leads.

Authorizations:
bearerAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

WhatsApp Groups

Gestión de grupos de WhatsApp Business: crear, actualizar, administrar participantes, generar links de invitación y aprobar o rechazar solicitudes de ingreso.

List accounts that support groups

Cuentas de WhatsApp Business habilitadas para gestión programática de grupos.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-groups/accounts \
  -H "Authorization: Bearer $TOKEN"

List WhatsApp groups

Devuelve los grupos de WhatsApp Business administrados por la cuenta del usuario.

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-groups \
  -H "Authorization: Bearer $TOKEN"

Create WhatsApp group

Crea un nuevo grupo de WhatsApp con los participantes iniciales especificados.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
description
string
participants
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "participants": [
    ]
}

Get group detail

Devuelve metadatos completos del grupo: nombre, descripción, participantes y configuración.

Authorizations:
bearerAuth
path Parameters
groupId
required
string

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-groups/$GROUP_ID \
  -H "Authorization: Bearer $TOKEN"

Update group settings

Actualiza nombre, descripción o configuración del grupo.

Authorizations:
bearerAuth
path Parameters
groupId
required
string
Request Body schema: application/json
required
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Delete group

Disuelve el grupo permanentemente.

Authorizations:
bearerAuth
path Parameters
groupId
required
string

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/whatsapp-groups/$GROUP_ID \
  -H "Authorization: Bearer $TOKEN"

Add participants to group

Agrega uno o más participantes al grupo por número de teléfono.

Authorizations:
bearerAuth
path Parameters
groupId
required
string
Request Body schema: application/json
required
phone_numbers
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "phone_numbers": [
    ]
}

Remove participants from group

Saca uno o más participantes del grupo.

Authorizations:
bearerAuth
path Parameters
groupId
required
string
Request Body schema: application/json
required
phone_numbers
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "phone_numbers": [
    ]
}

Generate invite link

Genera o regenera el link de invitación del grupo. El link anterior queda invalidado.

Authorizations:
bearerAuth
path Parameters
groupId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/whatsapp-groups/$GROUP_ID/invite-link \
  -H "Authorization: Bearer $TOKEN"

Response samples

Content type
application/json
{
  • "link": "string"
}

List pending join requests

Solicitudes pendientes de personas que quieren unirse al grupo.

Authorizations:
bearerAuth
path Parameters
groupId
required
string

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-groups/$GROUP_ID/join-requests \
  -H "Authorization: Bearer $TOKEN"

Approve join requests

Aprueba una o más solicitudes de ingreso al grupo.

Authorizations:
bearerAuth
path Parameters
groupId
required
string
Request Body schema: application/json
required
phone_numbers
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "phone_numbers": [
    ]
}

Reject join requests

Rechaza una o más solicitudes de ingreso al grupo.

Authorizations:
bearerAuth
path Parameters
groupId
required
string
Request Body schema: application/json
required
phone_numbers
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "phone_numbers": [
    ]
}

WhatsApp Flows

Flows interactivos de WhatsApp: experiencias guiadas con formularios, pantallas y CTAs nativas dentro del chat. Permite crear, editar, publicar, deprecar y enviar flows a contactos.

List WhatsApp Flows

Lista los flows interactivos del usuario con su estado (DRAFT, PUBLISHED, DEPRECATED).

Authorizations:
bearerAuth

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-flows \
  -H "Authorization: Bearer $TOKEN"

Create WhatsApp Flow

Crea un nuevo Flow en estado DRAFT. Después debes definir su estructura JSON con PUT /:flowId/json y publicarlo cuando esté listo.

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
categories
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "categories": [
    ]
}

Get Flow metadata

Devuelve metadatos del flow (nombre, categorías, estado), sin la definición JSON.

Authorizations:
bearerAuth
path Parameters
flowId
required
string

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-flows/$FLOW_ID \
  -H "Authorization: Bearer $TOKEN"

Update Flow metadata

Actualiza nombre, categorías u otros metadatos del flow.

Authorizations:
bearerAuth
path Parameters
flowId
required
string
Request Body schema: application/json
required
name
string
categories
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "categories": [
    ]
}

Delete Flow

Elimina un Flow. Solo se pueden eliminar flows en estado DRAFT o DEPRECATED. Los publicados deben deprecarse primero.

Authorizations:
bearerAuth
path Parameters
flowId
required
string

Responses

Request samples

curl -s -X DELETE https://api.liasystem.co/whatsapp-flows/$FLOW_ID \
  -H "Authorization: Bearer $TOKEN"

Get Flow JSON definition

Devuelve la definición completa de pantallas, componentes y lógica del flow en formato JSON.

Authorizations:
bearerAuth
path Parameters
flowId
required
string

Responses

Request samples

curl -s https://api.liasystem.co/whatsapp-flows/$FLOW_ID/json \
  -H "Authorization: Bearer $TOKEN"

Update Flow JSON definition

Reemplaza la definición JSON completa del flow con la nueva estructura.

Authorizations:
bearerAuth
path Parameters
flowId
required
string
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Publish Flow

Publica un Flow en estado DRAFT, dejándolo disponible para enviarse a contactos. Una vez publicado, su JSON no puede modificarse.

Authorizations:
bearerAuth
path Parameters
flowId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/whatsapp-flows/$FLOW_ID/publish \
  -H "Authorization: Bearer $TOKEN"

Deprecate Flow

Marca un Flow como deprecado. Sigue accesible para los contactos que lo recibieron, pero no se puede enviar a nuevos.

Authorizations:
bearerAuth
path Parameters
flowId
required
string

Responses

Request samples

curl -s -X POST https://api.liasystem.co/whatsapp-flows/$FLOW_ID/deprecate \
  -H "Authorization: Bearer $TOKEN"

Send Flow to a contact

Envía un Flow publicado a un contacto vía WhatsApp. El contacto recibirá un mensaje interactivo con el botón para abrir el Flow.

Authorizations:
bearerAuth
Request Body schema: application/json
required
flow_id
required
string
to
required
string
agent_id
required
string <uuid>
header
string
body
string
cta_label
string

Responses

Request samples

Content type
application/json
{
  • "flow_id": "string",
  • "to": "string",
  • "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",
  • "header": "string",
  • "body": "string",
  • "cta_label": "string"
}