How to Build an AI Banking and Finance Assistant with Agents in ConvoFlow

Design a complete banking flow in ConvoFlow: conditional routing, real-time loan quotes with code, and automatic CRM logging.

A
Angel Chavez
Developer team
6 min read
Visual design of conversational flows and AI agents in ConvoFlow

The new standard for conversational banking

In financial services, customers expect to quote a loan, check credit card benefits, or book an advisory session directly from WhatsApp or web chat, without endless numbered menus ("Press 1 for...") and without being sent to external forms that kill conversion.

This step-by-step guide shows how to build ConvoFlow Bank, a bank-grade visual flow created in ConvoFlow, capable of:

  1. Routing the customer intelligently based on preference (AI Assistant, VIP Video Call, or Branch Appointment).
  2. Serving them with an Autonomous Financial Agent (deepseek-v4-pro) trained on the bank's product catalog.
  3. Calculating loans live with a financial amortization engine programmed in a code node.
  4. Logging digital case files in the CRM in a fully automated way.

Canvas overview

Panoramic view of the ConvoFlow Bank visual flow


Step 1: Entry point and initial routing

Every flow starts with a trigger node. Use Start for the web widget; if you want to publish on WhatsApp, use WhatsApp Trigger, which connects to the active channels (WhatsApp Business Cloud API).

1. The question node

To keep the experience clear, greet the user and let them choose their preferred support channel.

  • Variable name: opcion_continuar
  • Question: Hello! πŸ‘‹ Welcome to ConvoFlow Bank, your smart digital banking. How would you like to continue with your inquiry or loan request?
  • Options mapping:
    • Continue with the AI Assistant β†’ value: asistente_ai
    • Video call with a VIP Advisor β†’ value: videollamada
    • Branch appointment β†’ value: cita_sucursal

Switch and Question configuration

Configuration of questionNode and switchNode


2. The switch node

The switch node evaluates the opcion_continuar variable and, based on its value, takes one of the following paths:

  • If it is asistente_ai β†’ Connects to the input port of the AI Financial Agent.
  • If it is videollamada β†’ Connects to the VIP Video Call Agent.
  • If it is cita_sucursal β†’ Connects to the Branch Appointment Agent.
  • Default output: If the user enters unrecognized text, they are routed to msg_invalid_option so the flow can politely ask for a valid option without breaking the experience.

Step 2: Configuring the Autonomous Financial Agent

The heart of self-service is the Agent node. Here you configure the model (e.g. deepseek-v4-pro), the operational step limit (maxSteps: 20), and its System Prompt.

The System Prompt

The prompt is divided into three core blocks:

  1. Personality and tone: Empathetic, professional, with no rigid numbered menus.
  2. Embedded knowledge base:
    • Zero Digital Account: $0 opening and maintenance, free 24/7 transfers, physical and virtual debit card.
    • Pro Yield Account: 8.5% APY with daily settlement and interest on demand balances.
    • Credit cards: Black (3% travel cashback + LoungeKey VIP) and Platinum (2% on groceries and fuel).
    • Express Personal Loans: From $1,000 to $25,000 USD, terms of 6 to 60 months, rates from 11.9% annual, disbursement in 15 minutes.
  3. Operational rules:
    • If the user asks to quote or calculate a loan β†’ Immediately invoke simular_credito.
    • If the user wants to apply for the product β†’ Ask for name, phone, email, and ID, then call registrar_solicitud_cliente.

You can connect as many tools as you need and use the available nodes to extend their functionality. In this example only the code node and the collection node are used, but you can use any node from the catalog.


AI Agent settings panel

AI Agent panel with System Prompt and Tools


Step 3: Creating tools

Instead of letting the AI invent numbers (which would produce unacceptable hallucinations in finance), ConvoFlow gives you deterministic tools.

Subflow for the simular_credito tool:

The tools connector on the Agent node links to:


Tools in ConvoFlow

Tools in ConvoFlow


  1. Start Tool Node (tool_simular_credito): Defines the parameters the LLM must extract:

    • monto (number, required): Requested amount (e.g. $10,000).
    • plazoMeses (number, required): Term in months (e.g. 24).
    • tipoCredito (string, required): 'personal', 'vehicular', or 'hipotecario'.
  2. codeNode (code_simular_credito): Runs the French amortization formula directly in JavaScript:

javascript
let input = ctx.getVariable("credit_sim_input");
if (typeof input === 'string') {
  try { input = JSON.parse(input); } catch(e) {}
}

const monto = Number(input?.monto || 10000);
const plazo = Number(input?.plazoMeses || 24);
const tipo = String(input?.tipoCredito || 'personal').toLowerCase();

let tasaAnual = 0.119; // 11.9% Personal
let nombreTipo = "Express Personal Loan";
let seguroMensualTasa = 0.0005;

if (tipo.includes('vehi') || tipo.includes('auto')) {
  tasaAnual = 0.089;
  nombreTipo = "ConvoFlow Auto Loan";
} else if (tipo.includes('hipo') || tipo.includes('vivienda')) {
  tasaAnual = 0.065;
  nombreTipo = "ConvoFlow Mortgage";
}

