Copilot

Variables y tools

Referencia completa de todo lo que el Copilot puede leer o cambiar, organizada por dominio.

Esta es la lista completa de cosas que el Copilot puede consultar o cambiar en tu cuenta. Útil para saber qué pedirle y qué esperar como respuesta.

Convenciones: 🔍 = solo lectura · ✏️ = el copilot lo puede modificar · 🤖 = helper de IA (devuelve análisis, no cambia datos)

1. Configuración del bot (nivel tenant)

Aplica a TODAS las conversaciones del tenant a menos que un departamento sobrescriba.

VariableValoresToolDescripción
bot_nametexto libreupdate_bot_configNombre con el que el bot se presenta al cliente.
tonecordial_profesional · casual_amigable · formal_corporativo · entusiasta_ventasupdate_bot_configEstilo conversacional.
sales_focusconsultive · balanced · aggressiveupdate_bot_configCuánto empuja el cierre de venta.
response_lengthshort · medium · detailedupdate_bot_configLongitud objetivo de cada respuesta.
languagecódigo ISO (es, en, es-CR…)update_bot_configIdioma por defecto.
use_emojistrue / falseupdate_bot_configPermitir emojis.
ai_enabledtrue / falseupdate_bot_configMaster switch. Si false, el bot NO responde a nadie.
enable_bot_responsestrue / falseupdate_bot_configRespuestas automáticas on/off.
enable_auto_routingtrue / falseupdate_bot_configEl bot puede enrutar a departamentos.
enable_knowledge_basetrue / falseupdate_bot_configConsultar la KB para responder.
enable_human_handofftrue / falseupdate_bot_configEl bot puede escalar a humano.
enable_department_transfertrue / falseupdate_bot_configTransferencia entre departamentos.
system_prompt_overridetexto libre (~400 palabras max)update_bot_config + improve_promptInstrucciones extra que se anexan al prompt del bot.

Read tool: get_bot_config 🔍 — devuelve el ai_config actual + estado de WhatsApp.

2. Cerebro IA por departamento

Cada departamento puede sobrescribir lo del tenant. Todos los mismos campos de la sección 1 son sobrescribibles a nivel de departamento.

VariableToolDescripción
ai_config.bot_nameupdate_department_brainOverride de nombre cuando la conv está en este depto.
ai_config.toneupdate_department_brainOverride de tono. Mismo enum que tenant.
ai_config.sales_focusupdate_department_brainOverride de foco de ventas.
ai_config.response_lengthupdate_department_brainOverride de longitud.
ai_config.languageupdate_department_brainOverride de idioma.
ai_config.use_emojisupdate_department_brainOverride de emojis.
ai_config.system_prompt_overrideupdate_department_brainInstrucciones adicionales a las del tenant.
Limpieza: pasa string vacío "" a update_department_brain para borrar un override y volver al valor del tenant.

Comandos rápidos por departamento

Pares trigger → respuesta que el bot pattern-matchea cuando llega un mensaje del cliente.

VariableToolDescripción
triggeradd_department_commandFrase/palabra clave (ej. "precio del plan").
responseadd_department_commandTexto base que el bot adapta cuando matchea.
is_active(toggle vía UI)Activar/desactivar sin borrar.

Read: list_department_commands. Delete: delete_department_command.

3. Equipo (departamentos y agentes)

Departamentos

