Recent searches
No recent searches

Craig Chamberlain
Joined Oct 25, 2023
·
Last activity Oct 30, 2024
Following
0
Followers
0
Total activity
9
Vote
1
Subscriptions
3
ACTIVITY OVERVIEW
BADGES
ARTICLES
POSTS
COMMUNITY COMMENTS
ARTICLE COMMENTS
ACTIVITY OVERVIEW
Latest activity by Craig Chamberlain
Craig Chamberlain commented,
Hello!
You may have figured this out by now but the way that I get notified of integration errors is via ZIS. Within the ZIS integration script, you can add the built in “Catch” parameter within each “state”. This catches all error states or any that you decide.
"Catch": [
{
"ErrorEquals": ["States.ALL"], ← Match Any error states
"Next": "ErrorFlow" ← Next state or action to direct the flow into.
}
],
In this case, I create an errorFlow action that triggers a ticket creation in Zendesk, indicating what the error was. ( Using the {{$.Cause}} placeholder in the ticket description).
The whole example within a Zendesk Get Ticket details state/action →
"ZendeskTicket": {
"Type": "Action",
"ActionName": "zis:sample_zis_tkt_create_event:action:action_get_ticket_data",
"Parameters": {
"ticket_id.$": "$.ticket_id_str"
},
"Catch": [
{
"ErrorEquals": ["States.ALL"],
"Next": "ErrorFlow"
}
],
"ResultPath": "$.ticket_data",
"Next": “NextActionIfDoesn'tFail”
},
If the GET fails for any reason, an error ticket is created, and a message is added to the integration logs with similar info.
https://developer.zendesk.com/documentation/integration-services/getting-started/understanding-zis/
:)
View comment · Posted Oct 30, 2024 · Craig Chamberlain
0
Followers
0
Votes
0
Comments
Craig Chamberlain commented,
I came across this looking for something else but thought i'd chime in here even though this is old. I may create a new thread for this if people find this helpful.
I noticed that Zendesk customers are very confused about how to connect with third party systems aka, integrating, and I am/was one of these confused customers. Third party solutions seem to be suggested by Zendesk agents. To keep it in house, the solution that I found, painstakingly after many hours of research i might add, involves ZIS flow. ( Also front end app for OAuth Authorization button, if third party system is requiring OAuth).
You can learn a lot about ZIS flows here..
https://developer.zendesk.com/documentation/integration-services/getting-started/zis-code-playground/
So I set up two ZIS flows and one client side app. (ZIS was rather confusing to learn so if anyone is doing this, use the ZIS playground, amazon docs for AWS Step Functions, and some JQuery resource, in conjunction with the Zendesk docs. https://docs.aws.amazon.com/step-functions/latest/dg/concepts-states.html. )
ZIS Flow On Ticket Creation Event
This goes through a series of steps and results in a ticket in the third party system. For my use case, we connected with ServiceNow. This involved roughly the following...
- Enters a choice state to confirm if the ZIS flow should continue running or not. based on requester id. This is how i differentiate between ZIS flows for different requesters/customers.
- Gets the ticket id of the current ticket. The values available during the ZIS flow events are limited and no custom field or comment values present so the next step is an api call to the current ticket to get all values.
- API call to get all Zendesk ticket fields.
- Then get all the values you need for the payload to be sent over. This will likely involve transforming data. For example - a custom field is not the same as the third party systems expected field value. Transform this in a ZIS transform action where you can sub your value for theirs and store result to an output variable.
- Make the api call to third party endpoint to create a ticket ( depending on your use case) and store the response in the action output.
- Choice state to check response output variable for a success status of 201.
- Get their ticket i'd from the response output variable.
- Store their ticket id in a custom field in zendesk, I use "Customer Ticket ID" custom field. ( api call to zendesk ticket to update the ticket field)
- End ZIS flow.
Comment Added Zendesk Event
- This is how we communicate back and forth, through the Zendesk comments and ServiceNow worknotes. They have some app on their end that i had nothing to do with. All they had to do was set up the sending of their work notes over to the corresponding ticket in Zendesk using an apikey I create and revoke as needed.
- When comment added in Zendesk flow starts, it enters a choice state to confirm that it should be running based on requester id field.
- Another choice state to check if comment is public. If it is public, the flow will continue. if private, the flow will stop and no comment sent over.
- API call into Zendesk to get new comment and third party ticket id that was stored in the "Customer Ticket ID" custom field, during the ticket create flow.
- API call to third party - ServiceNow in my case.
- Finish action containing message with the ticket id from ServiceNow. ("Comment successfully added to ServiceNow. Updated in Incident ####")
NOTES
- The ticket create and comment added events will both run on ticket creation because there are comments present ( ticket description). To get around this, check for time created in a choice state. If ticket was created at the same time that the comment added flow runs, stop the comment added flow. If you don't address this then the third party system will get a new ticket and a comment at the same time ( duplicate description).
- Have your customers post their comment to Zendesk as private. In my setup, if they add it as public, the add comments event ZIS flow checks for that and will continue to run. This could cause endless looping depending on how the third party system is set up or at minimum, will cause them to get their recently added comment back again.
I hope this helps shed some light on this for some people. I can't say for sure if this was the correct way of doing things or not but it's how my company is integrating and this is the result of countless hours of learning through trial and error.
Good luck!
View comment · Posted Nov 29, 2023 · Craig Chamberlain
0
Followers
1
Vote
0
Comments
Craig Chamberlain created a post,
Hello, I have a use case where the ZIS flow goes into a certain state and then needs to change an already initialized value. I am having a hard time finding documentation on how to change a value using a transform action. Is this possible?
"modifyValue": {
"Type": "Action",
"ActionName": "zis:common:transform:Jq",
"Parameters": {
"data.$": "$.data",
"expr": ' < expression to modify value to an empty string or Null >'
},
"ResultPath": "$.ChangedData",
"Next": "nextAction"
},
Thanks
Posted Nov 01, 2023 · Craig Chamberlain
0
Followers
1
Vote
1
Comment
Craig Chamberlain commented,
Hi Ahmed.
I had suspected this was the case but wanted to double check. Tickets API will work for my use case.
Thank you for your assistance.
View comment · Posted Oct 26, 2023 · Craig Chamberlain
0
Followers
0
Votes
0
Comments
Craig Chamberlain created a post,
Hello,
I am currently working on a use case where I use the requests api to create a ticket on behalf of a customer.
This works fine but i'd like to be able to have them add comments from the requests api as internal. I can't seem to get this to work. The comment will add as public no matter what i do it seems, what am i doing wrong? is it even possible to add a comment on behalf of an end user, as internal?
(python )
body = {
"request": {
"comment": {
"public": False, ( i have tried "is_public" as well)
"body": "new ticket comment."
}
}
}
thanks
Posted Oct 25, 2023 · Craig Chamberlain
0
Followers
3
Votes
1
Comment