Deel · Internal tools · 2025
Designing the right guardrails saved 60–90 hours monthly

Role
Design End to End
timeline
1 Month
Impact
60–90 hours saved
collaborators


Overview
Fixing the unseen friction
We uncovered hidden friction points in Deel’s credit request flow that caused unnecessary rejections and confusion for RevOps and Sales teams. By improving feedback, simplifying submission steps, and adding clearer status visibility, we reduced errors and manual follow-ups.
Reframed Deel’s compliance coverages to make options clearer and easier to understand.
Shifted the experience from “add-ons” to transparent, risk-aware product messaging.
Helped clients make more informed, confident decisions during contract creation.
Delivered measurable impact on conversion and projected ARR.
Led the project end-to-end - research, strategy, design, and delivery - in close partnership with compliance and growth teams.
Reframed Deel’s compliance coverages to make options clearer and easier to understand.
Shifted the experience from “add-ons” to transparent, risk-aware product messaging.
Helped clients make more informed, confident decisions during contract creation.
Delivered measurable impact on conversion and projected ARR.
Led the project end-to-end - research, strategy, design, and delivery - in close partnership with compliance and growth teams.
Every month, RevOps processed dozens of credit requests. Nothing seemed broken. Just... a little slow. But the tickets kept piling up.
A closer look revealed a surprising signal
Much of the volume wasn’t complex edge cases - it was avoidable mistakes. Not because reps were careless, but because they lacked the visibility to get it right.

"I didn’t know we had to check the invoice first - no one told me."
Sarah Johnson
Senior Sales Rep, Deel

There’s a written procedure, but reps don't use it."
Brian Doe
Director, Sales operations
The Challenge
How might we help Sales reps submit credit requests more accurately so they feel confident in the process - while also reducing RevOps ticket load, cutting rework, and improving overall efficiency?
The Solution
Turning invisible system logic into visible, helpful guidance.
Turning invisible system logic into visible, helpful guidance.
Turning invisible system logic into visible, helpful guidance.
I designed targeted validations at key points in the flow to prevent misrouted submissions - without overhauling the entire system.
Validation #1
Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.


Validation #2
Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an 'Owner change' request.
Discover
I didn’t want to guess. I wanted proof.
Over 3 months of ticket data. I sorted them by category, volume, and resolution time - looking for patterns and anomalies. Two patterns stood out: Request a change (62.5%) and Missing credits (21.8%). Time to dig deeper.
One seemed like a dead-end. The other opened a door.
“Request a change” looked promising at first - but quickly we realized it relied on systemic data inconsistencies. No quick fix. So I focused on Missing credit submissions. And that’s when I noticed something strange...
Over 70% of “missing credit” submissions were getting rejected.
I needed to understand why the system was saying no. To uncover the root cause, I broke down rejection reasons.
Two patterns showed up across all months:
Duplicate/ Already Exists
Unpaid Invoices
These accounted for 40-50% of all rejections. It wasn’t user error.It was missing context.


Validation #2
Redirect to correct ticket type
When credits already existed under a different rep, this prompt clarified the situation and redirected them to request ownership change instead of submitting a duplicate.
Validation #1
Block unpaid invoice credits
When reps tried to request credits for invoices that hadn’t been paid, this validation explained why they needed to wait. This alone prevented 15% of premature tickets.


Discover
I didn’t want to guess. I wanted proof.
Over 3 months of ticket data. I sorted them by category, volume, and resolution time - looking for patterns and anomalies. Two patterns stood out: Request a change (62.5%) and Missing credits (21.8%). Time to dig deeper.
One seemed like a dead-end. The other opened a door.
“Request a change” looked promising at first - but quickly we realized it relied on systemic data inconsistencies. No quick fix. So I focused on Missing credit submissions. And that’s when I noticed something strange...
Over 70% of “missing credit” submissions were getting rejected.
I needed to understand why the system was saying no. To uncover the root cause, I broke down rejection reasons.
Two patterns showed up across all months:
Duplicate/ Already Exists
Unpaid Invoices
These accounted for 40-50% of all rejections. It wasn’t user error.It was missing context.

Patterns in the data told me what was going wrong but to fix it, i needed to understand how requests were being made.


How might we help Sales reps submit credit requests more accurately so they feel confident in the process - while also reducing RevOps ticket load, cutting rework, and improving overall efficiency?
I mapped the journey. it was too linear.
I mapped the journey. it was too linear.
When I traced how reps interacted with the credit form, it became clear: It was a straight line -no checks, no nudges, no context.


But were users really flying blind?
But were users really flying blind?
To stress-test my assumption, I spoke with multiple reps. Their responses confirmed the hidden friction. Turns out, the system wasn’t just silent - it relied on tribal knowledge. New reps were left guessing. Experienced reps were shortcutting. Everyone was operating on assumptions.
“There’s a written procedure, but I just submit and hope it gets through”.
“There’s a written procedure, but I just submit and hope it gets through”.

Brian Doe
Brian Doe
Sales (New joiner), Deel
“I didn’t know we had to check the invoice first - no one told me”.
“I didn’t know we had to check the invoice first - no one told me”.

Sarah Johnson
Sarah Johnson
Senior Sales Rep, Deel
“I just follow the form. If it lets me submit, I assume everything’s fine”.
“I just follow the form. If it lets me submit, I assume everything’s fine”.


