Flow · 9 steps
Read the dashboard and tidy it
The admin's home screen is an analytics strip — sales, orders, units and average order value against the period before — over cards a person may dismiss for themselves. The figures are read from the reporting star and append nothing; a dismissal is that person's own reporting.widget-dismissed fact, idempotent by state, and a restore brings every hidden card back in one reporting.widgets-restored.
Services involved
A filled dot is a read; a ring is a call that changes something.
- Reporting Manager:
https://reporting.getmanifold.io - Fulfillment Manager:
https://fulfillment.getmanifold.io - Inventory Manager:
https://inventory.getmanifold.io
Every call carries Authorization: Bearer $MANIFOLD_TOKEN unless its step says otherwise
(getting a token). Run a flow in your sandbox, not your live
organization: see Before you start.
1 The analytics strip
Thirty days against the thirty before, with every day present for the sparklines and the fastest-growing SKUs. On a new organization every figure is honestly zero, and asOf says how far the fold has caught up.
GET /analytics/summary?period=30d Reporting Manager
What the answer holds: the operation's example.
2 What the order book needs
Fulfillment's own summary: orders still to fulfil and their parcels by stage, prepaid parcels packed and waiting for the money, and orders owing the customer a refund.
GET /orders/attention Fulfillment Manager
What the answer holds: the operation's example.
3 What the stock needs
Inventory's: the SKUs projecting below zero, and when each location was last counted.
GET /stock/attention Inventory Manager
What the answer holds: the operation's example.
4 Stock sitting still
SKUs with units on hand and no order placed for them in 60 days.
GET /analytics/slow-movers Reporting Manager
What the answer holds: the operation's example.
5 The margin
The margin over the lines whose cost is known, and the SKUs sold below cost — honestly empty on a new organization.
GET /analytics/margin?period=30d Reporting Manager
What the answer holds: the operation's example.
6 Dismiss a card
The layout is the caller's own — the user comes from the verified session, never the request. Hiding the sales trend appends one fact and answers the layout as it reads afterwards.
PUT /dashboard/dismissals/sales-trend Reporting Manager
What the answer holds: the operation's example.
Records reporting.widget-dismissed.
7 Dismiss it again
A card is dismissed once: the repeat finds it already hidden, answers the same layout and appends nothing — the runner holds that silence against the journal.
PUT /dashboard/dismissals/sales-trend Reporting Manager
What the answer holds: the operation's example.
Records nothing.
8 The layout
What the admin reads to decide which cards to draw.
GET /dashboard Reporting Manager
What the answer holds: the operation's example.
9 Bring everything back
One fact names every card the restore brought back; a restore with nothing hidden would append nothing.
DELETE /dashboard/dismissals Reporting Manager
What the answer holds: the operation's example.
Records reporting.widgets-restored.
What a recorded fact is: Facts and the journal. Why a repeated step changes nothing: Idempotency and retries.