// Monthly installment calculation (amortization formula)
const tasaMensual = tasaAnual / 12;
const cuotaCapitalInteres = monto * (tasaMensual * Math.pow(1 + tasaMensual, plazo)) / (Math.pow(1 + tasaMensual, plazo) - 1);
const seguroMensual = monto * seguroMensualTasa;
const cuotaTotalMensual = Math.round((cuotaCapitalInteres + seguroMensual) * 100) / 100;
const totalPagar = Math.round((cuotaTotalMensual * plazo) * 100) / 100;
const totalIntereses = Math.round((totalPagar - monto) * 100) / 100;

return JSON.stringify({
  status: "success",
  tipoCredito: nombreTipo,
  montoSolicitado: monto,
  plazoMeses: plazo,
  tasaInteresAnual: `${(tasaAnual * 100).toFixed(1)}%`,
  cuotaMensualEstimada: cuotaTotalMensual,
  totalInteresesEstimados: totalIntereses,
  montoTotalFinal: totalPagar,
  beneficios: [
    "No penalty for early prepayments",
    "Digital disbursement in 15 minutes to your ConvoFlow Account"
  ]
});
  1. Return Tool Result (tool_res_simular_credito): Returns the formatted result to the agent context so it can reply to the user with a clear, persuasive, and exact message.

Code tool subflow

startToolNode and codeNode simulation subflow


Step 4: Saving applications to the CRM without code

When the customer decides to formalize their loan application or account opening, the agent invokes the registrar_solicitud_cliente tool.

Instead of requiring complex external API calls with manual authentication, ConvoFlow includes the collectionWriteNode:


CRM tool subflow

CRM tool subflow


CRM field mapping:

  • Destination collection: col-convoflow-bank-leads-2026
  • Declarative mapping:
    • full_name βž” {bank_application_data.nombreCompleto}
    • phone βž” {bank_application_data.telefono}
    • email βž” {bank_application_data.email}
    • document_id βž” {bank_application_data.documentoIdentidad}
    • product_interest βž” {bank_application_data.productoInteres}
    • monthly_income βž” {bank_application_data.ingresoMensualAprox}
    • channel βž” "Asistente Virtual IA ConvoFlow"
    • status βž” "PRE_APROBADO_EN_REVISION"

The node generates a case ID (e.g. #CFB-89421) and the agent closes the conversation by sending a professional confirmation through the completed port to msg_confirm_completion.


Collection Write node and CRM

Field mapping in collectionWriteNode


Step 5: Hybrid paths β€” VIP video call and in-person appointments

The real power of ConvoFlow is that it does not force every customer down the same funnel. Two additional agents live on the same canvas:

1. VIP Video Call branch (agent_videollamada)

  • Designed for wealth or corporate banking clients.
  • Collects preferred date and time, plus the consultation topic.
  • Invokes the agendar_videollamada_vip tool, which writes to the col-convoflow-bank-videocalls-2026 collection and returns the secure connection URL (https://meet.convoflowbank.com/vip-session).

2. Branch Appointment branch (agent_cita_sucursal)

  • Offers the available branches (Torre ConvoFlow Central, Zona 10, Plaza Real).
  • Logs the appointment in col-convoflow-bank-appointments-2026 and issues a priority access pass with reserved parking (#VIP-4029).

Step 6: State handling and flow resilience

To guarantee enterprise-level stability, every Agent in ConvoFlow exposes output handles for every possible execution state:

Node outputWhen it firesDestination in the flow
completedThe agent fulfilled the goal and called finish_step.Matching success message (msg_confirm_*) βž” endNode.
max_stepsThe interaction exceeded the configured step limit (prevents infinite loops).Direct connection to endNode or handoff to a human support agent.
failedAn unexpected network or tool-execution error occurred.Contingency message βž” endNode.

Conclusion

With ConvoFlow, any product or engineering team can orchestrate powerful, secure conversational flows connected to their databases in a matter of hours.

Frequently Asked Questions

What makes ConvoFlow different from a conventional chatbot builder?

ConvoFlow combines deterministic nodes (fixed rules, questions, and switches) with agentic nodes (advanced language models such as DeepSeek, Claude, or GPT with tool-calling capabilities). This lets the agent run mathematical formulas in JavaScript code or write to CRM collections in real time, without leaving the conversation thread.

How does ConvoFlow calculate loan installments?

Through a tool subflow (startToolNode β†’ codeNode β†’ returnToolResultNode). When the user requests a quote, the agent extracts the parameters (amount, term, loan type) and runs a financial amortization formula in a secure code node, returning the exact installment instantly.

Are customer details saved to the CRM automatically?

Yes. Using the collectionWriteNode, ConvoFlow maps the data the agent captures naturally (name, phone, email, government ID) directly into internal or external CRM collections, generating a digital case file with a unique ID.

Share article