Spreadsheet Chaos, Solved

Client

Devicethread

Year

2025

devicethread is an IoT-based hospitality SaaS platform connecting smart hotel devices, locks, monitors, and thermostats to a central system that operators use to run properties at scale. As the customer base grew across countries, its subscription billing was still running on spreadsheets and email.

Scope of Work

Payment Systems
Systems Design
0→1 Design

A spreadsheet-and-email payment process was quietly capping how fast devicethread could grow.

I spent the first two weeks with the Account team understanding how the spreadsheet-and-email workflow actually broke down day to day, audited the existing Stripe link approach, and researched how platforms like Chargebee and Recurly structure subscription UX for reference, not as competitors, but as pattern libraries.

My Role

My Role

Product Designer, sole designer

Product Designer, sole designer

Key actions

Key actions

0→1 Design | Edge-Case | UX Flow

0→1 Design | Edge-Case | UX Flow

Duration

Duration

8 Weeks (Jan–Feb 2025)

8 Weeks (Jan–Feb 2025)

Team

Team

1 Designer, 2 PM , 5 Dev

1 Designer, 2 PM , 5 Dev

TL;DR

devicethread’s Account team managed billing across spreadsheets, emails, and scattered payment links with no single source of truth. I designed a unified subscription system split between admins and customers, with key edge cases handled up front.

Challenge

Challenge

Billing was fragmented across three disconnected systems, creating manual work and limiting scale.

Billing was fragmented across three disconnected systems, creating manual work and limiting scale.

Solution

Solution

Designed the subscription system end-to-end, including dashboards, payment flows, transactional emails, and 8 critical edge states.

Designed the subscription system end-to-end, including dashboards, payment flows, transactional emails, and 8 critical edge states.

Approach

Approach

Separate the experience by job, giving admins control across properties and customers a focused path to activate and manage payments.

Separate the experience by job, giving admins control across properties and customers a focused path to activate and manage payments.

Impact

Impact

The system now manages 900+ rooms across 30+ hotels in 5 countries, providing the foundation for scalable subscription operations.

The system now manages 900+ rooms across 30+ hotels in 5 countries, providing the foundation for scalable subscription operations.

Context & Problem

The Account team ran billing across three disconnected tools, with no shared source of truth. Every new country added more manual overhead; the process itself had become the ceiling on growth.

The billing process worked, until the business started to scale.

Scattered Spreadsheets

Scattered Spreadsheets

Payment status lived in spreadsheets, was manually updated, and was prone to constant errors.

Manual Email Chains

Manual Email Chains

Payment chases, approvals, and receipts were handled entirely by hand, one by one.

Untracked Payment Links

Untracked Payment Links

One-off Stripe links per customer, with no central view of who paid what.

Business Goal

Every new country meant more manual overhead for the Account team, and customers had no self-serve way to check their own payment status. The business couldn't expand faster than its ops team could keep up.

Approach & Constraints

The challenge wasn't just replacing spreadsheets with a dashboard. Subscription pricing depended on the property, billing setup, and the mix of IoT devices each hotel managed. I designed the system around these dependencies while also planning for the harder part: helping existing users understand and adopt a completely new way of managing payments.

Designing a billing system around a complex IoT product, and the people using it.

The Account team needed control across properties; customers needed a simple path to activate, pay, and manage their subscriptions. I kept these experiences separate and designed the supporting communication layer- emails and a knowledge base- to help users transition to the new system.

Split the experience by job, not by feature.

Complex Pricing

Complex Pricing

Subscription costs depended on properties, billing rules, and the mix of IoT devices each hotel managed.

Product Ecosystem

Product Ecosystem

The system had to work within devicethread’s existing navigation, permissions, data model, and Stripe integration.

User Adoption

User Adoption

Moving users from a familiar manual process to self-serve required follow-ups, educational emails, and a video knowledge base.

Research & Exploration

I spent the first two weeks with the Account team understanding how the spreadsheet-and-email workflow actually broke down day to day, audited the existing Stripe link approach, and researched how platforms like Chargebee and Recurly structure subscription UX for reference, not as competitors, but as pattern libraries.

Split the system by job-to-be-done, not by shared components.

The Account team needed speed and control across many properties; property managers needed clarity and self-serve activation on their own account. Merging them into one dashboard would have compromised both jobs, so we deliberately kept them separate.

Exploring solutions

Three principles, clarity, transparency, control, compound into a system users trust enough to self-serve.

Two-Surface Split

Two-Surface Split

Distinct admin and customer experiences, each built for its own job, not shared parts.

Edge-Case-First Design

Edge-Case-First Design

All 8 failure states, from payment fails to cancellation, were designed before the happy path shipped.

Discount Transparency

Discount Transparency

Discounts show both the current price and the future full price in one view.

Collaboration

The PM set the business rules, the Account team lived the daily pain, engineering shaped what was feasible.

95% Design Ownership

Every screen, flow, and edge case

3 Stakeholder Groups

PM, Engineering, Account team

PM Requirements Handoff

PM Requirements Handoff

HandoffPM defined what had to be true: plans, discounts, permissions, not the UI itself.

Account Team Validation

Account Team Validation

Consulted in discovery, then validated designs mid-flight as the primary internal users.

Engineering Feasibility

Engineering Feasibility

Worked within Stripe's API limits, deferring select features after a Week 6 review.

Outcomes

The platform replaced a manual, three-system process with one self-serve system built to scale, unblocking global expansion that manual reconciliation had been quietly capping.

900+

Rooms managed on the platform

30+

Hotels live on the system

5+

Countries reached at launch

8

Edge states planned upfront

Estimated 4–8 hours/week saved per Account team member on manual reconciliation, internal estimate, not formally measured.

Learnings

Edge cases aren't polish, they're the product.

Edge Cases Are the Product

Edge Cases Are the Product

Designing failure states upfront prevented costly patches after launch.

Split by Job, Not Feature

Split by Job, Not Feature

Merging admin and customer views would have weakened both experiences.

Transparency Builds Trust

Transparency Builds Trust

Showing future pricing upfront trades short-term friction for long-term confidence.

Trusted by many

Trusted by many

Lets

design

build

create

incredible work together.

Made With ♡ and late night coffee

© 2026 Subrata Dhar

Subrata

Lets

design

build

create

incredible work together.

Made With ♡ and late night coffee

© 2026 Subrata Dhar

Subrata

Lets

design

build

create

incredible work together.

Made With ♡ and late night coffee

© 2026 Subrata Dhar

Subrata

Create a free website with Framer, the website builder loved by startups, designers and agencies.