Alex Tiran
Alex Tiran
Account Executive, Deel
“There’s a written procedure, but I just submit and hope it gets through”.


Brian Doe
Sales (New joiner), Deel
“I didn’t know we had to check the invoice first - no one told me”.




Sarah Johnson
Senior Sales Rep, Deel
“I just follow the form. If it lets me submit, I assume everything’s fine”.






Alex Tiran
Account Executive, Deel
DEFINE
It wasn't a form problem, it was a feedback problem.
Reps couldn’t see if a credit already existed or if the invoice was unpaid.
RevOps spent hours each week reviewing invalid requests that could’ve been caught earlier.
70% of credit requests were rejected due to missing context (e.g. invoice status, ownership).

How might we help Sales reps submit credit requests more accurately so they feel confident in the process - while also reducing RevOps ticket load, cutting rework, and improving overall efficiency?
Where’s the Leverage?
Now that we understood the real problem wasn’t a form- it was feedback- we mapped the breakdowns across the user journey and spotted opportunities where a small nudge could drive outsized impact.


Product opportunity mapping
DEVELOP
Turning insights into plan.
Now that we understood the real problem wasn’t a form- it was feedback- we mapped the breakdowns across the user journey and spotted opportunities where a small nudge could drive outsized impact.

Validation #1
Block unpaid invoice credits
When reps tried to request credits for invoices that hadn’t been paid, this validation explained why they needed to wait. This alone prevented 15% of premature tickets.


Validation #2
Redirect to correct ticket type
When credits already existed under a different rep, this prompt clarified the situation and redirected them to request ownership change instead of submitting a duplicate.M
deliver
Full journey. Transformed.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

5) Confirmation & reassurance
A clear confirmation closes the loop, reinforcing trust that the request followed the correct path and was submitted successfully.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

5) Confirmation & reassurance
A clear confirmation closes the loop, reinforcing trust that the request followed the correct path and was submitted successfully.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

5) Confirmation & reassurance
A clear confirmation closes the loop, reinforcing trust that the request followed the correct path and was submitted successfully.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

5) Confirmation & reassurance
A clear confirmation closes the loop, reinforcing trust that the request followed the correct path and was submitted successfully.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.

1) Input credit details
User initiates a missing credit request. Behind the scenes, the system prepares real-time validations based on invoice and credit data.

2) Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.

3) Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an Owner change request.

4) Review before submission
Reps are redirected to the correct submission type, now pre-filled with relevant context - ensuring cleaner, more accurate requests.
Thoughtful, Not Flashy
💾
Used existing data
Used existing data
Used existing data
Leveraged information already available in the system - no new inputs or integrations required.
Leveraged information already available in the system - no new inputs or integrations required.
Leveraged information already available in the system - no new inputs or integrations required.
📈
High perceived intelligence
High perceived intelligence
High perceived intelligence
Created the feeling that “the system has my back,” building trust and perceived product quality.
Created the feeling that “the system has my back,” building trust and perceived product quality.
Created the feeling that “the system has my back,” building trust and perceived product quality.
⚡
Fast to implement
Fast to implement
Fast to implement
Minimal engineering effort. The logic lived close to the data, making dev cycles short and clean.
Minimal engineering effort. The logic lived close to the data, making dev cycles short and clean.
Minimal engineering effort. The logic lived close to the data, making dev cycles short and clean.
👁️
Invisible until it matters
Invisible until it matters
Invisible until it matters
No extra fields, no friction. These nudges appear only when needed - avoiding form fatigue.
No extra fields, no friction. These nudges appear only when needed - avoiding form fatigue.
No extra fields, no friction. These nudges appear only when needed - avoiding form fatigue.
IMPACT
A small change unlocked big wins
A small change unlocked big wins
+25%
Submission accuracy
-10%
RevOps tickets volume
60-90
Monthly hours saved
Self reflection
🎉
What surprised me
What surprised me
What surprised me
I was honestly shocked that RevOps and Sales had been working around this issue for months. The data to flag the problem was there all along - but no one surfaced it. It made me realize that even the simplest fixes often stay hidden until someone’s willing to dig through the mud.
I was honestly shocked that RevOps and Sales had been working around this issue for months. The data to flag the problem was there all along - but no one surfaced it. It made me realize that even the simplest fixes often stay hidden until someone’s willing to dig through the mud.
I was honestly shocked that RevOps and Sales had been working around this issue for months. The data to flag the problem was there all along - but no one surfaced it. It made me realize that even the simplest fixes often stay hidden until someone’s willing to dig through the mud.
✍️
Main lesson
Main lesson
Main lesson
Impact doesn’t always require heavy lifts. Sometimes, a small nudge at the right moment can drive major change.
Impact doesn’t always require heavy lifts. Sometimes, a small nudge at the right moment can drive major change.
Impact doesn’t always require heavy lifts. Sometimes, a small nudge at the right moment can drive major change.


Validation 1- Invoice unpaid
System instantly checks invoice status. If unpaid, a soft block warns the rep and halts the submission - preventing rejected tickets upfront.


Validation 2- Credit already exists
The system cross-checks if the credit is already logged under another rep. If found, it reroutes the user to submit an 'Owner change' request.
DEVELOP
Turning insights into plan.
Now that we understood the real problem wasn’t a form- it was feedback- we mapped the breakdowns across the user journey and spotted opportunities where a small nudge could drive outsized impact.


