$flowBuilder = new FlowBuilderService($db, $logger);
// 1. Create main menu (root node)
$mainMenuId = $flowBuilder->saveNode([
'name' => 'Main Menu',
'trigger_keywords' => ['menu', 'inicio', 'hola', 'hi'],
'message_text' => '👋 ¡Hola! Bienvenido a nuestro sistema.\n\n¿Qué deseas hacer?\n\n1️⃣ Agendar una cita\n2️⃣ Ver mis citas\n3️⃣ Cancelar una cita\n4️⃣ Preguntas frecuentes\n\nEscribe el número o describe lo que necesitas.',
'next_node_id' => null,
'is_root' => true,
'options' => []
]);
// 2. Create calendar node
$scheduleNodeId = $flowBuilder->saveNode([
'name' => 'Schedule Appointment',
'trigger_keywords' => [],
'message_text' => 'Perfecto, voy a ayudarte a agendar tu cita.',
'requires_calendar' => true,
'is_root' => false,
'options' => []
]);
// 3. Create FAQ node
$faqNodeId = $flowBuilder->saveNode([
'name' => 'FAQ Menu',
'trigger_keywords' => [],
'message_text' => '❓ Preguntas frecuentes:\n\n1️⃣ Horarios de atención\n2️⃣ Ubicación\n3️⃣ Formas de pago\n0️⃣ Volver al menú principal',
'options' => []
]);
// 4. Create FAQ answer nodes
$hoursNodeId = $flowBuilder->saveNode([
'name' => 'Business Hours',
'trigger_keywords' => [],
'message_text' => '🕐 Horarios de atención:\n\nLunes a Viernes: 9:00 AM - 6:00 PM\nSábados: 9:00 AM - 2:00 PM\nDomingos: Cerrado\n\nEscribe *menu* para volver al inicio.',
'is_farewell' => true,
'options' => []
]);
$locationNodeId = $flowBuilder->saveNode([
'name' => 'Location',
'trigger_keywords' => [],
'message_text' => '📍 Ubicación:\n\nCalle 123 #45-67\nBogotá, Colombia\n\nPuedes encontrarnos en Google Maps: https://maps.google.com/...\n\nEscribe *menu* para volver al inicio.',
'is_farewell' => true,
'options' => []
]);
// 5. Link everything together
$flowBuilder->saveNode([
'id' => $mainMenuId,
'name' => 'Main Menu',
'trigger_keywords' => ['menu', 'inicio', 'hola'],
'message_text' => '👋 ¡Hola! Bienvenido a nuestro sistema.\n\n¿Qué deseas hacer?\n\n1️⃣ Agendar una cita\n2️⃣ Ver mis citas\n3️⃣ Cancelar una cita\n4️⃣ Preguntas frecuentes',
'is_root' => true,
'options' => [
[
'option_text' => 'Agendar cita',
'option_keywords' => ['1', 'agendar', 'cita', 'agenda'],
'next_node_id' => $scheduleNodeId
],
[
'option_text' => 'Preguntas frecuentes',
'option_keywords' => ['4', 'preguntas', 'faq', 'ayuda'],
'next_node_id' => $faqNodeId
]
]
]);
$flowBuilder->saveNode([
'id' => $faqNodeId,
'name' => 'FAQ Menu',
'trigger_keywords' => [],
'message_text' => '❓ Preguntas frecuentes:\n\n1️⃣ Horarios\n2️⃣ Ubicación\n0️⃣ Menú principal',
'options' => [
[
'option_text' => 'Horarios',
'option_keywords' => ['1', 'horarios', 'horario'],
'next_node_id' => $hoursNodeId
],
[
'option_text' => 'Ubicación',
'option_keywords' => ['2', 'ubicacion', 'donde', 'dirección'],
'next_node_id' => $locationNodeId
],
[
'option_text' => 'Volver',
'option_keywords' => ['0', 'menu', 'volver', 'atras'],
'next_node_id' => $mainMenuId
]
]
]);
echo "Flow created successfully!";