Create a Custom App
Prerequisites:
The following shows the general steps/activities that will be carried out in setting up this integration. Note: It is advisable to use same E-Mail for signup across the 3 channels below. Step 1 -3 below are compulsory.
Sign up for Zendesk account (Part of pre-requisites)
Sign up for iX Hello platform (Part of pre-requisites)
Publish the app
Test the Amazon Lex app.
Let's Create a Custom App:
Fill following details in the Add Custom window and click ‘Save’.
Name: Zendesk Assistant
Custom Skill Type: Search
Set this app as the Gen AI-App
Click Save

Create Data Source:
In the top menu tabs, select “Data Sources” then “Create New Data Source”. Provide the following details:
DataSource 1: Gen AI
Name: GenAIZendeskAssitant-DS
Integration Configuration: Gen AI
Click: Save

DataSource 2: Zendesk
Name: ZendeskAssit-DS
Integration Configuration: Gen AI
Click: Save

Create Methods to fetch the data from Zendesk
Next step is to create Methods. Methods allows you to fetch data from Zendesk. The Zendesk supported custom queries can be used to define the data to be fetched from the linked Zendesk account.
iX Hello platform currently supports following Zendesk methods:
AssignTicketToGroup
DeleteTicket
GetPendingTickets
GetSolvedTickets
GetGroups
GetOpenTickets
GetTicketById
GetTicketsByUser
GetNewTickets
GetTicketsByType
GetTicketsByPriority
GetClosedTickets
AssignTicketToUser
CreateTicket
GetAllTickets
UpdateTicket
For this document, we’ll create only few methods. Users can refer to the appendix to explore all other supported methods.
Method 1: createNewTicketMethod
This method requires three parameters. Please review the information below.
Parameters:
Subject
{{Subject}}
TicketDescription
Issue with Laptop
ItemData
{"Type": "{{Type}}", "Priority":"{{Priority}}", "Status": "{{Status}}"}
Other than these parameters, provide following standard inputs:
Method Name
You can give any name. This name will be displayed in the methods list. createNewTicketMethod
Request Type
Create Ticket
This is the method that you are using
Parameters
As explained in the previous table
Result Type
Records (Auto Selected)
It indicates that the method can return one or more records
Record JsonPath
Each method returns data in Json format and to pick any specific information from the json, we need to specify the Record JsonPath so iX Hello platform will pick that data in consideration while displaying results.
Example: $
This selects all the records that is returned.
Empty Result Template
When the method does not return any data, this response will be generated. So, we can specify something like:
{{Records}}
Valid Result Template
{{Records}}
Sample Response:

Method 2: getAllTicketsMethod
Method Name
You can give any name. This name will be displayed in the methods list. getAllTicketsMethod
Request Type
GetALLTickets
This is the method that you are using
Parameters
No Parameter
Result Type
ListOfRecords (Auto Selected)
It indicates that the method can return one or more records
Record Limit
Numeric value (e.g. 10)
If Method is returning larger number of records, then you can limit this result by providing this value.
Record JsonPath
Each method returns data in Json format and to pick any specific information from the json, we need to specify the Record JsonPath so iX Hello platform will pick that data in consideration while displaying results.
Example: $.[*]
This selects all the records that is returned.
Empty Result Template
Sorry... No Record found
Valid Result Template
{{Records}}
Record Template
ID: {{id}}, Subject:{{subject}}, Description: {{description}}, Type: {{type}}, Priority:{{priority}}, Status: {{status}}
Sample Response:

Method 3: updateTicketMethod
This method requires three parameters. Please review the information below.
Parameters:
ID
{{TicketId}}
ItemData
{"Type": "{{Type}}", "Priority":"{{Priority}}", "Status": "{{Status}}"}
Other than these parameters, provide following standard inputs:
Method Name
You can give any name. This name will be displayed in the methods list. updateTicketMethod
Request Type
Update Ticket
This is the method that you are using
Parameters
No Parameter
Result Type
Records (Auto Selected)
It indicates that the method can return one or more records
Record JsonPath
Each method returns data in Json format and to pick any specific information from the json, we need to specify the Record JsonPath so iX Hello platform will pick that data in consideration while displaying results.
Example: $.[*]
This selects all the records that is returned.
Empty Result Template
{{Records}}
Valid Result Template
{{Records}}
Sample Response

