> ## Documentation Index
> Fetch the complete documentation index at: https://koreai.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Security and Control

> Configure Single Sign-On (SSO), API application scopes, authorization profiles, and custom scripts to secure and extend your AI for Process account.

## Single Sign-On (SSO)

AI for Process provides users with a default sign-in flow as the standard authentication method. For enhanced security and convenience, administrators can enable **Single Sign-On (SSO)** from the **Settings** console.

When SSO is enabled, users access their accounts using credentials managed by an external Identity Provider (IDP), providing a unified authentication framework.

SSO provides the following key benefits:

* **Secure Access**: Reduces password fatigue and the risk of phishing or weak passwords by focusing on one strong password.
* **Simplified User Management**: Administrators can manage access centrally, making it easier to grant or revoke access across accounts.
* **Improved User Experience**: Reduces the need for multiple logins.
* **Centralized Access Control**: Admins can monitor and enforce security policies across all applications more efficiently.

<Note>Only account owners and admins can enable or disable SSO from the **Settings** console.</Note>

AI for Process supports SSO for the following protocols and providers:

| Protocol                          | Provider                                                                                         |
| --------------------------------- | ------------------------------------------------------------------------------------------------ |
| [SAML](#saml)                     | [Okta](#okta-configuration), [OneLogin](#onelogin-configuration), [Other](#other-saml-providers) |
| [WS-Federation](#ws-federation)   | [Windows Azure](#windows-azure-configuration), [Other](#other-ws-federation-providers)           |
| [OpenID Connect](#openid-connect) | [Google account](#google-configuration)                                                          |

### How SSO Works

1. **User Initiates Login**: A user attempts to access their AI for Process account.
2. **Redirect to IDP**: The Service Provider (SP) redirects the user to an IDP login page for authentication.
3. **User Authenticates**: The user provides their credentials to the IDP.
4. **Authentication Tokens**: If successful, the IDP issues an authentication token.
5. **Token Exchange**: The SP uses this token to grant the user access to the application.
6. **Access Granted**: Once authenticated, the user can access the allowed AI for Process account(s) without logging in again during the same session.

### Enable SSO

To access the **Single Sign-On** page:

1. Log in → In AI for Process Modules top menu → Click **Settings**.
   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/aip-settings-access.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=a709446495290154342a78167d690867" alt="access settings" width="1356" height="418" data-path="ai-for-process/settings/images/aip-settings-access.png" />
2. Go to **Security & Control** > **Single Sign On** on the left menu.

If you're using this feature for the first time, the following screen appears.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/access-single-sign-on.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=e72b97be48584778e09199dab1de835c" alt="access sso" width="1022" height="482" data-path="ai-for-process/settings/images/access-single-sign-on.png" />

If SSO is already configured, the **Single sign-on** setup page is displayed, as shown below.

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/sso-set-up.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=ef0ae119580d4bbfac64136213c53c4c" alt="sso setup" width="1093" height="848" data-path="ai-for-process/settings/images/sso-set-up.png" />

Enabling SSO requires selecting the protocol and IDP and providing the [parameters](#configuration-parameters) to integrate with the IDP service.

#### Configuration Parameters

Configure the following parameters based on your protocol and IDP:

| Protocol       | IDP           | Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| -------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SAML           | Okta          | **Okta single sign-on url**: The SSO endpoint URL for *Okta* to enable Service Provider initiated SAML flow.<br />**Identity provider issuer**: The entity (URL) that provides the user identities, including the ability to authenticate a user.<br />**Certificate**: The public certificate stored by the service provider from the IDP is used to validate a user signature. You can add multiple (a maximum of 2) certificates and delete already added invalid certificates. |
| SAML           | OneLogin      | **SAML 2.0 endpoint**: The SSO endpoint URL for *OneLogin* to enable Service Provider-initiated SAML flow.<br />**Issuer url**: The same as the **Identity provider issuer** for Okta.<br />**X.509 certificate**: The same as the **Certificate** for Okta.                                                                                                                                                                                                                       |
| SAML           | Other         | **Single sign-on url**: The SSO endpoint URL for *the IDP* to enable Service Provider initiated SAML flow.<br />**Issuer url**: The same as the **Identity provider issuer** for Okta.<br />**Certificate**: The same as the **Certificate** for Okta.                                                                                                                                                                                                                             |
| WS-Federation  | Windows Azure | **Azure AD sign-on end point url**: The URL that AI for Process sends sign-on and sign-off requests using *Azure*. The response for the authentication is sent to the **Reply URL** defined in your *Azure* Active Directory configuration settings.<br />**Azure AD federation metadata document**: The URL for the federation metadata document used for authentication with *Azure* Active Directory.                                                                           |
| WS-Federation  | Other         | **AD sign-on end point url**: The same as **Azure AD sign-on end point url** for Windows Azure.<br />**AD federation metadata document url**: The same as **Azure AD federation metadata document for** Windows Azure.                                                                                                                                                                                                                                                             |
| OpenID Connect | Google        | No additional configuration is required. Your users will be authenticated based on their valid Google credentials.                                                                                                                                                                                                                                                                                                                                                                 |

#### Steps to Enable SSO

To enable SSO on the **Settings** console:

1. Access the **Single sign on** page.

2. If no SSO is enabled, click **Enable SSO**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/enable-sso.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=af763de10266d0a8df9663f76c3c9690" alt="enable sso" width="670" height="556" data-path="ai-for-process/settings/images/enable-sso.png" />

3. If SSO is already enabled for a provider, click the **Enable SSO** tab and do one of the following:

   * Change and save the existing [parameters](#configuration-parameters) for the enabled SSO provider.
   * Disable the enabled SSO and set up a new configuration.
   * Select a different protocol/provider and complete the configuration.

4. Select the required protocol and SP. The default selections are **SAML** and **Okta**.

5. Configure the [parameters](#configuration-parameters) for one of the following SSO protocols and providers:

   * **SAML**: [Okta](#okta-configuration), [OneLogin](#onelogin-configuration), or [Other](#other-saml-providers). [Learn more](#saml).
   * **WS-Federation**: [Windows Azure](#windows-azure-configuration) or [Other](#other-ws-federation-providers). [Learn more](#ws-federation).
   * **OpenID Connect**: [Google](#google-configuration). [Learn more](#openid-connect).

6. Click **Save**.

A success message is displayed once the SSO setup is complete.

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/sso-configuration-updated-successfully.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=69e9e077f12e1f3c536625882d4785a7" alt="sso updated successfully message" width="750" height="168" data-path="ai-for-process/settings/images/sso-configuration-updated-successfully.png" />

Additionally, the timestamp of when you enabled SSO is displayed as shown below:

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/sso-timestamp.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=30f5ffbed2b7b1918ade50f9c4b33821" alt="sso timestamp" width="864" height="725" data-path="ai-for-process/settings/images/sso-timestamp.png" />

### SAML

Security Assertion Markup Language (SAML) is a protocol for web-based SSO that uses secure tokens instead of passwords. It allows IDPs and SPs to operate separately. When a user logs into a SAML-enabled app, the service provider requests authorization from the IDP, which authenticates the user and grants access to the application.

#### How SAML Works

SAML SSO works by transferring the user's identity from one place (the IDP) to another (the SP) through an exchange of digitally signed XML documents.

When a user logs into a system that acts as an IDP and tries to access their AI for Process account, the following happens:

1. The user accesses the remote app on the IDP portal using the sign-on endpoint URL, and the application loads.
2. The application identifies the user's origin (by application subdomain, user IP address, or similar) and redirects the user back to the IDP, asking for authentication. This is the authentication request.
3. The user either has an existing active browser session with the IDP or establishes one by logging into the IDP.
4. The IDP builds the authentication response in an XML document containing the user's username or email address, signs it using an X.509 certificate, and posts this information to the SP.
5. The SP, which already knows the IDP and has a certificate fingerprint, retrieves the authentication response and validates it using the certificate fingerprint.
6. The user's identity is established, and the user is provided with the AI for Process account access.

#### Okta Configuration

To configure SSO using SAML and Okta:

1. Go to AI for Process' **Single sign-on** page.
2. Select the **Enable SSO** tab.
3. Select **SAML** for **Sign-on protocol** and **Okta** for **SSO provider**.
   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/saml-okta-selection.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=2ed3b85edd40c13d42767f3380958daf" alt="saml-okta-selection" width="888" height="609" data-path="ai-for-process/settings/images/saml-okta-selection.png" />

<Note>If you already have the required parameters for Okta, move directly to Step 18.</Note>

4. Log in to the [Okta developer portal](https://developer.okta.com/login/).

5. On the dashboard, click **Applications** on the left menu.

6. Click **Create App Integration**.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/okta-create-app-integration.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=a1678749bd502dc50fbdd3d23dff009a" alt="okta create app integration" width="1052" height="543" data-path="ai-for-process/settings/images/okta-create-app-integration.png" />

7. In the **Create a new app integration** window, select **SAML 2.0** and click **Next**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/create-a-new-app-integration.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=17e526161877060372a06cf35f3d8e45" alt="create a new app integration" width="1093" height="622" data-path="ai-for-process/settings/images/create-a-new-app-integration.png" />

8. On the **Create SAML Integration** page, provide the **App Name** under **General Settings**, and click **Next**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/create-saml-integration.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=bca6563fbe0a5919b441c303d0ccb916" alt="create saml integration" width="883" height="612" data-path="ai-for-process/settings/images/create-saml-integration.png" />

9. Copy the following values from AI for Process' SSO setup page and paste them into Okta under **Configure SAML**:
   * **ACS url for SP initiated SAML flow**: Paste into *Single sign-on URL*.
   * **ACS url for IDP initiated SAML flow**: Paste into *Audience URI (SP Entity ID)*.

| Okta Parameter                  | Description                                                                                                                                               |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Single sign-on URL**          | The location where the SAML assertion is sent with an HTTP POST. This is often called the SAML Assertion Consumer Service (ACS) URL for your application. |
| **Audience URI (SP Entity ID)** | The application-defined unique identifier that is the intended audience of the SAML assertion. This is most often the SP Entity ID of your application.   |

10. Click **Next**.
11. Click **Finish** under **Feedback** on Okta's **Create SAML Integration** page.
12. Once the app is created, go to the **Sign On** tab and click **View Setup Instructions**.
13. On the **How to Configure SAML 2.0** for `<app-name>` application page, do the following from Okta into AI for Process:
    * Copy the **Identity Provider Single Sign-On URL** value and paste it into the **Okta Single Sign-On URL**.
    * Copy the **Identity Provider Issuer** value into the **Identity provider issuer**.
      <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/copy-Identity-Provider-Issuer.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=8957ca6d1713d029c13ae1c60f833a25" alt="copy identity provider issuer" width="688" height="556" data-path="ai-for-process/settings/images/copy-Identity-Provider-Issuer.png" />
14. Go to **Sign On** > **SAML Signing Certificates** on your Okta app.
15. Click **Download certificate** under **Actions** for the required certificate.
    <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/download-certificate-saml.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=2d67f9afa3798856ebe64704536de683" alt="download certificate" width="902" height="329" data-path="ai-for-process/settings/images/download-certificate-saml.png" />
16. Once the certificate is downloaded, open it in Notepad and copy the data between the **BEGIN CERTIFICATE** header and **END CERTIFICATE** footer.
    <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/okta-certificate-notepad.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=f1252bb85f48d8808000b66053022dfd" alt="okta certificate" width="722" height="522" data-path="ai-for-process/settings/images/okta-certificate-notepad.png" />
17. Paste the value into the **Certificate** field on AI for Process' SSO setup page.
    <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/paste-okta-certificate.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=0fc4a9b4b2172deefda530206e543eb4" alt="paste okta certificate" width="926" height="995" data-path="ai-for-process/settings/images/paste-okta-certificate.png" />

To add a new certificate, click **+ Add new**.

<Note>When multiple certificates are provided, the system uses the latest one. If the latest certificate is invalid, it automatically switches to other available certificates.</Note>

18. Click **Save**.
    Once SSO for Okta is complete, the system will redirect to the **Okta Sign in** page for AI for Process account authentication.
    <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/okta-sign-in-page.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=c6b18b308a9bcb8a498a8026c2407935" alt="okta sign in page" width="476" height="705" data-path="ai-for-process/settings/images/okta-sign-in-page.png" />

#### OneLogin Configuration

To configure SSO using SAML and OneLogin:

1. Go to AI for Process' **Single sign-on** page.

2. Select the **Enable SSO** tab.

3. Select **SAML** for **Sign-on protocol** and **OneLogin** for **SSO provider**.

4. Log in to the [OneLogin developer portal](https://app.onelogin.com/login).

5. Go to **Applications** > **Add Apps** to access your app.

   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/onelogin-add-app.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=a2e1e37ed93e33ea596c309cb539fc5b" alt="onelogin add app" width="2343" height="308" data-path="ai-for-process/settings/images/onelogin-add-app.png" />

   * To learn how to **add a new app**, see [Add a new app](https://onelogin.service-now.com/support?id=kb_article\&sys_id=9bf39e0047ccbd509d8dfd1f536d431c\&kb_category=e9866930db185340d5505eea4b9619b7#manage-add).
   * To learn how to **configure apps**, see [Configure apps](https://onelogin.service-now.com/support?id=kb_article\&sys_id=9bf39e0047ccbd509d8dfd1f536d431c\&kb_category=e9866930db185340d5505eea4b9619b7#config).

6. Search for your AI for Process app and click **Enter**.

7. Click your app to view the **Add App** page. Optionally, change the display name or the icons displayed to your users in the *OneLogin* portal, and then click **SAVE**. The AI for Process app has been added to your company apps for *OneLogin* and is listed on the app page.

8. Copy the following values from **SSO** > **Enable SAML2.0** on OneLogin and paste them into the relevant fields on AI for Process' SSO setup page:
   * **OneLogin SAML 2.0 Endpoint (HTTP)**: Paste into **SAML 2.0 endpoint**.
   * **OneLogin Issuer URL**: Paste into **Issuer URL**.
     <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/paste-onelogin-issuer-url.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=fbd7d033182db26a2de0000980245f9a" alt="paste one login issuer url" width="2195" height="983" data-path="ai-for-process/settings/images/paste-onelogin-issuer-url.png" />

9. In the **OneLogin X.509 Certificate** field, click **View Details**. The **Standard Strength Certificate (2048-bit)** page is displayed.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/onelogin-view-details.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=ed7539f2f4ad57c6bd0e0e9f740caf7e" alt="one login view details" width="1142" height="430" data-path="ai-for-process/settings/images/onelogin-view-details.png" />

10. In the **X.509 Certificate** section, copy the certificate data and then paste it into the **X.509 Certificate** field on AI for Process' SSO setup page.

<Note>Copy data after the **BEGIN CERTIFICATE** header and before the **END CERTIFICATE** footer.</Note>

To add a new certificate, click **+Add new**.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/add-new-x-509-certificate.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=8da0c933c7cb1b17503abfb894d218bb" alt="add new x 509 certificate" width="586" height="369" data-path="ai-for-process/settings/images/add-new-x-509-certificate.png" />

<Note>When multiple certificates are provided, the system uses the latest one. If the latest certificate is invalid, it automatically switches to other available certificates.</Note>

11. Copy the following field values from AI for Process' SSO setup page into the relevant fields in OneLogin:
    * ACS URL for SP Initiated SAML Flow.
    * ACS URL for IDP Initiated SAML Flow.
      <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/copy-acs-urls.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=c5e5fba283b12395bea138d6544c2c95" alt="copy acs urls" width="1094" height="336" data-path="ai-for-process/settings/images/copy-acs-urls.png" />

12. Click **Save** on AI for Process and OneLogin.

Once SSO for OneLogin is complete, the system redirects to the **OneLogin Sign in** page for AI for Process account authentication.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/onelogin-sign-in-page.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=d894f5e912f8c20eb21a248ababba788" alt="one login sign in page" width="492" height="715" data-path="ai-for-process/settings/images/onelogin-sign-in-page.png" />

#### Other SAML Providers

To configure SSO using SAML for other IDPs:

1. Go to AI for Process' **Single sign-on** page.

2. Select the **Enable SSO** tab.

3. Select **SAML** for **Sign-on protocol** and **Other** for **SSO provider**.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/other-sso-provider.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=22dbb6b98ce1302879b60b0ff8b33167" alt="other sso provider" width="1233" height="1017" data-path="ai-for-process/settings/images/other-sso-provider.png" />

4. Fetch the necessary SSO configuration parameters listed in the [Configuration Parameters](#configuration-parameters) table from your app's **Settings** page within the IDP developer portal.

5. Paste them into the relevant fields on AI for Process' SSO setup page.

To add a new certificate, click **+Add new**.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/paste-parameters-other-configuration.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=f3d2c94dd4ffc390b4ba638cee9ad0a4" alt="paste parameters for other provider" width="843" height="720" data-path="ai-for-process/settings/images/paste-parameters-other-configuration.png" />

<Note>When multiple certificates are provided, the system uses the latest one. If the latest certificate is invalid, it automatically switches to other available certificates.</Note>

6. Copy and paste **ACS url for SP initiated SAML flow** and **ACS url for IDP initiated SAML flow** values from AI for Process into the relevant app fields within the IDP's developer portal.
7. Click **Save**.

### WS-Federation

**WS-Federation** (Web Services Federation) is a protocol used for federated identity management. It allows the secure sharing of identity information across different security domains or systems. It enables Single Sign-On (SSO) by allowing users to authenticate with a trusted IDP and access services across different organizations or platforms without logging in multiple times.

#### How WS-Federation Works

When a user logs into a system that acts as an IDP and tries to access their AI for Process account, the following happens:

1. The relying party redirects the user to the IDP for authentication.
2. The IDP authenticates the user through credentials or another authentication mechanism.
3. **Security Token Issued**: Once authenticated, the IDP issues a security token containing the user's identity and claims.
4. **Token Sent to Relying Party**: The token is sent back to the relying party, which validates it.
5. **Access Granted**: The user is granted access to the requested service based on the verified token.

#### Windows Azure Configuration

To configure SSO using WS-Federation and Windows Azure:

1. Go to AI for Process' **Single sign-on** page.

2. Select the **Enable SSO** tab.

3. Select **WS-Federation** for **Sign-on protocol** and **Windows Azure** to **Configure SSO for WS-Federation**.

4. Open **Server Manager** on the computer running AD FS, then choose **AD FS** > **Workflows** > **AD FS Management**.

5. Copy **IdP URL** from your IdP metadata (FederationMetadata.xml). You can find your ADFS Federation Metadata file URL on the AD FS server through **ADFS Management** in **ADFS** > **Service** > **Endpoints** > **Metadata**. It should look like this:
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/copy-idp-url.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=32c8efb1bd5bc1ae9e230e0d4eaa2d6f" alt="copy idp url" width="1208" height="552" data-path="ai-for-process/settings/images/copy-idp-url.png" />

6. Paste this value into the **Azure AD sign-on end point url** field on AI for Process' SSO setup page.

7. Copy and paste [this](https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml) URL link into the **Azure AD federation metadata document** field on AI for Process' SSO setup page.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/paste-azure-parameters.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=6ffd44607564aab5c325a178abc11a56" alt="paste azure parameters" width="914" height="1016" data-path="ai-for-process/settings/images/paste-azure-parameters.png" />

8. Click **Save**.

#### Other WS-Federation Providers

To configure SSO using WS-Federation for other IDPs:

1. Go to AI for Process's **Single sign-on** page.

2. Select the **Enable SSO** tab.

3. Select **WS-Federation** for **Sign-on protocol** and **Other** to **Configure SSO for WS-Federation**.

4. Copy and paste the SSO endpoint URL from the IDP's portal into **AD sign-on end point url** on AI for Process' SSO setup page.

5. Copy and paste the URL for the WS-Federation metadata document from the IDP's portal into the **AD federation metadata document url** on AI for Process' SSO setup page.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/paste-ws-federation-data.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=f5663723fbb08a78ae089da61b41699f" alt="paste ws federation data" width="1028" height="692" data-path="ai-for-process/settings/images/paste-ws-federation-data.png" />

6. Click **Save**.

### OpenID Connect

**OpenID Connect** (OIDC) is an authentication layer built on top of the OAuth 2.0 framework that enables Single Sign-On (SSO) by providing a standardized way for applications to authenticate users and obtain user identity information. AI for Process currently supports Sign in with Google for this protocol.

#### How OpenID Connect Works

When a user logs into a system that acts as an IDP and tries to access their AI for Process account, the following happens:

1. The application redirects the user to the IDP for authentication.
2. The user logs in at the IDP portal.
3. IDP redirects the user back with an authorization code.
4. The application exchanges the code for ID and access tokens.
5. The application validates tokens and grants access.
6. Users can access other integrated applications without re-authenticating.

#### Google Configuration

To configure SSO using OpenID Connect and Google:

1. Go to AI for Process's **Single sign-on** page.

2. Select the **Enable SSO** tab.

3. Select **OpenId Connect** for **Sign-on protocol** and **Sign in with Google** to **Configure SSO for OpenId connect**.
   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/sign-in-with-google.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=20bdce67590499a5566ff4f53f35866b" alt="sign in with google" width="1542" height="524" data-path="ai-for-process/settings/images/sign-in-with-google.png" />

4. Click **Save**.

<Note>No further configuration is needed. Users will be authenticated using their Google account's username and password.</Note>

### Disable SSO

Disabling SSO removes the current configuration, reverts your account to the default sign-in flow, and disables SSO-based access through the configured provider.

You can still view the previously configured SSO parameters for a specific protocol and provider by clicking the **Enable SSO** tab.

1. [Access](#enable-sso) the **Single sign on** page.

2. Click the **Disable SSO** tab.
   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-disable-sso.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=cc0b3a90ade0ab2b608798ea7a387a6a" alt="click disable sso" width="1240" height="609" data-path="ai-for-process/settings/images/click-disable-sso.png" />

3. In the **Disable SSO** confirmation window, click **Yes**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/disable-sso-screen.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=5ed9552e85bff1b93c9181ceb9024a41" alt="disable sso screen" width="504" height="332" data-path="ai-for-process/settings/images/disable-sso-screen.png" />

The following screen is displayed after SSO is disabled.

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/enable-sso-screen.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=3d6abaf4a8932e5f672d24d96005459a" alt="enable sso screen" width="716" height="648" data-path="ai-for-process/settings/images/enable-sso-screen.png" />

### Exclude Users from SSO

The **Manage Users** feature lets the account owner exclude specific users from mandatory SSO, allowing them to use either the default sign-in or SSO. This is helpful in the following situations:

* An error occurs during the SSO provider configuration, and the system prevents the user from logging in.
* The user wants to bypass log-in via the configured SSO provider.
* Technical issues arise with the SSO provider.
* The SSO configuration profile has expired.
* Business policy changes at the provider prevent the configured SSO from functioning.

**Key Considerations**

* By default, the account owner is excluded from the SSO requirement and can choose between the SSO flow or the default sign-in flow during login. It is recommended to exclude at least one more account user.
* Excluded users can instantly switch to another account without signing in through SSO, if SSO is enabled.
* For users who are not excluded:
  * If SSO is enabled for the account, they must sign in via SSO.
  * If SSO is disabled, they can switch accounts directly without additional sign-in.

To exclude a user from the SSO requirement, follow the steps below:

1. [Navigate](#enable-sso) to the **Single Sign-on** page.
2. Type and add an email address or select from the dropdown in the **Manage Users** textbox.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/manage-users-sso.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=96447fb595842299151b82039f4a8e2e" alt="manage sso users" width="1157" height="927" data-path="ai-for-process/settings/images/manage-users-sso.png" />

You can add multiple users to the list, as shown below:

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/add-multiple-users-to-exclude.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=5598b006208f3459324b12565407d5d9" alt="exclude multiple users" width="966" height="607" data-path="ai-for-process/settings/images/add-multiple-users-to-exclude.png" />

3. Click **Save**.

A success message is displayed, and the SSO sign-in is made optional for the user.

#### Sign-In Flow for Excluded Users

During sign-in, the following screen is displayed for the excluded user.

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/screen-for-excluded-user.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=a35630970fb01bde170f6baa0db7c5f6" alt="screen for excluded user" width="1310" height="738" data-path="ai-for-process/settings/images/screen-for-excluded-user.png" />

When the user clicks **Continue**, one of the following happens:

When **SSO is enabled**, the following page is displayed.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/login-with-sso.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=0a0bafe50c6112e4641c81f4a0a1bfa7" alt="login with sso" width="541" height="312" data-path="ai-for-process/settings/images/login-with-sso.png" />

The user can do one of the following:

* Click **Continue** to log in using the configured SSO provider service's sign-in page, for example, OKTA, as shown below:

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/connect-to-okta.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=6d8de551bb29092efc86d88436d8ddf1" alt="connect to okta" width="495" height="588" data-path="ai-for-process/settings/images/connect-to-okta.png" />

* Click "**Having trouble logging in with SSO?**" to sign in using the default option (email and password, Google, Windows, etc.) set during AI for Process sign-up.

When **SSO is disabled**, the user is taken through the default sign-in flow (email and password, Google, Windows, etc.).

### Default Sign-in Flow

As an AI for Process admin, you can enable Single Sign-On (SSO) using a third-party provider. However, if your SSO security system fails or you forget your SSO credentials for your IDP, you can log in to AI for Process using either email sign-in or your default SSO provider.

***

## API Scopes

AI for Process introduces **API scopes** in the **Settings** console, moving from unrestricted management API keys to more secure, scoped API key-based application management.

Users can select specific scopes for managing workflows, models, and guardrails. This allows for the creation of internal applications with restricted access to only the necessary API endpoints. By limiting API access, this feature reduces security risks, allowing administrators to generate multiple API keys and ensure secure, controlled access for authorized personnel.

**Important Considerations for API Keys**

* **Scope-restricted access**: API keys grant access exclusively to their assigned scopes.
* **Unauthorized access**: Any attempt to access unassigned scopes is automatically rejected.
* **Multiple keys per app**: You can generate multiple API keys for a single app.
* **One key per app**: An API key cannot be shared across multiple apps.
* **Immutable keys**: API keys can be deleted, but cannot be modified after they are created.
* **Copy-once policy**: For security reasons, each API key can only be copied once.

Users can rename an app, modify its selected scopes, or delete the app as needed. Once the admin defines or updates the API scopes, the changes are applied platform-wide, ensuring consistent and controlled access to the APIs wherever they are used.

For roles and permissions for API-scoped apps, see [Module-wise Permissions and Access Levels](/ai-for-process/settings/role-management#module-wise-permissions-and-access-levels).

### Use Case: Scoped API Access for Banking Departments

A bank automates workflows and integrates various internal systems across different departments, including **Risk & Compliance**, **Customer Support**, and **Marketing**. This requires access to APIs with different scopes.

* **Risk & Compliance Department**: This team requires access only to models and workflows for generating reports from transaction logs and audit trails. The admin creates a scoped app that grants access to workflows and models. This prevents the team from accidentally accessing unrelated customer information available for guardrails.

* **Customer Support Department**: Support agents require access to monitoring AI customer interactions, but should not have access to risk and compliance workflows or model management. A scoped app ensures support teams stay within their operational boundaries.

By using API-scoped apps and API keys, the bank minimizes the risk of data exposure while maintaining security, ensuring compliance, and strictly regulating access to authorized system users.

### Supported API Scopes

| API Scope           | Description                                                                                                                                                                                                      |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Deploy workflow     | Deploy a specific workflow into an environment. It allows the user to control the deployment process either synchronously or asynchronously. [Learn more](/ai-for-process/workflows/overview#deploy-a-workflow). |
| Undeploy workflow   | Undeploy a workflow that is deployed in an environment.                                                                                                                                                          |
| Deploy Model        | Deploy an open-source or fine-tuned model in the ***Ready to Deploy*** state.                                                                                                                                    |
| Undeploy Model      | Undeploy a model from the environment.                                                                                                                                                                           |
| Import Model        | Import a model in chunks into the AI for Process environment.                                                                                                                                                    |
| Import workflow     | Import a new workflow into the system.                                                                                                                                                                           |
| Export Model        | Export a trained AI model from the system.                                                                                                                                                                       |
| Export workflow     | Export a workflow's configuration and associated data.                                                                                                                                                           |
| Deploy Guardrails   | Deploy pre-defined **guardrails** to enhance security, compliance, and content moderation in AI interactions.                                                                                                    |
| Undeploy Guardrails | Remove the previously deployed guardrails that regulate AI interactions.                                                                                                                                         |

### Implement API Scoping

To access **API Scopes**:

1. Log in → In AI for Process Modules top menu → Click **Settings**.
   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/aip-settings-access.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=a709446495290154342a78167d690867" alt="access settings" width="1356" height="418" data-path="ai-for-process/settings/images/aip-settings-access.png" />
2. Click **Security & Control** > **API Scopes** on the left navigation menu.

The key steps to implement API scoping include:

1. [Create an API app and assign scopes](#create-an-api-application): API-scoped apps have limited and specific permissions tied only to the API endpoints they need. Creating an API-scoped app enables you to restrict permissions, enhance security, better control and monitor access, and tailor the app specifically to meet the integration's needs.
2. [Create one or more API keys to access the app](#create-an-api-key): API keys for scoped apps provide secure, manageable, and auditable access control tailored to the app's needs, making access and usage safer and easier to track.

#### Create an API Application

To create an app:

1. Click **Create an API App** or **Create an App**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/create-an-api-app.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=bcb53d5911d64fb5e114ff51fe0eae72" alt="create api app" width="838" height="416" data-path="ai-for-process/settings/images/create-an-api-app.png" />

2. Click **Untitled app** and provide the app name.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/provide-app-name.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=a8a2e08881616a7d22a794380550e972" alt="provide app name" width="858" height="521" data-path="ai-for-process/settings/images/provide-app-name.png" />

3. Select the required scopes from the list.
   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/scopes-selection.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=3092f1d83725e691d81dac679050273b" alt="select scopes" width="802" height="564" data-path="ai-for-process/settings/images/scopes-selection.png" />

4. Click **Next**.

   A success message is displayed, and the following window is displayed. Follow the steps in [Create an API Key](#create-an-api-key) to complete the process.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/api-app-creation-success.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=bb929991a12ab048447b90610685f2bc" alt="success app creation" width="1016" height="580" data-path="ai-for-process/settings/images/api-app-creation-success.png" />

#### Create an API Key

To complete the app creation, create an API key:

1. Click **Create API Key**.

2. In the **Create new API key** dialog, provide a name and click **Generate Key**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/generate-your-new-api-key.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=93cdf9d80780e78148c906c4d4b44038" alt="generate new api key" width="450" height="325" data-path="ai-for-process/settings/images/generate-your-new-api-key.png" />

3. Once the key is successfully generated, click **Copy and Close** to copy the API key.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/create-new-api-key-window.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=0ec7b5b95520c6dc64b23a6d6f75cee7" alt="create new api key" width="404" height="418" data-path="ai-for-process/settings/images/create-new-api-key-window.png" />

A success message is displayed once the key is copied.

<Note title="Important information on API Keys">
  For security reasons, the API key is only shown once and is not stored or displayed again. Copy and save it in a secure location for future reference.

  **What Happens If You Lose It?**

  You'll need to revoke the old key and **generate a new one**. This could disrupt services if the key is in use.
</Note>

The API key is listed for the app, as shown below.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/api-keys-list-for-apps.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=ccfc9d871a51d4ab6e43048db4c8dd2e" alt="api keys list" width="824" height="598" data-path="ai-for-process/settings/images/api-keys-list-for-apps.png" />

4. Click **Done**.

The app summary displays:

* **Name**: The API app name.
* **Scopes**: The selected API scopes.
* **Created by**: The name of the user who created the app.
* **Created on**: The date when the app was created.
  <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/api-apps-list.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=ade31d9c2e6d1970403a25c1dc3aaef9" alt="apps list" width="1160" height="236" data-path="ai-for-process/settings/images/api-apps-list.png" />

### Manage API Apps and Keys

You can edit or delete an API app, including its name and scopes. However, you cannot edit an API key; you can only delete it.

#### Edit App

To edit an API app:

1. Hover over and click the **Edit** icon for the required app.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/hover-edit-api-scopes.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=3144645c23a5ef0eab1fc1d77f3d4f76" alt="access edit icon" width="1032" height="252" data-path="ai-for-process/settings/images/hover-edit-api-scopes.png" />

2. In the App's configuration window, do the following:

   * To change the app name, click and modify the title.

   * To change the scopes, click the **API Scopes** tab and select/unselect the listed scopes.
     <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/edit-api-app-name.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=a79ef9f896404179bdc34540a4595a85" alt="change api config" width="797" height="548" data-path="ai-for-process/settings/images/edit-api-app-name.png" />

   * To delete an API key, follow the steps below:
     * Click the **API Keys** tab.
     * Hover over and click the **Delete** icon for the required key.
       <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/hover-delete-api-key.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=6d07d1b3248580b7cc3cef4337c61571" alt="access delete icon" width="768" height="527" data-path="ai-for-process/settings/images/hover-delete-api-key.png" />
     * Click **Delete** in the confirmation window.

       <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/del-api-key.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=26fca2b984946c5fa68877dc8d79989c" alt="delete api keys" width="349" height="223" data-path="ai-for-process/settings/images/del-api-key.png" />

       <Warning>The key you are deleting will no longer function if it is in use. You must generate a new key.</Warning>

       The deleted key is removed from the app in the **API Keys** section and is no longer associated with the app.

3. Click **Save**.

A success message is displayed once the app is edited. The changes are updated in the summary page.

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/edit-success-message-api-app.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=44d5d258b4b24fe856c3748c460f18ab" alt="edit success message" width="1408" height="459" data-path="ai-for-process/settings/images/edit-success-message-api-app.png" />

#### Delete App

To delete an API app:

1. Hover over and click the **Delete** icon for the required app.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/delete-api-app-icon.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=b249b47c4fcd28179ffbeafd436dc620" alt="access delete" width="1244" height="197" data-path="ai-for-process/settings/images/delete-api-app-icon.png" />

2. Click **Delete** in the confirmation window.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/delete-api-app.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=3ab94a28342ac3acf686387f983f12bd" alt="delete api app" width="422" height="289" data-path="ai-for-process/settings/images/delete-api-app.png" />

A success message is displayed, and the app is removed from the list.

***

## Authorization Profiles

AI for Process offers a secure and streamlined way to manage authorization when integrating with external web services. By configuring **Authorization (Auth) Profiles**, users can enforce access control policies while ensuring data privacy and regulatory compliance.

Whether connecting to external or commercial models via custom APIs or integrating workflows through the AI or API node, the platform provides a structured framework to handle user authorization. This simplifies security configurations, strengthens access control, and enables smooth identity verification across various services.

Key capabilities of managing Auth Profiles on AI for Process include:

* **Defining Authorization Rules**: Specify auth methods and requirements, such as passwords, token fields, and custom authorization parameters.
* **Securing Access**: Ensure only authorized users or systems can connect to external services, protecting sensitive data from unauthorized access.
* **Profile Reusability**: Reuse Auth Profiles across multiple integrations and endpoints for consistency, reduced configuration effort, and streamlined maintenance.
* **Connection Testing and Validation**: Verify that identity and authorization tokens are correctly passed to external services, ensuring the integration is secure and functional.

To access **Authorization Profiles**:

1. Log in → In AI for Process Modules top menu → Click **Settings**.
   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/aip-settings-access.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=a709446495290154342a78167d690867" alt="access settings" width="1356" height="418" data-path="ai-for-process/settings/images/aip-settings-access.png" />
2. Click **Security & Control** > **Authorization profile** on the left navigation menu.

### Supported Auth Types

You can enable a single auth profile or create custom profiles tailored for accessing third-party web services. These profiles support the following authorization types:

#### OAuth V2

OAuth 2.0 (OAuth2) is a standard authorization framework that enables applications to obtain limited, secure, and token-based access to a user's account on an HTTP service, such as Google, Facebook, or GitHub without exposing the user's credentials. It supports multiple grant types, uses scopes for permissions, and enables long-term access with refresh tokens, making it ideal for API authentication.

**Key Features**

* **Secure, Token-Based Authorization** – Grants access without sharing user credentials, using short-lived access tokens.
* **Multiple Authorization Flows** – Supports different grant types (e.g., Authorization Code, Client Credentials) for various use cases.
* **Scope-Based Access Control** – Users can grant apps limited permissions (e.g., read-only access).
* **Refresh Token Support** – Enables seamless re-authorization without requiring user login.
* **Third-Party & Scalable Integration** – Widely adopted for API authentication, allowing secure third-party access (e.g., "*Sign in with Google*").

#### OAuth V2 Client Credentials

The Client Credentials flow is one of the OAuth 2.0 authorization grant types. It is primarily used in Machine-to-Machine (M2M) scenarios, where an application needs to access resources or perform operations on its own behalf — without user interaction.

**How it Works**

1. The client application authenticates with the Authorization Server by presenting its client ID and client secret.
2. Upon successful authentication, the Authorization Server issues an access token.
3. The client uses this token to authenticate API requests to the Resource Server.

**Key Features**

* **Client Credentials**: This flow uses the client's unique identifier (client ID) and a secret (client secret) to authenticate the application with the authorization server.
* **No User Interaction**: Unlike flows involving user authorization (e.g., authorization code flow), the client credentials flow doesn't require the user to log in or grant permissions.
* **Machine-to-Machine (M2M) Communication**: This flow is ideal for scenarios where one application needs to access resources owned by another application, such as microservices or server-to-server communication.
* **Resource Access**: The client uses the acquired access token to interact with the resource server and access protected resources.
* **Access Token**: The authorization server issues an access token, a short-lived credential that allows the client to access specific resources.

### Add an Authorization Profile

To add an auth profile:

1. Click **Create Authorization Profile** if this is your first auth profile.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-create-auth-profile.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=b16568cfb8746e2968b4ef53b52a448a" alt="create auth profile" width="404" height="424" data-path="ai-for-process/settings/images/click-create-auth-profile.png" />

   Otherwise, click **Add new auth**.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/add-new-auth-profile.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=266b4e78dd3604e9079dd7bed6920952" alt="add new auth profile" width="1180" height="263" data-path="ai-for-process/settings/images/add-new-auth-profile.png" />

2. In the **New Authorization Mechanism** dialog, select the required option for **Authorization Type**.
   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/select-oauthv2.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=8a9b418192caf4edd051dd82f67769bc" alt="select oauth v2" width="704" height="314" data-path="ai-for-process/settings/images/select-oauthv2.png" />

3. In the **Identity Provider Name** field, enter a name for the authorization type, which is mandatory.
   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/identity-provider.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=86d364e8fd01798efeca004b7dfac74c" alt="identity provider" width="785" height="246" data-path="ai-for-process/settings/images/identity-provider.png" />

4. Provide the values for the mandatory authorization fields. For details, refer to [Define Authorization Fields](#define-authorization-fields).

   If the mandatory fields are left blank, validation error messages appear, as shown below.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/form-validation-errors.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=cca0c32a03256a49e89999bdfac0fa85" alt="validation errors" width="666" height="674" data-path="ai-for-process/settings/images/form-validation-errors.png" />

5. (Optional) Click **+ Add Additional Field** to add additional fields for authorization. See [Add Additional Fields](#add-additional-fields).

<Note>If the default **Username** and **Password** fields do not meet your authorization requirements, you can add **custom fields** using additional fields or authorization IDP form fields to the authorization process. For example, if a **PIN code** is required in addition to the standard login fields, you can include it as an extra input for the end user.</Note>

6. (OAuth V2 only) Click **+ Add Authorization Field** to add additional auth fields to your profile. For more information, see [Add Authorization Fields](#add-authorization-fields).
7. Click **Save new Auth**.
   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/save-new-auth.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=12f7a3f144148f509968e93dc7a3ddb9" alt="save new auth" width="644" height="1372" data-path="ai-for-process/settings/images/save-new-auth.png" />

A success message is displayed, and the new auth profile is added to the **Authorization Profile** page.

#### Define Authorization Fields

Define the following fields to configure the OAuth2 profile:

<Note>Except for **Scope**, **Description**, **Refresh Token URL**, **Additional fields**, **Authorization fields**, and **Auth Error Status Code**, all the fields are mandatory.</Note>

| Field Name                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Mandate  | Auth Type                                |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------- |
| **Authorization Type**         | Select an option from the dropdown. *OAuth V2* and *OAuth V2 Client Credentials* are currently supported.                                                                                                                                                                                                                                                                                                                                                         | Required | OAuth V2 and OAuth V2 Client Credentials |
| **Identity Provider Name**     | The name of the identity provider or service, for example, *Okta.*                                                                                                                                                                                                                                                                                                                                                                                                | Required | OAuth V2 and OAuth V2 Client Credentials |
| **Description**                | Enter a description for your auth profile.                                                                                                                                                                                                                                                                                                                                                                                                                        | Optional | OAuth V2 and OAuth V2 Client Credentials |
| **Callback URL**               | The endpoint in an OAuth 2.0 flow where the authorization server redirects the user after they grant or deny permission. It is used to return the authorization code or access token to the client application. The default URL is provided in the form.                                                                                                                                                                                                          | Required | OAuth V2 and OAuth V2 Client Credentials |
| **Client ID**                  | A unique identifier assigned that helps the authorization server recognize the application making authorization or API access requests. It helps in the following: Used in **OAuth flows** to obtain access tokens, helps in tracking and logging API requests, ensures security by linking requests to a registered client.                                                                                                                                      | Required | OAuth V2 and OAuth V2 Client Credentials |
| **Client Secret**              | A confidential key assigned to an application to authenticate its identity when requesting access tokens from the authorization server, ensuring secure and authorized API access.                                                                                                                                                                                                                                                                                | Required | OAuth V2 and OAuth V2 Client Credentials |
| **Authorization URL**          | The endpoint where users are redirected to authenticate and grant permissions to an application before it can access protected resources on their behalf. Example: `https://auth.networks.com/oauth/authorize`                                                                                                                                                                                                                                                    | Required | OAuth V2                                 |
| **Subdomain(aka tenancy URL)** | A unique URL assigned to a specific tenant (organization, customer, or user group) within a multi-tenant system. It is used to differentiate and isolate data, authorization, and access for each tenant. You must select one of the following options based on your auth profile: No, this workflow and all of its tasks do not have tenancy URLs. / Yes, some tasks will have tenancy URLs and the user will need to provide that to successfully authenticate. | Required | OAuth V2                                 |
| **Token request URL**          | The endpoint where a client application exchanges an **authorization code** or **refresh token** for an **access token**. This token allows the client to authenticate API requests on behalf of the user.                                                                                                                                                                                                                                                        | Required | OAuth V2 and OAuth V2 Client Credentials |
| **Scope**                      | Defines the level of access that a client application is requesting from the resource owner (user). It specifies what **actions** the application is allowed to perform and what **resources** it can access. Example: `read_profile`.                                                                                                                                                                                                                            | Optional | OAuth V2 and OAuth V2 Client Credentials |
| **Additional Fields**          | Refer [here](#add-additional-fields).                                                                                                                                                                                                                                                                                                                                                                                                                             | Optional | OAuth V2                                 |
| **Authorization Fields**       | Refer [here](#add-authorization-fields).                                                                                                                                                                                                                                                                                                                                                                                                                          | Optional | OAuth V2                                 |
| **Refresh token URL**          | The endpoint where a client application sends a request to obtain a new **access token** using a **refresh token** (whenever the access token expires). Example: `https://auth.networks.com/oauth/access`<br />**Note**: When the **Refresh Token URL** or refresh token expires: The auth profile starts failing everywhere it is used. The user will receive an email to reconfigure a new URL or refresh token to ensure continuous and uninterrupted service. | Optional | OAuth V2                                 |
| **Auth Error Status Code**     | When authorization fails in OAuth 2.0, the server returns an HTTP status code along with an error message to indicate the issue.                                                                                                                                                                                                                                                                                                                                  | Optional | OAuth V2 and OAuth V2 Client Credentials |

#### Add Additional Fields

Additional fields collect extra authorization details from end users — such as a PIN code or device ID — alongside standard *OAuth V2* credentials. Use them to align the authorization process with your security or compliance needs.

To add additional fields:

1. Click **+ Add Additional Field** in the **New Authorization Mechanism** window and enter one or more key-value pairs.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/add-additional-field-click.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=d8e1d05938ebd5a92ac527606df443cb" alt="add additional field" width="506" height="479" data-path="ai-for-process/settings/images/add-additional-field-click.png" />

2. Add values for the following fields:

| Parameter       | Description                         | Required/Optional | Example  |
| --------------- | ----------------------------------- | ----------------- | -------- |
| **Field Key**   | The name of the additional field.   | Required          | Pin code |
| **Field Value** | The value for the additional field. | Required          | 2344567  |

3. Click **Done**.
   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/add-additional-field-form.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=0ba9c87a100727c4cbdcf11c50286c39" alt="add additional field form" width="576" height="559" data-path="ai-for-process/settings/images/add-additional-field-form.png" />

The new field is added to the additional fields list. You can edit or delete this custom field.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/new-additional-field.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=8718fc5344a26e118d6e3d7dedbe125c" alt="new additional field" width="701" height="386" data-path="ai-for-process/settings/images/new-additional-field.png" />

#### Add Authorization Fields

Authorization fields are data fields used in API requests to verify the identity of a user, system, or application and determine their permissions to access resources. These fields ensure authorization and access control in APIs, particularly for token-based authorization in AI for Process.

To add auth fields:

1. Click **+ Add Authorization Field** in the **New Authorization Mechanism** window and enter one or more key/value pairs.
   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/add-auth-field-new.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=db9ae24de7967255b344fe28effb087f" alt="add new auth field" width="666" height="712" data-path="ai-for-process/settings/images/add-auth-field-new.png" />

2. Add values for the following fields:

| Parameter   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                      | Required/Optional |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- |
| Field Type  | Defines how authorization data is sent and verified in an API request within AI for Process for token-based authorization. The supported types include: **Header**: Used to send authorization credentials, such as API tokens. **Payload**: Used in `POST` or `PUT` requests, sending credentials in the request body. **Query String**: Credentials are passed in the URL. **Path Param**: Credentials or tokens are included in the URL path. | Required          |
| Field Key   | The name of the auth field. Example: *Profile\_id.*                                                                                                                                                                                                                                                                                                                                                                                              | Required          |
| Field Value | The value of the auth field. Example: *123\_xyz*.                                                                                                                                                                                                                                                                                                                                                                                                | Optional          |

3. Click **Done**.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/auth-field-form.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=96e3e2b8a64718ee520d7b7a7ba8889d" alt="auth field form" width="594" height="642" data-path="ai-for-process/settings/images/auth-field-form.png" />

The new field is added to the Authorization Fields list. You can edit or delete this custom field.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/new-auth-field-listing.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=26682c55aff86560c0f3628b5f9ec70d" alt="new auth field" width="794" height="230" data-path="ai-for-process/settings/images/new-auth-field-listing.png" />

### Authorization Profile Summary

The **Authorization Profile** window displays the following for each profile:

* **Name**: The name you provide to the Auth profile you create.
* **Authorization Type**: The method/type set for the Auth Profile. Currently, only **oauth v2** is available.
* **Test auth**: Click the **Test** button corresponding to a configured profile to check if it establishes a connection with an external service based on the configured profile.
* **Status**: Displays **Configured** or **Not Configured** based on the configuration status.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/auth-profile-summary.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=8a4861205ce87d3ad9b022fd510cda0b" alt="auth profile summary" width="1469" height="251" data-path="ai-for-process/settings/images/auth-profile-summary.png" />

### Test an Auth Profile

Once all fields are provided in the **New authorization mechanism** window, click **Test** to validate the connection. AI for Process attempts to connect to the external service through the configured auth profile.

A successful connection is shown below:

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/successful-oauth-connection.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=0bf07d7659d1d97ba662be313e48c125" alt="successful connection" width="783" height="395" data-path="ai-for-process/settings/images/successful-oauth-connection.png" />

If the connection fails, edit the auth profile with the correct information and test the connection again.

### Manage Auth Profiles

Edit or delete a configured auth profile as needed.

#### Edit

1. Click the **Ellipses** icon for an Auth profile on the **Authorization Profile** page.

2. Click **Edit**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/edit-auth-profile.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=1e13d5c104f9dca492b7fcb3c8253e56" alt="edit auth profile" width="1108" height="293" data-path="ai-for-process/settings/images/edit-auth-profile.png" />

3. Modify the required fields in the **Update authorization mechanism** window.

4. Click **Update new auth**.
   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/update-new-auth.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=67fd2ac5b55502f4516d7fc5354e9ebd" alt="update new auth" width="718" height="774" data-path="ai-for-process/settings/images/update-new-auth.png" />

<Note>The **Authorization Type** and **Name** fields cannot be edited, but all other parameters can be modified.</Note>

A success message appears when the auth profile information is updated.

#### Delete

To delete an auth profile:

1. Click the **Ellipses** icon and select **Delete**.
   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/delete-auth-profile.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=cb498d4629fb268e5536fef2f1317b39" alt="delete auth profile" width="1204" height="312" data-path="ai-for-process/settings/images/delete-auth-profile.png" />

2. Click **Delete** in the following window.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/confirm-deletion.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=3f349e8493b45b5240ae5df0d39c01eb" alt="confirm delete auth profile" width="409" height="349" data-path="ai-for-process/settings/images/confirm-deletion.png" />

A success message is displayed, and the profile is removed from the **Authorization profile** page.

<Warning>Deleted profiles cannot be recovered. Proceed with caution.</Warning>

***

## Custom Scripts

Custom scripts let you deploy reusable code in isolated containers and call them from workflow nodes using secure API endpoints. Use the **Manage Custom Scripts** page in **Settings** to upload, configure, and deploy a complete script project without writing code directly in workflow nodes.

Deployed scripts can be invoked from:

* The [API node](/ai-for-process/nodes#api-node) endpoint when building a workflow.
* The **Function node** in the workflow automation flow.

Custom scripts add the following capabilities to your automation flows:

* **Task automation**: Automate repetitive or complex tasks that require custom logic.
* **Secure API integration**: Integrate scripts into apps using API endpoints with secure authentication.
* **Customization**: Implement logic or workflows tailored to unique business requirements.
* **Data processing**: Transform, filter, or validate data to meet specific operational requirements.
* **Error handling**: Create custom error-checking and fallback mechanisms beyond standard system behavior.

### Access the Script Deployment Wizard

1. In AI for Process, click **Settings** in the top menu.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/aip-settings-access.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=a709446495290154342a78167d690867" alt="access settings" width="1356" height="418" data-path="ai-for-process/settings/images/aip-settings-access.png" />

2. Click **Manage Custom Scripts** in the left menu.

### Import and Deploy a Custom Script

<Note>Complete each step in order without skipping any.</Note>

1. [Access the script deployment wizard](#access-the-script-deployment-wizard).

2. Click **+ Import** or **+ Import new**.

   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/import-options.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=27d1f300c503ec56f6542ae3b598eab9" alt="import options" width="1016" height="654" data-path="ai-for-process/settings/images/import-options.png" />

3. Follow [Step 1: General Details](#step-1-general-details) through [Step 4: Review and Deploy](#step-4-review-and-deploy).

#### Step 1: General Details

1. Enter a **Script name**.
2. Enter a **Description** to define the purpose and capabilities of the script.
3. Select the **Base Language** and **Language Version**. Supported options: **JavaScript 20.19.0** and **Python 3.10.15**. The default version is auto-selected when you pick a language.
4. Under **Project File**, click **Choose File** and select a file from your local system. The supported file formats are `.zip`, `.gz`, and `.tar` and the maximum permitted file size is 1 GB.
5. Click **Validate** to check the file for errors.

   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/validate-file.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=c3d7557a766b5944080a6e5550a8a98d" alt="validate file" width="732" height="553" data-path="ai-for-process/settings/images/validate-file.png" />

<Warning>The uploaded file must match the recommended project structure. Click **Download sample project** to get the `.zip` folder with sample script definitions and use it as reference. The required structure differs by base language. Follow the naming convention for your chosen language to avoid errors.</Warning>

Validation checks include:

* File matches the sample project structure and allowed format.
* Main file is not empty.
* Project file is within the 1 GB limit.

If there are no errors, the wizard proceeds to **Runtime Settings**. Resolve all errors and warnings before continuing.

##### Custom Script Requirements

Follow these requirements to ensure your script runs correctly on the Platform.

**Main entry point**

Include a `main.py` (Python) or `main.js` (JavaScript) at the root directory of the archive file. This file is the main entrypoint for the service. Only the functions defined in this file are exposed via API endpoints or workflow integrations.

**Modular code**

You can organize code across multiple files. Only functions in `main.py` or `main.js` are exposed. Use additional files for helper functions or reusable logic, and import them into the main file.

**Custom dependencies (optional)**

Include a `requirements.txt` (Python) or `package.json` (JavaScript) at the root directory if your code has external package dependencies.

**Relative imports**

Use relative imports when importing between files in your project. Refer to the sample files for examples.

**Environment variables**

Access environment variables in your scripts as follows:

Python:

```python theme={null}
import os
os.getenv('<key_name>')
```

JavaScript:

```javascript theme={null}
process.env.<key_name>
```

#### Step 2: Runtime Settings

Configure runtime variables to control how your script runs, stores configuration data, and stops executing.

1. Enter **Key** and **Value** pairs to declare environment variables accessible from your function.

2. Click **+ Add** to add additional key-value pairs, or the **Delete** icon to remove a pair.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-add-key.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=304dfe2528c771498c3844a8ca4e6323" alt="add key value" width="654" height="384" data-path="ai-for-process/settings/images/click-add-key.png" />

   <Note>
     The following default environment variables are available:

     * **UPLOADS\_DIR**: Read-only access to all files uploaded via the Public APIs. Use this to access data submitted to your account.
     * **WORKSPACE\_DIR**: Read-write directory for your function's file operations. Data that your function stores or modifies is saved here.

     Both directories are accessible only while the container is deployed. Once undeployed, these storage locations are no longer available.
   </Note>

3. Set the **Execution timeout** in seconds. Allowed range: **30–600 seconds**.

   Script timeouts prevent resource overuse from long-running or infinite-loop scripts, keep systems responsive, and enable error handling or retries when a script does not complete in time.

4. Click **Next**.

   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/runtime-settings.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=a96e45cace68767f77795d2cce3303e6" alt="runtime settings" width="756" height="616" data-path="ai-for-process/settings/images/runtime-settings.png" />

#### Step 3: Resource Allocation

Define scaling parameters and hardware requirements to ensure the script performs optimally under varying loads.

1. Set the following **Scaling parameters**:

   * **Min Replicas** and **Max Replicas**: Minimum and maximum number of pods per service to handle increased load. Allowed range: 1–10. Default: 1. Min Replicas must be less than or equal to Max Replicas.
   * **Average Compute Utilization**: The metric used to trigger auto-scaling, expressed as average compute utilization (%) per pod. Default: 75. Allowed range: 1–100. This setting is disabled when Min and Max Replicas are equal.

2. Select the **hardware profile** for the deployment. The unit is number of vCPUs with memory. Profiles are virtualized for standardization.

   | Hardware configuration   | Actual CPU and memory        | Credits per hour |
   | ------------------------ | ---------------------------- | ---------------- |
   | 1 vCPU with 2GB memory   | 0.7 vCPUs with 1.1GB memory  | 0.07698          |
   | 2 vCPUs with 4GB memory  | 1.5 vCPUs with 2.5GB memory  | 0.15396          |
   | 2 vCPUs with 8GB memory  | 1.5 vCPUs with 6.5GB memory  | 0.144            |
   | 4 vCPUs with 8GB memory  | 3.5 vCPUs with 6GB memory    | 0.30792          |
   | 4 vCPUs with 16GB memory | 3.5 vCPUs with 13.5GB memory | 0.288            |

3. Click **Next**.

   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/resource-allocation.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=87dd875248aefe085b736b918277c779" alt="resource allocation" width="728" height="602" data-path="ai-for-process/settings/images/resource-allocation.png" />

#### Step 4: Review and Deploy

1. Review the [General Details](#step-1-general-details), [Runtime Settings](#step-2-runtime-settings), and [Resource Allocation](#step-3-resource-allocation) sections. Click any section to return and modify values.
2. Read the **Terms and Conditions** and select **Accept** to enable deployment.
3. Click **Deploy**.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-deploy-terms.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=f447d6c005a03185af4b9cee2ec24623" alt="deploy terms" width="858" height="578" data-path="ai-for-process/settings/images/click-deploy-terms.png" />

   Optionally, click **Save as Draft** to save the configuration and deploy later. The script is saved with the *Draft* status.

   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/saved-as-draft.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=fc9acf675d554209171dd241931c53a3" alt="saved as draft" width="1194" height="317" data-path="ai-for-process/settings/images/saved-as-draft.png" />

The deployment status changes to *Deploying* while the script is being deployed.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/initiated-deployment.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=90b5cc349a654b0b42253938b7b81808" alt="initiated deployment" width="1059" height="285" data-path="ai-for-process/settings/images/initiated-deployment.png" />

Once deployed, the status changes to *Deployed* and a success message is displayed.

#### Email Notification

After successful deployment, a confirmation email with the subject "*Custom script deployed successfully - API Endpoint Available*" is sent to the admin. The email shows credits remaining and total allocation for the account.

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/deployment-email.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=19d57b793cb3e69b95045db2ee9c216e" alt="deployment email" width="961" height="440" data-path="ai-for-process/settings/images/deployment-email.png" />

### View Deployed Scripts and Statuses

The **Manage Custom Scripts** page lists all scripts and their statuses once a script is deployed or saved as a draft.

* **Search**: Enter the script name in the **Search** field to filter the list.

  <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/search-script.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=568cd2691d47ca07d3e6c3f0f95da05b" alt="search script" width="1006" height="206" data-path="ai-for-process/settings/images/search-script.png" />

The summary table displays the following fields:

* **Script Name**: The name assigned during import.

* **Status**: The current deployment status.

  <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/deployment-statuses.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=84b1fb282f671c71a5f85447dc29e584" alt="all statuses" width="1223" height="405" data-path="ai-for-process/settings/images/deployment-statuses.png" />

* **Added by**: The user who added the script.

* **Updated on**: The timestamp of the last action (deploy, redeploy, or undeploy).

* **Action**: Actions available based on the script's status — undeploy, delete, or export.

#### Script Deployment Statuses

The table below lists all statuses and the actions available on each script management page.

| Status                | Description                                                                                                       | Overview                   | Deployment History                                                                     | Endpoint                                                                 | API Keys                         | Redeploy |
| --------------------- | ----------------------------------------------------------------------------------------------------------------- | -------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -------------------------------- | -------- |
| **Draft**             | Draft copy of the script. Can be modified and deployed later.                                                     | Export, Delete, Deploy     | Deploy Custom Script                                                                   | Deploy Custom Script                                                     | Create a New API Key             | No       |
| **Deploying**         | Script is being deployed. A success message appears on completion; a failure message appears if deployment fails. | Export, Delete             | Rename deployment version                                                              | Endpoint not activated                                                   | Create API keys                  | No       |
| **Ready to Deploy**   | Script is configured and ready to deploy.                                                                         | Export, Delete, Deploy     | Rename deployment version                                                              | Endpoint not activated                                                   | Create API keys                  | Yes      |
| **Deployed**          | Script is successfully deployed.                                                                                  | Redeploy, Undeploy, Export | View configuration and deployment details; rename deployment version                   | Redeploy script; view endpoint code (cURL, JS, Python); copy script code | Create API keys; manage API keys | Yes      |
| **Deployment Failed** | Script deployment failed.                                                                                         | Deploy, Delete, Export     | View configuration and deployment details (except duration); rename deployment version | Endpoint not activated                                                   | Create API keys                  | Yes      |

<Note>
  * The **Updated on** field is updated each time an action is taken on a script.
  * Hover over a *Deployment Failed* status to view the error tooltip with the failure reason.

      <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/hover-over-failed-status.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=df747f1cc1f7d3b0ced88b163003397e" alt="failed status" width="1126" height="217" data-path="ai-for-process/settings/images/hover-over-failed-status.png" />
</Note>

### Export a Script

Downloads the `.zip` folder of the script project to your local system.

To export a script:

1. On the **Manage Custom Scripts** page, click the **Ellipses** icon under **Actions**, then click **Export**.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/access-export.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=60f59aba13244c2419390800c52453ba" alt="access export" width="1206" height="344" data-path="ai-for-process/settings/images/access-export.png" />

   Alternatively, click the script entry and select **Export** on the **Overview** page.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-export-script.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=ad54b5027f26f019c6a10504be4f3d84" alt="export script" width="1614" height="766" data-path="ai-for-process/settings/images/click-export-script.png" />

<Note>
  You can view the export status while it is in progress, on completion, or if it fails. You can cancel an export in progress.
</Note>

For export availability by status, see the [Script Deployment Statuses](#script-deployment-statuses) table.

### Undeploy a Script

Undeploys the script from all its deployed locations on the platform.

<Note>
  * An undeployed script can be redeployed. See [Redeploy a Script](#redeploy-a-script).
  * After redeployment, the script's data and configurations are restored. You can edit the name and other parameters in the [deployment flow](#import-and-deploy-a-custom-script).
  * If no scripts are deployed, the Function node displays "No custom scripts deployed yet." Undeployed scripts do not appear in the **Script** dropdown for the Function node.
</Note>

To undeploy a script:

1. On the **Manage Custom Scripts** page, click the **Ellipses** icon under **Actions**, then click **Undeploy**.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/access-undeploy.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=b1d0cd6f9fc2b4911edcb9b7e887b3b9" alt="access undeploy" width="988" height="306" data-path="ai-for-process/settings/images/access-undeploy.png" />

   Alternatively, click the script entry and select **Proceed to Undeploy** on the **Overview** page.

   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/proceed-to-undeploy.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=1177372a91b453a37152f88464938a34" alt="proceed to undeploy" width="1194" height="574" data-path="ai-for-process/settings/images/proceed-to-undeploy.png" />

2. Click **Undeploy** in the confirmation window.

   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/undeploy-script-confirmation.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=3f10942f88f7c433dd85c41d707078d2" alt="undeploy script confirm" width="434" height="288" data-path="ai-for-process/settings/images/undeploy-script-confirmation.png" />

The script status changes to **Ready to Deploy**.

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/ready-to-deploy-success.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=f0e5d8def96330b476ce4711fa2e4519" alt="ready to deploy" width="1068" height="258" data-path="ai-for-process/settings/images/ready-to-deploy-success.png" />

For undeploy availability by status, see the [Script Deployment Statuses](#script-deployment-statuses) table.

#### Email Notification

After a successful undeploy, a confirmation email with the subject "*Your custom script has been undeployed successfully*" is sent to the admin. The email shows credits remaining and total allocation for the account.

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/undeploy-email.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=9f3db6deeb2a606514593ee0b36843f3" alt="undeployed success" width="953" height="455" data-path="ai-for-process/settings/images/undeploy-email.png" />

### Delete a Script

Permanently deletes a script, including its configurations and definitions, from the system.

<Warning>
  * You cannot delete a deployed script. Undeploy it first.
  * Deleted scripts and their configurations cannot be restored.
</Warning>

To delete a script:

1. On the **Manage Custom Scripts** page, click the **Ellipses** icon under **Actions**, then click **Delete**.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/access-delete.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=cd7175343cbd640f0677cb258987c411" alt="access delete" width="1016" height="253" data-path="ai-for-process/settings/images/access-delete.png" />

   Alternatively, click the script entry and select **Proceed to Delete** on the **Overview** page.

   <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/proceed-to-delete-script.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=c2b8f13e564d30a0b5cdbe90523bb516" alt="proceed to delete" width="1488" height="774" data-path="ai-for-process/settings/images/proceed-to-delete-script.png" />

2. Click **Delete** in the confirmation window.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/delete-the-script.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=13d6c6534f3643c8941db44a58ccbf53" alt="delete the script" width="380" height="235" data-path="ai-for-process/settings/images/delete-the-script.png" />

A success message is displayed and the script is permanently removed.

For delete availability by status, see the [Script Deployment Statuses](#script-deployment-statuses) table.

### Redeploy a Script

Redeployment lets you update a script's description, project file, runtime settings, and resource allocation. You cannot change the script name, base language, or version number during redeployment. Redeploy is only available for scripts with the **Deployed** status.

To redeploy a script:

1. Click the script with the **Deployed** status on the **Manage Custom Scripts** page.

2. Click **Re-deploy** on the **Overview** page.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-deployed-script.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=fda96f9e2229b86d1b8464ba9b037c0f" alt="deployed script" width="1163" height="360" data-path="ai-for-process/settings/images/click-deployed-script.png" />

   <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/re-deploy-script.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=8efb89be1fecddb8fa12ab275c97e77c" alt="redeploy script" width="1195" height="476" data-path="ai-for-process/settings/images/re-deploy-script.png" />

3. The import wizard opens with the existing configuration. Update the required fields.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/general-details-page.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=9c8d2deb884cd245ae287b72369e96c7" alt="general details page" width="980" height="720" data-path="ai-for-process/settings/images/general-details-page.png" />

After redeployment, the **Overview** page is updated with the latest deployment information.

### Script Overview

The **Overview** page shows the configuration details of the latest deployed version of a script. To open it, click any script entry on the **Manage Custom Scripts** page.

The page is available for all script statuses and displays:

* Script name and assigned status.
* [General Details](#step-1-general-details) configuration.
* [Runtime Settings](#step-2-runtime-settings) configuration.
* [Resource Allocation](#step-3-resource-allocation) configuration.

Available actions depend on the script's status. See the [Script Deployment Statuses](#script-deployment-statuses) table.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/overview-script-deployment.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=3d994a8dd94189dd45f572095161a570" alt="overview" width="726" height="781" data-path="ai-for-process/settings/images/overview-script-deployment.png" />

### Deployment History

The **Deployment History** page shows previous and current deployment and undeployment actions for a script. Use it to track version history, deployment statuses, and actions performed.

<Note>
  * Deployment history is available for the following statuses: **Deployed**, **Deployment Failed**, **Deploying**, and **Ready to Deploy**.

  * For scripts in **Draft** status, the page shows a prompt to deploy the script.

      <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/draft-action.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=9b72f11af9645704f8ef1212ccfaac73" alt="draft action" width="271" height="336" data-path="ai-for-process/settings/images/draft-action.png" />

    Click **Deploy custom script** and follow the steps in [Import and Deploy a Custom Script](#import-and-deploy-a-custom-script).

  * Undeployment information is shown only when the status is **Ready to Deploy**.

  * Hover over a failed status to view the reason for failure.

      <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/view-failure-reason.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=c3f35f30ce2b55e1a4046b02d5d93f3b" alt="deployment failure" width="1165" height="185" data-path="ai-for-process/settings/images/view-failure-reason.png" />
</Note>

The following details are displayed for each deployment entry:

* **Deployment name and version**: Starts at v1 and auto-increments. The version is appended to the script name and can be renamed.
* A green **Check** icon for the latest active deployment. Does not appear for failed deployments or undeployed scripts.
* An **Edit** icon to rename the deployment version.

  <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/green-check-icon.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=5c5e508636a1b51156a8444ed5d22d4b" alt="deployment details" width="1154" height="195" data-path="ai-for-process/settings/images/green-check-icon.png" />

To rename a deployment version, click the **Edit** icon, enter the new name, and click **Confirm**.

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/rename-dep-version.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=98f95118089841602bca65609ff6f0c3" alt="rename deployment version" width="455" height="434" data-path="ai-for-process/settings/images/rename-dep-version.png" />

<Note>Follow the naming convention to avoid errors.</Note>

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/naming-convention.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=a934672390280553ddc312aa44852753" alt="naming convention" width="426" height="171" data-path="ai-for-process/settings/images/naming-convention.png" />

Additional deployment details:

* **Deployed on**: Timestamp of the deployment or undeployment.
* **Duration**: Duration of the deployment. Shows "–" for all statuses except **Deployed**.
* **Deployed by**: The system user who deployed or undeployed the version.

To view the full deployment or undeployment summary, click the **Expand** arrow.

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/expand-deployment-history.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=189ee199469244db98c0434d55b81ba0" alt="deployment history expansion" width="1111" height="212" data-path="ai-for-process/settings/images/expand-deployment-history.png" />

The expanded view shows the [General Details](#step-1-general-details), [Runtime Settings](#step-2-runtime-settings), and [Resource Allocation](#step-3-resource-allocation) configured during import or undeployment, plus:

* **Deployed by**: Name of the user who performed the action.
* **Start Time**: When the deployment or undeployment started.
* **End Time**: When the deployment or undeployment ended.
* **Time Taken to Deploy**: Total duration from start to end.
* **Status**: Final outcome of the action (Success or Failed).

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/deployment-history-screen.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=864c755052c6054e6f2e3e22ad14be11" alt="deployment history" width="1326" height="688" data-path="ai-for-process/settings/images/deployment-history-screen.png" />

#### Deployment History by Status

**Deployed**

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/deployment-success.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=ee95756bb27d8e0cc673d5f2279d9171" alt="deployment success" width="1070" height="167" data-path="ai-for-process/settings/images/deployment-success.png" />

**Deployment Failed**

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/deployment-failed.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=d26ac81070edbb08b6b4bc60089e54f4" alt="deployment failed" width="1035" height="144" data-path="ai-for-process/settings/images/deployment-failed.png" />

**Ready to Deploy**

<img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/success-status-deployment.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=fc395120aba5466c62d65fd7472b92e9" alt="ready to deploy status" width="1130" height="276" data-path="ai-for-process/settings/images/success-status-deployment.png" />

**Deploying**

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/deploying-status.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=01c0f6fcfae9ec911e3c74071a0e048f" alt="deploying status" width="1152" height="196" data-path="ai-for-process/settings/images/deploying-status.png" />

### Endpoint

The **Endpoint** page shows the activated endpoint code for a deployed script in multiple formats. Copy the code in your preferred format to integrate it into your applications.

<Note>The endpoint code is view-only and cannot be edited.</Note>

Available formats:

* **cURL**: API endpoint information for the script.

  <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/curl-endpoint.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=a97b18d85bce80454eef98011d2c8696" alt="curl code" width="1006" height="532" data-path="ai-for-process/settings/images/curl-endpoint.png" />

* **JavaScript**: Payload JSON code in JavaScript format.

  <img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/java-endpoint.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=ecda69445bdc3874ffe0e09cd651f3d6" alt="java code" width="804" height="377" data-path="ai-for-process/settings/images/java-endpoint.png" />

* **Python**: Payload JSON code in Python format.

  <img src="https://mintcdn.com/koreai/FxeUffvny0kFoYXM/ai-for-process/settings/images/python-endpoint.png?fit=max&auto=format&n=FxeUffvny0kFoYXM&q=85&s=8e2f90c3e4f2b93abb10bebf626e0338" alt="python code" width="991" height="510" data-path="ai-for-process/settings/images/python-endpoint.png" />

Click **Copy** to copy the selected format to the clipboard. A success message confirms the copy.

<img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/copy-endpoint-icon.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=f50fa11a61066e471a8f9f6c1dae97b3" alt="copy endpoint icon" width="1107" height="95" data-path="ai-for-process/settings/images/copy-endpoint-icon.png" />

For scripts with the *Deploying*, *Deployment Failed*, or *Ready to Deploy* status, the page shows a prompt to deploy the script and activate the endpoint.

<img src="https://mintcdn.com/koreai/_Dn-kwIEkdH7YDGt/ai-for-process/settings/images/not-deployed-error.png?fit=max&auto=format&n=_Dn-kwIEkdH7YDGt&q=85&s=ac360c45aab7bd36095abb00251398c9" alt="not deployed error" width="1010" height="529" data-path="ai-for-process/settings/images/not-deployed-error.png" />

### API Keys

API keys control access to a deployed script's endpoint. Create at least one API key before calling a script via an endpoint.

<Note>You can create API keys for a script regardless of its deployment status. Keys can only be used after the script is successfully deployed.</Note>

#### Create an API Key

1. Navigate to the **API Keys** page.

2. Click **Create a New API Key** or **Create New Key**.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/create-a-new-api-key.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=54e229b7bcd604810ac67cacfdacb32f" alt="create a new api key" width="704" height="542" data-path="ai-for-process/settings/images/create-a-new-api-key.png" />

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/click-create-new-key.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=91e683c8d60a73279e552c45518c17c8" alt="create new key" width="1131" height="226" data-path="ai-for-process/settings/images/click-create-new-key.png" />

3. Enter a unique name for the key. The default name is "Secret Key."

4. Click **Generate Key**.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/generate-secret-key.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=770de8c2b81f26814fef285f71fe5d14" alt="generate secret key" width="423" height="316" data-path="ai-for-process/settings/images/generate-secret-key.png" />

5. Click **Copy and Close**.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/create-new-api-copy.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=aeb7139fc173c264dc8ec8bbce719c3f" alt="create new api copy" width="396" height="425" data-path="ai-for-process/settings/images/create-new-api-copy.png" />

<Warning>
  Your secret API key is shown only once. Save it in a secure location. Do not share it or expose it in client-side code. If you lose the key, you must generate a new one.
</Warning>

A success message is displayed and the key appears in the list.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/api-key-success-message.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=9446f160cf186dbe0fc143fa1d318d66" alt="api key success message" width="1328" height="430" data-path="ai-for-process/settings/images/api-key-success-message.png" />

#### Delete an API Key

1. On the **API Keys** page, hover over the key you want to delete.

2. Click the **Delete** icon.

   <img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/api-delete-icon.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=c379af5adde165db716b3e69ff8b3568" alt="click delete" width="1212" height="221" data-path="ai-for-process/settings/images/api-delete-icon.png" />

3. Click **Delete** in the confirmation window.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/delete-api-key.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=000ff575f191535f5f5842abec4f919f" alt="delete api key" width="415" height="250" data-path="ai-for-process/settings/images/delete-api-key.png" />

A success message is displayed and the key is removed. A deleted API key is immediately invalidated and can no longer be used to access the script.

#### Search API Keys

Enter the key name (partial or full) in the **Search** field to find a specific key.

<img src="https://mintcdn.com/koreai/PuupHPoTlgovf9wN/ai-for-process/settings/images/api-keys-list.png?fit=max&auto=format&n=PuupHPoTlgovf9wN&q=85&s=2567ff62e724dc45b5cfd6cbd09d8895" alt="api keys list" width="1140" height="282" data-path="ai-for-process/settings/images/api-keys-list.png" />

### Use a Custom Script in the API Node

To call a deployed custom script from the API node in a workflow:

1. In the API node configuration, click **Define Request**.

   <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/define-request.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=e61f6c5423b558ed710a9dccaba44966" alt="define request" width="534" height="648" data-path="ai-for-process/settings/images/define-request.png" />

2. In the **Edit Request** dialog, configure the following:

   * Select the request type.

   * Copy the cURL from the [Endpoint](#endpoint) page of the custom script.

     <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/copy-endpoint.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=503b63c5485942bd43947240105bd493" alt="copy endpoint" width="883" height="398" data-path="ai-for-process/settings/images/copy-endpoint.png" />

   * Paste it in the text field.

     <img src="https://mintcdn.com/koreai/rlh-0_-9ZDbn4IuC/ai-for-process/settings/images/curl-edit-request.png?fit=max&auto=format&n=rlh-0_-9ZDbn4IuC&q=85&s=9d28ef760fda0aae917d61a2513281d3" alt="curl link" width="1381" height="315" data-path="ai-for-process/settings/images/curl-edit-request.png" />

   * In **Auth Profiles**, select an authentication profile or **None** (default) if authentication is not required. [Learn more](#authorization-profiles) about Auth Profiles.

   * In the **Headers** tab, add key-value pairs. For example, **Key**: `Content-Type`, **Value**: `application/json`.

   * In the **Body** tab (not available for GET requests), select the content type:
     * **application/x-www-form-urlencoded**: File uploads via HTTP POST. Key/value pairs are encoded by the platform.
     * **application/json**: JSON data exchange between servers and web applications.
     * **application/xml**: XML payload for SOAP services using POST, with the option to include node values.
     * **Custom**: Non-standard payload formats, such as for blogs or custom variables.

   * Click **Test** to send a test request. The API response appears in the **Response** tab.

   * Click **Save**.

For more information, see the [API node](/ai-for-process/nodes#api-node) documentation.
