# Getting Started with Flow Builder

**URL:** <https://connective.celigo.com/t/getting-started-with-flow-builder/5373>\
**Category:** Integrator.io\
**Created:** [August 27, 2025, 4:43pm UTC](https://connective.celigo.com/t/getting-started-with-flow-builder/5373 "2025-08-27T16:43:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![atinavbajaj23](https://sea1.discourse-cdn.com/flex001/user_avatar/connective.celigo.com/atinavbajaj23/32/8928_2.png) [@atinavbajaj23](https://connective.celigo.com/u/atinavbajaj23)\
**Post date:** [August 27, 2025, 4:43pm UTC](https://connective.celigo.com/t/getting-started-with-flow-builder/5373/1 "2025-08-27T16:43:58Z")

</div>

# Introduction

 ![](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/9/990490333fd27aca7e2f6b04f20e1667a9dc26e0.png)

This hands-on lab is designed to help you get started with integration flow development using Celigo's flow builder. 

By following step-by-step instructions, you’ll learn how to quickly design, configure, and execute a flow that solves real business problems.

You’ll play the role of an integration builder at **ACME Chocolatiers** , a fast-growing confectionery company seeking to modernize its operations. Your task is to build an integration flow that alerts key decision-makers when inventory levels drop below a defined threshold.

This lab focuses on practical application. The exercise begins with a business scenario and leads into a guided build using Celigo’s low-code interface. You’ll build a flow that:

- Pulls product catalog
- Trims the product dataset using data transformation
- Filters SKUs based on status
- Adds inventory details through a lookup
- Compares inventory levels against a threshold
- Uses branching logic to decide next actions
- Sends appropriate Slack alerts by mapping the data structures

No programming is required and you’ll gain exposure to core flow-building concepts such as **exports, transformations, filters, lookups, branching, mapping, and imports.**

Whether you aim to streamline operations, enhance visibility, or empower your team with automation, this lab provides the foundational skills to start building right away.

# Technology Overview

Modern digital businesses rely on integration software to connect systems, expose data securely, and enable innovation. To ensure integrations are scalable, secure, and manageable, organizations adopt an Integration Lifecycle Management approach. This lifecycle includes six key phases:

1. **Connect**  
Establish secure and reliable connectivity between systems, applications, and data sources. This phase includes setting up connectors and managing authentication.

2. **Build**  
Design and construct integration flows that meet specific business needs. This includes defining data movement, applying transformations, handling conditions, and integrating logic such as branching and lookups.

3. **Run**  
Execute integration flows with reliability and resilience. This involves triggering flows based on events or schedules and managing flow execution status and performance.

4. **Deploy**  
Move flows from development to production environments. Deployment includes versioning, backups and synching changes from one integration to another.

5. **Monitor**  
Track the health, usage, and performance of integration flows. Monitoring includes error detection, analytics, and notifications to help teams respond quickly to issues and optimize operations.

6. **Manage**  
Maintain, update, and govern integrations across their lifecycle. This includes managing users, granting access, auditing changes and ensuring security compliance and best practices.

As part of the Celigo Platform, the Flow Builder user experience focuses on simplifying the first three phases - Connect, Build, and Run. Specifically for business technologists and IT teams. With its intuitive low-code interface, Flow Builder enables users to:

- Visually define data integration operations and transformation steps
- Connect endpoints to integration flow components using prebuilt or custom connectors
- Securely authenticate connections using a variety of built-in methods
- Trigger and run flows in real-time or on a schedule directly from the platform

> 📗 **TERM**  
> **Connections** provide a way for Celigo platform to access data in other applications. The connection includes security tokens which are used to align to security requirements.

While Celigo also provides features that support the other phases (such as role-based access, usage logging, and testing tools), this lab centers on helping you get hands-on experience with designing and executing an integration flow using a real business use case.

# Hands on Lab Overview

This hands-on exercise is designed for beginner-level builders and focuses on a real-world use case that demonstrates key capabilities of Celigo’s low-code platform.

**Prerequisite: Setting up the Lab Environment**  
Sign-up for a free Celigo account and set up the other apps that will be integrated as part of this lab.

**Module 1: Creating Connections**  
Authenticate connections to the apps used in your flow in the Celigo platform. In this module, you’ll connect Celigo to Slack and Airtable - both of which offer free trials and are ideal for hands-on learning.

**Module 2: Your first flow - Product alerts on Slack**  
Build a foundational integration flow that pulls product catalog data from your source system and sends selected product details to a Slack channel. You’ll learn how to configure, apply transformations, map data, and send messages - laying the groundwork for more advanced automations.

**Module 3: Smart Filtering - Trim the Noise from Your Data**  
Enhance your flow by introducing conditional logic that ensures only relevant product data is passed forward. In this module, you’ll implement filters to exclude inactive or irrelevant records, resulting in a cleaner, more targeted Slack feed.

**Module 4: Add Context - Look Up Inventory in Real - Time**  
Elevate your integration by enriching product data with real-time inventory details. This module teaches you how to join live external data - such as stock levels into your existing flow, giving your Slack messages deeper context and business value.

**Module 5: Decision Time - Route Based on Inventory Thresholds**  
Make your flow intelligent and responsive by introducing dynamic branching. This module shows you how to use conditional logic to evaluate inventory levels and route messages accordingly ensuring the right people get alerted at the right time.

# Prerequisite: Setting up the Lab Environment

## Create Your Celigo Free Trial Account

If you do not already have an account for Celigo, follow these instructions to procure your free trial.

1. Visit [https://integrator.io/signup](https://integrator.io/signup)

2. Complete the registration form with your name, company, and email address. **Please use a valid business email address for this step.**

3. Check your inbox for an activation email and follow the instructions to set up your password.

4. Once activated, you will be logged into [https://integrator.io](https://integrator.io)

## Creating accounts for the other apps

To help you build, test, and understand integration flows effectively, we’ve selected two powerful but beginner friendly tools: **Airtable** and **Slack**. Both platforms offer free trials, making them perfect for experimentation without the need for paid accounts or setup overhead. By using Airtable and Slack, you’ll be working with real-world tools that make it easy to build, visualize, and test integration patterns all without writing code.

  

* * *

 ![Slack Logo](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/c/c02097e6e499f478cb0ffbaa222db0f87cc758fd.png)

* * *

Slack is a popular messaging tool used by teams to communicate in real-time. Here, you'll use it as the destination for your flow delivering notifications about products, inventory, and alerts directly into Slack channels using Celigo’s integrations.

**Create a new Slack Workspace**

This lab uses Slack as a way to send interesting business events to other users within ACME Chocolatiers.

1. Visit[https://slack.com/](https://slack.com/intl/en-in/)

2. Select **Get Started**.

3. Sign up with your personal email ID.

4. Enter the OTP sent to your email address.

5. After logging in, select **Create a new workspace** again if prompted.

6. Name your workspace (e.g., Acme).

7. When prompted to invite colleagues, select **Skip this step**.

 ![alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/a/a7b83f92459ddfb1f726ed1acc3bbf709480c47a.jpeg)

1. Choose **Start with limited** free version.

2. Close the initial tutorial by selecting the **X** icon.

3. Select the **+** icon on the bottom left of Slack and Select **Channel.**

 ![Screenshot of Slack menu options](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/7/7e0428fc3233aa937a2681d7077ebf27fa27ac1d.png)

1. Choose **Blank** channel and select **Next** and when prompted to name the channel, type in **product-notification.**

  

* * *

 ![Airtable logo](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/c/c574c6a7febea917eb90d5e44d63fd802b7919e8.png)

* * *

Airtable acts as a simple, cloud-based database that combines the power of a spreadsheet with the flexibility of a relational database. In this lab, you'll use it to store and retrieve product and inventory data through its clean and easy-to-use API.

**Create a new Airtable app**

1. Sign up for a free account in **Airtable** ([https://airtable.com/](https://airtable.com/)). You do not need to enter payment information in order to sign up for the free trial.

2. **Do not use the AI prompt** , we’ll use some ready to use csv files that you can download from below and upload in Airtable. Navigate to the home screen of Airtable by selecting the **Airtable icon** on the top left.

3. You will see a button on the bottom left called **+ Create.** Select it.

4. Choose the option **Build an app on your own**

 ![|alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/7/7f3ca9a421422cdd36e007c015bcf17a8e69e0e7.png)

1. Select on the + **Add or import icon**

2. Please use the files provided here [Google Drive Link](https://drive.google.com/drive/folders/1nTq8H7LJGmVeO239lOAUVLq7KucHedkf)

3. Select **Import**

4. We now need to create a new table for our inventory so select **+Add or import**. Repeat the same steps with the other csv file which is _Inventory-Grid view.csv_.

5. You can choose to rename the table names on the tabs in Airtable by right clicking on the table name. This step is optional. But if you choose to, rename them as **Products** and **Inventory Records**.

 ![Screenshot of Airtable's header](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/7/731d2d10e2d74eebfea057a6c1a14fffecac4cc6.png)

# Module 1: Creating Connections

> ⏱ **ESTIMATED TIME** : 15 minutes

## What You’ll Learn

Before building any flows, you’ll first create connections to Slack and Airtable which are your destination and source apps for the lab. This module walks you through configuring authentication, assigning scopes, and authorizing Celigo to access your accounts.

In this lab, you’ll gain hands-on experience setting up app connections in Celigo. You’ll learn how to:

- Navigate to the **Connections** section in [integrator.io](http://integrator.io)
- Create a new connection to **Slack**
- Connect to **Airtable**

This module lays the foundation for all future flows by ensuring the necessary integrations are securely and correctly connected.

## **Step 1: Set Up Connections to Slack**

1. Go to[https://www.integrator.io](https://www.integrator.io) (Celigo's integration platform).

2. In the **top right corner** , Select the **+ Create** button and choose **Connection**. A new connection form will appear.

 ![Screenshot of Celigo's header](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/8/8efda4cef46eeaf58f91b728f62fc694a41ea243.png)

1. A new connection form will appear.

2. Select **Configure scopes**

 ![Screenshot of Scopes Editor in Celigo](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/d/de698db82c57398da697c4ed21cf1b8c5a8e34ff.png)

1. Under **User Scopes**

 ![Screenshot of Edit Connections menu in Celigo](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/e/e39fa4787a96e35f2a2159069cc7409ae63e1037.png)

1. Click the **Save & Authorize button** at the bottom of the form.

2. After selecting Save & Authorize, a popup window will appear. Here's what to do:

 ![Screenshot of Slack authorisation screen](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/b/b8316b6b9b7742d2c4328f587ca2fb4661ddeed1.png)

1. Click on **Confirm.**

## **Step 2: Set Up Connections to Airtable**

1. Open Airtable - [airtable.com](http://airtable.com)

2. Go to **Profile on the top right of Airtable.** If you cannot find it, please click on the Home icon on the top left first (Airtable logo).

 ![Screenshot 2025-09-11 at 3.19.23 PM|alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/1/103d5fe5d3d90328993ba9efc945fa0e523c5a25.png)

1. Click on **Builder Hub** \> **Developers** \> **Personal access tokens**

2. Add a name for your Personal Access Token and add the following scopes.

3. Under Access, select **+Add all resources**

 ![Screenshot 2025-09-11 at 3.22.42 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/5/51fcf7fb0c15dc1a9d65b6b335258de3ac35cb1e.png)

1. Create a new token. Copy the token and save it securely.

> 🛠 **PRO TIP**
> 
> Copy and paste your token someplace safe in case you need to use it again. You will have to follow the above steps and create a new token in case you lose it.

1. In Celigo [integrator.io](http://integrator.io), go to **Resources** \> **Connections** from the left side panel.

2. Click **Create connection**. Select Airtable.

3. You can click on **Test Connection** to ensure that everything is set up correctly.

4. Click on **Save** and your Airtable connection is now ready, you can now **Close** the connection dialogue.

  

> 🏅 **SUCCESS**  
> Great job! You have now created a connection with Slack and Airtable. This will be very useful when creating your flows in the next module.

  

# Module 2: Your first flow – Product alerts in Slack

> ⏱ **ESTIMATED TIME** : 15 minutes

## What You’ll Learn

In this lab, you’ll build your first integration flow using Celigo’s Flow Builder to send product data to Slack. You’ll learn how to:

- Configure a trigger to pull product catalog records from Airtable
- Map fields into a structured Slack message format
- Configure a destination and send a Slack message with product records

This lab introduces core integration concepts making it ideal for beginners building real-time flows that connect systems to your preferred communication platforms.

* * *

## Scenario

As an admin at ACME Chocolatiers, your team wants to improve visibility into the product catalog by sharing updates directly in Slack.

You’ve been tasked with building a simple integration that automatically sends product information from **Airtable** to **Slack**.

The flow will retrieve product records and post them as a Slack message giving internal teams instant access to all product details without logging into other systems.

## **Step 1: Setup a new Integration and flow**

In this section, you'll learn how to create your first integration in Celigo and start building a flow to pull data from Airtable.

1. On the left side panel, click on **Home**

2. Select the **+ Create** button in the top right. Choose **Integrations** from the dropdown. A new integration form will appear.

> 📗 **TERM**  
> In Celigo, an **integration** provides a way to organize your work like flows, APIs, settings, and more. You can provide different users access to an integration to allow teams to work collaboratively on these resources.

1. Enter the name: _My first integration_

2. Click **Save and close.**

  

At this point, your integration has now been created! Let’s create a flow.

  

 ![|alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/5/531cd9abb9df46d474036fb2789ef76a634f096c.png)

1. After saving, select the **Create flow now** or **+Create flow**. And you'll be taken to the flow builder.

2. Name the flow **Airtable to Slack product notifications,** you can name the flow on the top left by selecting **New flow** which is its default name.

## **Step 2: Setup Airtable as Source**

1. Click on **Add source** to begin defining where your data comes from.

 ![alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/3/30d232792cb5aa1e6260d7f4acb33d50fb52b4cd.png)

1. In the popup window, **type "Airtable"** into the search bar. Click on the **Airtable** app.

2. For the **Step name** , enter: _Product data_. Click **Next**.

3. In the **Connection** dropdown, select the name of the connection you created earlier for Airtable.

4. Under **What would you like to export** , you’ll see two dropdown menus:

5. Now, enter your **Base ID** and **Table ID,** you can find this by navigating back to **Airtable** \> **Opening the table** \> Look at the URL bar.

 ![Screenshot 2025-09-11 at 5.27.29 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/b/bdb940ba6b5b3ccdc975cc11686a4ca949643aa4.png)

1. You will see the Airtable URL like so: [https://airtable.com/[baseID]/[tableID]](https://airtable.com/%5BbaseID%5D/%5BtableID%5D)

> 🛠 **PRO TIP**  
> Base ID starts with _ **app** _ and Table ID starts with _ **tbl** _.

1. Ensure you copy the Base ID and Table ID and paste it over in the Celigo platform.

2. On the right-hand side, click the **Preview** button. If everything is set up correctly, you’ll see a select number of records from your Airtable table.

> 🛠 **PRO TIP**  
> If nothing shows up, double-check your Base ID, Table ID, and connection settings which should show it is **Online**.

1. Select **Save and Close**.

## **Step 3: Setup Slack as a destination**

1. Select **Add destination / lookup**.

2. In the search bar, type **Slack** and select it.

3. In the **Flow Step type** dropdown, select **Import records into destination application**.

4. Name the flow step **Product notifications** , then click **Next**.

5. From the **Connection** dropdown, choose **Slack connection v1**.

6. Under **How would you like the records imported** , set the **Resource** to **Chat** and the **API endpoint** to **Chat me message**.

7. Click **Preview** to view a sample Slack message. You should see the JSON message with all the values from the first row of your product table.  

8. Once everything looks good, select the **Save and close** button.

 ![Screenshot 2025-09-15 at 11.56.17 AM|alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/3/346beee96fc064ce7d591b8fa43d81d11adece33.png)

## **Step 4: Configure Mapping**

1. On the **Flow** builder page, Slack should now be listed as the destination.

2. Click on the ellipsis **(...)** within the Slack box and select **Mapping**.

3. In the **Destination** field, find **channel** and select it - this is a mandatory field.

4. In the **Source** field, type in "#product-notification" (make sure to include the double quotes). This is the name of the channel you created earlier.

5. Click the **+** icon to add another row.

6. In the new row:

7. You can click **Preview** to see how your data will appear in Slack. You will see the name of the slack channel and one of the products from Airtable.

8. Select the **Save**  **and**  **Close** button.

 ![Screenshot 2025-09-15 at 3.26.30 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/b/b4083673ce1a823b9a82ef87c99ed32217ccc5fb.png)

## **Step 5: Run the flow**

1. By default you are now in Test Mode, you can see this on the top of your flow

 ![|alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/a/ab202a159bb9f6be5e86aa5164c54eb764b16406.png)

1. Click on the **toggle** to exit Test Mode and let’s go live.

2. Click the **Run now** button (looks like a play button)

 ![|alt](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/6/6d5e3b7dcbf5f4faf4ce59a4314e492c7f6fa4a6.png)

  

> 🏅 **SUCCESS**  
> You would have received a Slack message listing your Product titles in the new channel you’ve created.

  

# Module 3: Smart Filtering - Trim the Noise from Your Data

> ⏱ **ESTIMATED TIME** : 10 minutes

## What You’ll Learn

In this lab, you’ll explore how to refine your flows using Celigo’s filtering capabilities. You’ll learn how to:

- Add a filter step to evaluate product attributes
- Configure conditions to exclude inactive or irrelevant products
- Test and observe which records are passed through vs. filtered out

By learning how to control data flow intelligently, you’ll ensure your integrations send only meaningful information to end users or systems.

* * *

## Scenario

As your Slack channel starts to fill with product updates, the marketing team realizes they only want to see “active” products. As the integration developer at ACME Chocolatiers, your job is to enhance the flow by filtering out any inactive or outdated items—keeping Slack messages clean, relevant, and actionable.

## **Step 1: Open Output Filters**

1. Go to your integration on [https://integrator.io/](https://integrator.io/)

2. Locate and open the flow you created in the previous module.

3. In the Airtable export step, click the ellipsis **(...)** in the top-right corner in the Airtable source.

4. From the dropdown, select **Output Filter**.

 ![|453.3592233009709x232](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/e/e636d2cfc1e851f9a0c2c360c90cd6603336daf1.png)

## **Step 2: Configure the Filter**

1. Select the **+ Condition** button.

2. In the first dropdown, choose **record.field.active**

3. In the second dropdown, select **equals**

4. In the third field, type: **1**

 ![](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/2/2f85e1f64cf136bd868ffbc3fdccedf2cbaca8ed.png)

1. Select **Save & Close**

2. Run the Flow

If set up correctly, your flow will now only process products where **active = 1**.

Inactive products (e.g., discontinued chocolates) will be filtered out and won’t appear in your Slack messages. Check your Slack channel to see if you now received a message with only 4 products instead of 5. If yes, you have successfully filtered out the inactive product (Mint chocolate drink mix will be filtered out since it's no longer active).

> 🛠 **PRO TIP**  
> **Too Many Steps? Let Celigo AI Handle It** In the “Define output filter” screen, try using the Celigo AI with a prompt like “I want active = 0 products to be skipped” and the conditions will be applied automatically.

  

> 🏅 **SUCCESS**  
> You will now see the titles of the products that are active and this will be the updated message on Slack.

# Module 4: Add Context – Look Up Inventory in Real-Time

> ⏱ **ESTIMATED TIME** : 10 minutes

## What You’ll Learn

In this lab, you’ll learn how to enrich your product data by joining it with live inventory information from an external system. Using Celigo’s lookup functionality, you’ll bring real-time stock context directly into your flow making your Slack messages more actionable and informative. You’ll learn how to:

- Connect to a live inventory database to retrieve current stock levels
- Perform a lookup using the product SKU as the matching key
- Join inventory data into your product records
- Enhance your Slack message with real-time inventory numbers

* * *

## Scenario

At ACME Chocolatiers, your team wants more visibility into inventory to support better planning and communication. Currently, your Slack alerts only show basic product details, but your operations team needs to know how much stock is actually available before taking action.

Your task is to enhance the existing flow by pulling real-time inventory data from your inventory management system. Using the product SKU as a common identifier, you'll join this live inventory data into each product record giving stakeholders a complete picture with every alert.

## **Step 1: Insert a Lookup Step**

1. In your flow on **[integrator.io](http://integrator.io)**, select the **➕ icon** between your source (Airtable) and destination (Slack).

2. Select **“Add destination / lookup”**. We are adding a lookup this time.

 ![](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/1/1542d30044d68e08a6b39bdb901628e8ac82d1ff.png)

1. In the **Create destination / lookup** modal: Choose **Airtable** as the connection type.

2. Set the **Flow step type** to **“Look up additional records (per record)”**.

3. Name your step, e.g., **"Inventory Look Up"**.

> 📗 **TERM** : **Lookup**  
> The product table doesn’t include inventory count, so we use a lookup step to fetch the current stock level from the inventory table, matched by SKU. This adds real-time inventory data to each product before sending it to Slack. Lookup allows you to enrich your data from different sources.

1. Select the **Next** button.

2. In the **Connection** dropdown, select the Airtable connection you created earlier.

3. For **“What would you like to export?”** , choose:

4. Input Airtable Identifiers

The URL is in this format for your reference `https://airtable.com/[base ID]/[table ID]/`

1. In the **Query parameters** section, select filterByFormula as the parameter name. In the value field, paste the following formula: `{SKU}='{{record.fields.[SKU]}}'`

2. Click on **Preview** , you should see the the SKU, Quantity on Hand and Reorder point amongst other fields.

> 📗 **TERM**  
> The `filterByFormula` parameter lets you write a logical condition that Airtable evaluates for each record. Only records that match the condition are returned. In this case - SKUs.

1. Select the **Preview** button and you'll see a record of your inventory table.

2. If everything looks good, select the **Save and Close** button.

## **Step 2: Result mapping**

1. Now that the lookup has been added, locate the **lookup step** in your flow.

2. Click on the **ellipsis (⋮)** in the lookup step and select **"Result Mapping"**.

3. In the **Lookup Response Field** , enter the value: `data` (you should see it in the drop down recommended options).

4. In the **Source Record Field** , enter: _`fields.updatedInventory`_

 ![Screenshot 2025-10-03 at 4.54.38 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/a/a78ff709af5d45a91257c709f993ffc3fd3d6956.png)

1. Click **Preview** to confirm the mapping works as expected. You should be able to see the all the inventory data from the inventory table show up under the field called updatedInventory.

 ![Screenshot 2025-10-03 at 4.55.16 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/b/b099cef050155315e0eba53acbf90d3474ddaee8.png)

1. Select the **Save and Close** button.

> 🛠 **PRO TIP**  
> This step effectively " **joins**" the quantity from the inventory table into your product record using SKU as the unique identifier. Now this is ready to be used downstream (in Slack) so you can customise your messages as per your liking.

## **Step 3: Adjust the Slack Mapping**

1. In your flow, go to the **Slack import step**.

2. Click on the **mapping icon**.

3. Find the **text** field in the mapping table.

4. Replace the current source value with: _`{{fields.[Product Name]}} — *{{fields.updatedInventory.[0].fields.[Quantity on Hand]}} units in stock*`_

This new expression combines the product name and real-time inventory quantity.

Since you previously mapped the lookup response to `fields.updatedInventory`, the `{{fields.updatedInventory.[0].fields.[Quantity on Hand]}}` reference will now correctly show stock levels in the Slack message.

1. Click on **Preview** and see if the filter works and shows you the product name and real time inventory to ensure everything works as expected.

2. Click **Save and Close**.

 ![Screenshot 2025-09-15 at 3.25.20 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/3/3fb7d92e90d7eabfa687781383cda1ed7925ff58.png)

1. Click **Run** and check your slack messages. You should see the Product name followed by the quantity on hand.

  

> 🏅 **SUCCESS**  
> You now have a lookup set up that’s going to allow you to use your inventory data. In your slack you should see the name of the product and your quantity on hand from your inventory table.

  

# **Module 5: Decision Time – Route Based on Inventory Thresholds**

> ⏱ **ESTIMATED TIME** : 10 minutes

## What You’ll Learn

In this lab, you’ll introduce conditional branching logic to make your flow dynamic and responsive to real-time data. Using Celigo’s flow control tools, you’ll customize how your integration behaves based on inventory thresholds. You’ll learn how to:

- Add a branch to compare inventory to a defined threshold.
- If stock is below threshold, send a “low inventory” alert to Slack.
- If above, send alert to a different Slack channel

* * *

## Scenario

At ACME Chocolatiers, your operations team needs to act quickly when inventory runs low. While they appreciate seeing all product updates, they specifically want **urgent Slack alerts** when stock drops below a critical level. Products with healthy inventory don’t need as much attention.

As the integration developer, your task is to enhance the flow by adding conditional logic. If the inventory for a product is **below a set threshold** , the flow should send an alert to the **Low stock alert Slack channel**.

This way, your alerts become more relevant and your team can prioritize only the items that need attention.

## **Step 1: Add a Branch Based on Inventory Threshold**

1. Select the **➕ icon** after the **Inventory Lookup** step and select **“Add branching”**.

 ![](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/a/a37b63e23068a3f5b6aadd6cab218c537d2e15ef.png)

1. Name the branch: Product alerts and notifications

2. Ensure the option **“First matching branch”** is selected.

3. Now we will define Branch Logic

- **First dropdown** : select `record.fields.updatedInventory.0.fields.[Quantity on Hand]`.

- **Second dropdown** : ensure it's set to **Field** and **Number**.  

- **Third dropdown** choose **: Is less than**.

- Before the fourth drop down let's look at the **Fifth dropdown** : ensure it’s still set to **Field** and data type as **Number**.

- **Fourth dropdown** : select `record.fields.updatedInventory.0.fields.[Reorder Point]`.

 ![Screenshot 2025-10-03 at 5.01.56 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/0/00cf8a9c7e639439f12502860ba9f6cc4d1d0500.png)

1. Click **Preview** to review the logic and you can see which branch each record will flow through. Since we're going to see only one of the records, it might flow though the incorrect branch. We will adjust that later.

2. If it looks good, click **Save and Close**.

> 🛠 **PRO TIP**  
> Suppose you have added your condition in 1.0 rather than 1.1, that’s absolutely fine. You can simply **drag and drop** the Product notification destination to the correct branch. We want to ensure that the Condition logic does not in any way impact our ongoing product notification destination.

 ![Screenshot 2025-10-03 at 5.05.17 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/4/434d5edc7fa3f477cedaca7023add4d5873d0886.png)

**Now you’ve set up your branch, the next step is to ensure that the new branch has a destination.**

## **Step 2: Set Up a Slack Channel and Connect It to Your Branch**

1. Open **Slack** and select the ➕ icon on the bottom-left sidebar to create a new channel. Choose **Blank channel** and click **Next**.

- Name the channel: **low-stock-alerts**
- Skip any additional steps (like inviting users) for now.

1. Go back to the Celigo platform within the Flow builder.

2. We can create a clone of the existing Product notification destination

3. Once the drag and drop has been completed and the clone is in the correct branch - click on the Cloned destination and make the following changes.

4. Select the **Save and Close** button.

## **Step 3: Map the Alert Message to Slack**

1. In your flow, locate the Slack import step named **Low stock notification**.

2. Select the **Mapping** icon.

 ![Screenshot 2025-10-03 at 5.14.25 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/c/c88131a11ca718193ae6cc62c6cd22e4a076066f.png)

1. In the mapping screen:

2. In the next row: For the destination record text enter the Source record field on the right as: `Low stock alert: {{fields.[Product Name]}} has only {{fields.updatedInventory.[0].fields.[Quantity on Hand]}} units in stock. Reorder point: {{fields.updatedInventory.[0].fields.[Reorder Point]}}`

> 📗 **TERM**  
> What does this expression do?  
> This is a Handlebars expression that dynamically pulls values from each record in the flow:
> 
> - `fields.[Product Name]` inserts the product’s name
> - `fields.updatedInventory.[0].fields.[Quantity on Hand]` inserts the current inventory level from the updatedInventory part of the JSON which was joined using SKUs in the result mapping steps earlier.
> - `fields.updatedInventory.[0].fields.[Reorder Point]` inserts the reorder point.  
> Together, this creates a real-time Slack alert for low-stock products.

1. Select the **Save and Close** button.

 ![Screenshot 2025-10-03 at 5.27.51 PM](https://us1.discourse-cdn.com/flex001/uploads/celigo/original/2X/7/7793a6da7c61353df5a04609df16740da1c2dd90.png)

1. Click **Run** to test the completed flow. You should see a notification on both slack channels. The channel titled **#low-stock-alert** will now show you the product that's low in stock and requires a reorder.

> 🏅 **SUCCESS**  
> Congratulations! Your flow is now fully dynamic! You've successfully implemented conditional logic that routes product alerts based on real-time inventory levels.  
> If a product’s inventory falls **below its reorder point** , a message is sent to the #low-stock-alerts Slack channel, giving your teams immediate visibility into items that need attention.

> 🛠 **PRO TIP**  
> **Use AI to generate Flow documentation** - Select the description icon next to the flow name and let AI generate a description for your flow. This allows you to better communicate the working of your flow with your co-workers.

# **Completion**

Congratulations! You've finished your first Builder Lab and are now ready to start solving real world automation challenges. You've earned a chocolate bar!

Please let us know you completed this lab by replying to this topic below with " **COMPLETED**". We'll validate and then mark the badge on our profile here in Connective. We'd also love to hear any other feedback you might have, so please do tell.

If you are ready to take the next step, we suggest as the next follow-up to tackle lab 201 - Getting Started with API Builder. It extends on many of the concepts you've just learned.
