refactor: Migrate bot core and modules from talia_bot to bot directory, update start_bot.sh and Dockerfile, and modify README.md.

This commit is contained in:
Marco Gallegos
2025-12-21 18:00:31 -06:00
parent 6e1a2f0102
commit 13141d6ed3
38 changed files with 112 additions and 86 deletions

View File

@@ -0,0 +1,25 @@
{
"id": "admin_block_agenda",
"role": "admin",
"trigger_button": "🛑 Bloquear Agenda",
"steps": [
{
"step_id": 0,
"variable": "BLOCK_DATE",
"question": "Necesito bloquear la agenda. ¿Para cuándo?",
"options": ["Hoy", "Mañana"]
},
{
"step_id": 1,
"variable": "BLOCK_TIME",
"question": "Dame el horario exacto que necesitas bloquear (ej. 'de 2pm a 4pm').",
"input_type": "text"
},
{
"step_id": 2,
"variable": "BLOCK_TITLE",
"question": "Finalmente, dame una breve descripción o motivo del bloqueo.",
"input_type": "text"
}
]
}

View File

@@ -0,0 +1,19 @@
{
"id": "admin_check_agenda",
"role": "admin",
"trigger_button": "📅 Revisar Agenda",
"steps": [
{
"step_id": 0,
"variable": "AGENDA_TIMEFRAME",
"question": "Consultando el oráculo del tiempo... ⏳",
"options": ["📅 Hoy", "🔮 Mañana"]
},
{
"step_id": 1,
"variable": "AGENDA_ACTION",
"question": "Aquí tienes tu realidad: {CALENDAR_DATA}",
"options": ["✅ Todo bien", "🛑 Bloquear Espacio"]
}
]
}

View File

@@ -0,0 +1,31 @@
{
"id": "admin_create_nfc_tag",
"role": "admin",
"trigger_button": "start_create_tag",
"steps": [
{
"step_id": 0,
"variable": "EMPLOYEE_NAME",
"question": "Vamos a crear un nuevo tag de empleado. Por favor, dime el nombre completo:",
"input_type": "text"
},
{
"step_id": 1,
"variable": "EMPLOYEE_ID",
"question": "Gracias. Ahora, por favor, dime el número de empleado:",
"input_type": "text"
},
{
"step_id": 2,
"variable": "BRANCH",
"question": "Entendido. Ahora, por favor, selecciona la sucursal:",
"options": ["🏢 Oficina", "📢 Aura Mkt", "💅 Vanity"]
},
{
"step_id": 3,
"variable": "TELEGRAM_ID",
"question": "Perfecto. Finalmente, por favor, dime el ID numérico de Telegram del empleado:",
"input_type": "text"
}
]
}

View File

@@ -0,0 +1,26 @@
{
"id": "admin_idea_capture",
"role": "admin",
"name": "💡 Capturar Idea",
"trigger_button": "capture_idea",
"steps": [
{
"step_id": 0,
"variable": "IDEA_CONTENT",
"question": "Te escucho. 💡 Las ideas vuelan...",
"input_type": "text_or_audio"
},
{
"step_id": 1,
"variable": "IDEA_CATEGORY",
"question": "¿En qué cajón mental guardamos esto?",
"options": ["💰 Negocio", "📹 Contenido", "👤 Personal"]
},
{
"step_id": 2,
"variable": "IDEA_ACTION",
"question": "¿Cuál es el plan de ataque?",
"options": ["✅ Crear Tarea", "📓 Guardar Nota"]
}
]
}

View File

@@ -0,0 +1,14 @@
{
"id": "admin_print_file",
"role": "admin",
"name": "🖨️ Imprimir Archivo",
"trigger_button": "print_file",
"steps": [
{
"step_id": 0,
"variable": "UPLOAD_FILE",
"question": "Por favor, envíame el archivo que quieres imprimir.",
"input_type": "document"
}
]
}

View File

@@ -0,0 +1,31 @@
{
"id": "admin_project_management",
"role": "admin",
"trigger_button": "manage_vikunja",
"steps": [
{
"step_id": 0,
"variable": "PROJECT_SELECT",
"question": "Aquí está el tablero de ajedrez...",
"input_type": "dynamic_keyboard_vikunja_projects"
},
{
"step_id": 1,
"variable": "TASK_SELECT",
"question": "Has seleccionado el proyecto {project_name}. ¿Qué quieres hacer?",
"input_type": "dynamic_keyboard_vikunja_tasks"
},
{
"step_id": 2,
"variable": "ACTION_TYPE",
"question": "¿Cuál es la jugada?",
"options": ["🔄 Actualizar Estatus", "💬 Agregar Comentario"]
},
{
"step_id": 3,
"variable": "UPDATE_CONTENT",
"question": "Adelante. Soy todo oídos.",
"input_type": "text_or_audio"
}
]
}

View File

