Documentation Index
Fetch the complete documentation index at: https://docs.plazbot.com/llms.txt
Use this file to discover all available pages before exploring further.
El modulo de Consultas te permite ejecutar consultas SQL directamente sobre los datos sincronizados de tu workspace. Es una herramienta para analizar contactos, mensajes, oportunidades, campanas y mas, sin necesidad de herramientas externas.
Solo se permiten consultas de tipo SELECT. No es posible modificar, insertar o eliminar datos desde este modulo.
Interfaz del Editor
El modulo cuenta con las siguientes secciones:
- Sidebar izquierdo: Lista de tablas disponibles y consultas guardadas
- Editor SQL: Editor de codigo con resaltado de sintaxis SQL
- Panel de resultados: Tabla con los resultados de la consulta
- Barra de acciones: Botones para sincronizar datos, ejecutar y exportar
Atajos de teclado
| Atajo | Accion |
|---|
Cmd + Enter (Mac) | Ejecutar consulta |
Ctrl + Enter (Windows) | Ejecutar consulta |
Tabs multiples
Puedes abrir multiples consultas en tabs separados. Haz doble clic en el nombre del tab para renombrarlo.
Consultas guardadas
Presiona el boton de guardar para almacenar una consulta. Las consultas guardadas aparecen en el sidebar izquierdo y se pueden cargar haciendo clic sobre ellas.
Sincronizacion de datos
Los datos se sincronizan desde la base de datos principal de Plazbot hacia una base de datos analitica. Para actualizar los datos:
- Haz clic en Sincronizar datos en la barra superior
- Espera a que el proceso termine (se muestra el progreso en tiempo real)
- Una vez completado, los datos estaran actualizados
Los mensajes se sincronizan de los ultimos 30 dias. Los contactos, oportunidades y demas datos se sincronizan completamente.
Tablas disponibles
El modulo expone 6 tablas para consultas:
| Tabla | Descripcion |
|---|
contacts | Contactos del workspace |
messages | Mensajes de conversaciones |
conversations | Envios de mensajes (campanas, individuales, API) |
opportunities | Oportunidades de negocio |
users | Usuarios/agentes del workspace |
campaigns | Campanas de envio masivo |
Contiene todos los contactos del workspace.
| Campo | Tipo | Descripcion |
|---|
id | text | ID unico del contacto |
name | text | Nombre |
lastname | text | Apellido |
fullname | text | Nombre completo |
alias | text | Alias del contacto |
email | text | Correo electronico |
phone | text | Telefono principal |
phone2 | text | Telefono secundario |
phone3 | text | Tercer telefono |
platform_id | integer | Plataforma de origen (ver valores abajo) |
platform_sender_id | text | ID del contacto en la plataforma externa |
assigned_agent_id | text | ID del agente asignado |
assigned_agent_name | text | Nombre del agente asignado |
assigned_agent_date | timestamp | Fecha de asignacion del agente |
stage_id | text | ID de la fase/etapa |
stage_name | text | Nombre de la fase |
segmentation_id | text | ID de la segmentacion |
segmentation_name | text | Nombre de la segmentacion |
is_solved | boolean | Si esta resuelto |
solved_by_agent_id | text | ID del agente que resolvio |
solved_by_agent_name | text | Nombre del agente que resolvio |
solved_date | timestamp | Fecha de resolucion |
is_read | boolean | Si fue leido |
is_archived | boolean | Si esta archivado |
is_bot_enabled | boolean | Si el bot esta habilitado |
is_blocked | boolean | Si esta bloqueado |
is_show_in_chat | boolean | Si se muestra en el chat |
is_manually_added | boolean | Si fue agregado manualmente |
tags | jsonb | Etiquetas asignadas |
variables | jsonb | Variables del contacto |
last_message | text | Contenido del ultimo mensaje |
last_message_date | timestamp | Fecha del ultimo mensaje |
first_message | text | Contenido del primer mensaje |
first_message_date | timestamp | Fecha del primer mensaje |
first_agent_message_date | timestamp | Fecha del primer mensaje de un agente |
document_number | text | Numero de documento (DNI, RUC, etc.) |
business_name | text | Nombre de empresa |
creation_date | timestamp | Fecha de creacion |
reject_reason_content | text | Motivo de rechazo |
reject_reason_date | timestamp | Fecha de rechazo |
color | text | Color asignado al contacto |
sentiment | text | Sentimiento detectado |
Valores de platform_id:
| Valor | Plataforma |
|---|
| 1 | Webchat |
| 2 | WhatsApp |
| 3 | Facebook |
| 4 | Instagram |
| 5 | Telegram |
| 6 | Portal |
| 7 | Code |
| 8 | Calls |
| 9 | Facebook Leads |
| 10 | Tickos |
Tabla: messages
Contiene todos los mensajes de las conversaciones.
| Campo | Tipo | Descripcion |
|---|
id | text | ID unico del mensaje |
contact_id | text | ID del contacto asociado |
content | text | Contenido del mensaje |
type | text | Tipo de contenido (TEXT, IMAGE, AUDIO, VIDEO, DOCUMENT, etc.) |
origin_message | text | Origen del mensaje (ver valores abajo) |
answer_type | integer | Quien respondio (ver valores abajo) |
answer_type_text | text | Texto descriptivo de answer_type |
answer_agent_id | text | ID del agente que respondio |
answer_agent_name | text | Nombre del agente que respondio |
platform_id | text | Plataforma |
sentiment | text | Sentimiento detectado |
template_code | text | Codigo del template usado |
campaign_name | text | Nombre de la campana asociada |
campaign_id | text | ID de la campana asociada |
f_type | integer | Tipo de mensaje (ver valores abajo) |
is_note | boolean | Si es nota interna |
message_status_id | integer | Estado del mensaje |
message_whatsapp_id | text | ID del mensaje en WhatsApp |
content_url | text | URL del archivo adjunto |
content_type | text | MIME type del contenido |
content_filename | text | Nombre del archivo adjunto |
sent_message_error | text | Error al enviar |
sent_message_error_code | text | Codigo de error al enviar |
ia_provider | text | Proveedor de IA (openai, claude, gemini) |
ia_model | text | Modelo de IA usado |
ia_input_tokens | integer | Tokens de entrada consumidos |
ia_output_tokens | integer | Tokens de salida generados |
ia_estimated_cost_usd | decimal | Costo estimado en USD |
ia_iterations | integer | Iteraciones del agentic loop |
ia_tool_calls_count | integer | Cantidad de llamadas a herramientas |
ia_latency_ms | bigint | Latencia en milisegundos |
ia_agent_id | text | ID del agente IA |
ia_agent_name | text | Nombre del agente IA |
ia_feedback_rating | integer | Rating: 1 = positivo, -1 = negativo |
ia_tools_executed | jsonb | Herramientas ejecutadas por IA |
automation_info | jsonb | Informacion de la automatizacion |
context_message_id | text | ID del mensaje al que se responde (reply) |
context_message_content | text | Contenido del mensaje al que se responde |
reference1 | text | Referencia 1 (webhooks) |
reference2 | text | Referencia 2 (webhooks) |
reference3 | text | Referencia 3 (webhooks) |
creation_date | timestamp | Fecha de creacion |
Valores de f_type (tipo de mensaje):
| Valor | Significado |
|---|
| 1 | Bot (mensaje del flujo/automatizacion) |
| 2 | Contact (mensaje del contacto) |
| 3 | InternalNote (nota interna) |
| 4 | ChatEvent (evento de chat) |
| 5 | CallResumen (resumen de llamada) |
Valores de answer_type (quien respondio):
| Valor | Significado |
|---|
| 1 | FLOW (respondio la automatizacion) |
| 2 | AGENT (respondio un agente humano) |
| 3 | AGENT_IA (respondio un agente IA) |
Valores de origin_message:
| Valor | Significado |
|---|
me | Enviado por el negocio |
contact | Enviado por el cliente |
automation | Enviado por automatizacion |
agent | Enviado por un agente |
Tabla: conversations
Registra los envios de mensajes (campanas, individuales y via API).
| Campo | Tipo | Descripcion |
|---|
id | text | ID unico |
contact_id | text | ID del contacto destinatario |
template_code | text | Codigo del template de WhatsApp |
template_type | text | Tipo de template |
send_type | integer | Tipo de envio (ver valores abajo) |
send_type_text | text | Texto descriptivo de send_type |
response_status | integer | Estado de respuesta (ver valores abajo) |
response_status_text | text | Texto descriptivo de response_status |
campaign_name | text | Nombre de la campana |
campaign_id | text | ID de la campana |
agent_sender_id | text | ID del agente que envio |
agent_sender_name | text | Nombre del agente que envio |
platform_id | text | Plataforma de envio |
platform_sender_id | text | ID del sender en la plataforma |
internal_whatsapp_number | text | Numero de WhatsApp del negocio |
is_scheduled | boolean | Si fue un envio programado |
scheduled_at | timestamp | Fecha programada de envio |
request_body | text | Body de la solicitud a la API |
response_body | text | Body de respuesta de la API |
response_status_body | text | Status body de respuesta |
sent_date | timestamp | Fecha de envio |
creation_date | timestamp | Fecha de creacion |
Valores de send_type:
| Valor | Significado |
|---|
| 1 | CAMPAIGN (envio de campana) |
| 2 | INDIVIDUAL (envio individual) |
| 3 | API (envio via API) |
Valores de response_status:
| Valor | Significado |
|---|
| 1 | ACCEPTED (aceptado por WhatsApp) |
| 2 | ERROR (error en el envio) |
| 3 | PENDING (pendiente) |
Tabla: opportunities
Contiene las oportunidades de negocio del pipeline.
| Campo | Tipo | Descripcion |
|---|
id | text | ID unica |
contact_id | text | ID del contacto asociado |
name | text | Nombre de la oportunidad |
opport_code | text | Codigo de la oportunidad |
amount | decimal | Monto inicial |
final_amount | decimal | Monto final |
currency_code | text | Codigo de moneda (USD, PEN, etc.) |
currency_symbol | text | Simbolo de moneda ($, S/, etc.) |
stage_id | text | ID de la etapa en el pipeline |
stage_name | text | Nombre de la etapa |
pipeline_id | text | ID del pipeline |
pipeline_name | text | Nombre del pipeline |
assigned_agent_id | text | ID del agente asignado |
assigned_agent_name | text | Nombre del agente asignado |
status | integer | Estado (ver valores abajo) |
close_date | timestamp | Fecha de cierre |
creation_date | timestamp | Fecha de creacion |
activities | jsonb | Actividades asociadas |
Valores de status:
| Valor | Significado |
|---|
| 0 | Sin definir |
| 1 | Ganada |
| 2 | Perdida |
Tabla: users
Contiene los usuarios y agentes del workspace.
| Campo | Tipo | Descripcion |
|---|
id | text | ID del usuario |
name | text | Nombre |
last_name | text | Apellido |
email | text | Correo electronico |
role | text | Rol: owner, supervisor, agent |
is_online | boolean | Si esta en linea |
status | text | Estado: active, deactivated |
timezone | text | Zona horaria |
Tabla: campaigns
Contiene las campanas de envio masivo.
| Campo | Tipo | Descripcion |
|---|
id | text | ID de la campana |
name | text | Nombre |
status_id | integer | Estado (ver valores abajo) |
status_text | text | Texto descriptivo del estado |
total_records | integer | Total de contactos |
total_send | integer | Total de mensajes enviados |
total_errors | integer | Total de errores |
success_rate | decimal | Tasa de exito (%) |
is_direct_send | boolean | Si es envio directo (sin programar) |
scheduled_send_date | timestamp | Fecha programada de envio |
agent_sender_name | text | Nombre del agente que envio |
user_creation | text | Usuario que creo la campana |
show_messages_in_chat | boolean | Si los mensajes se muestran en chat |
ia_agent_start_enabled | boolean | Si el agente IA se activa al responder |
random_agent_enabled | boolean | Si se asigna agente aleatorio |
cancellation_date | timestamp | Fecha de cancelacion |
error_summary | text | Resumen de errores |
templates | jsonb | Templates usados |
tags | jsonb | Etiquetas asignadas a contactos |
filters | jsonb | Filtros aplicados para seleccionar contactos |
creation_date | timestamp | Fecha de creacion |
last_updated_date | timestamp | Ultima actualizacion |
Valores de status_id:
| Valor | Significado |
|---|
| 1 | PENDING (pendiente) |
| 2 | SCHEDULED (agendada) |
| 3 | SENDING (enviando) |
| 4 | COMPLETE (completada) |
| 5 | ERROR (error) |
| 6 | CANCELED (cancelada) |
Ejemplos de consultas
SELECT fullname, email, phone, creation_date
FROM contacts
WHERE creation_date >= '2025-01-01'
AND creation_date < '2025-02-01'
ORDER BY creation_date DESC
LIMIT 100;
SELECT *
FROM contacts
WHERE fullname ILIKE '%nombre%'
LIMIT 50;
SELECT m.content, m.creation_date, m.f_type
FROM messages m
JOIN contacts c ON c.id = m.contact_id
WHERE c.fullname ILIKE '%nombre%'
ORDER BY m.creation_date DESC
LIMIT 100;
Campanas en envio
SELECT name, status_text, total_records, total_send,
total_errors, success_rate
FROM campaigns
WHERE status_text = 'SENDING'
ORDER BY creation_date DESC;
Oportunidades por pipeline
SELECT name, amount, final_amount, pipeline_name,
stage_name, assigned_agent_name, status
FROM opportunities
ORDER BY creation_date DESC
LIMIT 100;
SELECT fullname, email, tags
FROM contacts
WHERE tags::text ILIKE '%nombre_tag%'
LIMIT 100;
SELECT fullname, email, creation_date
FROM contacts
WHERE assigned_agent_name IS NULL
ORDER BY creation_date DESC
LIMIT 100;
Mensajes respondidos por agente IA
SELECT m.content, m.ia_agent_name, m.ia_model,
m.ia_estimated_cost_usd, m.creation_date
FROM messages m
WHERE m.ia_agent_name IS NOT NULL
ORDER BY m.creation_date DESC
LIMIT 100;
SELECT c.fullname, c.email, o.name AS oportunidad,
o.amount, o.stage_name, o.pipeline_name
FROM contacts c
JOIN opportunities o ON o.contact_id = c.id
ORDER BY o.creation_date DESC
LIMIT 100;
Conversaciones de una campana
SELECT campaign_name, agent_sender_name,
response_status_text, sent_date
FROM conversations
WHERE campaign_name IS NOT NULL
ORDER BY sent_date DESC
LIMIT 100;
Costo total de IA por agente
SELECT ia_agent_name,
COUNT(*) AS total_mensajes,
SUM(ia_estimated_cost_usd) AS costo_total_usd,
AVG(ia_latency_ms) AS latencia_promedio_ms
FROM messages
WHERE ia_agent_name IS NOT NULL
GROUP BY ia_agent_name
ORDER BY costo_total_usd DESC;
Exportacion de resultados
Los resultados pueden exportarse en multiples formatos desde el boton Export:
| Formato | Descripcion |
|---|
| Copy as Markdown | Copia la tabla en formato Markdown al portapapeles |
| Copy as JSON | Copia los datos como JSON al portapapeles |
| Copy as CSV | Copia los datos como CSV al portapapeles |
| Download CSV | Descarga un archivo .csv |
| Download .sql | Descarga la consulta como archivo .sql |