# Conditional blocks, loop blocks and execution formulas

*Omnistudio Developer Study Guide · Integration Procedures · Last updated October 27, 2026 · https://www.certifyforce.com/study-guide/omnistudio-developer/integration-procedures/conditional-blocks-loop-blocks-and-execution-formulas*

How Execution Conditional Formulas, Conditional Blocks (with Is If Else) and Loop Blocks control which steps run in an Integration Procedure, how each loop iteration sees one item at its full path, how Loop Output returns results, and how list positions and IF formulas work in Set Values.

- Certification: Salesforce Omnistudio Developer
- Exam section: Integration Procedures
- Study guide: https://www.certifyforce.com/study-guide/omnistudio-developer

**Official exam objective:**

> Apply conditional logic, loops, and branching within IPs to control the execution path.

## What the exam expects

- Skip or run an action or block with an Execution Conditional Formula, and tell it apart from a Failure Conditional Formula.
- Group steps behind one condition with a Conditional Block, and build mutually exclusive branches with Is If Else, including a default branch.
- Configure a Loop Block's Loop List, read the current item with the full path, and return results with Loop Output.
- Combine and nest blocks correctly, and know which loop nesting the docs don't support.
- Read list items with `listnode|n` notation inside IF formulas.

Key terms: **Execution Conditional Formula** (runs before a step; FALSE skips it), **Conditional Block** (a block whose only job is to control flow), **Is If Else Block** (runs only the first element whose formula is true), **Loop List** (the JSON node holding the array a Loop Block iterates), **Loop Output** (key-value pairs a loop returns to later steps).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Execution Conditional Formula | TRUE runs, FALSE skips, none runs the step | [Execution logic](https://help.salesforce.com/s/articleView?id=xcloud.os_define_execution_logic_using_conditional_blocks_48515.htm&language=en_US&type=5) |
| Failure Conditional Formula | Runs after the step to flag a failure | [IP Actions](https://help.salesforce.com/s/articleView?language=en_US&id=xcloud.os_integration_procedure_actions_50165.htm&type=5) |
| Block formula | All block types have one; it gates everything inside | [IP Blocks](https://help.salesforce.com/s/articleView?id=xcloud.os_group_integration_procedure_steps_using_blocks_48498.htm&language=en_US&type=5) |
| Is If Else | First true element runs; blank last formula is the default | [Execution logic](https://help.salesforce.com/s/articleView?id=xcloud.os_define_execution_logic_using_conditional_blocks_48515.htm&language=en_US&type=5) |
| Is If Else location | A Conditional Block property | [Conditional Block](https://help.salesforce.com/s/articleView?id=xcloud.os_conditional_block.htm&language=en_US&type=5) |
| Nesting | Loop Block inside a Try-Catch or Cache Block is allowed | [IP Blocks](https://help.salesforce.com/s/articleView?id=xcloud.os_group_integration_procedure_steps_using_blocks_48498.htm&language=en_US&type=5) |
| Nested loops | Not supported; call another procedure with a loop (Managed Package page) | [Loop Blocks](https://help.salesforce.com/s/articleView?id=xcloud.os_process_arrays_using_loop_blocks.htm&language=en_US&type=5) |
| Loop item path | Full path, such as Products:Ids:Id (Managed Package page; the Data and Lists page shows the same one-item structure) | [Loop Blocks](https://help.salesforce.com/s/articleView?id=xcloud.os_process_arrays_using_loop_blocks.htm&language=en_US&type=5) |
| Default Loop Output | `{ "success": "OK" }` per item (Managed Package) | [Loop properties](https://help.salesforce.com/s/articleView?id=xcloud.os_loop_block_properties.htm&language=en_US&type=5) |
| List position | `listnode\|n` counts from one | [Set Values](https://help.salesforce.com/s/articleView?id=xcloud.os_set_values_for_integration_procedures_50310.htm&language=en_US&type=5) |
| Transform in a loop | Over 1000 items degrades performance | [Data and lists](https://help.salesforce.com/s/articleView?id=xcloud.os_ips_work_with_data_and_lists.htm&language=en_US&type=5) |

## Check yourself

- Why can't a Failure Conditional Formula keep a step from running?
- When does the last element of an Is If Else Conditional Block run?
- Why should Loop Output be used with care?
- What does the Loop List field hold?

## Sources

- [Define Execution Logic](https://help.salesforce.com/s/articleView?id=xcloud.os_define_execution_logic_using_conditional_blocks_48515.htm&language=en_US&type=5)
- [Integration Procedure Blocks](https://help.salesforce.com/s/articleView?id=xcloud.os_group_integration_procedure_steps_using_blocks_48498.htm&language=en_US&type=5)
- [Conditional Block](https://help.salesforce.com/s/articleView?id=xcloud.os_conditional_block.htm&language=en_US&type=5)
- [Integration Procedure Actions](https://help.salesforce.com/s/articleView?language=en_US&id=xcloud.os_integration_procedure_actions_50165.htm&type=5)
- [Work with Data and Lists](https://help.salesforce.com/s/articleView?id=xcloud.os_ips_work_with_data_and_lists.htm&language=en_US&type=5)
- [Process Arrays Using Loop Blocks (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_process_arrays_using_loop_blocks.htm&language=en_US&type=5)
- [Loop Block Properties (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_loop_block_properties.htm&language=en_US&type=5)
- [Concatenate List Items](https://help.salesforce.com/s/articleView?id=xcloud.os_concatenate_list_items.htm&language=en_US&type=5)
- [Set Values Action for Integration Procedures](https://help.salesforce.com/s/articleView?id=xcloud.os_set_values_for_integration_procedures_50310.htm&language=en_US&type=5)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 6 linked practice questions, and unlimited timed mock exams are included with the Omnistudio Developer pack (USD $19): https://www.certifyforce.com/practice-exams
