The Approve app streamlines any approval process within Zendesk by allowing agents to request, track, and manage approvals directly inside their tickets. It ensures efficient decision-making with automated workflows and customizable approval steps.
This recipe will use an employee leave request as an approval example, but the same steps can be applied to any approval flow required by your business.
Approval Workflows
Steps covered in this recipe:
Additional steps
- Escalation steps and reminders
- Enforce and lock down fields
- Automate your approvals
- Optional - Automatically populate a calendar
1. Create Zendesk custom fields & form
With our Approve app, as the approver does not need to be a Zendesk agent, we will collect all the information required for the request from Zendesk custom fields, which will then be sent directly to the approver. These fields will build us a request form like this:
Create the fields in the Zendesk admin area, and also if required create a form to contain these new fields for your approval workflow.
|
If your Zendesk plan does not include forms, you will be able to use our Field Rules app to control when to show these new approval fields on your ticket. |
For this leave request example, we’ll be creating the following fields, but feel free to customize the fields according to your specific workflow needs.
Text box - Employee Name
Drop down - Leave Type
Date - Start Date
Date - End Date
Numeric - Duration in Working Hours
Drop down - Employee Department/Team
Text box - Description of Leave
We are also going to create the following custom user field for this example as an approval is going to to the requesters manager. For more information on sending approvals to managers, see our full guide here, this step is optional.
Text box - Manager Email
Now that you have a form and fields ready to start the approval process, they can now be filled out by an agent within Zendesk directly or by anyone in your business from your Zendesk Guide (as above) by selecting the Approval form you just created when submitting a request.
If you are filling out the request in Zendesk directly, the Field Rules app can also be used to create conditional scenarios, such as providing a description text box if a certain leave type is selected.
2. Create the approval
With our fields created for the approval process, we can now create the flow within the Approve app.
To set up an approval, open the Approve app, click Approval definitions and then Add approval definition top right.
In this recipe, the definition set as a leave request, so simply change the selections to suit your approval flow from the examples below. To see more information on each step of an approval definition, please see this article: Setting up approval flows.
In the new approval definitions page, define:
- Name of the approval, such as Annual Leave Request.
- Recipients who will receive this approval request. We will be defining the requesters manager and then the Zendesk group Human Resources.
- To set the manager of the requester, we will use the user field we created above. Under Recipients, click the </> button on the right of the field and then the + to provide you with a drop down of all Zendesk fields. Select your manager field.
As there is only 1 manager, the Required field will remain at 1, and we will set a Timeout of 1 week. - This approval flow will be 2 step, as once the manager has approved the request it will then proceed to Human Resources. To create a new step, click the + on the far right of the Recipients toolbar. In the new step, click the drop down then Groups and select the group of users.
For this step, we will Require 2 approvers from the group to grant approval, at a timeout of 2 days.
Note: Once there is more than 1 step in your approvals, you can name each step by clicking on the empty space of the Steps column.
- To set the manager of the requester, we will use the user field we created above. Under Recipients, click the </> button on the right of the field and then the + to provide you with a drop down of all Zendesk fields. Select your manager field.
- A Message that will be sent to the approver. As our manager is not a Zendesk agent, we always want to provide all information required to grant the approval request. In the Message, click the + on the top right of the field to instantly add ticket fields. We will add all the fields that we created above to our message.
- If the request is being filled out within Zendesk, it's recommended to toggle on the options for Message fields are mandatory & Disable message fields once approval is sent. This will ensure that all required fields are filled in before the approval can be sent and stops those fields being changed during the approval process.
- Approve and Decline button colors and names, if required.
- Permission of this approval will be set to Admins as we will be starting the approval automatically after being filled in. If you prefer your agents to manually start the approval process from the ticket, you can leave this as All agents.
- Ticket updates that will happen at any stage of the approval process. In addition to the global ticket updates found in the Settings of the app, we are going to email the requester, add a tag & solve the ticket.
Similar to the message above, click the + to add placeholders to your email or add any valid Zendesk placeholder.
Click Create approval definition.
Your approval process might have different approvers to the above example depending on the leave type received. Several approval definitions can be created for each leave type (such as for sick or unpaid leave requests) and the approval process can be added to a ticket automatically depending on the drop down selection for 'Leave Type'.
Your approval workflow is now ready to go!
Escalation steps and reminders
Approval workflows can be enhanced by adding escalation steps and/or reminder emails.
For our example, the manager might be away and so there will need to be backup approver/s for these cases, which can be defined as an escalation step.
The escalation step will be used if:
- the step reaches the timeout, or
- all required approvers are 'marked as unavailable', or
- all required approvers choose to abstain.
To set up an escalation step, in your approval definition click the 3 dot ellipsis on the far right of the step where you want to add an escalation.
In the new Recipients row, add the people you would like the approval to be sent to as part of the 'escalation'.
Click Update approval definition at the bottom of the page. The escalation step is now ready to go.
Reminder emails are set up in a similar way but instead of defining a different set of approvers in the escalation step, add the same recipients as the original step.
In this example, a reminder email will be sent to the Human Resources group after 5 days, for a total of 1 week timeout.
Only the approvers who have not yet responded will be sent a reminder email.
Add as many escalation steps as you need reminders.
Enforce and lock down fields
When approval requests are filled in within a Zendesk ticket directly, ensure your processes are adhered to by requiring specific ticket fields to be completed before sending approvals. This guarantees that approvers have all the necessary information. Additionally, lock these fields during the approval process to prevent any changes to critical data while the approval is in progress.
To set up these field controls, in your approval definition toggle Message fields are mandatory and/or Disable message fields once approval is sent.
Click Update approval definition at the bottom of the page.
When enabled, the fields that have been added in your Message will be mandatory before the approval process can be started and/or disabled once started and will be read only on the ticket.
Automate your approvals
In addition to the significant time savings provided by our Approve app, workflows are further optimized by automatically adding and sending approvals for valid requests. Such as for this example, we will automate any leave request submitted from your Zendesk Guide.
To automate an approval, in the Approve app click Approval definitions and then Create trigger on the approval you want to automate.
The app will create the trigger for you and provide you with a link on a pop up on the top right. Click this link to open the trigger.
In the new trigger, define your conditions on when the approval will be sent out. For this example, we will be starting the approval flow as soon as a request is received from Zendesk Guide:
- 'Ticket' Is 'Created'
- 'Ticket Form' Is 'Leave Request'
- 'Leave Type' Is 'Annual Leave'
- 'Ticket Channel' Is 'Web form'
Once the conditions are set, keep the webhook the app has set under Actions and then click Save.
Repeat this step for the different leave types or approval flows you have and change their trigger conditions to suit. For more information on how to automate approval flows, please see our guide How to automatically start an approval process in Zendesk.
You are now ready to test out your new approval workflow!
Optional - Automatically populate a calendar
If you maintain a leave calendar for your employees, once the approval has been approved, the calendar can be automatically populated with all the leave details with our Calendar app.
First, follow our guides on how to set up a calendar and if required, connect it to Google & Office 365 that you will use for your leave calendar.
With the calendar setup and synced, we can now automatically create an event using the calendar webhook:
- Ensure the webhook has been created by opening the Calendar app and navigating to the Settings tab. Click Create webhook.
- Open the Zendesk Admin Center and create a new trigger under Objects & Rules - Business Rules - Triggers.
- In the new trigger, define conditions of when the event will be created. Our example above adds a tag 'annual_leave_granted' in the ticket updates for Approval granted, so we can use this as a condition. Consider setting a nullifying condition.
- Under Actions of the trigger, add the webhook by selecting Notify by - Active webhook, then select App - Calendar - Event create or update from the list.
- In the URL parameters, add at minimum the following:
- calendar_id - The ID of the calendar this event should be created in.
- start_date - The ticket field placeholder for Start Date we created above.
- timezone - An IANA timezone value.
- end_date - The ticket field placeholder for End Date we created above.
- is_all_day - Set to 'true'.
- subject - A useful title for the events, such as using Name or Requester placeholders.
- Click Create.
Now any approved leave request will be automatically added to your calendar and synced to external accounts!