UiPath Provisioning Settings
This section contains the information used to create, update, enable, disable, and delete accounts by triggering RPA workflows.
Important
- UiPath cannot run multiple workflows simultaneously. This may affect the Bulk Provisioning Operations.
- Data Fabric and the CSV file must contain an attribute named
accountStatus(a boolean attribute whereTRUEmeans the account is enabled) exists in the data and that it is mapped to set the Account Status (Enabled/Disabled) in SailPoint. This attribute is only required if you want to use the Enable/Disable operation.
Folder Configuration
Configure the Provisioning Organization Unit ID if your provisioning workflows are in a folder other than the default Organization Unit ID folder.
Screenshot
-
Enter your Provisioning Organization Unit ID if your provisioning workflows are in a folder other than the default Organization Unit ID folder.
For more information, refer to Organization Unit ID.
-
Select Save.
Operation Configuration
Configure which UiPath processes to trigger for each provisioning operation. You can find release keys in UiPath Orchestrator under Automations > Processes. Release keys are unique identifiers for specific RPA workflow processes in UiPath Orchestrator. Each provisioning operation requires its own workflow and corresponding release key.
Screenshot
- Enter the UiPath process release key in the CREATE Release Key field to trigger when creating new accounts.
- Enter the UiPath process release key in the UPDATE Release Key field to trigger when updating accounts.
- Enter the UiPath process release key in the ENABLE Release Key field to trigger when enabling accounts.
- Enter the UiPath process release key in the DISABLE Release Key field to trigger when disabling accounts.
- Enter the UiPath process release key in the DELETE Release Key field to trigger when deleting accounts.
- Select Save.
Advanced Polling Settings
Configure settings to adjust polling when connecting to the source. This may help resolve timeout errors that occur during provisioning operations.
Screenshot
- In the Max Poll Attempts field, enter the maximum number of times the connector should check the job status. If the job doesn't complete after the configured number of checks, it times out.
- In the Poll Interval in Seconds field, enter the wait time between job status checks. Increase this value if your workflows take longer to complete.
- Select Save.
Operation-Specific Guidelines
This section provides detailed guidance for provisioning operations in the UiPath RPA platform.
Best Practices
- Return a clear result: Always set
Statusand, on failure, set amessageso Support can troubleshoot. The response should have the required attributes. - Always return
OutputArguments: The connector requiresOutputArgumentswithStatus. SetStatus: trueon success andStatus: falseon failure. - Return the created identity: Always include the identity attribute in
Attributeswith the final value. - Idempotency: If the same operation is retried, consider designing the target system or workflow so it does not create duplicates (e.g. "create if not exists" or use a stable identifier).
- Errors: On failure, set
Status: falseand put a short, user-friendly reason inmessage; avoid exposing sensitive details. - Logging: Log input and outcome (success or failure) in UiPath for auditing and support; avoid logging secrets in plain text. Log identity, which buckets had data, and outcome; avoid logging secrets.
-
Atomic Operations - If the create operation partially fails, for example if the account is created but role assignment fails:
- Option A: Rollback the partially created account then set
Status = false. - Option B: Complete what's possible, then set
Status = true. Note the issue in a message.
Note
SailPoint recommends that you rollback for consistency.
- Option A: Rollback the partially created account then set
-
Apply set / add / remove correctly: In the target system, implement
Setas "replace value",Addas "append to list",Removeas "remove these values from list" so the behavior matches the connector's intent. - Return current state: Prefer returning the updated account's attributes in
Attributes(at least identity + any attributes your workflow changes) so the connector can merge and show up-to-date data.
CREATE Operations
The connector starts a UiPath job (release) when a create account request is run; the workflow receives input, creates the account in the target system, and returns a result. Configure the create release in the connector config (e.g. createReleaseKey). The workflow must be the one attached to that release.
Input Arguments
The connector sends a single string in the job's InputArguments. When the workflow parses it, it will be a JSON object (flat key-value).
The input contains one key per attribute from the provisioning request. Names and sets of attributes depend on the account schema and what the request contains. For example, Email, displayName, Roles, etc.
The connector does not send the following:
- Null or empty string values
- Reserved names used only for output. Names such as
Status,message, orAttributes.
The workflow can expect the following value types:
- Strings
- Arrays of strings
- Integers
- Booleans
The workflow receives the same attribute names as in the schema (e.g. Email, accountId). The identity attribute's name is defined in the connector's account schema.
Input Arguments Example
Note
The exact keys depend on the schema and request.
Workflow Responsibilities
- Validate Input - Check all required fields are present.
-
Check for Duplicates
- Search the target system for an existing account with same email or username.
- If one exists, set
Status = falseand return an error message. For example: "Account with email john.doe@company.com already exists"
-
Create Account
- Go to the user creation interface.
- Fill in all the provided attributes.
- Submit form / call API.
- Wait for confirmation.
-
Assign Initial Entitlements (if specified)
- Add the user to their specified roles/groups.
- Assign default permissions.
-
Verify Creation
- Search for newly created accounts.
- Confirm that they exist and they are active.
- If verification fails, set
Status = false.
-
Capture Account Details
- Scrape all account attributes from the confirmation page or the API response.
- Critical: Capture system-generated fields (account ID, timestamps).
- Critical: Ensure the identity attribute is captured.
-
Return Output
- Set
Status = trueif successful. - Include a success message.
- Include complete account data in the Attributes field.
- Set
Output Arguments
The connector reads the job's OutputArguments after the job completes. OutputArguments must be a JSON string that parses to an object with the following:
| Field | Type | Required | Description |
|---|---|---|---|
| Status | boolean | Yes |
If |
| message | string | Recommended | Short reason or detail, especially when Status is false. |
| Attributes | string | Yes | A JSON string that, when parsed, is an object of account attributes. It must include the identity attribute with the created account's ID. Other attributes returned here can be used to show the created account in the identity system. The identity attribute must be present in the parsed Attributes object and must have a non-empty value.Note: The connector uses this to recognize the created account. The exact name is defined in the connector's account schema. Example:{"Status":true,"message":"Account created","Attributes":"{\"Email\":\"john.doe@example.com\",\"displayName\":\"John Doe\",\"Roles\":[\"Admin\"]}"} |
Output Success Example
{
"Status": true,
"message": "Account john.doe@company.com created successfully in SalesApp",
"Attributes": "{\"email\":\"john.doe@company.com\",\"username\":\"jdoe\",\"firstName\":\"John\",\"lastName\":\"Doe\",\"department\":\"Engineering\",\"jobTitle\":\"Senior Developer\",\"manager\":\"jane.smith@company.com\",\"status\":\"Active\",\"roles\":[\"Developer\",\"User\"],\"accountId\":\"SA-12345\",\"createdDate\":\"2025-01-10T14:30:00Z\",\"lastModifiedDate\":\"2025-01-10T14:30:00Z\"}"
}
Output Failure Example - Duplicate
{
"Status": false,
"message": "Cannot create account: Email john.doe@company.com already exists in SalesApp (Account ID: SA-11111)",
"Attributes": "{}"
}
Output Failure Example - System Error
{
"Status": false,
"message": "Failed to create account: Target system returned error 'Invalid department code: ENG01'. Please verify department value.",
"Attributes": "{}"
}
UPDATE Operations
The connector starts a UiPath job (release) when an update account request is run. The workflow receives the account identity and what changed (set / add / remove), applies the changes in the target system, then returns a result.
Configure the update release in the connector config (e.g. updateReleaseKey). The workflow must be the one attached to that release.
Input Arguments
The connector sends a single string in the job's InputArguments. When the workflow parses it, it will be a JSON object with a structured shape (not a flat list of attributes like CREATE).
Top-level fields:
| Field | Type | Description |
|---|---|---|
| identity attribute | string | Same value as accountId; the name comes from connector's schema (e.g. Email). |
| attributesToSet | object | Key-value: attributes to set (replace). Values can be string, number, boolean, or array of strings. |
| attributesToAdd | object | Key-value: multi-valued attributes - add these values to the existing list. Values are typically arrays of strings. |
| attributesToRemove | object | Key-value: multi-valued attributes - remove these values. Values are typically arrays of strings. |
| operation | string | Always UPDATE for this workflow. |
| timestamp | string | Request timestamp (e.g. for logging). |
Note
Only attributes that exist in the connector's account schema are included. Identity is sent once at the top level; it is not repeated inside the three buckets. Any of the three objects may be empty {} if there are no set/add/remove changes for that category.
Input Arguments Example
{"accountId":"user@example.com","Email":"user@example.com","attributesToSet":{"displayName":"New Name"},"attributesToAdd":{},"attributesToRemove":{"Roles":["OldRole"]},"operation":"UPDATE","timestamp":"Wed Feb 04 12:00:00 GMT 2026"}
Workflow Responsibilities
-
Locate Account
- Use the identity attribute value to find account in target system.
- If an account is not found, set
Status = falseimmediately. Example error: "Cannot update: Account john.doe@company.com not found"
-
Determine What Changed
- Checkout input attributes.
- Identify additions, such as new roles using
attributesToAdd. - Identify removals, such as removed roles using
attributesToRemove. - Identify modifications, such as department change using
attributesToSet.
-
Apply Changes
- Update only the specified attributes.
- Do not modify attributes not mentioned in input.
- Navigate to edit interface.
- Make changes.
- Save the changes.
-
Verify Changes
- Re-read account data from target system.
- Confirm changes applied correctly.
- If verification fails, consider rolling back the changes.
-
Capture Updated State
- Scrape all current account attributes.
- Critical: Include identity attribute.
- Include both changed and unchanged attributes (full account state).
-
Return Output
- Set Status = true if all changes applied.
- Describe what was changed in a message.
- Include complete account data in the Attributes field.
Output Arguments
The connector reads the job's OutputArguments after the job completes. OutputArguments must be a JSON string that parses to an object with the following:
| Field | Type | Required | Description |
|---|---|---|---|
| Status | boolean | Yes |
If |
| message | string | Recommended | Short reason or detail, especially when Status is false. |
| Attributes | string | Yes | A JSON string that parses to an object of account attributes. Must include the identity attribute (e.g. Email or accountId) with the updated account's ID (usually unchanged). Other attributes returned here are merged with existing account data so the identity system shows the latest state. Note: The identity attribute must be present in the parsed {"Status":true,"message":"Account created","Attributes":"{\"Email\":\"john.doe@example.com\",\"displayName\":\"John Doe\",\"Roles\":[\"Admin\"]}"} |
Output Success Example
{
"Status": true,
"message": "Account updated: Changed department from Engineering to Sales, changed job title to Sales Engineer, added Sales role",
"Attributes": "{\"email\":\"john.doe@company.com\",\"username\":\"jdoe\",\"firstName\":\"John\",\"lastName\":\"Doe\",\"department\":\"Sales\",\"jobTitle\":\"Sales Engineer\",\"manager\":\"bob.jones@company.com\",\"status\":\"Active\",\"roles\":[\"Developer\",\"User\",\"Sales\"],\"lastModifiedDate\":\"2025-01-10T16:15:00Z\"}"
}
Output Failure Example - Account Not Found
{
"Status": false,
"message": "Cannot update account: User john.doe@company.com not found in SalesApp. Account may have been deleted.",
"Attributes": "{}"
}
DELETE, ENABLE, and DISABLE Operations
The connector starts a UiPath job (release) when a DELETE, ENABLE, or DISABLE account request is run. The workflow receives the account identity, then it deletes, activates, or deactivates the account in the target system, and optionally returns a result.
Configure the DELETE, ENABLE, or DISABLE release in the connector configuration (e.g. deleteReleaseKey, enableReleaseKey, and disableReleaseKey). The workflow must be the one attached to that release.
Important
To use ENABLE or DISABLE account operations, ensure that an attribute named accountStatus is included in the data and that it is mapped to set the Account Status (enabled or disabled) in SailPoint. The attribute accountStatus is a boolean attribute where TRUE means the account is enabled.
Input Arguments
The connector sends a single string in the job's InputArguments. When the workflow parses it, it will be a JSON object with the account to modify as well as metadata.
Top-level fields:
| Field | Type | Description |
|---|---|---|
| identity attribute | string | The account to modify. The name comes from the connector schema (e.g. Email). This is the only identity field sent. |
| operation | string | DELETE, ENABLE, or DISABLE |
| timestamp | string | Request timestamp (e.g. for logging). |
Input Arguments Example
{"Email":"user@example.com","operation":"DELETE","timestamp":"Wed Feb 04 12:00:00 GMT 2026"}
{"Email":"user@example.com","operation":"ENABLE","timestamp":"Wed Feb 04 12:00:00 GMT 2026"}
{"Email":"user@example.com","operation":"DISABLE","timestamp":"Wed Feb 04 12:00:00 GMT 2026"}
Output Arguments
OutputArgumentsare required. The connector requires the job to complete successfully and to return validOutputArguments.- If
OutputArgumentsis missing, empty, or not valid JSON, the connector fails the request. -
OutputArgumentsmust be a JSON string that parses to an object containing:Status(boolean): Required. Must betruefor success. If Status isfalse, the connector fails the request and uses message as the error reason.message(string): Recommended (especially when Status isfalse); short reason for success or failure.
-
Attributes are not required. The connector does not read or validate an Attributes field for this operation.
Output Arguments Examples
DELETE
Success
Failure
ENABLE
Success
Failure
DISABLE
Success
Failure
Documentation Feedback
Feedback is provided as an informational resource only and does not form part of SailPoint’s official product documentation. SailPoint does not warrant or make any guarantees about the feedback (including without limitation as to its accuracy, relevance, or reliability). All feedback is subject to the terms set forth at https://developer.sailpoint.com/discuss/tos.


