Integration Hub

Integration Hub provides a central place to handle integrations with external systems and services. It lets you create standardized REST APIClosed Application Programming Interface. Allows you to automate certain functionality by connecting your CXone Mpower system with other software. connections, which you can use in multiple Studio scripts. This avoids the need to repeatedly build the same requests anytime you want to communicate externally via API. Instead, you can build the request once in Integration Hub, then re-use it wherever you need to. This simplifies and speeds up the scripting process.

Integration Hub also makes your integrations more secure. It encrypts API credentials, so each time you use them, they're not exposed in the script. Studio scripts are stored as plain text, therefore you cannot securely store important credentials as variables directly in the script, like tokens used for API requests. Integration Hub lets you quickly add an authentication request to a script, then securely use the retrieved credentials in subsequent API calls. You can also add mTLS certificates to an API request.

Integration Hub is part of the Automation & AI app in CXone Mpower. If you have the Launch Automation & AI permission, you can open the app from CXone Mpower in a new window and click Integration Hub.

Connections

Connections define the details for integrating with an external service, like API requests, authentication flows, and variables. For example, you could create a connection template for Salesforce. This would define the basic details needed to connect with Salesforce, like authentication type and supported methods. From this template, you would create a connection, which lets you fill in specific details from the template, along with more specific details like the specific API requests you want to make to Salesforce.

Connection Templates

Each connection you add to Integration Hub is created based on a connection template. Templates define the basic information that applies to all connections that will be made with the template. This includes:

  • The name of the web service you're connecting to.
  • The integration method. Currently, REST API is the only supported method.
  • The type of authentication, if any. Currently, you can choose OAuth 2.0 or no authentication.
  • The custom headers for authentication, if any are needed.
  • The verbs available for use by requests made based on the template. Verbs are the actions that can be taken with the connected web service, such as retrieving data (GET) or creating records (POST).

A connection doesn't have to include all types of connection information. It can hold any combination of the supported types of information.

All connection templates are available in the connection library in Integration Hub. Templates that you can use in a Studio script are listed under My Connections in Integration Hub. You can create a maximum of 50 connections (in the My Connections list). There is no limit on the number of templates in the Connection Library.

All templates cannot be modified. However, your custom templates can be deleted. If you need to change something in a custom template later, you can delete the template and create a new one. Connections themselves can be modified. Deleting a custom template does not affect the connections created with that template.

System Templates

Integration Hub has two types of templates: system templates owned by NiCE, and templates you create yourself. System templates come with Integration Hub and cannot be deleted. Currently, Integration Hub includes one system template:

  • CXone Mpower Dev Portal: Integrates with API endpoints documented on the CXone Mpower Developer Portal . This is to reduce your dependency on Studio Framework actions. It uses OAuth 2.0 authentication. To determine authentication, it uses Discovery URL. It doesn't support client certificates.

Requests

Requests are API calls. For each connection in the My Connections list, you can add requests that you want to use with the specific external service. These requests specify the following information, which is used to connect to a web service:

  • URL: The location of the resource you're connecting to.
  • Method (Verb): The action that you want the request to perform, such as retrieving data or creating a new record. Integration Hub supports these verbs: GET, PUT, POST, DELETE, TRACE, PATCH, HEAD, OPTIONS. The verbs available for use in a connection are defined in the template used to create the connection.
  • Headers: A part of the request that contains additional information about the request. This can include the language, credentials, and so on.
  • Query Parameters: A way to pass information with an API request in the endpoint URL. They are configured as key-value pairs. They can be used to filter, sort, customize, or control the data returned in the response.
  • Body: The content of the request. The format depends on the requirements of the API you're connecting to. The media type of the body must match what the resource you're connecting to expects. It's also known as the MIME type or content type. These are the supported options and the associated content headers: 
    • ApplicationJson: application/json
    • ApplicationJsonPatch: application/json-patch+json
    • FormURLEncoded: application/x-www-form-urlencoded
    • TextHtml: text/html
    • TextPlain: text/plain
    • TextXml: text/xml
    • Sigv4: application/ x-amz-json-1.1

Each Integration Hub connection can have up to 50 requests. There is no restriction on how many requests can be active at a time.

CXone Mpower has a 32 KB limit on the size of responses. Use query parameters to filter the returned data. This can help you stay under that limit.

Manual and Studio Requests

Integration Hub supports two options for requests in connections:

  • Manual: A manual request is built in Integration Hub using the options on the Add Request page. You can use secrets in them. Manual requests are commonly used for cases where the data does not change. They can be executed directly from Integration Hub without requiring a Studio script. They can also be executed in Studio scripts.
  • Studio: In some cases, API requests cannot be built as manual requests in Integration Hub. For example, requests that require path parameters, variable substitution, or that connect to SOAP web services, must be built in a Studio script. However, you may want to keep track of these requests in your Integration Hub connections. The Studio request option allows you to do that. A Studio request appears on a connection's Requests tab along with all of the manual requests the connection has.

Variables

Integration Hub allows you to store value pairs as variables. Variables are unencrypted by default. However, you can encrypt a variable by turning it into a secret. Marking a variable as a secret adds security to sensitive information, such as passwords or keys.

Variables can be used in the connection where you create them. If you execute a connection or authentication request in a Studio script, you can use variables from that connection in the script.

Secrets are encrypted at rest in an encrypted database. Integration Hub uses the Advanced Encryption Standard (AES) to encrypt the data. The only time the data is decrypted is at the time of execution.

Integration Hub Studio Actions

When you want to use authentication or make a request in a Studio script, use the following Studio actions: 

Key Facts About Integration Hub Studio Actions 

  • They require Integration Hub. If Integration Hub is not enabled in your CXone Mpower system, the actions do not work.
  • You can include more than one instance of each action in a script.
  • You can use variable substitution to execute different requests or use authentication from more than one connection in a single script.
  • Just as with other methods of making API calls in CXone Mpower, additional scripting is required to receive the response from the connected web service and handle it appropriately.
  • CONNECTAUTH doesn't allow for any customization. It executes the authentication request as defined in the connection in Integration Hub.

Circuit Breaker

Integration Hub has a built-in circuit breaker. It's a precautionary fail-safe for failed API calls. If the circuit breaker detects that a call is repeatedly failing, it activates and throttles the API call. The most common reason for failed calls is a temporary server error (500 errors). Throttling (or pausing) the call gives the server time to come back up and function correctly.

The following are key features of the circuit breaker:

  • The circuit breaker activates if more than 50% of calls to an API fail within 30 seconds.

  • To trigger the circuit breaker, Integration Hub must have tried over 100 calls to a single API within a 30-second window.

  • The breaker activates for 30 seconds.

  • Failure reasons are accessible in the Studio trace logs, captured in the _err variable.

Audit History

Each connection in Integration Hub has a change log. Any time a connection is created or updated, the following details are logged:

  • Date: The date the change was made.

  • Modified By: Who made the change.

  • Profile Name: The name of the connection.

  • Action: What occurred, like whether a connection was created or modified.

Users will be able to access this log from a new Audit button in the connection's settings.