Use Case - Looking Up Caller Information from Zendesk

Look up caller information in Zendesk and display it in Nimbus.

In this use case, we're going to look up caller information in Zendesk and display it in Nimbus. We also want to pop up the contact view in Zendesk if the caller has been found.

PRECONDITIONS

  • You require at least service owner rights to to create the flow and configure Nimbus.
    💡 As you require a Power Automate Premium subscription to use the Zendesk Flow Connector we recommend using a Tenant Admin account to configure this (and other) flows. The cost for Flow subscriptions is determined by Microsoft and out of Luware support scope.
  • A Nimbus service is set up.
  • You have a running Zendesk instance for you company with a service account.

🔍 Note: You can register to get a Zendesk demo account on the official website Zendesk API quick start | Zendesk Developer Docs. Please create at least one company and one user to test with.

 

INC Icon Legend Accordion

Show Icon Legend

💡 = A hint to signal learnings, improvements or useful information in context. 🔍 = Info points out essential notes or related page in context.
☝ = Notifies you about fallacies and tricky parts that help avoid problems. 🤔 = Asks and answers common questions and troubleshooting points.
❌ = Warns you of actions with irreversible / data-destructive consequence. ✅ = Intructs you to perform a certain (prerequired) action to complete a related step.
 
 

Overview of the flow

 
 

Prepare Your Zendesk Instance

✅ Make sure to create a contact with a valid phone number in your Zendesk instance. As we are working with the default installation of Zendesk, the fields of a contact are limited to the following:

💡 We use the field called "Details" as the phone number field in our example.

Add Nimbus Trigger

Start with the element "GetOnNewTasks" and select the service your want to run this flow with.

💡 This will supply us with the necessary "Caller ID" field as soon as the call is ringing on the service.

Find Zendesk Contact

Now we want to match the "caller ID" field with the contact in Zendesk. As shown in the previous step we used the "Details" field in our example. We need to filter on that field.

  1. Add a new Zendesk "Get items" element to the flow and set it to:
    1. Table name = Users
    2. Filter query = details eq '@{triggerOutputs()?['body/microsoftCallerId']}'
  2. Now we want to store the ID of the first contact found in the collection in a variable.

Add a "Initialize variable" element to the flow and set it to the following:

  • Name = “ZendeskId”
  • Type string
  • Valueoutputs('Get_items')?['body/value'][0]['id']

According to a Power Automate integration discussion the Zendesk Integration has an unfixed bug in regards to filtered queries.

The Zendesk Get Items action doesn't actually work if you have any filters applied so you can only make this work using HTTP action. Get Items is essentially redundant until it's fixed, although this has not been updated in 4 years since the first report on the community in 2019, so I suspect Zendesk aren't interested in fixing the integration. 

We successfully tested our scenario in this Use Case in June 2023 but will not provide updates or support on changed scenarios in the Zendesk API / Integration. If you encounter this issue, we recommend using an unfiltered query and processing it in a separate action.

 

Update the Nimbus Task

Now we want to update the Nimbus task with the contact information from Zendesk.

Add Nimbus UpdateTask with the following values:

  • CustomerCustomFields.ZendeskCustomerUrl concat('<Zendesk URI>/agent/users/',variables('ZendeskId'),'/requested_tickets')
  • Customer.CustomFields.ZendeskId = variables('ZendeskId')
  • Customer.Displayname = outputs('Get_items')?['body/value'][0]['name']

Configure Nimbus

Last but not least, you need to add a custom conversation context item in Nimbus configuration to screen pop the ZendeskCustomerUrl on an incoming call and assign it to the service.

1. Head to Configuration > Conversation Context and create a new item under your service's Organization Unit (OU).

  1. As URL, use:
CODE
$(Customer.Customfields.ZendeskCustomerUrl)

💡 If this context is to be used by multiple Zendesk-reliant services each in their own flows, make sure to set the OU a level higher so all services see this context.

2. Apply the context for each service within the Service Settings > Context tab.

3. Make a test call with a known PSTN in your Zendesk instance to see if the context is now looked up and opening correctly.

💡 Make sure the receiving user of that call has Nimbus portal open in their browser. Otherwise the context window cannot be opened.

Table of Contents