Method 4: getClosedStatusTicketsMethod
Method Name
You can give any name. This name will be displayed in the methods list. getClosedStatusTicketsMethod
Request Type
GetClosedTickets
This is the method that you are using
Parameters
No Parameter
Result Type
ListOfRecords (Auto Selected)
It indicates that the method can return one or more records
Record Limit
Numeric value (e.g. 10)
If Method is returning larger number of records, then you can limit this result by providing this value.
Record JsonPath
Each method returns data in Json format and to pick any specific information from the json, we need to specify the Record JsonPath so iX Hello platform will pick that data in consideration while displaying results.
Example: $.[*]
This selects all the records that is returned.
Empty Result Template
Sorry... No Record found
Valid Result Template
{{Records}}
Record Template
ID:{{id}}, Subject:{{subject}}, Description:{{description}}, Type:{{type}}, Priority:{{priority}}, Status:{{status}}
Sample Response

Method 5: getPendingStatusTicketsMethods
Method Name
You can give any name. This name will be displayed in the methods list. getPendingStatusTicketsMethods
Request Type
GetPendingTickets
This is the method that you are using
Parameters
No Parameter
Result Type
ListOfRecords (Auto Selected)
It indicates that the method can return one or more records
Record Limit
Numeric value (e.g. 10)
If Method is returning larger number of records, then you can limit this result by providing this value.
Record JsonPath
Each method returns data in Json format and to pick any specific information from the json, we need to specify the Record JsonPath so iX Hello platform will pick that data in consideration while displaying results.
Example: $.[*]
This selects all the records that is returned.
Empty Result Template
Sorry... No Record found
Valid Result Template
{{Records}}
Record Template
ID:{{id}}, Subject:{{subject}}, Description:{{description}}, Type:{{type}}, Priority:{{priority}}, Status:{{status}}
Sample Response

Method 6: getOpenStatusTicketsMethod
Method Name
You can give any name. This name will be displayed in the methods list. getOpenStatusTicketsMethod
Request Type
GetOpenTickets
This is the method that you are using
Parameters
No Parameter
Result Type
ListOfRecords (Auto Selected)
It indicates that the method can return one or more records
Record Limit
Numeric value (e.g. 10)
If Method is returning larger number of records, then you can limit this result by providing this value.
Record JsonPath
Each method returns data in Json format and to pick any specific information from the json, we need to specify the Record JsonPath so iX Hello platform will pick that data in consideration while displaying results.
Example: $.[*]
This selects all the records that is returned.
Empty Result Template
Sorry... No Record found
Valid Result Template
{{Records}}
Record Template
ID:{{id}}, Subject:{{subject}}, Description:{{description}}, Type:{{type}}, Priority:{{priority}}, Status:{{status}}
Sample Response

Method 7: Gen AI
Name: Chat Completion RAG
Request Type: chatcompletion-rag
Parameters
Model: Select your preferred Generative AI model (e.g., Azure gpt-4o).
System Message: Provide instructions for the bot’s behavior:
This is a sample prompt/system message, this can be configured as per the use case need.
UserQuestion: {{UserInput}}
Streaming: False
SessionTime: 10
OrganizationID: {{Context.OrganizationID}}
EmployeeID: {{Context.OrganizationID}}

Configure Method Output:
Result Type: ListofRecords
Record Limit: 10

Configure Method Result:
Record JsonPath: $.choices[0].message
Valid Result Template: {{Records}}
Record Template: {{content}}
Empty Result Template: "Is there anything else I can assist you with?"
Uncheck: Automatically prompt for next question
Save & Test
Click Save & Test. This will initiate a test API call.

Sample Response

Create New Intent
Click Create New Intent.
Enter Intent Details as Follows:
Name
CreateNewTicketIntent
Intent Type
Search
Intent Action
Execute Method
Data Source
ZendeskAssist-DS
Data Source Method
CreateNewTicketMethod
Dialog Delegation Strategy
Fallback To Skill
Action
Save the intent configuration

