Trackmint User Flows — Software Development Pack
Date: July 18, 2026 · Companion to the PRD (doc 05) and Use Cases (doc 08).
These are the ten user flows we design and test against for the Software Dev pack (“Jira × QuickBooks”). The cast is Barry’s dev shop: Barry (owner, $120/h), Dana ($95/h), and Sam ($80/h), billing two clients, Acme Corp and TechFlow. Every flow expresses the one core idea — the work you track is the work you bill — so an hour logged on a Sprint Board card reaches a paid invoice without ever leaving the app. Screens referenced are the real app screens: Dashboard, Sprint Board, Item Detail (with timer), Time & Billing, Invoices, Documents (AI), and More/Plans.
SW-01 — Onboard the team & set rates - Actor: Barry (owner), first day on Trackmint. - Trigger: Barry signs up, tired of paying for Jira + Toggl + a separate invoicing tool. - Steps: 1. Barry signs up and picks the Software Dev pack; Trackmint seeds a Sprint Board (Backlog → In Progress → In Review → Done) and dev-flavored issue templates. 2. On More/Plans he chooses the Mid tier — 3 seats, exactly 3, no 5-seat bundle. 3. He invites Dana and Sam by email from Setup → Team; each accepts on web or mobile. 4. In Time & Billing → Rates he sets default rates: Barry $120/h, Dana $95/h, Sam $80/h. 5. He adds clients Acme Corp and TechFlow in Setup → Projects and overrides Dana’s rate to $100/h for TechFlow only. 6. The Dashboard now shows both clients, three members, and an empty “Unbilled” card — ready for the first sprint. - Outcome: A three-person shop with per-person, per-client rate cards is fully set up in under ten minutes. - Tier: Mid (team + boards work in Basic; rates require Mid). - Why competitors fail here: Asana sells seats in bundles with no solo license, and neither Jira nor Asana has any concept of a billing rate at all.
SW-02 — Plan a sprint (create issues, estimate, assign) - Actor: Barry, with Dana and Sam in the planning call. - Trigger: Monday sprint planning for the two-week sprint. - Steps: 1. Barry opens the Sprint Board and reviews the Backlog column. 2. He taps + New Issue: “Payment webhook retries failing” — type Bug, client Acme Corp, estimate 6h, assignee Barry. 3. He adds “Build client billing dashboard” (Feature, Acme, 12h → Dana) and “TechFlow API rate limiting” (Task, TechFlow, 8h → Sam). 4. He drags the three cards from Backlog into the sprint; each card shows type, client, assignee, and logged-vs-estimated hours. 5. On the Dashboard, the sprint’s total estimated value appears per client (estimate × each assignee’s rate), so Barry sees the sprint is worth roughly $2,800 before anyone starts. - Outcome: A planned sprint where every issue already knows its client, estimate, and billing rate. - Tier: Basic (board, issues, estimates, assignment); the money preview lights up on Mid. - Why competitors fail here: Jira plans sprints perfectly but knows nothing about money — no billable flag, no rates, no client value on a card.
SW-03 — Work an issue with the timer (incl. switching tasks mid-day) - Actor: Barry. - Trigger: He starts debugging the webhook bug on Tuesday morning. - Steps: 1. Barry opens the webhook card’s Item Detail and taps ▶ Start timer; the running timer shows in the app header on every screen. 2. At 11:40 Acme calls with an urgent question about the billing dashboard. Barry opens that issue and taps ▶ Start timer there — Trackmint stops the webhook timer at 2h 25m and starts the new one in one action. 3. After the call he taps ▶ back on the webhook card; the dashboard issue keeps its 20 minutes. 4. He stops for the day; the timer’s idle detection asks about the 15 idle minutes over lunch, which he discards. 5. Item Detail now shows 4.1h logged of 6h estimated (green); every entry was priced at $120/h the moment it was logged, and the timer state was synced server-side the whole time — force-quitting the mobile app loses nothing. - Outcome: An interrupted, task-switching day is captured to the right issues, at the right rate, with zero lost minutes. - Tier: Mid. - Why competitors fail here: Asana paywalls timers behind its $24.99 tier plus an add-on, Jira needs Tempo (which charges for every seat in the instance), and PracticePanther’s mobile timers famously reset themselves to zero.
SW-04 — Log time manually & fix a wrong entry - Actor: Dana. - Trigger: Dana did 3 hours of dashboard work off-line at a café and forgot the timer; she also mislogged an entry yesterday. - Steps: 1. Dana opens the billing dashboard issue’s Item Detail and taps + Add time: 3h, backdated to yesterday, note “Chart component + API wiring”, billable. 2. In Time & Billing → My timesheet (week grid) she spots yesterday’s 1.5h entry sitting on the wrong issue — she’d logged TechFlow research onto an Acme card. 3. She opens the entry, changes its issue to “TechFlow API rate limiting”; the amount reprices automatically from $95 to her $100 TechFlow rate. 4. She flags a separate 0.5h “reading docs” entry as non-billable so it counts for utilization but never reaches an invoice. 5. Because entries can sit as drafts pending review, Barry sees Dana’s corrections in the review queue and approves them; both clients’ unbilled totals update. - Outcome: Forgotten and misfiled hours are captured and corrected before they can corrupt an invoice. - Tier: Mid. - Why competitors fail here: Jira’s worklogs can’t even be filtered by date range for invoicing, and PracticePanther has no draft-entry review step — errors ride straight onto client bills.
SW-05 — Watch a client budget (80% warning → talk to client before overrun) - Actor: Barry. - Trigger: Acme’s project has an $8,000 budget and the sprint is running hot. - Steps: 1. When the project starts, Barry sets Budget: $8,000 on the Acme project in Time & Billing → Budgets, with the default 80% alert threshold. 2. Mid-sprint, logged time plus expenses push Acme to $6,410 — the budget bar on the Dashboard and Time & Billing turns amber at 80%, and Barry gets a push notification on mobile. 3. He opens Time & Billing → Budget status and sees the burn per issue: the webhook bug is 1.6h over its estimate (its card hours show red on the Sprint Board). 4. Before anything is overrun, he calls Acme with real numbers: “$6,410 of $8,000 used; finishing the dashboard needs ~$2,100 more.” 5. Acme approves a $2,500 budget extension; Barry edits the budget to $10,500 and the bar returns to green — with the change visible in the audit log. - Outcome: The scope conversation happens before the overrun, backed by live numbers instead of a month-late surprise. - Tier: Mid. - Why competitors fail here: This is the literal PracticePanther complaint — “no way to check whether you are about to exceed the budget” — and in Asana budgets are a paid add-on that still can’t alert against logged billable value.
SW-06 — Scan receipts into billable expenses (AI) - Actor: Barry. - Trigger: The June AWS invoice PDF and a stack of phone-photographed receipts need to become billable expenses. - Steps: 1. Barry uploads the AWS invoice PDF into Documents (AI); on mobile, Sam photographs a conference-parking receipt straight into the same screen. 2. The AI extracts vendor, amount ($214.37), date, and category (“Cloud hosting”) from the AWS PDF, and proposes matching it to Acme Corp’s project at 72% confidence, flagged for review. 3. Barry opens the review screen: every field shows its confidence and highlights its source region in the document. He confirms the Acme match and marks it billable with no markup. 4. Sam’s parking receipt extracts at 96% confidence and auto-files to TechFlow; Barry approves it from the review queue in one tap. 5. Both expenses now appear in Time & Billing under each client’s unbilled work, sitting next to the hours. - Outcome: Receipts become categorized, client-attached billable expenses without manual keying — nothing posts without human confirmation. - Tier: Advanced. - Why competitors fail here: Jira and Asana have no expense concept at all, and no PM tool turns a receipt photo into an invoice line — that gap is exactly why shops bolt on QuickBooks.
SW-07 — Month-end invoicing for two clients (batch, review lines, send with payment link) - Actor: Barry. - Trigger: July 31 — time to bill Acme and TechFlow for the month. - Steps: 1. Barry opens Invoices; the header reads “Acme Corp — $2,062.40 unbilled · TechFlow — $1,180.00 unbilled.” 2. He taps Batch invoice → All clients, July 1–31; Trackmint drafts two invoices at once and opens a review queue with Next/Previous navigation. 3. Acme’s draft shows lines pulled from real work: “Payment webhook retries failing — 4.5h @ $120,” “Build client billing dashboard — 5.2h @ $95,” “Expense — AWS June $214.37.” He adds a 10% line-item discount on the webhook line as a goodwill gesture for the over-estimate. 4. He taps Next, reviews TechFlow’s draft (Dana’s hours priced at her $100 override), and writes off Sam’s 0.4h of rework. 5. He taps Send all; each client gets an emailed invoice with an online payment link (card/ACH). 6. Every included entry and expense is marked billed, so nothing can be double-invoiced next month. - Outcome: Two accurate, client-readable invoices out the door in minutes, drafted entirely from tracked work. - Tier: Mid. - Why competitors fail here: Asana has no invoicing concept at all (“export to external tools”), Jira needs paid marketplace apps just to invoice worklogs, and PracticePanther can’t do line-item discounts or batch runs with a “next” button.
SW-08 — Client pays / chasing an unpaid invoice - Actor: Barry; Acme’s and TechFlow’s accounts-payable people on the other end. - Trigger: Invoices were sent on July 31; it’s now mid-August. - Steps: 1. Acme’s AP clicks the payment link and pays by ACH; the invoice flips to Paid on the Invoices screen and Barry gets a mobile notification — no logging into a processor dashboard to check. 2. The payout lands on a published schedule with published fees, visible under Invoices → Payments. 3. TechFlow’s invoice is still Sent at day 10; Trackmint’s automated reminder emails TechFlow politely with the same payment link. 4. At day 14 the invoice shows Overdue in red on the Dashboard’s A/R card; Barry taps Remind now once more, then calls his contact — armed with exact dates from the invoice’s activity trail. 5. TechFlow pays by card; the status flips to Paid and the A/R report zeroes out. - Outcome: Payment status lives where the work lives; chasing is mostly automated and always informed. - Tier: Mid. - Why competitors fail here: No PM competitor tracks payment status at all, and billing incumbents like PantherPayments make users wait about a week for deposits and keep fees on refunded payments.
SW-09 — Fixed-price project (budget-first tracking, profitability check) - Actor: Barry, quoting TechFlow a fixed price. - Trigger: TechFlow wants a payment-integration project for a flat $6,000. - Steps: 1. Barry creates the project with Budget: $6,000 (fixed price) in Time & Billing → Budgets; hours logged to it are tracked at cost-of-time but not billed per hour. 2. He plans the issues on the Sprint Board as usual; the team runs timers on them exactly as in SW-03 — same habit, different billing mode. 3. Weekly, Barry checks Time & Billing → Budget status: the internal value of logged time (hours × rates) stands at $3,840 against the $6,000 price — a live 36% margin. 4. The amber 80% alert fires when internal value hits $4,800; Barry sees Sam’s rate-limiting issue is the sink and descopes a nice-to-have before the margin goes negative. 5. At completion, one tap on Invoices drafts a single $6,000 fixed-fee invoice (no hourly lines), while the profitability report records the true outcome: $6,000 billed vs. $5,320 of time — a project he’d happily quote again. - Outcome: A flat-fee project tracked hour-by-hour internally, billed cleanly, with margin known before it’s gone. - Tier: Mid. - Why competitors fail here: Flat-fee budget blindness is a top mined complaint — PracticePanther users literally cannot see whether they’re about to exceed a flat-fee budget, and Jira/Asana can’t compare logged value to a price at all.
SW-10 — Retainer client (monthly hours allowance, rollover decision, report to client) - Actor: Barry; Acme Corp on a support retainer. - Trigger: Acme pre-pays $2,400/month for up to 20 mixed-rate support hours. - Steps: 1. Barry sets up a recurring monthly invoice of $2,400 for Acme in Invoices → Recurring, clearly labeled a non-trust prepayment, and a matching monthly 20h budget on the “Acme Support” project. 2. Support issues land in a dedicated column on the Sprint Board; the team logs time against them with timers as usual. 3. All month, the Dashboard retainer bar shows hours consumed vs. allowance — 14.5h of 20h by the 25th — visible on mobile at a glance. 4. Month-end, Acme has used 17h. In Time & Billing Barry faces the rollover decision and applies the contract’s policy: roll 3h forward, setting next month’s allowance to 23h. 5. He exports the monthly time report (PDF) from Time & Billing — issues worked, hours per issue, hours remaining — and sends it with the next recurring invoice, so Acme sees exactly what the retainer bought. 6. In a heavy month where usage hits 22h, the budget alert fires early and the 2 excess hours flow to a normal overage invoice at standard rates instead of vanishing. - Outcome: The retainer runs itself: automatic invoicing, live allowance tracking, an auditable rollover, and a client report that justifies renewal. - Tier: Mid. - Why competitors fail here: Retainer allowances need timers + budgets + recurring invoices in one system; Jira/Asana have none of the money half, and stitched-together Toggl-plus-QuickBooks setups can’t alert on an allowance or roll hours forward.
Summary table
| Flow | Title | Tier | Screens touched |
|---|---|---|---|
| SW-01 | Onboard the team & set rates | Mid | More/Plans, Dashboard, Time & Billing |
| SW-02 | Plan a sprint | Basic | Sprint Board, Dashboard |
| SW-03 | Work an issue with the timer | Mid | Item Detail, Sprint Board (header timer) |
| SW-04 | Log time manually & fix a wrong entry | Mid | Item Detail, Time & Billing |
| SW-05 | Watch a client budget (80% warning) | Mid | Time & Billing, Dashboard, Sprint Board |
| SW-06 | Scan receipts into billable expenses | Advanced | Documents (AI), Time & Billing |
| SW-07 | Month-end invoicing for two clients | Mid | Invoices, Time & Billing |
| SW-08 | Client pays / chasing an unpaid invoice | Mid | Invoices, Dashboard |
| SW-09 | Fixed-price project profitability | Mid | Time & Billing, Sprint Board, Invoices |
| SW-10 | Retainer client with rollover | Mid | Invoices, Dashboard, Time & Billing, Sprint Board |
Nine of ten flows complete on the Mid tier — the tier where the core promise (“work exists” → “client paid”) is fully delivered. Only receipt scanning (SW-06) needs Advanced, and only sprint planning (SW-02) works on Basic alone.