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.