---
title: Creating a New Integration
description: Check the step-by-step guide to create an integration
documentId: ipaas-flow-create
locale: en-US
---

The **Source** screen is where you create your integration flows.
You can create integrations in two ways:

* Visually, in the **Diagram** tab: add _steps_ to the canvas and fill in the configuration forms to define the integration flow.

* Via code, in the **Source Code** tab: use CAMEL YAML DSL to write the integration script directly in the `main.yaml` file.

While you build the integration in the **Diagram** tab, you can switch to the **Source Code** tab and view the corresponding code, and vice versa.

The animation below illustrates the creation of an integration and the features available in each tab:

![](https://creative-ball-51b3fc85c0.media.strapiapp.com/create_flow_2a5b9af565.gif)

Check our step-by-step guide to build an integration:

<Steps>
<Step>
[Create a new flow on the Integration Flows screen](#create-a-new-flow-on-the-integration-flows-screen) and [access the Source screen](#access-the-source-screen)
</Step>
<Step>
[Select a trigger to execute the integration](#select-a-trigger-to-execute-the-integration)
</Step>
<Step>
[Add components and EIPs to the route](#add-components-and-eips-to-the-route)
</Step>
<Step>
(Optional) [Create resources](#optional-create-resources)
</Step>
<Step>
(Optional) [Create flow variables](#optional-create-flow-variables)
</Step>
<Step>
(Optional) [Validate the flow](/docs/integrations/ipaas-flow-error-validation) and [execute it in test mode](/docs/integrations/ipaas-flow-test-mode)
</Step>
<Step>
[Create a release](/docs/integrations/ipaas-flow-release)
</Step>
<Step>
[Deploy the integration flow](/docs/integrations/ipaas-flow-deploy)
</Step>
</Steps>

## Create a new flow on the Integration Flows screen

* Access the **Integration Flows** screen.
* Click **+ NEW FLOW**.
* In the modal window that opens, enter **the name and version** of the integration flow.
You can edit them later.
* Select the **Source** design type.
* Click **SAVE**.

![](https://creative-ball-51b3fc85c0.media.strapiapp.com/new_flow_source_ad6ab383d9.png)

## Access the Source screen

* After creating the flow, you will see the Source screen with the **Diagram** tab selected by default.
* In the `main.yaml`, you will see the canvas with the empty trigger _step_ as the first _step_ of the integration.

The image below shows the Source screen displaying the Diagram tab.

![Source screen with empty canvas, displaying the Diagram tab](https://creative-ball-51b3fc85c0.media.strapiapp.com/empty_flow_27e818449b.png)

## Select a trigger to execute the integration

* Click **+ Add Trigger**.
* Select a [trigger](/docs/integrations/ipaas-triggers) from the menu on the right side of the screen and click **CONFIRM** to add it to the canvas.
Alternatively, you can drag it.
If necessary, use the search tool to locate it.
* After adding the trigger to the integration, the configuration form will automatically open.
However, you can continue adding _steps_ and configure it later.

<Callout type="important" title="IMPORTANT">
You can replace a trigger with another, but all settings of the original trigger will be lost. To replace a trigger, click the three-dot icon on the _step_ and then click **Replace**.
</Callout>

![Source screen with canvas displaying available triggers](https://creative-ball-51b3fc85c0.media.strapiapp.com/add_trigger_06f910b363.png)

## Add components and EIPs to the route

* After adding the trigger, you will see a ![plus sign](https://creative-ball-51b3fc85c0.media.strapiapp.com/icon_plus_247ec59675.png) icon indicating the addition of a new _step_.

* Click the ![plus sign](https://creative-ball-51b3fc85c0.media.strapiapp.com/icon_plus_247ec59675.png) icon.
Then click **+ Add Step**.

* Select a [component](/docs/integrations/ipaas-connectors) or an [EIP](/docs/integrations/ipaas-eips) from the menu on the right side of the screen by clicking the corresponding tab.
If necessary, use the search tool to locate a specific component or EIP. Then click **CONFIRM**.
Alternatively, you can drag it.

<Callout type="note" title="NOTE">
After adding a _step_ to the canvas, the configuration form will automatically open.
However, you can continue adding _steps_ and configure them later.
</Callout>

![Source screen with canvas displaying available components and EIPs](https://creative-ball-51b3fc85c0.media.strapiapp.com/add_step_60a221899f.png)

<Callout type="tip" title="TIP">
To enable sending and viewing execution records (_logs_) in [Sensedia Analytics](/docs/integrations/analytics-guide:ROOT:log-searching), add the [Log](/docs/integrations/eips-log) EIP.
When viewing the records, you will not be able to select the **Trace** and **Debug** levels.
</Callout>

## (Optional) Create resources

For some Apache Camel components, such as "JSONata", it is necessary to use scripts stored in separate files.
These files can be created in **Resources**, regardless of the file extension.
This way, you can reference them directly in the main flow, ensuring they are used during the integration flow execution.

To create a _resource_ file:

* Click the _resources_ icon ![image of a cut paper sheet representing the resources icon](https://creative-ball-51b3fc85c0.media.strapiapp.com/icon_resources_51a1d0f647.png) on the left side of the canvas.
* Click **+**.
* Click the file and define the name and extension, such as: `jsonata.yaml`, `teste.txt`, etc.
* Add the file content in the text editor.
* Save the _resource_ file by clicking **SAVE**.

<Callout type="note" title="NOTE">
Check more information about [Resources](/docs/integrations/ipaas-resources).
</Callout>

## (Optional) Create flow variables

Variables allow for custom flow configuration and environment parameterization, eliminating the need to create a separate integration flow for each environment.

To create a variable:

* Click the variables icon ![image of a box representing the variables icon](https://creative-ball-51b3fc85c0.media.strapiapp.com/environment_variables_button_fea45f4f76.png) on the left side of the canvas.
* Select the environment in which the variable will be applied: _Production_ or _Staging_.
* Register the variable in the form that opens.
* Save the variable by clicking **SAVE**.

<Callout type="note" title="NOTE">
Check more information about [variables](/docs/integrations/ipaas-flow-variables).
</Callout>

## (Optional) Validate the flow and execute it in test mode

Test mode allows you to execute and validate an integration flow before final deployment, facilitating error identification, data validation, and performance optimization. You can test flows even while they are still under construction, promoting continuous adjustments.

To execute an integration in test mode, it cannot contain structure and/or syntax errors. To validate your flow, save the file or use the **Full Validation** feature in the Source Code tab at the top right of the code editor (check symbol).

<Callout type="note" title="NOTE">
Check more information about [test mode](/docs/integrations/ipaas-flow-test-mode) and [error validation](/docs/integrations/ipaas-flow-error-validation).
</Callout>

## Create a release

A release is essentially a specific version of your integration flow. This feature allows you to control and manage different versions of your integrations. Creating a release is mandatory before deploying an integration.

<Callout type="note" title="NOTE">
Check more information about [releases](/docs/integrations/ipaas-flow-release).
</Callout>

## Deploy the integration flow

To deploy an integration, click the rocket icon at the top right of the screen.

Simply confirm the deployment environment and the integration release, and click **DEPLOY**.

<Callout type="note" title="NOTE">
Check more information about [how to deploy the integration flow](/docs/integrations/ipaas-flow-deploy).
</Callout>
