---
title: Flow Builder
slug: guide/flow-builder
description: Build advanced help flows and decision trees in Unaric Guide Flow Builder to guide users through complex Salesforce processes.
docTags: 
createdAt: 2025-08-22T00:40:20.499Z
---

You can use **Salesforce Flow** **Builder** to automate different NoticeBoard processes. Common use cases include:

- **Record-triggered flows**: React to record creation or updates (e.g., new Opportunities, Cases).
- **Scheduled paths**: Execute actions at specified times relative to date fields (e.g., auto-publish or auto-suspend).
- **Invocable Apex actions**: Use the NoticeBoard's invocable notice-cloning action within Flows for template-based notice creation.

![](https://api.archbee.com/api/optimize/10Nod6Ww95R3dPr0k0TCJ/KYI-szxWwnOP4_QAKv-Sc_image.png)

:::hint{type="warning"}
All legacy **Workflow Rules** and **Process Builder** automations have been deprecated; focus entirely on building **Flows** to create, publish, and suspend notices.
:::

## Flows examples

| **Flow Type**            | **Trigger / Scenario**                                                  | **Result**                                                                          |
| ------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| **Notice creation flow** | **Opportunity Stage** changes to *Closed Won.*                          | Clones template, populates tokens, and sends a notice to the **Opportunity Owner.** |
| **Auto-publish flow**    | Scheduled Path on Notice record when `Auto_Publish_Date__c` is reached. | Updates Status to *Published* and sets `Published_Date__c`.                         |
| **Auto-suspend flow**    | Scheduled Path on Notice record when `Auto_Suspend_Date__c` is reached. | Updates Status to Suspended and sets `Suspended_Date__c`.                           |

## Automation workflow

::::WorkflowBlock
:::WorkflowBlockItem
**Create a&#x20;*****template*****&#x20;Notice**

Simplify automated *set-piece* Notice creation by cloning a template Notice.
:::

:::WorkflowBlockItem
**Create cloning Process**

Use the Flow Builder to call the NoticeBoard API.
:::

:::WorkflowBlockItem
**Set API parameters**

Use NoticeBoard API call parameters to deﬁne template Notice,
Recipients and Token values.
:::

:::WorkflowBlockItem
**Activate**

Activate process automation to start publishing data-driven Notices.
:::
::::

## Create data-driven notices

### 1. Create a Template Notice

Before building your Flow, create a template Notice. This will help reducing the Flow complexity.

- **Recipients**: Leave blank for dynamic assignment in Flow.
- **Publication Settings**: Auto-publish/suspend dates will be ignored by the Flow's scheduled logic.
- **Approval**: Disable approvals on the template.
- **Tokens**: Insert merge tokens (\{1}, \{2}, …) where dynamic values belong. Tokens correspond to Flow variables in your `NoticeInfo` string. Examples for an automated Opportunity review alert:
  - **Banner Action Message**: **Alert: \{1}** (Opportunity Name)
  - **Summary**: **Opportunity at** **Stage: \{2}** (Opportunity Stage)
  - **Signatory**:**&#x20;\{3}** (Sales Manager)
  - **Detail**:  Please contact me to arrange closure planning strategy session for:
    - Account:**&#x20;\{4}** (Account Name)
    - Opportunity: **\{1}**
    - Stage: **\{2}**

### 2. Create a cloning Flow

As an example, this steps will show **how to create an Opportunity alert when Probability exceeds 50%**.

1. Navigate to **Setup** **>** **Process Automation >** **Flows.**
2. Click **New Flow** to open Flow Builder.
3. Select **Record-Triggered Flow** and click **Create**.
4. Choose the object you want as triggers the Flow. In this example, the **Opportunity** object.
5. Set the trigger to **A record is created or updated**.
6. Configure entry conditions to define when the Flow should run:&#x20;
   - **Field:** Probability **Operator:** Is Greater Than or Equal To **Value:** 50
   - Or use: **Field:** StageName **Operator:** Equals **Value:** Closed Won
7. Set **Optimize the Flow for:** Actions and Related Records.
8. Click **Done** to save the trigger settings.

### 3. Add an Action Element (Call the NoticeBoard API)

1. From the Flow canvas, click the **+** icon to add an element.
2. Select **Action**.
3. Under the **Apex Action** category, search for and select your NoticeBoard Apex class (e.g., `ianb__NoticeBoardAPIs`).
4. **Label:** Clone and Publish Notice
5. **API Name:** **CloneAndPublishNotice** (will auto-populate).

### 4. Set input values

For the **NoticeInfo** input variable:

1. Click the **Value** field.
2. Select **Formula**.
3. Enter this formula to construct the NoticeInfo string and click **Done&#x20;**&#x74;o finish:

:::BlockQuote
"a1b2c3d4e5f6g7h8i9" /\* Replace with your Template Notice ID \*/
\+
"^" +
\{!$Record.OwnerId} /\* Opportunity Owner ID for recipient \*/
\+
"^" +
TEXT(\{!$Record.Name}) /\* Token 1: Opportunity Name \*/
\+
"\~" +
TEXT(\{!$Record.StageName}) /\* Token 2: Opportunity Stage \*/
\+
"\~" +
TEXT(\{!$Record.Owner.Manager.Name}) /\* Token 3: Sales Manager \*/
\+
"\~" +
TEXT(\{!$Record.Account.Name}) /\* Token 4: Account Name \*/
:::

**Notes:**

- Replace a1b2c3d4e5f6g7h8i9 with your actual Template Notice ID
- Adjust recipient logic (\{!$Record.OwnerId}) as needed
- Modify token values to match your template's token positions
- Use ^ to separate Template ID, Recipients, and Tokens
- Use \~ to separate individual token values

### 6. Save and activate the Flow

1. Provide a **Flow Label, Flow API Name,&#x20;**&#x61;nd **Description**.
2. Click **Save&#x20;**&#x61;nd **Activate** to make the Flow active.

## Schedule publication

Use **Scheduled Paths** in your record-triggered Flow to handle timed publication. For more information about this feature, see Salesforce's documentation article on [Schedule Paths](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_scheduled_path.htm).

### 1. Create the base Flow

1. Navigate to **Setup** > **Flows** > **New Flow** > **Record-Triggered Flow**.
2. Choose the **Notice** object (e.g., Notice\_\_c) as the trigger object.
3. Set **A record is created or updated** as trigger.
4. Configure entry conditions:&#x20;
   - **Field:** Status\_\_c **Operator:** Equals **Value:** Scheduled
   - **Field:** Auto\_Publish\_Date\_\_c **Operator:** Is Null **Value:** False
5. Set **Optimize the Flow for:** Actions and Related Records.
6. Click **Done**.

### 2. Add Scheduled Path for publication

1. From the Flow canvas, click the **+** icon after the Start element.
2. Select **Add Scheduled Paths**.
   - **Path Label:** *Auto Publish Path*
   - **Time Source:** `Auto_Publish_Date__c` (your custom date/time field).
   - **Offset:** *0 Hours After*.
3. Click **Done**.

### 3. Add decision element (Optional)

1. On the Auto Publish Path, click the **+** icon.
2. Add a **Decision** element to verify publication criteria:&#x20;
   - **Decision Label:** Ready to Publish
   - **Outcome Name:** Can Publish
   - **Condition:** \{!$Record.Status\_\_c} **Equals** Scheduled
3. Click **Done**.

### 4. Update records for publication

1. From the Can Publish outcome, add an **Update Records** element.
2. **Label:** Set Notice to Published
3. **How to Find Records:** Use the Notice record that triggered the flow
4. **Set Field Values:**&#x20;
   - **Field:** `Status__c` **Value:***&#x20;Published*
   - **Field:** `Published_Date__c` **Value:** `{!$Flow.CurrentDateTime}`
5. Click **Done**.

## Automate suspension&#x20;

You can also use Scheduled Path for automatic suspension.

### 1. Add suspension Scheduled Path

1. From the Flow canvas Start element, click **+** again.
2. Select **Add Scheduled Paths**.
   - **Path Label:** Auto Suspend Path
   - **Time Source:** Auto\_Suspend\_Date\_\_c.
   - **Offset:** 0 **Hours After**.
3. Click **Done**.

### 2. Update records for Suspension

1. On the Auto Suspend Path, add an **Update Records** element.
   - **Label:** Set Notice to Suspended
   - **How to Find Records:** Use the Notice record that triggered the flow
2. **Set Field Values:**&#x20;
   - **Field:** Status\_\_c **Value:** Suspended
   - **Field:** Suspended\_Date\_\_c **Value:** \{!$Flow\.CurrentDateTime}
3. Click **Done**.

### 3. Save and activate

1. Provide a **Flow Label, Flow API Name,&#x20;**&#x61;nd **Description**.
2. Click **Save&#x20;**&#x61;nd **Activate** to make the Flow active.

