Global Approvals System
Problem
The top 3 reasons for churn and lost deals included the lack of flexibility in the approval system. In addition, internal product teams couldn't deliver a complete solution to some problems because of the lack of a flexible enough approval system.
Solution
A new system built from scratch that can be adapted to any use case and any product team within the company.
Result
All teams with approval requirements implemented the new abstraction, and churn and lost deals dropped by 90%.
My Role
Senior Product Designer
Team
Isadora Bassetto
Engineering Manager
Omar Sotillo
Staff Software Engineer
Abiodun Olowode
Senior Software Engineer

Context
I worked as a solo product designer on this project. We received extensive feedback from customers, sales, and CX teams about the need for a more flexible and customizable approval system with different levels. We had to address both customer needs and the needs of our product teams, as our team was cross-functional across the core product and building blocks.
Problem
The top 3 reasons for churn and lost deals included the lack of flexibility in the approval system. In addition, a new expense management vertical required a robust approval system to launch.
Our previous solution was ad hoc for each vertical. There was an implementation for time off and another one for time tracking. Both allowed only one approver and one step. The approver was always either the manager or an admin, which was quite limiting.
Initially, this wasn't a problem for our main market: Spain. But as we grew in Europe and the US, we realized this was a significant problem for customers there. They had more complex hierarchies and needed more flexibility.

Research
Building an HR tool is difficult because every company has different needs depending on its country, size, industry, and culture. We confirmed this again by talking to churned companies, companies at risk, and others happy with the product: each company has its own approval system.
For time off requests, it might just be the manager, but for expenses, it's the manager, then the HR team, then someone from the finance team.
We found that they needed different approval steps. The approver could be a specific person, a role based on the requester like the manager or team leader, someone from a team, or an admin.
Requesters needed to see the current approval status to ask the right person if there was a delay.
Solution
One of the first decisions was to implement the approval flow independent of existing policies. Why? Because a policy with multiple conditions, such as the number of holidays employees can take, would require creating many policies just to change one condition.
Second, as a cross-functional team serving other product teams, we validated the solution with time off—the most important use case and the one that generated the most churn.
The abstraction we designed was simple: a resource request enters the approval system, we analyze the resource and its metadata, and if it passes the conditions, we notify the approvers in the first step. Once approved, it passes to the next step until the last one. If rejected at any point, we notify the requester.
Key Features
- Approval groups that each vertical can easily implement
- Create multiple approval groups for different employees (country, team, specific needs...)
- Different approval levels with specific approvers based on requester, team, or administrator
- Backup approvers in case the approver is unavailable or on vacation
Since notifications were crucial to the approval flow, we developed another building block: an in-app notifications system for approval requests.
Success
All teams with approval requirements implemented the new abstraction, and churn and lost deals dropped by 100% from Hubspot rankings.
Resources approved with more than 1 step accounted for 30% of the total after 2 months.
Resources approved with 1 level but other than Manager or Admin made up 20% of the total.