Límites de la IA
Qué responde el bot según el tipo de mensaje (texto, imagen, link…) se configura en las instrucciones y funciones de cada agente. Acá solo quedan los límites que frenan a la IA.
Límites de la IA (base de conocimiento)
Si la Biblioteca o la base de un agente contienen reglas como «no respondas ningún mensaje después de las 19:00», la inteligencia no responde mientras esa regla esté vigente. No alcanzan al chat de comandos: ahí responde siempre la IA interna.
La IA ahora
—
Alcance del límite
Aplicar límites
Registros
Comandos: cada ejecución —base o personalizada— con quién la usó, qué pedido dejó y cómo salió; desde acá se aprueban o rechazan los envíos, se editan antes de autorizarlos, se ven los comprobantes y se reenvía la operación. Comprobantes: los pedidos de comandos personalizados, con su estado (recibido o pendiente), los datos de la operación y la imagen reenviada.
Registros de Comandos
Cada comando ejecutado deja su registro: quién lo usó, desde dónde y si salió bien. Con los envíos controlados activos, los mensajes hacia el receptor quedan Pendientes acá hasta que los apruebes o rechaces. Se actualiza solo.
| Comando | Origen | Remitente | Estado | Fecha | Acciones |
|---|
Comandos Personalizados
Creá comandos como /transf a medida: reciben variables ($1…$9, $origen) y envían mensajes separados o juntos.
Los disparadores se mudaron
Las reacciones que ejecutan comandos y el disparador por emoji de cada comando viven ahora en la pestaña Disparadores, todos en un solo lugar. Acá se edita el comando como siempre.
Disparadores
Todo lo que hace que el bot actúe sin que alguien escriba el comando. Son las mismas reglas de siempre, ahora en un solo lugar: reacciones que ejecutan comandos y el emoji disparador de cada comando. El emoji de un disparador queda puesto en el mensaje como marca de lo que ya se usó; los atajos de omitir, cancelar y comprobante sí se quitan para poder repetirlos.
Omitir y cancelar la carga 1×1 (globales)
Mientras un comando pide las variables una por una, reaccioná su mensaje de progreso: con el emoji de omitir se saltea la variable opcional que se está pidiendo (igual que escribir «omitir») y con el de cancelar la carga se cancela y el progreso se borra del chat (igual que «cancelar»). Valen para todos los comandos y solo para operadores; las reacciones del cliente se ignoran. Vacío = ese atajo no existe y queda el texto.
Con una variable obligatoria no hace nada: solo se saltean las opcionales.
Cancela lo que se estaba cargando: no se envía nada al receptor.
Reacciones que ejecutan comandos
Reaccioná un mensaje con el emoji y el bot ejecuta el comando con ese mensaje: 🔍 /leer lee la foto reaccionada y un comando personalizado recibe el mensaje reaccionado como primera variable (su texto, el pie del adjunto o la ubicación) y se envía a su receptor. Una regla por línea: emoji y comando (base, alias o personalizado; con sus datos si los lleva, ej. 📊 /help). Vale para operadores: las reacciones del cliente se ignoran. Si un comando ya usa ese emoji para reenviar, la regla de acá tiene prioridad.
Vacío = ninguna reacción ejecuta comandos (siguen valiendo los emoji disparadores de la tabla de abajo). El mensaje reaccionado completa siempre la primera variable (su texto, el pie del adjunto o la ubicación); si el comando tiene «pide las variables una por una», el bot pregunta en el chat solo por las que faltan y lo aportado queda cargado en el progreso. No se toma como dato el propio comando (reaccionar «/factura») ni un contenido que no valide para la variable. El comando queda en Registros con quien reaccionó y respeta el acceso por función y los envíos controlados.
Disparadores de cada comando
Emoji: si un operador reacciona un mensaje con ese emoji, el bot reenvía ese mensaje (copiado y editable) al receptor del comando; no lo ejecuta. Para ejecutar el comando con la reacción, usá la tabla de arriba. Si el comando ya usa el mismo emoji que una regla de arriba, gana la regla de arriba.
| Comando | Emoji | Guardar |
|---|---|---|
| Cargando disparadores... | ||
Un emoji hace una sola cosa por comando. Para crear un comando nuevo, o cambiar sus variables y mensajes, andá a . Los atajos de la carga 1x1 (omitir y cancelar) son globales —arriba, en esta misma pestaña— y cada comando puede sumar el suyo en su editor; las reacciones de comprobante siguen en el editor del comando.
Nuevo Comando
Se usará como /remesa en el chat.
Es el «⏳ Su pedido está en proceso…» de la carga una-por-una: se ve mientras se piden los datos y queda en el chat al terminar; al aprobarlo en Registros pasa al mensaje de la carga «enviada» de abajo (o a «✅ Su pedido fue enviado.»). Vacío = el texto de siempre. Usa todas las variables del comando: , más $distancia, $costo y $ubicacion (estos se calculan al final; mientras se carga se muestra el texto de siempre). El «⏳» se agrega solo si falta.
Es el «✅ Su pedido fue enviado.» que reemplaza al mensaje «en proceso» cuando aprobás el envío en Registros (el mismo mensaje, editado; si la edición ya no entra, sale aparte). Vacío = el texto de siempre. Usa las mismas variables del comando: , más $distancia, $costo y $ubicacion (se calculan al ejecutar el comando). El «✅» se agrega solo si falta.
Cobro con interés (opcional)
Recargo único sobre el monto de la operación: 5 % de 1 000 da 50. El monto es el de la primera variable numérica (Monto, Número, Decimal o Cálculo). Se guarda con cada pedido —el % y el importe que dio— y se ve en Registros: si después cambiás el %, las operaciones viejas conservan el suyo. Vacío o 0 = sin interés.
Cómo se escriben
Una por línea ($1, $2…), siempre debajo del comando: la 1ª línea es el comando. Los espacios de cada línea se conservan sin comillas. También en una sola línea separadas por |: /cmd|valor 1|valor 2. Un tramo vacío vale como variable vacía y sirve para omitir una opcional sin correr las demás: /cmd|valor 1||valor 3 omite la 2ª. Al final se descarta un solo |, el del cierre: /cmd|valor 1|valor 2| son dos valores, /cmd|valor 1|valor 2|| omite además la opcional que sigue y ||| omite dos. Una variable obligatoria no se puede omitir: el tramo vacío se rechaza con el aviso de siempre.
Texto fijo
Pegá texto al valor con $monto CUP o Monto | CUP (nombres con espacios). Viaja en los mensajes, en el pie del comprobante y como {moneda}, sin que nadie lo escriba en el chat.
Tipo de dato
Valida lo que llega. Los numéricos (Número, Monto, Decimal, Cálculo) aceptan una operación simple: 345x23, 45/478.
Ubicación
Link de mapas (Google, Waze, Apple, OpenStreetMap), coordenadas lat,lng o la ubicación compartida de WhatsApp.
Adjuntos
Imagen, Audio, Video, Documento y Sticker se llenan mandando el archivo en el chat: el audio se transcribe solo, del resto queda su pie o nombre.
Leer de una imagen
Con el interruptor imagen cualquier variable de texto acepta una foto: describí qué buscar (ej. «Buscar id de 16 dígitos») y la IA lo extrae del mensaje o de la última leída con /leer.
Distancia y costo (tokens calculados)
En los mensajes tenés $distancia, $costo y $ubicacion (el destino: la única ubicación, o la segunda si hay dos). Se miden desde el desde del documento de tasas, o entre las dos primeras ubicaciones del comando. Con el interruptor costo calculado elegís qué documento de la Biblioteca cotiza (vacío = el de tasas automático); sin él, esa ubicación viaja igual pero no mide ni cotiza. $ubicacion sale como link del mapa.
Clave del comprobante
Marcá comprobante en la variable que identifica el pedido: si un operador responde con una imagen a un mensaje que traiga ese valor, el comprobante se reenvía solo al chat donde se escribió el comando.
Variables
Usá $1…$9 con el valor que llegó en ese orden.
$origen
El número del chat privado o el link del grupo (https://chat.whatsapp.com/…). Si declarás una variable Origen (o $origen), manda su valor; si no, sale del chat donde se escribe el comando. También tenés $chat (el JID tal cual) y $numero (solo dígitos, vacío en grupos).
Calculados por ubicación
Con una variable de tipo Ubicación tenés $distancia, $costo y $ubicacion (también $localizacion): el destino usado, como link del mapa.
Biblioteca
El botón pega una copia del texto de un documento como un mensaje más: el texto queda en el comando y sus $1…$9 usan las variables del comando.
Modo de envío
En separado cada bloque es un mensaje distinto; en junto se unen con saltos de línea.
Reacción
Vacío = no reacciona. Solo funciona en grupos.
Solo avisa la reacción de un cliente con ese emoji, en un mensaje enviado por este comando. El aviso sale al chat de reacciones configurado en Asistencia humana; sin emoji no avisa nada.
Se suma al atajo global de la pestaña : el global vale para todos los comandos y este solo para este. Vacío = solo el global.
Se suma al atajo global de la pestaña : el global vale para todos los comandos y este solo para este. Vacío = solo el global.
Qué dispara
Si un operador marca un mensaje con este emoji, se reenvía al receptor del comando con su reacción. Vacío = no dispara.
Solo personas
Vale la reacción de un operador; lo que reacciona el propio bot nunca dispara.
Comprobante del comando
Qué se reenvía
Cuando un operador responde con una imagen a un mensaje que traiga una variable marcada como comprobante, el bot la manda a este chat.
Solo este comando
Estos ajustes no tocan los de los demás comandos.
Si un operador marca con este emoji un mensaje que envió el comando, el comprobante del pedido le llega por WhatsApp y se avisa al dueño. Vacío = sin reenvío.
Vacío = de cualquier chat.
Llamadas
Registro automático de llamadas (poll cada 20s). Activá la auto-respuesta para avisar al cliente cuando pierda una llamada.
Total
0
Perdidas
0
Conectadas
0
Auto-respondidas
0
Conversación
0m
Respuesta automática a llamadas
Envía un mensaje al contacto según el alcance elegido. Usá {name} para el nombre del contacto.
Con alcance amplio conviene un mensaje neutro: se enviaría también después de llamadas normales.
Llamadas más viejas no reciben mensaje (protege tu historial). 0 = sin límite.
Mensaje general para todos los tipos (si el tipo no tiene plantilla propia abajo). Ejemplo: “Hola {name}, perdimos tu llamada, en un rato te contactamos.”
Plantilla por tipo de llamada (opcional: una distinta para cada caso)
Se guardan automáticamente al escribir (400 ms).
| Contacto | Dirección | Resultado | Duración | Fecha | Acciones |
|---|---|---|---|---|---|
| Cargando llamadas... | |||||
Sesión de WhatsApp
Empareja o desvincula la cuenta de WhatsApp que usa wacli, sin salir de acá.
Dónde lo escaneás
WhatsApp → Dispositivos vinculados → Vincular dispositivo.
Sin cortar el servicio
La sesión actual se mantiene hasta que completes el nuevo emparejamiento o cierres sesión.
Generando QR...
Código de emparejamiento
----
En el celular: WhatsApp → Dispositivos vinculados → Vincular dispositivo → Vincular con el número de teléfono
Copia de la configuración
Exportá la configuración como archivo JSON con las secciones que elijas, o importalo en otra instalación. La importación fusiona: crea lo que falta y actualiza lo existente, sin borrar nada.
Secciones a exportar / importar
Solo lo marcado
Se aplican únicamente las secciones que marques y que traiga el archivo.
Cómo se identifica cada cosa
Agentes, comandos y aliases por nombre; las reglas de acceso por número o grupo.
Mantenimiento
Qué ocupa disco y qué se puede liberar. Se poda lo que ya no se consulta (deduplicación, registros viejos, archivos que nadie referencia, temporales); los pedidos, los comprobantes referenciados, los comandos, las reglas, los agentes y la biblioteca no se tocan.
Base de datos
—
—
Comprobantes
—
—
Temporales
—
—
Mensajes ya procesados que se recuerdan para no repetir un comando. 30 días sobra: los reenvíos viejos igual se filtran por antigüedad.
Se aplica solo cuando podás registros a mano (comandos, llamadas y auditoría de ingestas). La limpieza automática no los toca.
Los comprobantes huérfanos, las descargas a medias y los temporales de la transcripción se borran recién después de este tiempo: una descarga en curso todavía no está en la base.
Corre al arrancar (un minuto después) y cada 24 horas: deduplicación, archivos que nadie referencia, temporales y compactación. Nunca borra registros ni datos cargados.
—
Qué limpiar ahora
Actualización del código
Trae los cambios de GitHub sin entrar al servidor. Después de actualizar hay que reiniciar para que el código nuevo corra.
Todavía no se consultó: tocá «Buscar actualizaciones».
Dinero recibido
Suma el dinero de un chat en un periodo leyendo las huellas de sus mensajes. La huella es un marcador con monto y moneda entre guiones —-100srd50usd3eur-— y puede venir en el comentario de un comando o en cualquier otro mensaje del chat: se revisan todos y se totaliza por moneda. Los delimitadores son configurables (abajo): además de -...- se pueden sumar otros, por ejemplo |...| para |89srd|45usd| o #...#, y se totaliza todo junto. Los montos admiten decimales con coma —-12,505usd- son 12,505— y miles con punto —-1.500srd- son 1.500—. Para descontar una devolución o un ajuste la huella lleva un guion extra delante del monto —--30srd-, o |-30usd| con otro delimitador— y resta del total, del día y del promedio; la gráfica la baja por debajo de la línea del cero. Solo cuentan los mensajes del bot y de los números autorizados (dueño y lista blanca de Accesos): lo que escriba un cliente no suma.
Uno por espacio o coma. ... es donde va el monto con moneda: -...- encuentra -100srd50usd3eur- y -20usd-; |...| encuentra |89srd|45usd|. Los delimitadores no pueden ser letras ni números (máx. 8 formatos).
El botón Enviar resumen del resultado manda los totales, el promedio diario y el mejor día a este chat (y el peor día si hubo devoluciones). Se recuerda al enviarlo.
Cobros
Revisa los pedidos del chat de administración y marca los que no cierran. Cada pedido es un bloque: la factura (CUP, USD o EUR) y el sello del cobro —*-500srd-*, *-🛵 Delivery 1250srd-*— cerrado por la línea de guiones. Una factura en CUP se contrasta con las tasas del día (efectivo y transferencia): si el SRD no da con ninguna, se marca con lo que debería haber sido y la diferencia. Una factura en USD se cobra en dólares (la factura más el recargo) o en SRD (la factura a la tasa USD→SRD, sin sumarle el recargo: el margen ya va en la tasa); un cobro mezclado se mide contra la factura más el recargo. También se avisa del sello faltante, del cobro sin factura y del posible duplicado.
Un euro vale 1,05 dólares. Se usa cuando el pago viene en euros.
A cuántos SRD la empresa compra un dólar.
Venta del mostrador: el SRD de un pago mezclado se valúa a esta tasa (÷ 39,5).
Tasa USD → SRD y recargo de cada servicio: salen de Tasas de cambio. El boletín los publica (la comisión «110 USD - 100 USD» de cada modalidad) y, si hay que corregirlos, se cargan a mano ahí con Tipo: Recargo (%). Acá sólo se muestran.
Para cargar o corregir una tasa o un recargo: Tasas de cambio › Cargar a mano.
Manda un solo mensaje con los pedidos del día que quedaron fuera de rango (no los avisos) y no repite ninguno: cada cobro se avisa una vez. Necesita las salidas del bot encendidas, en Registros.
Tasas de cambio
Las tasas que usa la revisión de Cobros. Se cargan solas desde el boletín del grupo o a mano cuando el operador corrige una. Cada fila guarda el par en la dirección del boletín (base → quote) con su modalidad, y las comisiones van como una fila de la misma moneda (USD → USD): la revisión toma la más reciente de cada par y modalidad.
Vacío = el chat de la rutina de ingesta encendida.
Cargar a mano
La nueva fila queda como la más reciente de ese par y modalidad: la revisión la usa antes que la del boletín del mismo día. Con Tipo: Recargo (%) se carga la comisión de una modalidad (el «10 %» que el boletín publica como «110 USD - 100 USD»), y es la que se suma a una factura en dólares. Podés borrar cualquier fila de la tabla.
Comandos Disponibles
Comandos que el bot acepta por WhatsApp. Escribí /help en un chat para recibirlos por mensaje.
Aliases de Comandos
Nombres cortos que ejecutan un comando real. También se crean por WhatsApp con /alias crear <nombre> <comando>.