# IDP Connector in Processes

## What is the IDP Connector?

IDP connector integrates ProcessMaker IDP into ProcessMaker Platform enabling Process Designers to use IDP in their processes.

{% hint style="warning" %}
Remember before working correctly with IDP Connectors, your administrator must configure [IDP Settings](https://processmaker.gitbook.io/idp/processmaker-administrator-and-designer/idp-admin-settings).
{% endhint %}

## Add an IDP Connector to the Process Model

<details>

<summary>Permissions</summary>

Your user account or group membership must have the following permissions to configure an IDP connector to 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](https://processmaker.gitbook.io/idp/processmaker-administrator-and-designer/broken-reference) permissions or ask your Administrator for assistance.

</details>

Add an IDP connector from one of the following locations in Process Modeler:

* **Object menu:** The Object panel is to the left of the Process Modeler canvas. This menu contains Process model objects and [PM Blocks](https://docs.processmaker.com/docs/pm-blocks) which may be added to the Process model.
* **Objects bar:** The Objects bar is at the bottom of the Process Modeler canvas. This bar contains [pinned](https://docs.processmaker.com/docs/process-modeler#pin-and-unpin-objects) Process model objects which are easily accessible to add to the Process model.

{% tabs %}
{% tab title="Add from the Object menu" %}
Follow these steps to add an IDP connector from the Explorer panel to the Process model:

1. Ensure that the Explorer panel is visible. If not, click the **Add** icon <img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FfMTo0vprSGHdKqXEzKcM%2FAdd%20button%20bottom%20rail%20Process%20Modeler.png?alt=media&#x26;token=bdce229a-8b33-4355-8e3b-b081e5ef5998" alt="" data-size="line"> from the Objects bar to display the Explorer panel.
2. Locate the **IDP** object category from one of the following locations in the Explorer panel:
   * **Pinned Objects:** The **IDP** object category displays from the **Pinned Objects** section when it is pinned. This element type is not pinned by default.&#x20;
   * **Object Category:** The **IDP** object category displays from the **Object Category** section when it is not pinned.
3. Click the **IDP** object category.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FueXlOGAGBAXB8eEI83dc%2FIDP%20connector%20control%20Process%20Modeler%20-%20Designer.png?alt=media\&token=4f1f3b14-a733-4752-9569-52ec0f70566c)

   Its icon displays adjacent to the mouse icon to indicate this connector type may be placed into the Process model.
4. Click the location in the Process model to place this connector. If a Pool element is in your Process model, the IDP connector cannot be placed outside of the Pool element.\
   &#x20;![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FEBeagk4sO0KWWkwqMcUW%2FIDP%20connector%20Process%20Modeler%20-%20Designer.png?alt=media\&token=bcfce1fa-ee8c-4616-8e1f-d15081b1b37e)
   {% endtab %}

{% tab title="Add from the Objects bar" %}
Follow these steps to add an IDP connector from the Objects bar to the Process model:

1. Ensure that the IDP object category <img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FiGNIYgncuRiYUd3XpFKw%2FIDP%20Object%20Icon.png?alt=media&#x26;token=fe0d1675-7800-4136-a3a9-06dce9a0c23b" alt="" data-size="line"> is pinned to the Objects bar. If not, pin it.
2. Click the IDP object category's icon. This object's icon displays adjacent to the mouse icon to indicate this element type may be placed into the Process model.
3. Click the location in the Process model to place this element. If a Pool element is in your Process model, the IDP connector cannot be placed outside of the Pool element.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FEBeagk4sO0KWWkwqMcUW%2FIDP%20connector%20Process%20Modeler%20-%20Designer.png?alt=media\&token=bcfce1fa-ee8c-4616-8e1f-d15081b1b37e)
   {% endtab %}
   {% endtabs %}

{% hint style="info" %}

* [Customize the Appearance of a Process Model Object](https://docs.processmaker.com/docs/customize-the-appearance-of-a-process-model-object).
* [Copy Process Model Objects into the Clipboard](https://docs.processmaker.com/docs/process-modeler#copy-process-model-objects-into-the-clipboard).
* [Clone Process Model Objects Without the Clipboard](https://docs.processmaker.com/docs/process-modeler#clone-process-model-objects).
* [Delete Process Model Objects](https://docs.processmaker.com/docs/process-modeler#delete-process-model-objects).
  {% endhint %}

<details>

<summary>Adjust the location of the connector</summary>

After the connector is placed into the Process model, you may adjust its location in the following ways:

* Move the connector by dragging it to a new location.
* Select the connector with other elements and/or connectors, and then move them collectively by dragging them to new locations in relation to one another.
* Align and/or distribute the connector in relation to other selected elements and/or connectors.

*<mark style="color:red;">**Note**</mark>*: Moving an IDP connector has the following limitations in regards to the following Process model elements:

* **Pool element:** If the connector is inside of a Pool element, it cannot be moved outside of the Pool element. If you attempt to do so, Process Modeler places the connector inside the Pool element closest to where you attempt to move it.
* **Lane element:** If the connector is inside of a Lane element, it can be moved to another Lane element in the same Pool element. However, the connector cannot be moved outside of the Pool element.

</details>

<details>

<summary>Add boundary events</summary>

After adding the IDP connector, consider adding the following Boundary-type Process model elements to design business solutions when your best-case scenarios don't happen:

* [Boundary Timer Event](https://docs.processmaker.com/docs/boundary-timer-event) element
* [Boundary Error Event](https://docs.processmaker.com/docs/boundary-error-event) element
* [Boundary Signal Event](https://docs.processmaker.com/docs/boundary-signal-event) element
* [Boundary Conditional Event](https://docs.processmaker.com/docs/boundary-conditional-event) element
* [Boundary Message Event](https://docs.processmaker.com/docs/boundary-message-event) element

</details>

## Settings

The IDP connector has the following panels that contain settings:

* **Configuration** panel
  * [Edit the connector name](#edit-the-connector-name)
  * [Enter the Request variable containing the file(s) for processing](#enter-the-request-variable-containing-the-file-s-for-processing)
  * [Enter the document type to process](#enter-the-document-type-to-process)
  * [Configure a destination folder](#select-a-destination-folder-for-the-processed-documents)
* **Loop Activity** panel
  * [Specify characteristics to perform multiple instances of the connector](#specify-characteristics-to-perform-multiple-instances-of-the-connector)
* **Advanced** panel
  * [Edit the node's identifier value](#edit-the-nodes-identifier-value)

### Configuration Panel

#### Edit the Connector Name

A connector name is a human-readable reference for a Process model control. Process Modeler automatically assigns the name of a Process model connector with its connector type. However, a connector's name can be changed.

Follow these steps to edit the name for an IDP connector:

1. Select the IDP connector from the Process model.
2. Click the **Show Configuration** button <img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FBrS2XDk9G9NtfbA2fxEx%2FShow%20Configuration%20Settings%20Process%20Modeler%20-%20Designer.png?alt=media&#x26;token=ed00a617-a4ae-4a75-a094-997281d024d1" alt="" data-size="line"> in the upper right of the Process Modeler canvas to view the **Configuration** panel.
3. In the **Name** setting, edit the selected connector's name and then press **Enter**.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2F4QzmyWJe6JAJWGUISydc%2FName%20setting%20IDP%20connector%20-%20Designer.png?alt=media\&token=6d6a2103-9395-4ba8-9201-5bcabf0c5ff1)

#### Enter the Request Variable Containing the File(s) for Processing

During a Request, an IDP connector references a Request variable that stores the documents for processing. This Request variable may be linked to a File Upload control, where the documents were uploaded during a Task.

Follow these steps to enter the name of the Request variable that stores the documents to be processed by this IDP connector:

1. Expand the **Configuration** panel if it is not presently expanded, and then locate the **Variable Name** setting.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FGFEmh6ssrsl0ZYRp69KG%2FVariable%20Name%20-%20IDP%20Object%20Modeler.png?alt=media\&token=08ea3566-3cf2-40d5-9324-73c4b85a79fe)
2. In the **Variable Name** setting, enter the Request variable name that stores the documents for processing without using [mustache syntax](https://mustache.github.io/mustache.5.html), then press **Enter**.

#### Enter the Document Type to Process

Select or enter the document type the IDP connector uses to process the documents. This setting does not refer to a file type, such as `PDF` or `DOCX`. Instead, this setting refers to the `DOCUMENT_TYPE` domain in ProcessMaker IDP that has been previously trained to process documents in your Dossier. Note that this setting requires the value in`DOCUMENT_TYPE` Domain's **Name** setting, not its **Pretty Name** setting value.&#x20;

<details>

<summary>Where do I find <code>DOCUMENT_TYPE</code> in ProcessMaker IDP?</summary>

### Determine Which Document Type to Use

If necessary, log on to your ProcessMaker IDP instance to determine which Domain document type to use to process the document(s) for this IDP connector. Note that ProcessMaker IDP Administrator permissions are required to do this.&#x20;

Follow these steps to determine which Domain in ProcessMaker IDP is used to train the documents in your Dossier:

1. Log on to ProcessMaker IDP. If you need assistance logging on, contact your ProcessMaker IDP Administrator for assistance.
2. Click the initials of your user account in the lower-left in ProcessMaker IDP, and then select the **Go to ProcessMaker IDP Admin** option.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2F6yARSjCvvM8zOrx0A0S2%2FGo%20to%20Doculayer%20IDP%20Admin%20setting.png?alt=media\&token=2193d42b-71c1-41d0-b8b7-cbb923cdf198)
3. Click the **Domains** option from the left navigation pane.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FqgAMbOpGirAG5qUzfvs1%2FDomains%20option%20Doculayer%20IDP%20Admin.png?alt=media\&token=a5d9edba-35c8-4e60-89f3-06d79ffbffec)

   The **Domains** page displays.

   <div align="left"><figure><img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FiqZRCrxjM4V5vUXtGdOF%2FDomains%20page%20Doculayer%20IDP%20Admin.png?alt=media&#x26;token=c782fe88-086f-4dcc-9941-35f7f59f68cb" alt=""><figcaption></figcaption></figure></div>
4. Locate the `Document_Type` domain, click its options menu, and then select the **Edit** option.

   <div align="left"><figure><img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FDFREym3wzx2CZrCEpExC%2FDocument_Type%20Domain%20Doculayer%20IDP%20Admin.png?alt=media&#x26;token=8478ceb7-7ed3-42cc-944a-10285cc0fd81" alt=""><figcaption></figcaption></figure></div>
5. The **Edit Domain** page displays for the `Document_Type` Domain.

   <div align="left"><figure><img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FzmI8bI8AeXJUSLV5PoOt%2FEdit%20Domain%20Document_Type%20IDP%20Admin%20(1).png?alt=media&#x26;token=9efc9deb-9a84-4b7c-ad0a-5d8238efd2a0" alt=""><figcaption></figcaption></figure></div>
6. Click the **Enum values** option from the left-side pane. The **Enum values for Domain** page displays the enumeration values for the `Document_Type` Domain.

   <div align="left"><figure><img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2F01AWMPze6KeblhGtQ221%2FEnum%20values%20for%20Domain%20Document_Type%20Doculayer%20IDP%20Admin.png?alt=media&#x26;token=e9fe162f-4c90-4b44-b8b8-d69f287d9766" alt=""><figcaption></figcaption></figure></div>
7. Browse the list of values for the `Document_Type` Domain, and then locate the `Document_Type` Domain value that this IDP connector uses to process documents.
8. Click the options menu for your document type, and then select the **Edit** option.

   <div align="left"><figure><img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FR8Jv5INtOprx6WO4isnz%2FEdit%20Domain%20Document_Type%20value%20Doculayer%20IDP%20Admin.png?alt=media&#x26;token=bf81eec3-ad67-4d45-b859-f8bb79f8e476" alt=""><figcaption></figcaption></figure></div>
9. Make note of the **Name** value for your document type. Use this value for the IDP connector's **Document Type** setting. An example is highlight below. Do not use the **Pretty Name** setting value for your document type.

   <div align="left"><figure><img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FywqoFu9MXP5tfj3EBu4Z%2FDomain%20Document_Type%20Name%20Doculayer%20IDP%20Admin.png?alt=media&#x26;token=123bd10b-a67f-43bb-a093-2c1ec98557d4" alt=""><figcaption></figcaption></figure></div>

</details>

Follow these steps to select a document type:

1. Expand the **Configuration** panel if it is not presently expanded, and then locate the **Select Document Type** setting.
2. Do one of the following:
   * Select the **Use Request Variable** option, and enter a Request variable that contains a reference to the document type. Reference this Request variable without using [mustache syntax](https://mustache.github.io/mustache.5.html).\
     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2Fd6mIuXAKDGa43N7WTgY6%2FDocument%20Type%20Variable%20-%20IDP%20Object.png?alt=media\&token=1dbc7975-24f4-4a7d-beb1-ebfbd60bbd7b)
   * Ensure that the **Use Request Variable** setting is not selected, then choose a document type from the drop-down list. The name of the document type must already exist in ProcessMaker IDP. This setting does not create a new file type. For more information, see [IDP Settings](https://processmaker.gitbook.io/idp/processmaker-administrator-and-designer/idp-admin-settings).\
     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FhTLSYr2NMXHbWHWKAsqr%2FDocument%20Type%20-%20Dropdown.png?alt=media\&token=8949a68d-2623-4321-98ac-63e334514533)

#### Split documents

The Split Document(s) setting allows users to upload a multi-page PDF where each page is an independent document, such as multiple invoices in one PDF. The IDP Connector then splits the PDF into individual documents, creating a new document for every page when uploading to the IDP environment. This helps users manage and track multiple documents simultaneously, making workflows more organized and efficient. This is especially useful for large-scale operations where handling each document individually would be time-consuming.

Follow these steps to split a document:

1. Expand the **Configuration** panel if it is not presently expanded, and then locate the **Split Document(s)** setting.\
   ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2Ffa4deyZgF7COhFiLJwsZ%2FSplit%20Documents%20-%20IDP%20Connector.png?alt=media\&token=40fe9943-aaa1-405f-b08c-ff57538e82dd)
2. Select the **Split Document(s)** option.

{% hint style="info" %}
New documents are assigned sequential names (with an underscore) derived from the original file name, such as `NewAccountsQ2_1.pdf, NewAccountsQ2_2.pdf.`
{% endhint %}

#### **Select a destination folder for the processed documents**

Select the folder where ProcessMaker IDP should store the processed documents. Follow these steps to configure a destination folder:

1. Expand the **Configuration** panel if it is not presently expanded, and then locate the **Select Destination** setting.
2. Do one of the following:
   * Select the **Use Request Variable** option, and enter a Request variable that contains a reference to the destination folder in IDP where to upload the file. Otherwise, if the folder does not exist, it creates a new one in the IDP server. Reference this Request variable without using [mustache syntax](https://mustache.github.io/mustache.5.html).\
     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FwUq4GFD78pueZH8QHRfZ%2FDestination%20-%20Request%20Variable%20-%20IDP.png?alt=media\&token=f9aaa457-bb40-401c-beca-d70e03d9bb86)
   * Ensure that the **Use Request Variable** setting is not selected, then choose a destination folder from the drop-down list. These folders already exist in ProcessMaker IDP and are configured in the [destination folder settings for IDP.](https://processmaker.gitbook.io/idp/idp-admin-settings#select-idp-folders-for-saving-processed-documents)\
     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FD25iiv64GoyJszNjIRmY%2FDestination%20-%20Dropdown%20-%20IDP%20Object.png?alt=media\&token=8903332b-1d96-4ede-8002-edbfca4ef49d)

### Loop Characteristics Panel Settings

#### Specify Characteristics to Perform Multiple Instances of the Connector

Use the **Loop Characteristics** panel settings to specify how to perform multiple instances of this connector. The following loop modes are available for this connector:

* **No Loop Mode:** Select the **No Loop Mode** option to perform this connector's function only once.
* **Loop:** Select the **Loop** option to sequentially repeat this connector'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 connector'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 connector 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 element triggers.
  * ProcessMaker IDP does not allow multiple documents of the same name in the one folder. Therefore, an IDP connector cannot send more than one copy of a document to a folder while in a loop mode. To address this issue, use a different IDP connector to process the same document to a different ProcessMaker IDP folder.&#x20;
  * An element configured in this mode shows the **Loop** icon![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FqNODZ0gLKFS8E9WK7AnL%2FMulti-instance%20Loop%20mode%20Loop%20Activity%20icon%20-%20Process%20Modeler.png?alt=media\&token=af720d2a-ffc6-46af-8767-6dca8c99bbaf) in Process Modeler.
* **Multi-instance (Parallel):** Select the **Multi-instance (Parallel)** option to perform this connector'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 connector 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 connector 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 element triggers.
  * A connector configured in this mode shows the Multi-instance (Parallel) icon ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FzHipvjZENWRdcFNIevKM%2FMulti-instance%20Parallel%20mode%20Loop%20Activity%20icon%20-%20Process%20Modeler.png?alt=media\&token=2cf44c24-2f7f-4807-b970-37e9d26546c9) in Process Modeler.
* **Multi-instance (Sequential):** Select the **Multi-instance (Sequential)** option to perform this connector'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 element triggers.
  * A connector configured in this mode shows the Multi-instance (Sequential) icon ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FyyEle0Bv0trL5Z1B4CR3%2FMulti-instance%20Sequential%20mode%20Loop%20Activity%20icon%20-%20Process%20Modeler.png?alt=media\&token=5183364a-f78e-472f-92dc-58f462c72aea) in Process Modeler.

Follow these steps to specify characteristics to perform multiple instances of the connector:‌

1. Expand the **Loop Characteristics** panel. The **Loop Characteristics** setting displays. By default, **Loop Activity** is set to **No Loop Mode** and the function is performed only once.![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FVC0L7FR3ytKWxLLeWiHX%2FLoop%20Activity%20panel%20settings%20-%20Process%20Modeler%20.png?alt=media\&token=9d1089d9-5879-4d4c-b728-b04cdafd1086)&#x20;
2. From the **Loop Mode** setting, select one of the following options to perform this connector's function more than once.
   * **Loop:** Select the **Loop** option. The settings for this loop mode display:

     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FwbQDK5tmuA7xo1hBtcXT%2FLoop%20mode%20Loop%20Activity%20panel%20settings%20-%20Process%20Modeler.png?alt=media\&token=907489e2-57c7-4b62-b878-275559bd037b) &#x20;

     Follow these steps:

     1. In the **Maximum Iterations** setting, enter an integer value representing the maximum number of times this Task should be performed.
     2. 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. The settings for this loop mode display:

     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2F5KkgDt6XLrS5tHQKZGqU%2FMulti-instance%20Parallel%20mode%20Loop%20Activity%20panel%20settings%20-%20Process%20Modeler.png?alt=media\&token=a3b9f608-ca1d-413a-9bf7-9f2a5b3bbd46) &#x20;

     Follow these steps:

     1. 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.
     2. 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. The settings for this loop mode display:

     ![](https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FHB7Z7qLAWBD9lZxpKwN7%2FMulti-instance%20Sequential%20mode%20Loop%20Activity%20panel%20settings%20-%20Process%20Modeler.png?alt=media\&token=faa04568-7b81-4355-9e40-d4fb14f3920f)&#x20;

     Follow these steps:

     1. 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.
     2. In the **Exit Condition** setting, enter a condition in FEEL syntax. When this condition is True the loop activity is halted.
     3. 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**.

### Advanced Panel Settings

#### Edit the Node's Identifier Value

A Process node represents a component of a Process model, whether that is a BPMN element or a connector. Process Modeler automatically assigns a unique value to each Process node added to a Process model. A Process node's identifier value can be changed if it is unique to all other nodes in the Process model, including the Process model's identifier value.

{% hint style="warning" %}
All identifier values for all nodes in the Process model must be unique.
{% endhint %}

Follow these steps to edit the identifier value for an IDP connector:

1. Expand the **Advanced** panel if it is not presently expanded. The **Node Identifier** setting displays. This is a required setting. \ <img src="https://3188697301-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7FFioLROF5EqDMa8cWdB%2Fuploads%2FwmSIko14uHXlumitSko6%2FTask%20configuration%20Identifier%20Name%20Process%20Modeler%20-%20Processes.png?alt=media&#x26;token=6649981f-2f0b-412c-bce3-bd9ec067c0dd" alt="" data-size="original">
2. In the **Node Identifier** setting, edit the IDP connector's identifier to a unique value from all nodes in the Process model and then press **Enter**.
