Approval workflows are an integral part of controlling spend and help you ensure that the right people are reviewing a spend request.
This page details our recently launched 'Advanced Approval Workflows' (in beta) which is a new way to manage a single view of your workflow, as opposed to before when they were linked directly to Cost Centres or Teams.
Overview
In Spendesk, all approval workflows are managed via the visual workflow builder in:
Settings > Company Rules > Approval Workflows
:
Using this flexible builder, you can create approval workflows that factor in a range of conditions to manage a wide variety of use cases.
Understanding approval workflows
This section details the different options that you can configure on your workflow.
Default approvers
By default in all cases, a single node as shown (Default approvers) will exist. This is the catch-all option for any request that doesn't meet any other conditions.
It can be changed like any other node, to fit your desired logic for the 'default' case.
To customise your logic you can press the + next to 'When a request is made' to add more conditions, also referred to as nodes.
Each node is based on a specific condition type and set of values. You can then specify in this case who should approve it based on the amount using a set of thresholds and one or more assigned approvers, which can be either:
A specific assigned user
The 'cost centre owner' role (based on the cost centre of the request)
The 'reporting manager' role (based on who raised the request)
Using the flexible builder, various different use cases can be achieved.
Dimensions
A dimension can currently be based on:
Cost centre (such as
marketing
)Spend type (such as
invoice
orexpense claim
)Expense category (such as
travel
oroffice supplies
)Custom analytical field (which can be any additional field you have configured via
Settings -> Organisation -> Analytical Fields
)
Each node can then specify in this case who should approve it based on the amount using a set of thresholds and one or more assigned approvers, which can be either:
A specific assigned user
The 'cost centre owner' role (based on the cost centre of the request)
The 'reporting manager' role (based on who raised the request)
Values
Once the dimension is set, you can select from the available values, which can be:
A single value
A set of possible values
'All other values'
When 'All other values' is chosen, you can also select 'all other values' to capture any future values, for example if a new spend type is introduced:
Thresholds
Thresholds allow you to control different approvers based on the amount of the request. You can use the 'add a threshold' button on the approval panel to do this.
Approvers
Approvers are the users that you want to review a request. You can assign multiple approvers based on the logic that anyone in the list can approve, or if you want them to all approve in order.
For middle nodes in a path, you may not wish to actually set an approver, so the toggle can be left disabled.
We do highlight where a node doesn't have an approver for visibility:
For nodes at the end of a path, we recommend toggling this on in order to set up the approval logic for this workflow, such as thresholds and approvers.
Approval roles
In many cases approval roles can be used instead of specific approvers to create a more flexible setup that adapts to change sin your organisation.
The main approval roles are:
Account owner - whoever is defined as the single account owner for the Spendesk entity
Cost centre owner - defined directly on the cost centre screen, typically this might be a head of department
Reporting manager - defined either directly via the members page, or managed via an active HR integration, typically this is a team lead of any level
Cost centre owner
Cost centre owners are defined via the specific cost centre. A cost centre can have one primary owner and a number of co-owners however co-owners are not used at all by the approval logic when it comes to the 'cost centre owner' role.
Reporting manager
This reporting manager role automatically identifies the current manager of the requestor and redirects the spend request to them for review.
The reporting manager of an employee can be set in 2 ways:
Automatic: Leveraging HR integration, we can automatically populate the Manager field of all employees
Manual: Admins can manually set the Manager in the Members section for any employee. These managers will now have the “reporting manager” approver role applied to them
Guidelines & Exceptions
There are a number of constraints and other rules in Spendesk which should be noted when understanding approval workflows:
Ensuring workflow validity
In order to ensure that all requests have a single valid approval path, there is one notable constraint: each branch/layer can only apply to a single dimension.
This means that if you add a node for 'spend type', then all sibling nodes in that branch must also be spend type. However you can mix within a layer for different paths, see this valid example below:
Our first layer is 'spend type' but from there we have 2 paths, one which uses 'cost centre' as the second layer, and the other which uses the 'project code' custom field.
Cases when the workflow is ignored
If your approval policy states that the request doesn't need approval
If the request was raised by the Account Owner
If you have enabled the automatic approval for invoices when a Purchase Order is attached
Cases when the approver may change
When using the Reporting Manager role, if the user raising a request doesn't have a valid manager value, it will instead go to the Account Owner
If the logic states that the requester should be able to approve their own request (for example they are a cost centre owner), then it will instead go to the Account Owner.
Example: Building a workflow for the first time
Workflow logic can be seen as a decision tree that can be 'read' in the builder from left to right. See the following example which states:
If the spend type is Expense Claim
AND the cost centre is Product OR Marketing
THEN for up to €100 the approver is the Reporting Manager
AND for over €100 the approver is the Cost Center Owner
OTHERWISE the approver is the Cost Center Owner
This section will describe how to build your approval workflow from scratch.
Your flow will first consist of a Default approvers node which is your catch-all option if no other conditions are satisfied.
1. The default approvers
To customize your catch-all logic, select the default approvers node. This allows you to control what your default behavior is, in this example it is for requests to go to the cost centre owner:
As with any node in the builder, you can customize the defaults further by changing the thresholds or who the default approvers should be.
2. Your first condition
To add a new condition, press the + next to the When a request is made
text on the left.
The first 'layer' of conditions are currently locked to the spend type dimension, which you can select from the available values. If you don't want to build logic using spend type, you can select all and save the node there, otherwise select the spend type(s) you want to customize logic for. In this example we've selected 'invoices':
Note that for now we are leaving the toggle for Set up an approval flow to off, so we can set up the actual approvers later in the flow.
3. Another spend type condition
If you want to split the flow on spend type further, press the same + next to the When a request is made
, and select a different set of spend types to create another branch at the same level. In this example we also have a case for expense claims with it's own approval flow for it to be handled purely by reporting managers:
4. Adding the cost centre dimension
To finish this example, press the + next to the node for 'Invoice' spend types. This allows us to further customer it, so that we can combine the condition for spend type and cost centre. In this example we have selected that for invoices in product requests go to reporting managers up to 500, and above that go to a specific assignee:
5. Wrapping up
Overall, this example would result in the following logic for a request:
If the spend type is expense claim - then the approver is reporting manager
If the spend type is invoice and if the cost centre is product then the approver is cost centre owner up to 1000, over 1000 is the specific assignee
Otherwise, the approver is the cost centre owner
Example: Updating an existing workflow
When migrating your existing workflow to the approval builder, you'll be presented with your existing logic with some differences:
A default approvers node
A 'all spend types' node (if you have the 'additional dimensions')
All your existing approval logic nodes
For example:
1. Simplifying
Firstly, we recommend reviewing your existing nodes (in the example above it's 'product' and 'marketing') to see if you want to combine them using roles instead of specific assignees.
2. Introducing new dimensions
If you have access to the new dimensions, you'll be able to introduce these in a couple of ways:
Adding them to the end of an existing path
Replacing one of the current layers, for example 'spend types'
3. Starting over
Looking at the new builder and dimensions, you may decide you want to just start over and design it from scratch. Note this will cause some temporary disruption as all requests will be routed to the 'default approvers' node, but the easiest way is to just delete the 'spend type' node and start from clean, designing your perfect flow.