Similarly Create the Intents for rest of the Methods created:
getAllTicketsMethod - getAllTicketsDetailsIntent
updateTicketMethod - UpdateTicketIntent
getClosedStatusTicketsMethod - getClosedStatusTicketsIntent
getPendingStatusTicketsMethods - getPendingStatusTicketsIntent
getOpenStatusTicketsMethod - getOpenStatusTicketsIntent
GenAIZendeskAssist-DS - chatIntent
Slot Creation
Slot Creation Steps for Generative AI and ZendDesk
Slot: CreateNewTicketIntent
Parameter 1: Subject
Parameter 2 : Description
Parameter 3: Type
Parameter 4: Priority
Parameter 5: Status
Name
Subject
Description
Type
Priority
Status
Description
Subject
Description
Type
Priority
Status
Slot Order (Sequence Number)
0
1
2
3
4
Reprompt Message
(Its a message that the use will be asked when the slot can not be retrieved in an utterance) Please provide ticket subject
Please provide ticket description
Please provide ticket Type
Please provide ticket Priority
Please provide ticket Status
Type
Text
Text
Text
Text
Text
Custom App
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Intent
CreateNewTicketIntent
CreateNewTicketIntent
CreateNewTicketIntent
CreateNewTicketIntent
CreateNewTicketIntent
Enable
Is Required
Is Required
Is Required
Is Required
Is Required
Action
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration

Create rest of the slots as per the parameters suggested.
Utterance
Navigate to Utterances
In your Custom App, go to the Utterances tab.
Create New Utterance: Enter Intent Details as Follows:
Value
create new ticket
get all tickets details
get closed status tickets
get open status tickets
get pending status tickets
update ticket
Custom App
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Intent
CreateNewTicketIntent
getAllTicketsDetailsIntent
getClosedStatusTicketsIntent
getOpenStatusTicketsIntent
getPendingStatusTicketsIntent
UpdateTicketIntent
Action
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration

Create rest of the Utterances as per the Intents created.
Input Configuration
For Generative AI Intent
Navigate to Input Configuration
In your Custom App, go to the Input Configuration tab.
Name
CreateNewTicketInput
getAllTicketsDetailsInput
getClosedStatusTicketsInput
getOpenStatusTicketsInput
getPendingStatusTicketsInput
UpdateTicketInput
Custom Skill
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Zendesk Assistant_d9ca9e96-4410-472b-9769-8a94c58067df
Custom Intent
CreateNewTicketIntent
getAllTicketsDetailsIntent
getClosedStatusTicketsIntent
getOpenStatusTicketsInput
getPendingStatusTicketsIntent
UpdateTicketIntent
Description
CreateNewTicketInput
get all tickets details input
getClosedStatusTicketsInput
get open status tickets input
getPendingStatusTicketsInput
UpdateTicketInput
Data Source
ZendeskAssist-DS
ZendeskAssist-DS
ZendeskAssist-DS
ZendeskAssist-DS
ZendeskAssist-DS
ZendeskAssist-DS
Data Source Method
CreateNewTicketMethod
get all ticketsMethod
getClosedStatusTicketsMethod
getOpenStatusTicketsMethod
getPendingStatusTicketsMethod
UpdateTicketMethod
Enable Gen AI Toggle Button
Yes
Yes
Yes
Yes
Yes
Yes
Action
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration

Input Parameter Configuration
These parameters are created if and only if the method parameter exists to each methods created.
Input Parameter Creation for: CreateNewTicketInput
Search Parameter Name
Subject
Description
Type
Priority
Status
Data Type
Text
Text
Text
Text
Text
Description
Subject
Description
Type
Priority
Status
Method Parameter
Subject
Description
Type
Priority
Status
Action
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration
Save the intent configuration

Test the App
Click on the three dots under "Action." A dropdown menu will appear; select the "Test" option to test the application.

Click the "Test" option to access the chat widget. Here, you'll see the bot's name and a welcome message, allowing you to start your conversation with the bot.

Congratulations! You have successfully completed building a custom app using Zendesk.
Last updated
Was this helpful?