Overview

The Out of Office app displays the current out-of-office status of the agent on tickets assigned to the agent.

The app displays a list of all agents along with who is out-of-office or not.

The app prevents tickets from being accidentally assigned to an agent who is OOO. When the prevention happens there's also a pop-up notification displayed to the agent making the attempt which looks like the following:

Exception:If a ticket is being assigned by thecurrent agent to themselves while they are OOO - that will be allowed. Reason being is it is assumed the current agent that's OOO and assigning themselves a ticket knows they are OOO but just in case, the following warning will be displayed after the ticket is saved:

Now say an agent attempts to update a ticket where they're not the current assignee and the current assignee happens to be OOO. In this case the agents updating tickets where the current assignee is OOO will be able to update the tickets but the following warning notification will be displayed so they're made aware of the current assignee's OOO status:

Pending & On-Hold tickets assigned to an OOO agent which get updated with a status change to Open are reassigned to the respective ticket's parent group but the assignee field becomes empty. Status changes from Pending or On-Hold will happen, for example, when an end-user replies to an email notification.

What's installed with the app

The app automatically creates the following items in your Zendesk when it's installed:

a user field that applies an agent_ooo tag to users marked as unavailable

a trigger to handle the unassign action on a ticket based on the agent_ooo tag

a trigger to remove the agent_ooo tag from a ticket when it's assigned to a different agent

The items are required for the app to work. Don't delete or modify them.

Changing the settings

You can modify the default behavior of the app by changing the app settings outlined in this section. To change app settings, click Admin () in your Zendesk, then select Apps > Manage. Click the gear icon on the right side of the Out of Office app and select Change Settings.

Setting: Confirm status change?

Disabling this option makes changing an agent's status a seamless process by disabling the confirmation message. As a side effect, it will no longer be possible to decide on a case-by-case basis whether or not to unassign an agent's open tickets when marking them as unavailable.

Setting: Force unassign tickets?

Enabling this setting unassigns an agent's open tickets automatically whenever their status is changed to unavailable. This option is disabled by default, allowing the unassign action to be run on a case-by-case basis.

Setting: Prevent assignment?

Disabling this option allows tickets to be saved if they're assigned to an agent who's unavailable. Warnings will still be displayed that the assignee is unavailable, and agents will always be able to assign tickets to themselves regardless of their status.

Using the app

Agent status can be modified using the app in the ticket sidebar (shown below) or user profile.

Administrators can also modify agent status from the app dashboard accessed from the navbar on the left side of the agent interface.

Clicking on the status toggle displays a dialog box that lets you change an agent's status. Changing the status either adds or removes a tag on Pending/On-Hold/Solved tickets as well as optionally all Open tickets. See Understanding the 'agent_ooo' tag below.

When a Pending/On-Hold ticket is reopened by an end user and the assignee is unavailable, a trigger fires that returns that ticket to the group unassigned queue. You can add a trigger to send a notification to the parent group to let everybody know a requester just updated a ticket assigned to an OOO agent that's now in the parent group. See Extending the app below.

The app checks the status of the assignee each time a ticket is saved. If the assignee is out-of-office, the app warns the updater that the assignee is unavailable. If the Prevent assignment? setting is enabled, it also prevents tickets from being saved if the new assignee is unavailable.

Understanding the 'agent_ooo' tag

Changing the out-of-office status either adds or removes an agent_ooo tag on tickets based on the following rules.

When the agent marks his or herself as unavailable, the agent_ooo tag is added to the agent's user profile in the Agent Out? user field

When the agent changes their status to unavailable, the tag is added to all Pending/On-Hold/Solved tickets. When the agent changes their status to available, the tag is removed from all Pending/On-Hold/Solved tickets.

Any Open tickets with the tag are unassigned on update

If the ticket assignee is changed, then the tag is removed

If the tag is removed from a ticket, no other tags are removed

Known limitations

If the Prevent assignment? setting is disabled and a ticket is assigned from one unavailable agent to another unavailable agent, the agent_ooo tag will be lost. This means that the ticket will not be unassigned if it is reopened

Agents are able to assign a ticket to a group with only one agent even if the sole agent in that group is unavailable

The message 'Error: Unable to get list of agents' will be displayed for users if their role has the 'Cannot browse or search for users' permission set

Agents without administrator rights can't change their status using the app dashboard in the navbar on the left side of the agent interface. They can still change their status from their profile or from one of their assigned tickets

The agent_ooo tag is added to solved tickets. If the ticket is closed while the tag is applied, the tag will not be removable. This may be undesirable for reporting purposes. If so, the system automation that closes solved tickets can be modified to remove the agent_ooo tag

Intermittently when marking an agent as OOO and un-assigning all open tickets only some of the tickets will actually get unassigned

When a ticket assigned to an OOO agent gets updated the ticket gets assigned back to the parent group with a null Assignee value - the trigger working in the background during this action does not currently send an email notification to the agents in the group notifying them this happened

