--- title: "Add a Genie in a Process" slug: "add-a-genie-in-a-process" updated: 2025-12-06T02:16:51Z published: 2025-12-06T02:16:51Z canonical: "docs.processmaker.com/add-a-genie-in-a-process" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.processmaker.com/llms.txt > Use this file to discover all available pages before exploring further. # Add a Genie in a Process **Permissions** Your user account or group membership must have the following permissions to configure a FlowGenie object in the Process model unless your user account has the Make this user a Super Admin setting selected: Processes: Edit Processes Processes: View Processes See the [Process](/v1/docs/permission-descriptions-for-users-and-groups#description-of-platform-permissions) permissions or ask your Administrator for assistance. Add a FlowGenie object from one of the following locations in Process Modeler: - **Object Panel**: Located to the left of the Process Modeler, the Object Panel contains various process modeling objects. - **Object Bar:** Located at the bottom of the Process Modeler, the Object Bar contains [pinned](/v1/docs/process-modeler) Process modeling objects for quick access. Add from the Object panelAdd from the Object bar Follow these steps to add a FlowGenie from the Object panel to the Process model: 1. Ensure that the Object panel is visible on the left. If not, click the **Add** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image-1(1).png) from the Object bar at the bottom. 2. Click the **FlowGenie** object ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(131).png) from the Object panel to select it. 3. Click the location in the Process model to place this object. Follow these guidelines when placing this object: - If your process has a Pool object, the FlowGenie object cannot be placed outside of the Pool. - To place this object between two existing objects, follow [these instructions.](/v1/docs/sequence-flow-element#place-an-object-between-two-process-model-objects-already-connected-with-a-sequence-flow-element) ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(130).png) Follow these steps to add a FlowGenie object from the Object bar to the Process model: 1. Ensure that the object is pinned to the Object bar. If not, [see instructions to pin it](/v1/docs/process-modeler#pin-and-unpin-objects). 2. In the Object bar at the bottom center, click the object's icon. 3. Click the location in the Process model to place this object. Follow these guidelines when placing this object: - If your process has a Pool object, the FlowGenie object cannot be placed outside of the Pool. - To place this object between two existing objects, follow [these instructions](/v1/docs/sequence-flow-element#place-an-object-between-two-process-model-objects-already-connected-with-a-sequence-flow-element). ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(132).png) **Add boundary events** After adding an object to a process, consider adding the following events to handle exceptions: - [Boundary Timer Event](/v1/docs/boundary-timer-event) element - [Boundary Error Event](/v1/docs/boundary-error-event) element - [Boundary Signal Event](/v1/docs/boundary-signal-event) element - [Boundary Conditional Event](/v1/docs/boundary-conditional-event) element - [Boundary Message Event](/v1/docs/boundary-message-event) element **Adjust location and appearance** - [Move a Process Model Object.](/v1/docs/process-modeler#move-process-model-objects) - [Connect Two Process Model Objects with a Sequence Flow Element.](/v1/docs/sequence-flow-element#connect-two-process-model-objects-with-a-sequence-flow-element) - [Customize the Appearance of a Process Model Object.](/v1/docs/customize-the-appearance-of-a-process-model-object) - [Copy Process Model Objects into the Clipboard.](/v1/docs/process-modeler#copy-process-model-objects-into-the-clipboard) - [Clone Process Model Objects Without the Clipboard.](/v1/docs/process-modeler#clone-process-model-objects) - [Delete Process Model Objects.](/v1/docs/process-modeler#delete-process-model-objects) ### Configure a FlowGenie Follow these steps to configure a FlowGenie: 1. Select the object from the Process Model, then click the **Show Configuration** button ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(4).avif) in the upper right corner of the Modeler to view the **Configuration** panel. 2. In the **Genie Name** setting, enter a name for the Genie. 3. From the **Select the Genie** setting, select the Genie you want to use. 4. Optionally, click the **Open Genie** link to view and edit it in [FlowGenie Studio](/v1/docs/create-a-genie-in-the-flowgenie-studio). 5. From the **Variable Mapping** section, click the **Add** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(133).png) to enter a variable for storing the response returned by the Genie. This variable can then be referenced elsewhere in the process to utilize the Genie's response. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(134).png) ### Loop Activity Panel Settings Use the **Loop** Activity panel settings to specify how to run multiple instances of this object. The following loop modes are available: #### No Loop Mode Select the **No Loop Mode** option to perform this object's function only once. Follow these steps to specify characteristics to perform multiple instances of the object:‌ 1. Select the object from the Process model. Panels to configure this object display. 2. Expand the **Loop Activity** panel. By default, the **Loop Mode** setting is set to **No Loop Mode** and the function is performed only once. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(135).png) #### Loop Select the Loop option to sequentially repeat this object's function multiple times until an exit condition is `True`. This is useful when a function should be performed multiple times with the same set of data, such as, processing a credit card payment. This loop mode has the following characteristics: - The object's function is repeated until the exit condition is `True `or the maximum iterations limit is reached. - At any given time, only one instance of the object is active. The subsequent instance does not begin until the current instance completes. - The same exit condition evaluates at the end of each instance; however, value(s) of the Request variable(s) used in the exit condition can change during an instance resulting in the exit condition to eventually evaluate as `True`. - If any one instance of that function does not complete, workflow pauses. - All active instances are terminated if an interrupting boundary-type event object triggers. - An object configured in this mode shows the **Loop** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(137).png)in Process Modeler. Follow these steps to specify characteristics to perform multiple instances of the object:‌ 1. Select the object from the Process model in which to specify multiple instance characteristics. Panels to configure this object display. 2. Expand the **Loop Activity** panel to display the **Loop Mode** Setting. 3. From the **Loop Mode** setting, select the **Loop** option. The settings for this loop mode display: ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(136).png) 4. In the **Maximum Iterations** setting, enter an integer value representing the maximum number of times this Task should be performed. 5. In the **Exit Condition** setting, enter a condition in FEEL syntax. When this condition is True the loop activity is halted. #### Multi-instance(Parallel) Select the **Multi-instance (Parallel)** option to perform this object's Task multiple times in parallel a fixed number of times. This is useful when performing any action in bulk, such as sending an email to several people. This loop mode has the following characteristics: - Instances of the object are governed by the size of an array-type Request variable where a new instance is created for each item in this variable. For example, an array with 10 items will create 10 parallel instances of this function that each contains data from its respective array index. - All instances begin simultaneously when this object triggers; however, they perform their function independently of each other. - The function as a whole completes when all instances are complete. - The output from each instance can either be saved in the source Request variable or a new array-type Request variable. - All active instances terminate if an interrupting boundary-type event object triggers. - A object configured in this mode shows the Multi-instance (Parallel) icon in Process Modeler. Follow these steps to specify characteristics to perform multiple instances of the object:‌ 1. Select the object from the Process model in which to specify multiple instance characteristics. Panels to configure this object display. 2. Expand the **Loop Activity** panel to display the **Loop Mode** Setting. 3. From the Loop Mode setting, select the **Multi-instance (Parallel)** option. The settings for this loop mode display: ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(138).png) 4. In the **Request Variable Array** setting, enter the name of an array-type Request variable. The size of this array will determine how many times this loop iterates. 5. In the **Output Data Variable** setting, enter the name of an array-type Request variable in which to store the results of all instances. Each instance of the loop saves to a separate JSON object within the array of the specified Request variable. If the **Output Data Variable** setting is not configured, then the output data replaces the source data in the **Request Variable Array.** #### Multi-instance(Sequential) Select the Multi-instance (Sequential) option to perform this object's function multiple times sequentially a fixed number of times or until an exit condition is True. This is useful when sequentially repeating a function multiple times but with a different set of data each time. This loop mode has the following characteristics: - Instances of the function are governed by the size an array-type Request variable where a new instance is created for each item in this variable. For example, an array with 10 items will create 10 parallel instances of this function that each contains data from its respect array index. - At any given time, only one instance of the function is active. The subsequent instance does not begin until the current instance completes. - At the end of each instance an exit condition evaluates and the loop activity halts if the exit condition is True. - The function as a whole completes when all instances are complete. - The output from each instance can either be saved in the source Request variable or a new array-type Request variable. - All active instances terminate if an interrupting boundary-type event object triggers. - A object configured in this mode shows the Multi-instance (Sequential) iconin Process Modeler. Follow these steps to specify characteristics to perform multiple instances of the object:‌ 1. Select the object from the Process model in which to specify multiple instance characteristics. Panels to configure this object display. 2. Expand the **Loop Activity** panel to display the **Loop Mode** Setting. 3. From the Loop Mode setting, select the **Multi-instance (Sequential)** option. The settings for this loop mode display: ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/image(139).png) 4. In the **Request Variable Array** setting, enter the name of an array-type Request variable. The size of this array will determine how many times this loop iterates. 5. In the **Exit Condition** setting, enter a condition in FEEL syntax. When this condition is True the loop activity is halted. 6. In the **Output Data Variable** setting, enter the name of an array-type Request variable in which to store the results of all instances. Each instance of the loop saves to a separate JSON object within the array of the specified Request variable. If the **Output Data Variable** setting is not configured, then the output data replaces the source data in the **Request Variable Array**.