# Using the IF THEN ELSE function

Have more questions? Submit a request

Hi,

I'm trying to use an IF statement to set static KPI targets by priority but I am getting no data.

Here is the statement I was trying to use:

IF ([Ticket priority] = "Urgent") THEN
24
ELIF ([Ticket priority] = "High") THEN
48
ELIF ([Ticket priority] = "Normal") THEN
72
ENDIF

In other words, I want to show last week's first reply times in a table as they compare to our target first reply times.

Can anyone help or share some insight?

Thanks :)

Hey there Ayal,

This might require a bit more digging into to properly assess the report you're trying to build, as there are a few questions I need to ask you. I'm going to pull this into a ticket so we can continue the discussion!

• Fiona

Hi there

I'm trying to calculate NPS score using a custom numeric field I made in Support. I enter the number between 0-10 manually in a custom user field. If I assign 9 or 10, they should be considered a 'promoter', 7-8 should be a 'neutral' and the rest should be 'detractor'. I then want to perform the following calculation in Explore:

Promoter % – Detractor % = NPS

I guess I need to make this using an IF statement, followed by a custom metric, but I'm not sure how. Here's where I'm at so far. Any help is appreciated!

Zendesk Documentation Team
Hi Fiona, this set me thinking, and I believe I have a way you can do this. I didn’t have any test figures to try this with, but did confirm that the formulas are sound. Consider it a starting point!  If anyone knows a better method to do this, I’m sure they will jump in.
You’ll actually need to create four custom metrics. Do let me know how this works out for you!

1. Total scored tickets (Total tickets with a score]. (Use COUNT aggregator)
IF NOT ([NPS Score] = NULL) THEN [Ticket ID] ENDIF      = Total number of tickets with a score

1. Promoter.  (Use COUNT aggregator)
IF ([NPS Score]>8) THEN [Ticket ID] ENDIF

1. Detractor.  (Use COUNT aggregator)
IF ([NPS Score]<7 THEN [Ticket ID] ENDIF

1. NPS score.  (I think this should be the SUM aggregator, but you’ll need to test)
(([Promoter]/[Total scored tickets])*100) - (([Detractor]/[Total scored tickets])*100)
• Fiona

Amazing, thanks Rob!

Forgive my beginner questions, but does this still work if the custom field 'NPS Score' is on the user and not on a ticket?

Also, when I tried to make it, NPS Score wasn't an option in the first formula (I haven't got beyond the first one yet). I did get offered NPS comments instead by autocomplete, which is a text box custom user field I added.

Zendesk Documentation Team

Glad it helped and it's really not a beginners question!

I did a quick experiment and you might be able to use [Requester ID] instead of [Ticket ID]. You would need to set the aggregator to DCOUNT (which will only count each requester once).

That would look at all users who requested tickets, but only those with an associated NPS score. See if that works for you!

• Fiona

Thanks Rob! That makes sense.

I'm not being offered NPS Score in the formula maker - only NPS comments and NPS category (two non-numeric custom user fields I made) so I'm not sure what is happening. It lets me make the custom metric but doesn't recognise [NPS Score] then presents an error when I add the metric to my new query

Zendesk Documentation Team

Can you see if it's available if you use a custom attribute?

From this article, it depends on how the field is configured. You mentioned that you enter it manually. If you type it in, it might have been created as an attribute. See:

If you can't find it, we'll open a ticket so someone can dig into this a bit further with you :-)

• Fiona

Thanks, Rob. The screenshot above is when I click on metrics, so it's showing there as a numeric custom field, but doesn't show when I start typing NPS in the formula sentence. The other two custom fields I mentioned are showing when I select to add an attribute, so they all seem properly sorted at that level.

Zendesk Documentation Team

Thanks Fiona! That clearly seems like it shouldn't be happening. I've opened a ticket for you as I'd love us to help you get to the bottom of this!

• Fiona

Amazing, thank you!

Hello,

Can anyone help me with the following.

Is there a limit to how many else if statements can be used in a macro in Zendesk. When I add a second else if statement to the code below. A new ticket is not picking up the brand and is displaying the wrong URL.

The code works and I can save the macro.

{% if ticket.brand.name == 'xxx' %} Deactivation Form {% else if ticket.brand.name == 'xxxx' %}Deactivation Form {% else if ticket.brand.name == 'xxxxx' %}Deactivation Form {% else %}Deactivation Form{% endif %}

How do I check against blank values when writing if then statements?  I have tried statements with = 0, NULL and NaN but cannot get the then statement to work.  For example:

IF SUM(Downtime in Minutes) = 0 THEN 100
ELIF SUM(Downtime in Minutes) = NULL THEN 100
ELIF SUM(Downtime in Minutes) = NaN THEN 100

When I look at SUM(Downtime in Minutes) I may get no data as a result, I would then expect this if then to return 100 but that is not happening.  I've also tried = "" and = " " but still no 100.

What can I do to have a no value return 100?  I am trying to solve for when we, in the past present or future do not put a value in this numeric field.  If there is no value I can assume uptime was 100%.