The app will not prevent assigning tickets unless the ticket is updated individually through the Zendesk interface. Triggers, the Mail API, and REST API, and bulk editing will all be able to bypass the assignment restrictions

Extending the Out of Office app

Customizing the app is not recommended unless you're an experienced Zendesk administrator. If you modify the generated triggers, you may cause the app to behave unexpectedly or to completely fail.

As well, future versions of the app may change how the tags and triggers behave, which could break any modifications you make. If you end up customizing this app, make sure you take this into account to avoid a bumpy ride.

Notify the group on an updated ticket with an out-of-office assignee

Notify the ticket's parent group that a given out-of-office assignee had their ticket updated. This sends a notification to all in the given ticket's parent group that the ticket is still assigned to that group but there's no longer an assignee.

An additional action can be added to add a custom tag every time a ticket is unassigned by that trigger.

At this point business rules may be created around this new tag. For example, you might use this new tag to notify the group that a ticket has been assigned back to it by the app.

Leaving tickets assigned to users

You can modify the unassign trigger to only tag tickets as reopens, and then customize your own actions on updates to tickets where the agent is unavailable. To do this, add "Ticket: Status - Changed" as an "all" condition to the trigger, and remove all actions except adding a tag such as "reopen_agent_ooo". You can then perform your own business logic, with the app managing which tickets have the agent_ooo tag applied and with reopened ticket getting the reopen_agent_ooo tag applied.

Features on the Roadmap

Custom OOO messages for agents

Scheduling

Display of whether or not an agent is on/offline & ability for Admins to set agent online/offline

i81n

If there is a feature you don't see here that you want - please leave your feedback in the comments on this document, thanks!

145 Comments

How can I get the ooo tag to apply to open tickets? Those are the most critical tickets that we need to assign back to the group (when a requester replies to the ticket) to take care of while the agent is out.

@Paco The default behavior of the app is to unassign open tickets and send them back to the group if the 'Unassign All Open Tickets' option is checked. What is happening in the background here is those tickets are being tagged along with the pending/on-hold tickets and then the trigger that was added by the app ('Ticket: out-of-office app unassign trigger [System Trigger]') unassigns tickets which are open and have the tag added to them.

If this doesn't work for your workflow, you are welcome to turn on the app setting 'Force unassign tickets?'. This will cause status updates to tag all non-closed tickets. You can then modify the trigger to route the updated tickets appropriately when the end user updates them.

@Benjamin Thanks, I took your second suggestion and set the app to force unassigned tickets. Then modified the trigger that unassigns and added the criteria of when the requester updates a ticket. Works perfectly for our workflow!

jeeez. not sure if this was covered above. but one aspect that is preventing the use at the moment is how the open comments forces the re-assign. it would be great to be able to control what actions happen upon new comment. e.g. CC instead of full un-assign. thanks

Hello, it's a fantastic tool, i can't wait for the new functionalities scheduled. And i hope that it won't remain as a lab and will be fully implemented as standard
But right now i have just a little aesthetic recommendation: the left Icon is really too big regarding the others ones. Could you reduce it a little in order to be at the same size ? Thanks a lot :)

Hi there,
I recently installed the 'out-of-office' app and I did not enable the role restriction.
I have multiple roles, however only the administration role is able to change out-of-office statuses, all other roles can view the statuses but cannot make changes.
I've spoken to Zendesk Support and they confirmed they can see the error but they directed me your way for further help :)
Can you please look into this?
Many thanks,
Nathalie

I wanted to see if there was a timeline for fixing the bugs with this app. We currently have it installed, but the tickets still do not automatically unassign when an agent is set to "Unavailable". Also, it would be great if tickets could be assigned to an OOO agent when submitting a ticket as a Solved status. Looking forward to hearing any updates!

@Nathalie Agents should be able to change their own status by going to their user profile and using the sidebar app there. Agents are not able to modify other agents, which prevents them from marking anyone but themselves as unavailable.

@Erica The default behavior of the app is to leave tickets assigned to an agent if they are in pending/on-hold status and have not be updated by an end-user. The app trigger can be modified to immediately unassign all tickets if you would prefer that behavior. If you decide to go that route I would encourage you to enable the option "Force unassign tickets?". This will ensure that open tickets as well as pending/on-hold are updated with the agent-ooo tag.

We are having an issue where the agent_ooo tag isn't being applied consistently. Some pending tags are making it back into an OOO agent's queue. Can someone advise where I can get support on this app, since Zendesk's regular support team said they cannot help. Thank you!

@Kathryn - My team had the same issue until I was finally able to meet with someone at Zendesk about it. Essentially, the app tags every ticket for the agent when the status is set to "Unavailable". If you have very high ticket volume, then it will take awhile for the app to tag every ticket (ie 3-7 minutes in some cases). During this time, that page cannot be left otherwise the tagging terminates. The same goes for when you set the status to "Available", you will have to leave the page up while it untags every ticket. You can decrease the amount of time a ticket is in Solved before moving to Closed to speed things up. However, at this point you have to encourage people to wait for the second confirmation. You can also look at the developer tools to see how many "requests" (tickets tagged) have gone through. Hope that helps!

