# Orchestration Enhancement: Lex NLP Bot Integration

**iX Hello** is a **no-code AI assistant platform** by Concentrix that enables businesses to create multimodal, customer-facing bots quickly.

It supports **intent-based orchestration**, meaning you can design bots that **route conversations across multiple skills or workflows** based on user intent.

### Overview&#x20;

It refers to **intents that act as a controller**, orchestrating multiple sub-intents or workflows. Instead of a single response, these intents **trigger a sequence of actions** (e.g., fetching data from CRM, confirming details, updating backend).

Useful for **complex journeys** like:

* Order management (check status → update → notify)
* Appointment booking (validate availability → confirm → send reminder)
* Multi-step troubleshooting flows.

### How to create inten&#x74;**-based Orchestration in iX Hello**

### Prerequisites

Before commencing bot creation, ensure the following prerequisites are met:&#x20;

* Access to [iX Hello](https://bots.ixhello.com) Studio Mode.&#x20;
* Familiarity with basic iX Hello navigation.
* Basic knowledge of RESTful API principles and JSON format for handling the data returned by the API.
* Use the below NLP bot links to create a custom app without using the Orchestration step
  * To Create a Basic NLP bot, refer to [this](https://docs.ixhello.com/ixhc/apps/custom-skills-series-step-1-building-a-custom-skill)
  * To Create the connection, refer to [this](https://docs.ixhello.com/ixhc/apps/custom-skills-series-step-2-creating-a-connection), to publish on lex refer to [this](https://docs.ixhello.com/ixhc/apps/custom-skills-series-step-3-publishing-to-a-channel)

#### Note : Use the below steps to create Intent using Orchestartion

#### Let's create an Intent

&#x20;Navigate to the ‘Intents’ tab and click on the ‘Create New Intent’ button.

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FKkYxwDhUWvN9JDldZJza%2Fimage.png?alt=media&#x26;token=dc0d0463-ed35-450d-bf74-07e1312cb55f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FdnlzwHn0MHxwXw0VhZWs%2Fimage.png?alt=media&#x26;token=8f27f6c4-b1d3-4335-a9c7-84a6bbf42aea" alt="" width="563"><figcaption></figcaption></figure>

#### Create Design

Once the Intent is created, click on the Action and choose Design.&#x20;

Which Open the **intent design canvas**, where you can define the orchestration flow (e.g., steps, API calls, conditions).

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FgSad4T5JQ9k9DhGmRT5E%2Fimage.png?alt=media&#x26;token=5029ceae-4842-4373-b2ba-7d298ab5faf6" alt=""><figcaption></figcaption></figure>

You will land on Orchestration Intent Design Canvas. It’s where you visually build the workflow for an orchestration-type intent.&#x20;

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FAziBk9wnln1M7GnRE4Ua%2Fimage.png?alt=media&#x26;token=57582ba3-e8c3-4a08-a4be-07f36490def5" alt="" width="563"><figcaption></figcaption></figure>

Here’s what each element means:

* Start Node:
  * Entry point of the orchestration flow. Every design begins here.
* Method Node:&#x20;
  * Represents a function or API call.
  * Used to fetch data, update records, or perform backend operations.
* Agent Node:&#x20;

{% hint style="info" %}
This node is not available for the NLP applications
{% endhint %}

* Get Slot Node:
  * Captures specific user input (e.g., email, phone number).
  * Essential for gathering required parameters before calling APIs.
* Say Text Node:
  * Sends a response message to the user.
  * Can display dynamic data from previous steps.
* Exit Node:
  * Marks the End of the orchestration flow.
* Connector Type : Flowchart / Straight Lines / Curve
  * Defines how steps are visually connected in the canvas.
  * Flowchart is the default for clear branching logic.

Here you can see the detailed explanations with the screenshots on the above-mentioned elements:

#### Start Node:&#x20;

The start node is the start point of a flow; the processing of each session starts here. There needs to be exactly one start node in each flow.

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FiuzRzOhq73bty95eq0Mz%2Fimage.png?alt=media&#x26;token=8e341353-4f46-4427-9b13-31629a9177f6" alt=""><figcaption></figcaption></figure>

#### Method Node:&#x20;

* Title: You can rename this to something meaningful (e.g., `FetchContactDetails`).
* Data source Dropdown: This is where you select or define the API or backend system you want to connect to.  The “+” icon lets you add a new data source by navigating to the method screen of the custom app, and the refresh icon reloads available sources.
* Data Source Method Dropdown: After selecting a data source, this field specifies which method or endpoint to call (e.g., `GET /contacts`, `POST /updateContact`). Again, “+” adds a new method by navigating to the method screen of the custom app, and refresh updates the list.
* Buttons:&#x20;

  * Close: Exit without saving changes.
  * Delete: Remove this Method node from the flow.

  <figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2F4qzFvBTOcaKzjFgteY89%2Fimage.png?alt=media&#x26;token=4ed6c3bc-e255-489b-b0dc-4a81d036a3e0" alt=""><figcaption></figcaption></figure>

#### Get Slot Node:

* Represents a step in the orchestration flow where the bot collects a specific piece of information from the user (called a “slot”).
* Message/Prompt: This is the question or prompt the bot will ask the user to capture the required information.
* Slot: The variable name where the captured value will be stored.

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FMrbLjhlUU4j3GMwhMyzN%2Fimage.png?alt=media&#x26;token=9b370b7f-36b0-4eee-a9d7-780e8ce31a16" alt="" width="563"><figcaption></figcaption></figure>

#### Say Text Node:

* Represents a step in the orchestration flow where the bot sends a message back to the user.
* Message/Prompt: This is the text the bot will display to the user at this step. It can be static (e.g., *“Your request is complete.”*) or dynamic (e.g., *“Your contact details are: {{contact Info}}”* using variables from previous steps).
* Often placed after a Method node (API call) to show the retrieved data or after a Get Slot node to confirm input.

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FHtUx0iIHvp82UtnuRcqD%2Fimage.png?alt=media&#x26;token=4884d257-4733-413a-9811-b05688c7122e" alt="" width="563"><figcaption></figcaption></figure>

#### Exit Node:

* Represents the end point of the orchestration flow. When the bot reaches this node, the conversation or the current process is terminated.
* Message/Prompt: This is an optional closing message the bot will display before ending the flow. Example: *“Thank you for using our service. Goodbye!”*
* It can also provide a **final message** to confirm completion or politely end the interaction.

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FZZwiDWC58XknKtzPLuxq%2Fimage.png?alt=media&#x26;token=61147cef-f685-4503-a13d-fb4de0ebcefa" alt="" width="563"><figcaption></figcaption></figure>

### Create Intent Orchestration

#### Get Slot: Setup of the specific Slot for the Intent

| Settings         | Description                                                                                                                                                             |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Title            | Person                                                                                                                                                                  |
| Message/Prompt   | Please provide the name of the person whose contact number you want to find.                                                                                            |
| Slot (Drop-Down) | Person (When interacting with intents, you expect inputs from the users. Those inputs are mapped to slots. You need to capture those inputs for processing the intent.) |

Click: Close

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2F8N9SZJ0VMtphzrq3pign%2Fimage.png?alt=media&#x26;token=a6d40532-4fec-443e-83c1-034f764eca4f" alt="" width="563"><figcaption></figcaption></figure>

#### Method: Setup of the specific Method for the Intent

| Settings                       | Description      |
| ------------------------------ | ---------------- |
| Title                          | GetContactMethod |
| Data Source (Drop-Down)        | Rest API DS      |
| Data Source Method (Drop-Down) | GetContactMethod |

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FSVICaiOFOXioYXvQKiBr%2Fimage.png?alt=media&#x26;token=ac5465a2-9955-4d5c-b6db-07826aa7dbf0" alt=""><figcaption></figcaption></figure>

#### Say Text: Setup of the specific Say Text for the instance Contact Found

{% hint style="info" %}
To show how the connections work, we created a dummy session variable&#x20;
{% endhint %}

| Settings       | Description                             |
| -------------- | --------------------------------------- |
| Title          | Contact Found                           |
| Message/Prompt | The contact of the {{Person}} is found. |

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FQIJEOo0QXrfodnQGEGM2%2Fimage.png?alt=media&#x26;token=5adab4c2-d8b2-49c3-9480-f02c505070c5" alt="" width="563"><figcaption></figcaption></figure>

#### Say Text: Setup of the specific Say Text for the instance Contact Not Found

| Settings       | Description                                                     |
| -------------- | --------------------------------------------------------------- |
| Title          | Contact Not Found                                               |
| Message/Prompt | The contact of the {{Person}} is not available in our database. |

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FR0YqSRWLMxo9GKdD2cFI%2Fimage.png?alt=media&#x26;token=34e97ff4-ff15-4fce-8ec7-cf66a61f12ba" alt="" width="563"><figcaption></figcaption></figure>

#### Connection Detail:  Contact Found

| Settings         | Description                                                           |
| ---------------- | --------------------------------------------------------------------- |
| Title            | Contact Found                                                         |
| Message/Prompt   | Contact Found                                                         |
| Type (Drop-Down) | Conditional                                                           |
| Priority         | 1                                                                     |
| Conditions       | Slot/Variable: {{Session.Phone}}, Operator: Not Equals, Value : Empty |

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FG1vuT3T2c6gmzzdlNWlv%2Fimage.png?alt=media&#x26;token=ebb91279-6fd7-4d8f-b203-fdb51b7f4e23" alt="" width="563"><figcaption></figcaption></figure>

#### Connection Detail:  Contact Not Found

| Settings         | Description                                                      |
| ---------------- | ---------------------------------------------------------------- |
| Title            | Contact Not Found                                                |
| Message/Prompt   | Contact Not Found                                                |
| Type (Drop-Down) | Conditional                                                      |
| Priority         | 1                                                                |
| Conditions       | Slot/Variable: {{Session.Phone}}, Operator: Equals, Value: Empty |

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FoF6ekkauELh3Ju36I8TL%2Fimage.png?alt=media&#x26;token=33924e98-3d16-4351-bc2f-27e488ca2945" alt="" width="563"><figcaption></figcaption></figure>

#### Exit: The Exit node terminates the session and completes the flow execution

| Settings       | Description                                |
| -------------- | ------------------------------------------ |
| Title          | Exit                                       |
| Message/Prompt | Thanks for contacting and have a nice day! |

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FYSAZMFS2YWcEWfEAQsm8%2Fimage.png?alt=media&#x26;token=cba383a9-7c91-4780-a886-446a10ce00d8" alt="" width="563"><figcaption></figcaption></figure>

#### The Complete Orchestration Design for GetContactIntent is as follows

<figure><img src="https://1107164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8XHvUsfyTUFLvToHqD%2Fuploads%2FdSVW7fvm1ttYS4sdQJdN%2Fimage.png?alt=media&#x26;token=74d3b8b2-7e1b-4b37-8a3d-abb6119e4056" alt=""><figcaption></figcaption></figure>
