← Back to work

Case study

Viewpost

Four design projects across a B2B payments platform, each tackling a different source of cognitive load or anxiety in the workflows of accounts payable and receivable users.

Viewpost platform shown in product context: the invoicing and payments interface displayed on a laptop against a blue background.
Role
Product Designer
Platform
Web
Scope
UX research, user flows, wireframes, feature design
Team
Three-person product design team

Viewpost helps small and large businesses see their money by making invoicing, payments, and cash flow transparent across organizations. As one of three product designers on the team, I worked on four scoped projects spanning the platform. Each tackled a specific friction point that surfaced from user research or customer service data, and each shared a throughline: removing cognitive load and surfacing information users couldn't see before.

Viewpost Sync 2.0: Linking Viewpost to the ERP

The problem

Customer Experience interviews with Accounts Payable users surfaced a recurring friction point: people paying bills through Viewpost were also re-entering the same payment data into their accounting software (their ERP). The duplicate work was tedious in isolation and exhausting in repetition across a workday. Users consistently described it as one of the most frustrating parts of their job.

The approach

The team's priority was reducing the cognitive load of operating across two systems at once. I mapped the cross-platform workflow end-to-end, from the entry points users would use to discover Sync, through the vendor-matching step that aligned company records between Viewpost and the ERP, into the Sync dashboard where payments could be reviewed and sent. After aligning with stakeholders on the proposed flow, I built and tested wireframe prototypes through several iterations before handing off to UI for visual design.

User flow diagram for Viewpost Sync 2.0: three columns showing Call Outs (marketing email, ERP marketplace, viewpost.com), Vendor Matching (ERP company match), and Sync Dashboard (qualified payments, auto-send, history, settings) with annotations and projected traffic percentages.
Match Connected Companies UI: the QuickBooks Online integration screen where users align Viewpost contacts with their ERP company records via search and matching.
Payment Sync dashboard: a list of payments ready to be sent, with bank account and amount columns, Auto-Send toggles per row, and a Send Payments action.

Recurring Invoices: Advanced Options

The problem

Accounts Receivable users wanted more granular control over how their recurring invoices were scheduled, but the existing flow forced a one-size-fits-all approach. Without the ability to customize, users were either avoiding the feature or making scheduling errors that created downstream rework.

The approach

The design needed to do two things at once: give users the flexibility to fit recurring invoices to their actual billing cadence, and visualize the resulting schedule clearly enough to catch errors before they shipped. I iterated on patterns for selecting, reviewing, and previewing, splitting the experience into a Setup tab for configuration and a View Schedule tab where users could see exactly when invoices would send across the coming months.

Recurring Date Picker user flow: six steps from Invoice List to New Invoice (Single) to Recurrence Modal to New Invoice (Recurring Set) to Draft Preview and back to Invoice List, with annotations describing each transition.
Recurring Options modal, Setup tab: repeat frequency, send date, due terms, and series end controls with a summary at the bottom describing the resulting recurrence in plain language.
Recurring Options modal, View Schedule tab: calendar visualization across January through April 2017 showing send dates and due dates marked on each month, letting users verify the schedule before committing.

Payment Tracker

The problem

Over 30% of inbound customer service calls came down to a single question: "Where's my money?" Users on both sides of a transaction (Accounts Payable and Accounts Receivable) couldn't see where a payment was in its lifecycle, and that opacity drove both anxiety and support volume.

The approach

I joined customer service shadowing sessions and ran user interviews to map exactly which moments of the payment journey were the most opaque. The team documented every possible payment status across both AP and AR perspectives, then iterated on UI patterns to find a single tracking module that could communicate status simply, including the two states that mattered most: a clean delivery path with intermediate milestones, and an exception state when a payment couldn't complete.

Payment Tracker module: collapsed and open states for two payment scenarios. The successful delivery path shows green status milestones (Initiated, Processed, Payment is on its way!) leading to estimated delivery. The error state shows a coral header with 'Unable to Complete' and a clear support contact.

Exploring SMS Notifications

The problem

Time-sensitive moments in the payment cycle (incoming bills, expiring discount offers, status changes) were getting lost in email noise. Accounts Payable users were missing windows for action that mattered to their bottom line, and the product team wanted to explore whether SMS could close that gap.

The approach

This project was an exploration more than a ship: I mapped the space across three layers: the triggering events that would generate SMS messages, the in-app call-outs that would introduce SMS to users, and the granular notification settings users would need to control what they received. Sketching and wireframing each layer let the team scope what was essential for V1 and what could wait for V2.

SMS Bill Notifications flow: five triggering events on the left (New Bill, Bill Nearing Due, Bill Overdue, New Bill VPX, Delayed VPX) feeding into a single SMS message on a phone, leading to Bill Detail and Payment Sent.
Customer SMS Setup flow: entry from a Dashboard or Bills List call-out banner, into a one-step setup modal where users confirm their phone number and preferred time range, ending with an SMS confirmation text.
Customer SMS Setup flow from Notification Settings: an alternate entry point for users who want to opt in through their account settings rather than via an in-context call-out, leading to the same one-step setup modal and confirmation.
Customer SMS Edit & Disable flow: once a user has set up SMS, the Notification Settings location becomes an editor where they can update their phone number, time range, and message types, or disable SMS entirely.

What this work reinforced

The four projects looked different on the surface (an ERP integration, an advanced scheduling UI, a payment tracker, a notification system), but they all answered the same underlying question: what is the user trying to know, and why can't they see it yet?

Whether the friction came from data living in two places (Sync), inflexibility in a single feature (Recurring), opacity in a process (Payment Tracker), or the wrong channel for the message (SMS), the design work was about closing a gap between the user's mental model and what the product could show them. That framing has stayed useful to me on every team I've worked on since.