@Erica Thank you for the helpful response. This definitely is a known issue that I'm working on addressing, but in the meantime it is important to be patient and wait for the tickets to be updated.

The notification you are looking for is "Updated [x] Pending/On-Hold tickets with the agent status for Agent" Once that message appears, it is safe to navigate away from the page you were on when you changed the agent's status.

We tried using it for our Zendesk deployment. Seems that it only tags solved/pending/onhold tickets with agent_ooo. All of the open tickets do not get tagged at all, which is not helpful at all. Our ticket volume is VERY low as we're a new customer that is in the middle of a migration so we have very few tickets.

Ticket opened for Zendesk to help us basically told us to go pound salt as it's an unsupported app.

A new version of the app has just been released that solves a number of issues from the previous version. I've also reworked the interface design to help save space in the app sidebar. This version makes updating tickets with the agent_ooo tag significantly faster and more reliable.

Thank you for the bug report. I will take a look at it and see if a solution can be found. As a warning, I will be dropping support for IE 10 when it reaches end-of-support on consumer operating systems starting January 12, 2016. While I won't intentionally break compatibility I'd highly advise updating as soon as possible.

Hi Benjamin,
we just set some agents to unavailable and found that the tag wasn't added & the open tickets didn't get unassigned from the agents when ticking the "unassign all open tickets" checkbox.
This has worked before. Could you please look into this?
Thanks,
Antje

We'd love to be able to use this feature... but for some reason, the agent_ooo tag isn't being applied to tickets. It's showing in the agent profile, but when an incoming ticket is assigned to them, the tag (and resulting actions) don't get applied to the ticket...

I know main ZD support doesn't troubleshoot this, but is there a way for us to talk through this with you, perhaps? Thanks!

We've started using this app, but I can't get the unassignment of open tickets to work. The tagging of pending / on-hold / solved tickets is working, as is the trigger that tests for the existence of the tag, but the option to unassign all open tickets is not working. I am using the agent confirm dialog, where each agent can choose to unassign open tickets, and have tested with the force unassign global setting ticked and unticked. In all cases open tickets are left assigned to the agent immediately after they make themselves unavailable.

Am I doing something wrong? Is there a delay on the unassign action (automation)?

Based on what you're describing here (the tickets are unassigned and then re-assigned immediately), it sounds like there's another trigger that's basically un-doing the work of your OOO trigger.

If you click on the "See All Events" button at the top of the conversation thread in a ticket, it'll show you what triggers fired on the ticket, and what actions those triggers took. You can use that to identify the rogue trigger, and then update the conditions so that it doesn't fire when the OOO tags are present.

This app is awesome and I think should be a core part of Zendesk, not just Zendesk Labs. It's crucial functionality.

However, we're running into an issue that's making it hard to use for us. For whatever reason, when someone updates their Out of Office status in the ticket app, it doesn't always update their status. If we click on the Suitcase icon and check there, it'll still show as their old status.

Is anyone else running into this? We're hoping we can find a fix, because as of right now it's breaking the app for us. :(

Can you anyone provide detail on what permissions admins have to override their own admin status? I've noticed that I'm able to assign/close tickets under my name even though I'm "out of office" and had a report from another admin that tickets they previously assigned to themselves were not bounced back to the parent queue when the end user responded, despite their also being marked out of office at the time.

If this is a deliberate feature, it'd be great to understand how it works so I can advise the admins on our team. I couldn't find any such information in the help articles.

Sorry it has taken me a month to respond, I had forgotten about this and have been instructing my agents to ensure there are no tickets with a status of open assigned to them when they go unavailable. I've followed your advice and checked the all actions on open and pending tickets, and there is a difference. On open tickets the out of office app unassign trigger removes the agent_ooo tag - looking at this trigger that appears to be its designed function. I've attached screenshots which I hope will help you understand what I'm seeing.

As an admin, you have complete control over your own OOO status. Additionally, you are always allowed to update tickets to which you are currently assigned, even if you are OOO. The idea is that as the OOO agent, you are aware of your own status when making these changes and/or assigning tickets to yourself.

Now, regarding your agent's tickets not being reassigned - it's possible that somehow this agent_ooo tag is being removed from the ticket, which would then prevent it from following the business rules for the agent OOO app. Alternatively, tickets that are reopened when an agent is OOO are reassigned to the parent group - however, the assignee field becomes empty. Additionally, no notification is sent out to the group of this change. To send out this notification, you would create a trigger for this purpose. Details on how this is done can be found here: Extending the app

I'll reach out to you via ticket as well, to ensure that there aren't any account-specific settings that may be preventing the app from functioning. I'll see you in that ticket!