Skip to main content
In this tutorial, you’ll build a credit card application process from scratch. By the end, you’ll understand how to:
  • Design a BPMN process with multiple node types
  • Create user-facing forms
  • Integrate with external systems
  • Handle branching logic based on business rules
  • Send notifications
Time required: 30-45 minutesPrerequisites:
  • Access to FlowX Designer
  • A workspace and project set up (create one here)

What you’ll build

A customer requests a new credit card through a bank app. The process:
  1. Collects personal information
  2. Checks credit score automatically
  3. Assigns a card type based on the score
  4. Sends confirmation email
  5. Lets the user pick a branch for card pickup
Here’s the complete BPMN diagram:
Credit card application process

Download this process

Import this BPMN file to follow along or explore the finished result.

Step 1: Create the process

1

Open your project

Navigate to FlowX Designer → your workspace → your project.
2

Create a new process

Click NewProcess. Name it credit-card-request.
3

Add a Start Event

Drag a Start Event node onto the canvas. This is where the process begins when a customer opens the credit card application.

Learn more about processes


Step 2: Collect user data (User Task)

The first step is collecting the customer’s personal information.
1

Add a User Task

Drag a User Task node after the Start Event. Name it Fill Personal Data.
2

Design the form

In the node settings, open the UI Designer. Add form fields:
  • Full name (text input)
  • Email (text input with email validation)
  • Date of birth (date picker)
  • Annual income (number input)
3

Configure the data model

Map each field to a key in your data model:
  • application.fullName
  • application.email
  • application.dateOfBirth
  • application.annualIncome

Learn more about User Tasks


Step 3: Check credit score (Service Task)

Now we’ll call an external credit scoring service automatically.
1

Add a Send Message Task

This sends the customer data to your credit score adapter.Configure the Kafka topic to send to your credit scoring integration.
2

Add a Receive Message Task

This waits for the credit score response.Map the response to application.creditScore.
Don’t have a credit score service? For testing, use a Business Rule node to simulate a score based on annual income.

Learn more about integrations


Step 4: Branch based on credit score (Exclusive Gateway)

Different credit scores qualify for different card types.
1

Add an Exclusive Gateway

This creates a decision point based on the credit score.
2

Configure branch conditions

  • Branch 1: application.creditScore >= 700 → Premium card
  • Branch 2: application.creditScore >= 500 → Standard card
  • Branch 3: Default → Basic card
3

Add Service Tasks for each branch

Each branch sets the card type:
output.put("application.cardType", "PREMIUM");
4

Add a Closing Gateway

Merge the branches back together after the card type is set.

Learn more about Gateways


Step 5: Show results and confirm (User Task)

Let the customer review their card type and confirm.
1

Add a User Task

Name it Review and Confirm.
2

Design the confirmation screen

Display the assigned card type and benefits. Add a Confirm button.

Step 6: Send notification and register (Parallel Gateway)

After confirmation, two things happen simultaneously:
1

Add a Parallel Gateway

This splits the flow into parallel branches.
2

Branch 1: Send confirmation email

Add a Send Message Task that triggers the notification plugin.Configure email template with customer name and card type.
3

Branch 2: Register in bank system

Add a Send Message Task to your bank system adapter.This creates the card request in your core banking system.
4

Add a Closing Parallel Gateway

Wait for both branches to complete before continuing.

Learn more about Notifications


Step 7: Select pickup location (User Task)

Let the customer choose where to pick up their card.
1

Add a Service Task to fetch locations

Call an API (like Google Maps) to get nearby branches based on customer address.
2

Add a User Task

Display the top 3 branches as selectable options.

Step 8: End the process

1

Add a Receive Message Task

This waits for confirmation that the customer picked up the card (from branch system).
2

Add an End Event

The process completes.

Test your process

1

Save and validate

Click Save. Fix any validation errors shown.
2

Start a process instance

Click Run to start a new instance. Fill in the forms and watch the process flow.
3

Check the token

Use the Process Instance view to see where the token is and inspect data at each step.

What you learned

You’ve built a complete process that demonstrates:
ConceptHow you used it
User TasksCollecting data, showing confirmations
Service TasksCalling external APIs, setting data
Exclusive GatewayBranching based on credit score
Parallel GatewayRunning email + registration simultaneously
IntegrationsCredit score check, bank system, notifications

Next steps

Last modified on February 16, 2026