In this case study I am going to talk about how we built the workflow engine that made every record accountable before it went live.
Product Category
Enterprise SaaS
Role
Sr. Product Designer
Team
1 PM, 2 Developers & 1 QA
Scroll to Explore
Enterprise SaaSApproval WorkflowUX/UI Design
13 min read
01 / Intro
Submit meant approved. That was the real bug in DMS+.
An employee record, a vendor entry, anything could go live the moment someone hit submit. No check. No owner. I designed the approval layer that was missing.
02 / Backstory
DMS+ could store a record. It never asked if that record deserved to be trusted.
A Master in DMS+ holds structured records and their documents, employee files, vendor entries, contracts.
The flow before this project was simple:
Record Form Fill
Record Created
Live In The Master
Nothing happened in between. A record went from "just submitted" to "official" in the same second. No one checked if the data was correct. No one signed off. No one owned it.
This gap is exactly where the workflow module needed to exist.
03 / Problem
Problem: submit meant approved. There was no step in between.
Four basic questions had no answer inside DMS+:
1.When should a process even start?
2.Who owns the next action on a record?
3.What happens if the record needs different handling depending on its data, or nobody responds in time?
4.How does the right person even know it is their turn?
DMS+ had no trigger system, no ownership model, no way to hold a record back. That was the actual gap to design for.
04 / Constraints
Constraints
No dream team. No long runway. Just three months and four people.
3 month timeline
No room for long research or many design rounds.
2 developers
Every screen had to be something they could actually build.
1 QA
Edge cases had to be caught by me, not found later in testing.
1 Product Manager
Kept scope honest, pushed back when I over designed something.
I was the only designer.
No second opinion in the room.
05 / Research
Research
I traced how a record actually enters DMS+. Turns out there were two ways in and neither had a check.
Entry Point 1
Document upload
A user uploads a document, picks a Master & a record gets created inside it.
Entry Point 2
Direct entry
A user opens a Master and creates a record right there.
Both skip review completely. No gate, no matter how the record comes in.
I also checked how the market handles this. Laserfiche, DocuWare, M-Files, Newgen, all of them bundle workflow automation into their DMS. DMS+ had nothing. This was not just an internal gap, it was a market gap too.
I mapped who actually touches a record and where it hurts them most.
What onboarding actually looked like in real companies
I mapped a process with example, employee onboarding, to see where DMS+ fit in and where it did not:
Employee fills form
HR reviews and validates
Hiring Manager reviews
Next stakeholder reviews
Final approval
HR manually adds the approved record to the Master
Every step between "form filled" and "added to Master" happened outside DMS+. Emails. Calls. Messages. HR chasing people for a yes or no.
That created five repeat problems:
01
No visibility
Nobody could see where a record was or who had it.
02
No ownership
No clear person responsible for the next action.
03
No timeline
Delays only got noticed when someone followed up manually.
04
Manual coordination
HR spent time chasing approvals instead of doing HR work.
05
No audit trail
Compliance flagged this as critical. Nobody could prove who approved what or when.
I also went through customer conversations with our BA team, to check how they were handling approvals today and what they expected an automated system to do for them.
Research takeaway
The issue was not simply "DMS+ needs an approval feature."
It was bigger: DMS+ had no system connecting a record's creation to the people, decisions and validations required before that record could become trusted information in the Master.
That is the actual problem I had to solve.
06 / Problem
The Problem
Research pointed to one fundamental gap. DMS+ could store records but couldn't govern how they became trusted.
A record could enter a Master directly. No validation, no approval, no clear owner.
For enterprise workflows, that created a broken journey:
Record created
Manual review
Email / calls
Follow-ups
Unknown status
Final approval
HR manually enters the Master
How might we move the approval process from people's inboxes and conversations into DMS+, so every record has a clear owner, next action, status and audit trail before becoming an approved Master record?
Design goals
01
Clear ownership
Every step should have one person responsible for it.
02
Clear progress
People should know where the record is and what happens next.
03
Easy approval
People should approve or reject inside DMS+ instead of using email or calls.
04
Trusted records
A record should become approved in the Master only after all required steps are complete.
05
Less manual work
HR should not have to keep calling or emailing people to get things done.
07 / Design Strategy & Process
Design Strategy & Process
I had three months and two developers. I could not design multiple versions and decide later.
Before designing the screens I mapped a real employee onboarding process step by step.
Record created → Trigger fires → Workflow starts → Record moves to Pending → Task assigned → User acts → Next step → Complete → Record moves to Master
The roles decide who acts.
The Builder defines what happens.
The Dashboard shows what needs action.
Pending shows where the record stands.
08 / Final Solution
Final Solution
Four parts. Each one answers a different question. This is the system from start to finish.
Master and Submission create the record.
Trigger decides when the workflow starts.
Builder defines what should happen.
Dashboard is where people do the work.
1. Master and Submission
A record can start in two ways. A user can upload a document and select a Master. Or they can open a Master and create a record directly.
When a workflow is attached to that Master the record does not go live immediately. It moves into Master Pending.
Why this matters
Before
This change submission and approval were treated as one action.
After
I separated them into two states.
The record can exist and still wait for approval. Once the workflow is complete it becomes an official Master record.
This separation became the base for the approval system.
2. Workflow Trigger
An admin selects a Master and the event that should start the workflow.
When a workflow is attached to that Master the record does not go live immediately. It moves into Master Pending.
Decision: one trigger per workflow
I kept one trigger for each workflow. This makes it clear why a workflow started. If the same Master needs to react to different events those become separate workflows.
3. Workflow Builder
The Builder turns a real process into a workflow the system can run.
I used ten different node elements that we drag, drop, and connect to build workflows.
I used ten node types and kept them in two groups.
Logical Node: If/Else, Conditional Branch, Split, Merge, Pause, End
This separation keeps each node focused on one job.
Approval Node Configuration
Basic Tab
Five questions it answers:
Who approves?
Approver Type
How many responses needed?
Completion Rule
How is final decision computed?
Mixed Response Rule
Where does the workflow go next?
Post-Decision Routing
What if nobody responds?
Reminder / Escalation / Auto-Finish
Approver Type
Hierarchical: Department → Designation → Role → User, each level optional/progressive, terminates in All or Specific users
Independent: User Group — flat, no hierarchy needed
Completion Rule (how many must respond)
All must respond
Majority must respond
Anyone (first response wins, others become irrelevant)
Mixed Response Rule (only matters when multiple approvers, split votes)
Majority wins, tie → escalate/tie-breaker
Any Approved = Approved
Any Rejected = Rejected
Post-Decision Routing
Approver can end the workflow after their decision
Approve can end as Approved
Reject can end as Rejected
Useful for senior approvers
Sub Approver
This lets the main approver ask for extra approval without creating a separate workflow step.
Admin defines who the main approver can choose from
The pool can be based on within his department or anywhere inside the organization
Main approver chooses Approve, Reject or Need Sub Approval
One user per sub approval step
Multiple sub approval steps can run sequentially or in parallel
After completion the task returns to the main approver
Main approver makes the final decision
Advanced
Controls what happens when an approver does not complete their task on time.
Escalation
Moves the task to another person after a set time or on a custom date. This helps keep important approvals moving.
Auto-Finish
Automatically completes the task if no action is taken. The admin can set the default outcome as Approved or Rejected.
Reminder
Sends reminder emails after a set time or on a custom date so approvers do not miss pending tasks.
The Other Nine Nodes, in Short
Approval got the deep dive. Here is what the rest do.
Task Node
Assigns work to a person. They can upload documents, edit selected fields or mark the task complete. It uses the same reminder and escalation options as Approval.
Email
Sends an email when the workflow reaches this step. The admin can use workflow data such as the record name, approver or outcome in the message.
Update Metadata
Updates a record field automatically. No user action is needed. It can be used to update a status after the workflow is approved.
If/Else
Checks one condition and sends the record down either the true path or the false path.
Conditional Branch
Checks multiple conditions and sends the record to the matching path. If nothing matches it goes to Others.
Split
Runs multiple paths at the same time. This lets different teams work in parallel.
Merge
Brings multiple paths back into one. It can wait for any branch or all branches to finish.
Pause
Temporarily stops the workflow for a set time or until a specific date. It then continues automatically.
End
Closes the workflow and marks it as complete.
Decision: Closing the Builder
I kept Split and Merge simple for Version 1.
Research showed more advanced cases like conditional splits and outcome based merging. But with three months two developers and one QA I had to decide what was realistic to build and test.
What shipped
Split
Sends work into multiple paths at the same time.
Merge
Brings those paths back together and waits for Any Branch or All Branches to finish.
What I left out
Conditional splitting based on data
Merge with its own approval outcome
Multiple merge rules
These were not ignored. They were moved to the roadmap. The goal was simple. Build fewer options but make sure they work reliably. That was the right choice for Version 1.
4. Workflow Dashboard
The workflow is now running. Transition visually
Builder
Publish
Trigger
Workflow Instance
Dashboard
Final approval
The Builder creates the process. The Dashboard executes it.
My Actions
Don't show users workflows. Show them responsibility. This is one of your strongest sections.
Only the person whose step is currently active sees the work in My Actions.
Decision: only the active step shows up
Sneha does not see the HR step because she does not need to. Once Rahul finishes the step the workflow finds the next person and the task appears in Sneha's queue.
Core principle
My Actions shows what I need to do now. Not every workflow I am part of. This is the difference between a task list and a status page. A status page shows everything and asks the person to figure out what matters. A task list shows only what matters.
The Action Workspace
Click into a task, and three questions answer themselves at once.
Left, Submissions
Other instances waiting for the same workflow. Switch between them without going back to the dashboard.
Center, Record
The actual record with fields, files and activity log. Everything needed to review and make a decision is in one place.
Right, Process
Shows every step in the workflow with completed, active and pending states. The user can see their current step and the overall progress.
Decision: one screen instead of three pages
Keeping these areas together means the user does not need to move between pages while reviewing a record and checking its progress.
Take Action Approval, Configured to Runtime
Everything the approver sees comes from the settings configured by the admin in the Builder.
This side drawer comes in when the approver clicks the take action button on a record.
Approve & Reject
Always present. These are the two outcomes of every Approval node.
Post Decision Routing
The admin decides what happens after each outcome.
Approve → End Workflow ON Approve ends the workflow immediately.
Approve → End Workflow OFF The workflow moves to the next connected step.
Reject → End Workflow ON Reject ends the workflow immediately.
Reject → End Workflow OFF The workflow follows the connected path. It can also go back to an earlier step.
The approver does not see these settings. They only see the result when they take action.
Comments
Toggle ON in Builder → approver cannot submit a decision without typing a comment first
Toggle OFF → comment box still there, but optional
Sub Approval
Toggle ON in Builder → Request Sub Approval appears alongside Approve and Reject.
Toggle OFF → Only Approve and Reject are shown.
The Point
The Builder controls what the approver can do. The Dashboard reads the node settings and shows only the actions allowed for that step.
09 / Outcome
Outcome
The process now runs inside DMS+. The four problems we found in research now have a clear answer in the product.
01
Clear ownership
Every active step is assigned to the right person based on their role.
02
Clear progress
Users can see the current step and what happens next from the Process panel.
03
Easy approval
Approvers can review the record and approve or reject it directly inside DMS+.
04
Trusted records
Records stay in Pending until the required workflow is complete. Only approved records enter the Master.
05
Less manual work
The system assigns tasks, sends updates and moves records forward without HR having to chase people.
Result
The process that was spread across people, emails and manual checks now runs inside DMS+.