Skip to main content
In this tutorial you build your first integration workflow: a small flow that calls an external REST API, shapes the response with a script, and returns the result to a Business Process Model and Notation (BPMN) process. Along the way you work with the three pieces every real integration uses:
  1. A data source: the reusable connection to the external system.
  2. A workflow: the integration logic, built visually in the Integration Designer.
  3. A process action: how a BPMN process starts the workflow and receives its output.
Prerequisites: a project in your workspace and access to FlowX.AI Designer. If you haven’t built a process yet, start with Build your first process - this tutorial picks up where it leaves off conceptually.
Remember the distinction: a process is a BPMN flow with user and service tasks; a workflow is integration logic built in the Integration Designer. Processes delegate data fetching and transformations to workflows. See the Glossary if any term here is new.

What you’ll build

A currency-lookup workflow: given a base currency, it calls an exchange-rates API, extracts the rate you care about, and hands the result back to the process that asked for it. The API is a stand-in - swap in any REST API you have access to and the steps stay the same.

Step 1: Create the data source

A data source is a collection of endpoints, authentication, and variables that workflows can reuse.
1

Open Data Sources

In FlowX.AI Designer, go to Workspaces → your workspace → Projects → your project → IntegrationsData Sources.
2

Create a RESTful System

Click New Data Source and pick the RESTful System tile. Fill in:
  • Name: Exchange Rates
  • Code: exchange_rates
  • Base URL: https://api.exchange.example.com/v1 (use your real API’s base URL)
  • Description: what this system is for
Base URLs usually differ per environment. You can write them as https://api.${environment}.example.com/v1 and resolve the variable through configuration parameters overrides.
3

Set the authorization

Under authorization, pick what your API needs: Service Token, Bearer Token, or No Auth. Token values are best defined at system level and overridden per environment.
4

Add an endpoint

In the Endpoints section, add the endpoint the workflow will call:
  • Method: GET
  • Path: /rates
  • Parameters: a query parameter named base
Endpoints defined here are reusable across every workflow in the project.
You can save a data source even if some fields (credentials, endpoints) aren’t final - it can be referenced in workflows immediately and becomes operational once the required fields are filled in.

Step 2: Build the workflow

1

Create the workflow

Go to Projects → your project → IntegrationsWorkflows and create a new workflow named Get exchange rate.
2

Define the input on the Start node

Every workflow begins with a Start node: it defines the input data passed to all subsequent nodes. Give it the input your callers will send:
{
  "baseCurrency": "EUR"
}
3

Add the REST endpoint node

Add a REST endpoint node and select your Exchange Rates endpoint from the dropdown (endpoints are grouped by system). Map the base query parameter to the baseCurrency input. The node’s input is auto-populated from the previous node; its output shows the API response.
Test the REST endpoint node on its own before wiring the rest of the workflow - it’s the fastest way to validate the connection and see the real response shape.
4

Shape the result with a Script node

Add a Script node (JavaScript or Python) after the REST call to keep only what the process needs - for example, picking one rate out of the full response and returning { "rate": <value>, "currency": "USD" }.
5

Capture the output on the End node

Connect an End node and map the script’s result to it. Whatever reaches the End node is the workflow’s output - this is what the calling process receives.
6

Run a test

Run the workflow from the Designer with a sample input and confirm the output contains your shaped result.
For structured, typed inputs and outputs, define a workflow data model - input parameters then pre-fill the Start node automatically. For a first workflow, plain JSON on the Start node is fine.

Step 3: Call the workflow from a process

1

Add the action

In your BPMN process, add a Send Message Task node and configure a Start Integration Workflow action on it. The action is also available on Task and User Task nodes.
2

Select the workflow and map the input

Pick Get exchange rate from the Select Workflows dropdown, then map process data to the workflow input:
{
  "baseCurrency": "${processInstanceData.selectedCurrency}"
}
3

Set the result key

Configure the result key - for example exchangeResult. The workflow’s output lands at this key in the process instance data.
4

Receive the output

Add a Receive Message Task node after the Send Message Task. The process waits for the workflow to complete, the output is mapped to your result key, and every node after that can read exchangeResult.

Step 4: Run it end to end

Start the process, let it reach the Send Message Task, and inspect the process instance data: the workflow’s shaped output should sit under exchangeResult. That round trip - process → workflow → external API → back to the process - is the pattern behind most FlowX integrations.
You built a reusable data source, an integration workflow with REST + script + output nodes, and a process that delegates to it and reads the result.

Where to go next

Integration Designer

The full reference: endpoint parameters, authorization, caching, file handling, and every workflow node.

Workflow data models

Typed inputs and outputs for workflows, with automatic Start-node pre-fill.

Start integration workflow action

Everything about calling workflows from processes, including when to use subprocesses instead.

Cookbooks

Tutorials, guides, and patterns to build on what you just learned.
Last modified on July 3, 2026