@@ -0,0 +1,34 @@
{
"id": "client_sales_funnel",
"role": "client",
"trigger_button": "get_service_info",
"trigger_automatic": true,
"steps": [
{
"step_id": 0,
"variable": "CLIENT_NAME",
"question": "Hola, soy Talía. ✨ Estoy aquí para ayudarte a explorar cómo podemos potenciar tu negocio. Para empezar, ¿cuál es tu nombre?",
"input_type": "text"
},
{
"step_id": 1,
"variable": "CLIENT_INDUSTRY",
"question": "Mucho gusto. Para poder ofrecerte la solución más adecuada, por favor, selecciona el área que mejor describa tu negocio:",
"options": [
"🎨 Diseño Gráfico",
"🎬 Contenido Audiovisual",
"📈 Estrategias de Marketing",
"🌐 Desarrollo Web",
"🤖 Bots y Automatización",
"⚙️ Mejora de Procesos",
"💡 Otro"
]
},
{
"step_id": 2,
"variable": "IDEA_PITCH",
"question": "Excelente. Ahora, cuéntame sobre tu proyecto o la idea que tienes en mente. ¿Qué desafío buscas resolver o qué oportunidad quieres aprovechar? Puedes escribirlo o enviarme una nota de voz.",
"input_type": "text_or_audio"
}
]
}

View File

@@ -0,0 +1,13 @@
{
"id": "crew_print_file",
"role": "crew",
"trigger_button": "🖨️ Imprimir",
"steps": [
{
"step_id": 0,
"variable": "UPLOAD_FILE",
"question": "Claro, envíame el archivo que necesitas imprimir y yo me encargo.",
"input_type": "document"
}
]
}

View File

@@ -0,0 +1,29 @@
{
"id": "crew_propose_activity",
"description": "Permite a un miembro del equipo proponer una actividad para aprobación.",
"trigger_button": "propose_activity",
"user_roles": ["crew"],
"steps": [
{
"step_id": "get_description",
"question": "Por favor, describe la actividad que quieres proponer.",
"input_type": "text",
"next_step": "get_duration"
},
{
"step_id": "get_duration",
"question": "Entendido. Ahora, por favor, indica la duración estimada en horas (ej. 2, 4.5).",
"input_type": "text",
"next_step": "confirm_proposal"
},
{
"step_id": "confirm_proposal",
"question": "Gracias. Se ha enviado la siguiente propuesta para aprobación:\n\n📝 *Actividad:* {get_description}\n⏳ *Duración:* {get_duration} horas\n\nRecibirás una notificación cuando sea revisada.",
"input_type": "static"
}
],
"completion_action": {
"action_type": "notify_admin",
"message_template": "Nueva propuesta de actividad:\n\nDescripción: {get_description}\nDuración: {get_duration} horas"
}
}

View File

@@ -0,0 +1,31 @@
{
"id": "crew_request_time",
"role": "crew",
"trigger_button": "📅 Solicitar Agenda",
"steps": [
{
"step_id": 0,
"variable": "REQUEST_TYPE",
"question": "Para usar la agenda del estudio, necesito que seas preciso.",
"options": ["🎥 Grabación", "🎙️ Locución", "🎬 Edición", "🛠️ Mantenimiento"]
},
{
"step_id": 1,
"variable": "REQUEST_DATE",
"question": "¿Para cuándo necesitas el espacio?",
"options": ["Hoy", "Mañana", "Esta Semana"]
},
{
"step_id": 2,
"variable": "REQUEST_TIME",
"question": "Dame el horario exacto que necesitas (ej. 'de 10am a 2pm').",
"input_type": "text"
},
{
"step_id": 3,
"variable": "REQUEST_JUSTIFICATION",
"question": "Entendido. Antes de confirmar, necesito que me expliques brevemente el plan o el motivo para justificar el bloqueo del espacio. Puedes escribirlo o enviarme un audio.",
"input_type": "text_or_audio"
}
]
}

View File

@@ -0,0 +1,37 @@
{
"id": "crew_secret_onboarding",
"role": "crew",
"trigger_command": "/abracadabra",
"steps": [
{
"step_id": 0,
"variable": "ONBOARD_START",
"question": "Vaya, vaya... Parece que conoces el comando secreto. 🎩. Antes de continuar, necesito saber tu nombre completo.",
"input_type": "text"
},
{
"step_id": 1,
"variable": "ONBOARD_ORIGIN",
"question": "Un placer, {user_name}. ¿Cuál es tu base de operaciones principal?",
"options": ["🏢 Office", "✨ Aura"]
},
{
"step_id": 2,
"variable": "ONBOARD_EMAIL",
"question": "Perfecto. Ahora necesito tu correo electrónico de la empresa.",
"input_type": "text"
},
{
"step_id": 3,
"variable": "ONBOARD_PHONE",
"question": "Y por último, tu número de teléfono.",
"input_type": "text"
},
{
"step_id": 4,
"variable": "ONBOARD_CONFIRM",
"question": "Gracias. He enviado una notificación al Administrador para que apruebe tu acceso. En cuanto lo haga, tendrás acceso completo. ¡Bienvenido a bordo!",
"options": ["✅ Entendido"]
}
]
}

145
bot/data/services.json Normal file
View File

