Skip to content

Dashboard Overview

The Dashboard is the first screen owners and advisors see after signing in. It provides a real-time snapshot of garage performance: active jobs, outstanding invoices, weekly revenue, items needing attention, bay utilisation, recent activity, and - when Voice AI is enabled - after-hours call summaries and AI impact metrics.

  • You are signed in with an account that has work order access. Technician-only accounts (with my_jobs.access but not work_orders.access) are redirected to My Jobs instead.
  • Your organisation has at least one work order or invoice for data to appear.

Navigate to Dashboard in the sidebar. The page loads at /dashboard.

The header displays a personalised greeting using your first name, today’s date, and your organisation name. The format is:

Good morning, Alex Monday, 10 March - Smith’s Garage

If today is a non-working day (based on your organisation’s configured working days), a shift badge appears below the greeting. It reads Showing: followed by the next working day, for example “Tomorrow - Monday 10 March” or “Wednesday 12 March”. All widgets then show data for that shifted date.

Four stat cards appear in a responsive grid (2 columns on mobile, 4 on desktop). Each card shows a value, a trend arrow (up, down, or flat), and a trend label. Clicking a card navigates to the relevant page.

CardWhat it showsLinks to
Active JobsCount of active work orders/work-orders?show=active
OutstandingTotal unpaid invoice value (GBP)/finance/sales?statuses=UNPAID,PART_PAID,OVERDUE
This Week RevenueRevenue for the current Mon-Sun week (GBP)/finance/sales filtered to this week
Voice AI TodayCalls handled today and resolution rateAfter-hours section or /dashboard

The fourth card changes depending on feature availability:

  • When Voice AI is enabled, it shows Voice AI Today with call count and resolution percentage.
  • When AI messaging is active but Voice AI is off, it shows AI Today with conversation count and resolution rate, linking to /messages/ai-analytics.
  • Otherwise it shows Needs Attention with the count of items requiring action.

This tabbed panel sits below the stat cards (spanning two-thirds width on desktop). It contains up to four tabs:

  • Overdue - work orders past their due date.
  • Stale - work orders with no activity for a configured period.
  • Unbilled - completed work orders not yet invoiced.
  • Promises - (visible when Voice AI is enabled) callback promises from after-hours calls, with staleness indicators (urgent, warning, muted).

Each tab shows a count badge in its trigger. Items can be clicked through to their detail page.

Acknowledging items: Click the acknowledge button on any item. A toast appears with an Undo option for 5 seconds. If not undone, the item is dismissed server-side. Acknowledged items appear in a collapsible “X acknowledged” disclosure at the bottom of the panel. You can click Unacknowledge to restore them.

When all tabs reach zero items, a green tick animation appears with the message “All caught up!“.

To the right of Needs Attention on desktop, the Cash Position panel shows a donut chart breaking down outstanding invoices. Segments are clickable and link to filtered finance views. A period selector at the top right lets you switch between periods (the cashPeriod query parameter).

On desktop (1024px and above), a barcode-style grid chart shows bay utilisation across the week or a rolling period. Each cell represents a bay/day combination colour-coded by status. Click any cell to navigate to that work order. Use the toggle to switch between Week and Rolling views. The selected view persists in your browser.

On mobile, a summary card replaces the full chart with key utilisation figures.

A line chart showing daily invoiced revenue over time. Above the chart: a hero figure (e.g. total revenue), a label, and a trend indicator. If no invoices exist, an empty state appears with a link to Create your first invoice at /finance/sales.

A chronological list under the heading Recent Activity. Each row shows an icon, a description, and a relative timestamp (e.g. “2h ago”). Click any item to navigate to its detail page. On day one with no activity, the feed shows “Activity will appear here as you use Torqueflow.”

Two additional widgets appear when your organisation has Voice AI enabled:

  • After-Hours Activity - a card (anchored as #after-hours-activity) showing the period label, call count, resolved count, bookings made, messages left, and highlight lines for notable events.
  • AI Impact - cumulative metrics: total calls handled and approximate hours saved.

These widgets are absent from the page entirely when Voice AI is not enabled.

Below the main widgets, contextual adoption prompts appear under the heading “Get more from Torqueflow”. Each nudge shows an icon, a message, and a call-to-action link (e.g. “Set up invoicing”). Nudges disappear automatically once you adopt the suggested feature. They are not manually dismissible.

On free and standard plans, a text-only ad card may appear at the bottom labelled Suggested. It includes a headline, description, and a Learn more link. Premium subscribers do not see this section.

You have a complete picture of your garage’s current state: jobs in progress, revenue performance, items requiring action, bay utilisation, and recent activity. Each widget links through to the relevant detail page for further action.

ProblemCauseFix
Dashboard redirects to /my-jobsYour account only has my_jobs.access capability, not work_orders.accessAsk your owner to assign a role with work order access via Settings > Roles
Dashboard redirects to /sign-inYou are not authenticatedSign in with your credentials
Stat cards show zero valuesNo work orders or invoices exist yetCreate your first work order to populate the dashboard
Voice AI widgets do not appearVoice AI is not enabled for your organisation, or your role does not have the voice.calls.view capability (used by Voice AI Today, After-Hours Activity, and voice-call entries in the Activity Feed)Contact support to enable Voice AI, or ask your owner to grant the capability
AI Today tile is missingYour role does not have communications.analytics.viewAsk your owner to grant the capability via Settings > Roles
AI Impact widget is missingYour role does not have ai.reports.viewAsk your owner to grant the capability via Settings > Roles
Some widgets are missing for a custom roleEach widget is gated by a capability. Roles without the relevant capability do not see the widget at allEdit the role in Settings > Roles, or assign the user a system role that holds the needed capabilities
Activity Feed shows fewer event types than a colleagueThe Activity Feed is filtered by capability per event type - invoices, quotes, work orders, appointments and voice calls each need their own capabilityGrant the matching capability (e.g. finance.sales.view for invoice events) via Settings > Roles
Needs Attention shows work order references but no money figuresYour role holds work_orders.access but not finance.reports.revenue.view, so the amount is suppressedIf the amount should be visible to this role, grant finance.reports.revenue.view via Settings > Roles
Bay Timeline shows summary instead of chartScreen width is below 1024pxUse a wider screen or desktop to see the full barcode chart
Needs Attention shows “All caught up!” unexpectedlyAll items have been acknowledgedExpand the acknowledged disclosure to review and unacknowledge if needed
Revenue Pulse shows empty stateNo invoices have been createdCreate and finalise your first invoice
  • The dashboard auto-refreshes periodically. All widgets are wrapped in an auto-refresh wrapper.
  • Each widget loads independently using tiered Suspense boundaries. If one widget fails, others continue to display. A failed widget shows an error boundary message with the widget name.
  • During trial or when subscription status is null, owners with settings access see an onboarding Setup Banner at the top showing completed steps out of total steps.
  • Every widget is gated by a capability check. Owner sees every widget by default. Manager and Service Advisor see most. A narrow custom role only sees the widgets matching its granted capabilities - the page reflows so there are no empty placeholders. The Activity Feed is filtered per event type, so a role with no finance capabilities sees no invoice or quote events even if other staff do.