HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/bots/bot-pqr/src/flows/flow-main.js
import { addKeyword, EVENTS } from "@builderbot/bot";
import texts from "../config/texts.js";

import flowMenuPqr from "./pqr/flow-menu-pqr.js";
import flowDetalleFactura from "./detalle-factura/flow-detalle-factura.js";
import flowMenuDetallefraude from "./flow-menu-detalle-fraude.js";

import { start, stop } from "../config/idle-custom.js";
import flowMainFactura from "./detalle-factura/flow-main-factura.js";
import flowMainCuenta from "./estado-cuenta/flow-main-cuenta.js";

const flowMain = addKeyword(EVENTS.WELCOME)
  .addAction(async (ctx, { provider, gotoFlow }) => {
    // inicia temporizador de inactividad
    start(ctx, provider, gotoFlow, 600000);
  })
  .addAnswer(texts.saludo)
  .addAnswer(
    texts.instruciones,
    {
      capture: true,
      buttons: [
        { body: "Consulta Factura" },
        { body: "Estado de Cuenta" },
        { body: "Servicios PQR" },
      ],
    },
    async (ctx, { gotoFlow, fallBack }) => {
      // si el usuario respondió => detener timer
      stop(ctx);

      if (ctx.body === "Consulta Factura") {
        return gotoFlow(flowMainFactura);
      } else if (ctx.body === "Estado de Cuenta") {
        return gotoFlow(flowMainCuenta);
      } else if (ctx.body === "Servicios PQR") { // Listo
        return gotoFlow(flowMenuPqr);
      } else {
        return fallBack(texts.usarBotones);
      }
    }
  );

export default flowMain;