Zendesk Team Member

Hello Kris,

If you use  IF VALUE(Downtime in Minutes) = NULL THEN 100 it should work for you. The SUM function is not adding anything together here so it is throwing off the metric.

I hope this helps!

Best,

Chris H

Hello Chris,

Thank you for your response.  I tried your suggestion and I am still getting blank values as a return item.

I have this:

IF VALUE(Downtime in Minutes) = NULL THEN 100
ELSE (44640 - SUM(Downtime in Minutes))/((44640 - SUM(Downtime in Minutes)) + SUM(Downtime in Minutes)) * 100
ENDIF

but I am only getting values for the ELSE part of the statement.

I also tried using:

IF VALUE(Downtime in Minutes) = 0 THEN 100
ENDIF

And only get partial success:

Am I doing something wrong?  I would expect the above blanks to have a 100 in the values.

Zendesk Community Team

Hello Kris,

It looks like you are being helped in an Advocacy ticket. If you need further help or have other questions on Explore, please let us know.

I'm having the same issues as others. If I include an ELIF clause only the ELSE values are being shown (URLs are just examples, they're going to link to ticket views):

ENDIF

Even on a report where it's shown next to another calculated attribute of simply VALUE(Support Priority), which shows correctly, it only ever shows the ELSE values.

Is there a wider issue here? It seems a number of people are having the same issue.

Community Moderator

Matthew

If you create a calculated attribute in the following format, the IF conditions should work as expected:

So can you please tell me about your 'Support Priority' field? Is this a custom text or numerical field?

Hi Graeme,
That’s right, “Support Priority” is a custom numerical field that we fill via the API according to some internal metrics. Because of this we have to set it as a calculated attribute and we want to link each category to a different place.

Community Moderator

Matthew

I cannot give a full explanation, but I suspect it is something to do with the level your custom numeric field is being aggregated.

Forcing the calculation at ticket level seems to resolve this:

Thanks Graeme! It may have been that, but your comment also made me realised that we have two fields with the same name - one on the user and one on the ticket - and it's not obvious which is which when working in the formula box. I'd just been using the first one that came up so I switched to the second one and now it's working!

PS. It'd be really great if it were more obvious which object those fields were on, for cases like this.

Community Moderator

Matthew

Glad you are sorted. I certainly needed to use the 'Computed from' setting, otherwise I just got 'Other' as my result. Hopefully when we are up to speed with Explore these things will become more oblivious :)

Zendesk Documentation Team

Hi Mike P, thanks for this feedback. ELIF is documented at the end of the article - https://support.zendesk.com/hc/en-us/articles/360022367153?page=1#topic_xwz_smg_lx
and ELSE should work as you state. However, you are right that the article could be clearer.
I'll be doing some further testing this week and will make some updates to the article soon.

Zendesk Documentation Team

Hi Mike P have you seen the Explore functions reference article? - https://support.zendesk.com/hc/en-us/articles/360022184834

This contains a listing of every Explore function with a brief description. Some of the functions need further explanation so we create separate articles for those.

However, we are always looking at ways to improve the documentation based on what people using the product need, so please keep the feedback coming!

Hi Rob,

I'm trying to show multiple ticket creation by individual requesters.

I would like to work out how to calculate, out of the total requesters, the number who have submitted one ticket, two tickets and so on.

Ideally I would like to be able to show this as a proportion, with % of requesters subimtting one tickets vs requesters submitting more than one ticket,

Many thanks for the help.

Zendesk Documentation Team

Hi Chris , here's one way of doing what you want.

Open a query using the Support: Tickets dataset.

In the Metrics panel, add COUNT(TICKETS)

In the Columns panel, add Requester name

Change the visualization type to a Pie chart

That will give you what you are looking for. Hope this helps!

Hi Rob,

Thanks for that. Tried but unfortunately,that doesn't quite solve my problem. As we have over 1000 people submitting tickets, the pie chart doesn't really work

I wonder if it might need another step, a way of creating a custom standard metric where requester IDs that have multiple tickets attached are given a certain value, and those who have a single ticket attached are given a different value.

https://support.zendesk.com/hc/en-us/community/posts/203458196-GoodData-tip-Track-your-rate-of-repeat-ticket-submitters

However the steps carried out in this thread are per 3 years old and I think it refers to the previous system.

Thanks!

Zendesk Documentation Team

Hi Chris I read through that article, but wasn't able to create it in Explore. I've opened your query as a ticket, so support can work with you to try and get exactly what you need. Thanks!

Hi,

I'm wanting to record how many incidents are transferred from one department to another, so say I have a transfer from our Support team with ID 360001471000 to our EDD Team 360001470980 to provide me the updated Ticket ID, what would be the best way to achieve this?

We're wanting to avoid the Ticket Tags reporting as when this is transferred back from EDD to Support we lose the Tag.

Thanks!

Zendesk Community Team

Hey Oliver,

I was able to track down the following recipe that could help get you started on the report you're looking for:

Explore recipe: Tracking ticket assigns across groups

I hope this points you in the right direction!