VariableToolDescripción
namecreate_department · update_departmentNombre visible.
descriptionupdate_departmentTexto libre.
colorupdate_departmentColor hex (ej. #06b6d4).
iconupdate_departmentNombre de icono Lucide.
is_defaultupdate_departmentMarcar como depto por defecto (desactiva el flag en los demás).
is_activedelete_departmentSoft delete: false lo oculta sin perder historial.

Read tool: list_departments.

Agentes

AcciónToolDescripción
Crear / invitarinvite_agent(email, full_name)Genera link copiable (o adjunta membership si ya existe la cuenta).
Quitarremove_agent(email | user_id)Elimina la membership del tenant. La cuenta sobrevive en otros workspaces.

Read tool: list_agents.

4. Base de conocimiento

AcciónToolDescripción
Crear manualadd_knowledge_entry(title, content)Embebe automáticamente. Máx ~8000 chars.
Importar URLscrape_url_to_kb(url, title?)Descarga HTML público, extrae texto, source_type=url.
Eliminardelete_knowledge_entry(id)Borrado físico (entrada + embedding).

Read tool: list_knowledge_entries(limit?).

5. Plugins

AcciónToolDescripción
Activarenable_plugin(slug, config?)Instala y habilita. Valida campos requeridos del manifest.
Desactivardisable_plugin(slug)Apaga sin desinstalar. Config preservada.

Read tool: list_plugins_status — catálogo + estado de instalación/enabled.

El alcance por departamento de cada plugin se gestiona desde la UI en /admin/plugins/[slug]. Una tool dedicada para el copilot está en roadmap.

6. Mensajes automáticos

5 eventos, todos editables desde el copilot.

event_typeCuándo se dispara
welcome_new_leadPrimer contacto de un cliente nuevo.
welcome_returningCliente que ya escribió antes vuelve a hacerlo.
out_of_hoursMensaje fuera del horario del depto.
post_handoffConfirmación tras escalar a humano.
closingMensaje cuando un agente marca la conversación como cerrada.

Modifica con set_automatic_message(event_type, content, is_active?). Pasa content vacío para borrar.

Variables soportadas en el contenido: {customer_name}, {name_prefix}, {company}, {department}, {next_open}, {bot}.

7. Conversaciones, calificación de leads y helpers IA

Lectura

ToolDescripción
get_recent_conversations(limit?, status?)Filtros: open, assigned, bot, closed. Excluye conversaciones de prueba.
list_conversation_tags(conversation_id?)Sin conversation_id devuelve todos los tags del tenant.

Calificación de lead

VariableValoresTool
qualification.score0–100qualify_lead
qualification.stagenew · qualified · nurturing · converting · won · lostqualify_lead
qualification.budget<2k · 2k-10k · 10k+qualify_lead
qualification.timelinenow · 30d · 90d · laterqualify_lead
qualification.authoritydecision · influencer · researcherqualify_lead
qualification.notestexto librequalify_lead
Heurística de temperatura: score ≥70 = Hot, 40-69 = Warm, <40 = Cold.

Tags y snooze

AcciónTool
Agregar tag con color opcionaladd_conversation_tag(conversation_id, tag, color?)
Quitar tagremove_conversation_tag(conversation_id, tag)
Posponersnooze_conversation(conversation_id, minutes_from_now? | until_iso?, reason?)
Quitar snoozeunsnooze_conversation(conversation_id)

Helpers IA 🤖 (no modifican datos)

ToolDevuelve
summarize_conversation(conversation_id){ summary, key_points[] }
suggest_agent_reply(conversation_id){ suggestion, rationale }
detect_lead_intent(conversation_id){ intent, confidence, sentiment, next_best_action }
improve_prompt(draft, target, context?)Reescribe un draft de prompt. NO persiste — el copilot lo muestra y pregunta si guardar.

Intents posibles: buy_product, support_request, info_request, complaint, follow_up, spam, other.

8. Métricas (lectura)

get_metrics_summary 🔍 devuelve 7 días: conversations_7d, conversations_open_now, ai_requests_7d, tokens_total_7d, errors_7d, avg_latency_ms. Excluye conversaciones de prueba.

9. Modo prueba y Laboratorio

Variable / AcciónToolDescripción
tenants.test_mode_enabledset_test_mode(enabled)Activa el toggle global. Habilita la pestaña Laboratorio.
Simular mensajesimulate_customer_message(message, department_id?)Manda un mensaje "como cliente" al lab y devuelve la respuesta del bot. No toca WhatsApp.

9b. Configuración avanzada

Áreas que antes sólo se gestionaban por UI y ahora también puede manejar el copilot:

DominioToolsDescripción
Horarios de departamentoget_department_schedule · set_department_schedule0=Domingo a 6=Sábado, formato HH:MM. set_ reemplaza la semana completa.
Miembros de departamentolist_department_members · add_department_member · remove_department_memberAsignar agentes (por email o user_id). Rol: leader o member.
Permisos del departamentoset_department_permissionsReemplaza el set. 7 permisos disponibles (view/respond/transfer convs, view/edit KB, view reports, manage members).
Alcance de plugin por dept.set_plugin_department_scopeRestringe un plugin a deptos. Lista vacía = global.
Editar entrada del KBupdate_knowledge_entryCambia título y/o contenido. Re-embedding automático si cambias content.
El copilot puede correr un setup masivo (config + departamentos + cerebros + comandos + horarios + miembros + KB + auto-msgs) en un solo prompt. Con MAX_ITERATIONS=15 en el chat endpoint, caben ~50-100 ops por turn, suficiente para un tenant completo.

10. Onboarding

complete_onboarding ✏️ marca el tenant como onboarding_completed_at = NOW() y onboarding_step = 'done'. La UI redirige a /admin cuando el copilot llama esta tool en modo onboarding.

Tabla resumen

CategoríaToolsVariables modificables
Configuración del bot2 (R+W)13
Cerebro IA por depto67 + comandos
Departamentos46
Agentes3invite/remove
Base de conocimiento4título, contenido, fuente
Plugins3enable/disable
Mensajes automáticos25 eventos × 2 campos
Conversaciones5 reads + 6 writestags, snooze, qualification
Helpers IA4(output only)
Métricas1(output only)
Lab2test_mode + simulate
Onboarding1complete
Bulk avanzado8horarios, miembros, permisos, scope plugin, KB edit
Total46 tools

Cómo le pides al copilot

Frases que funcionan bien:

  • "Calificame este lead: hot, etapa convirtiendo, presupuesto 10k+"
  • "Crea un depto de Onboarding con color cyan"
  • "Carga https://mi-empresa.com al KB y luego ponlo solo para el depto de Ventas"
  • "Cambia el tono del bot a casual_amigable y mejora el prompt actual"
  • "Resúmeme la conversación 64418e23..."
  • "Sugiere respuesta para la conversación que tengo abierta"
  • "Activa modo prueba y simula 'cuánto cuesta'"

Cuando te quedes sin idea, dile "qué puedes hacer" al copilot — usa este mismo documento como contexto y te lista lo que aplica a tu caso.