@@ -0,0 +1,145 @@
[
{
"service_name": "Diseño gráfico",
"description": "Soluciones completas de identidad visual y material gráfico para fortalecer la imagen de marca en medios digitales e impresos.",
"keywords": [
"branding",
"logotipos",
"identidad visual",
"diseño publicitario",
"manual de marca",
"formatos impresos"
],
"work_examples": [
"Creación de Identidad Visual (Logotipo, paleta de colores, tipografías)",
"Diseño de Manual de Marca y aplicaciones",
"Diseño de Flyers y Trípticos promocionales",
"Diseño de Tarjetas de Presentación (Digitales e Impresas)",
"Diseño de Banners para campañas publicitarias y redes sociales",
"Adaptación de artes para diferentes formatos (Instagram, LinkedIn, Web)"
]
},
{
"service_name": "Producción de contenido audiovisual",
"description": "Creación, edición y postproducción de contenido de video profesional enfocado en retener la atención y comunicar mensajes clave.",
"keywords": [
"video marketing",
"reels",
"tiktok",
"edición de video",
"podcast",
"youtube",
"guiones",
"postproducción"
],
"work_examples": [
"Edición dinámica de videos verticales (Reels/TikTok)",
"Producción y edición de episodios de Podcast",
"Creación de videos corporativos para YouTube",
"Animación de logotipos (Intros/Outros)",
"Subtitulado y efectos visuales para clips de redes sociales",
"Grabación y edición multicámara"
]
},
{
"service_name": "Estrategias de marketing",
"description": "Planificación y ejecución de estrategias de contenido para redes sociales, enfocadas en crecimiento, interacción y posicionamiento.",
"keywords": [
"social media",
"estrategia de contenidos",
"engagement",
"copywriting",
"calendario editorial",
"crecimiento orgánico"
],
"work_examples": [
"Diseño de parrilla de contenidos mensual",
"Creación de creativos gráficos para posts y carruseles",
"Redacción de copies persuasivos y llamadas a la acción (CTA)",
"Planificación de campañas de lanzamiento",
"Análisis de tendencias y competencia en redes sociales"
]
},
{
"service_name": "Desarrollo de páginas web",
"description": "Diseño y desarrollo de sitios web funcionales y optimizados, desde páginas de aterrizaje hasta tiendas en línea completas.",
"keywords": [
"desarrollo web",
"e-commerce",
"landing page",
"seo",
"ux/ui",
"tienda online",
"pasarelas de pago"
],
"work_examples": [
"Desarrollo de E-commerce con catálogo y pasarela de pagos",
"Diseño de Landing Pages optimizadas para conversión (Captación de Leads)",
"Creación de Sitios Web Corporativos institucionales",
"Integración de herramientas de análisis (Google Analytics, Pixel)",
"Optimización SEO básica y velocidad de carga",
"Mantenimiento y actualización de sitios web"
]
},
{
"service_name": "Bots para venta y agenda",
"description": "Implementación de asistentes virtuales inteligentes para gestionar clientes, automatizar ventas y agendar citas automáticamente.",
"keywords": [
"chatbots",
"whatsapp business",
"automatización de ventas",
"atención al cliente",
"flujos conversacionales",
"crm"
],
"work_examples": [
"Configuración de Bot de WhatsApp para atención 24/7",
"Automatización de agendamiento de citas y recordatorios",
"Diseño de flujos de conversación para calificación de leads",
"Respuestas automáticas a preguntas frecuentes (FAQs)",
"Integración de chatbot con base de datos de clientes",
"Segmentación automática de usuarios según sus respuestas"
]
},
{
"service_name": "Consultoria de mejora de procesos",
"description": "Servicios de consultoría estratégica para optimizar flujos de trabajo y tomar decisiones basadas en datos y análisis.",
"keywords": [
"consultoría de negocios",
"optimización de procesos",
"análisis de datos",
"encuestas",
"kpis",
"mejora continua"
],
"work_examples": [
"Implementación de encuestas de satisfacción de clientes",
"Análisis y reporte de métricas de negocio",
"Auditoría de procesos operativos actuales",
"Diseño de formularios interactivos para recolección de datos",
"Identificación de cuellos de botella y oportunidades de mejora"
]
},
{
"service_name": "Automatización de procesos e integración de IA a tu negocio",
"description": "Soluciones avanzadas de automatización de flujos de trabajo e integración de Inteligencia Artificial para reducir tareas repetitivas y escalar operaciones.",
"keywords": [
"inteligencia artificial",
"automatización",
"zapier",
"make",
"chatgpt",
"api",
"productividad",
"workflows"
],
"work_examples": [
"Conexión de aplicaciones mediante Zapier o Make (ej. Gmail a Slack)",
"Implementación de agentes de IA personalizados (GPTs) para tareas específicas",
"Automatización de generación de facturas y reportes",
"Clasificación y respuesta automática de correos electrónicos con IA",
"Extracción y procesamiento automático de datos de documentos",
"Integración de APIs de IA en sistemas internos de la empresa"
]
}
]