Skip to main content

Ecommerce · Live decisions

DashboardEcommerce leadership

Running daily ecommerce decisions from live dashboards instead of spreadsheets

The morning spreadsheet is out of date before the meeting starts, and two people bring two RTO numbers. This playbook moves daily decisions onto dashboards that refresh every 15 minutes or query live, with one definition per number.

Valnora & Elric team5 min read

Format
Playbook
Steps
7
Solution
Dashboard
Parts used
8
DashboardsData sourcesSemantic modelMetricsMonitorsWorkflowsTablesChat

In many D2C brands, the day starts with a spreadsheet. Someone exports orders, pastes in courier updates, adds ad spend from two dashboards and sends it round. By the time the team meets, the numbers are hours old, and the RTO figure in the sheet does not match the one the operations lead calculated.

This playbook moves those daily decisions onto dashboards in Agent Serve that refresh every 15 minutes or query live, with one definition behind every number. It is near-real-time, not second-by-second, which is what a morning call, a COD hold or a courier switch actually needs.

1. Connect the data you already have

Start with data sources. Agent Serve connects to PostgreSQL, MySQL, MSSQL, Snowflake, BigQuery, Databricks, Salesforce, Qlik and Excel. Each one feeds a dataset in one of two modes:

  • Materialized. Copied on a schedule, as often as every 15 minutes. Fast to read, and kind to a busy production database.
  • Live. Queried each time someone opens the panel, with results cached for up to about a minute. Use it for the few numbers that must be current.

Most brands use materialized for history and live for today’s orders.

2. Write events into tables as they happen

Some of the most useful data never reaches a warehouse quickly: a new order, a courier’s non-delivery report, a COD confirmation call. Capture those with workflows.

  • Orders. Point a Shopify webhook at a workflow’s generic Webhook trigger. The workflow writes each order into an orders table with city, payment mode and value.
  • NDRs and courier status. There is no native courier integration. Use the generic API block with your courier aggregator’s API key stored as a workspace secret, or have the courier send webhooks to a workflow if it supports them.
  • Calls. Outcomes from COD confirmation or NDR calls can be written to an events table the same way.

Dashboard panels read these tables, so they update as rows land.

3. Agree the numbers once

Most spreadsheet arguments are about definitions. Is an order cancelled before dispatch part of RTO? Does COD share count partial prepaid orders?

Settle those once in the semantic model, which holds shared entities such as orders, customers and couriers, and their measures. Then name the numbers that matter as metrics: RTO rate, COD share, NDR resolution rate, contribution margin. Every chart, monitor, report and Chat answer reads the same metric, so two people cannot bring two RTO rates to the meeting. See consistent KPI definitions for a longer treatment.

4. Build the dashboard around decisions

Daily operations · today vs last 7 days (illustrative)

Daily operations · today vs last 7 days (illustrative)
Illustrative example
TodayAll channelsAll cities
Orders today1,284+6% vs same time last week
COD share58%+3 pts vs 7-day average
RTO rate, last 7 days17.9%+2.1 pts vs prior week
Open NDRs14638 older than 48 h
RTO rate by week, Pune vs all cities (%)PuneAll cities
W1W2W3W4W5W6

RTO by courier and city, last 7 days

CityCourierOrdersRTO rateStatus
PuneCourier A1,92027%Alert
PuneCourier B1,41019%Watch
MumbaiCourier A3,88016%Normal
BengaluruCourier B2,76014%Normal

Build the dashboard around the decisions the morning meeting makes, not around every number you have. For most D2C teams those are: hold or release COD in a city, switch couriers for a region, pause a campaign that is bringing in orders that come back. The example above is illustrative: today’s orders, COD share, RTO rate and open NDRs, with RTO by courier and city underneath.

5. Ask Chat the why questions

A dashboard shows that RTO in Pune rose. It does not always show why. That is what Chat is for.

What the solution produces

Chat answer to an ad-hoc question (illustrative)

Memo

Question: Why did RTO rise in Pune last week?

RTO in Pune rose from 19% to 24% on the shared RTO rate metric. Most of the rise is COD orders shipped with Courier A, where RTO went from 18% to 27%.

Over the same week, NDRs for Courier A in Pune with reason "customer not reachable" doubled. Prepaid orders in Pune were flat.

Suggested checks: Courier A attempt logs for Pune pin codes, and whether COD confirmation calls ran on those orders.

Chat · from the RTO rate and NDR metrics

Ask in plain language, such as "why did RTO rise in Pune last week?", and Chat answers from the same metrics and tables, breaking the change down by courier, payment mode and NDR reason. Treat the answer as a lead to check, not a verdict.

6. Let monitors and reports do the checking

Monitors watch metrics, rules or KPI panels and re-check as often as every five minutes. Set one for RTO rate above a level per city, and one for NDRs older than 48 hours. Alerts go by email, in the app or to Slack.

Scheduled reports replace the morning spreadsheet. Send the dashboard daily, weekly or monthly as a PDF, PNG or link, to team members or to external addresses such as an agency or a courier account manager.

How to measure it

Illustrative

15 min

Most frequent scheduled refresh

Materialized datasets; live datasets query on each view instead.

Illustrative

5 min

Most frequent monitor re-check

Alerts by email, in the app or in Slack.

Illustrative

1

Definition per metric

Illustrative goal: every chart, alert and Chat answer reads the same number.

Illustrative example. Figures show how the workflow is measured; they are not customer results.

Controls and governance

Row-level access

Row-level policies narrow what each person sees in tables, dashboards, exports and scheduled reports.

Roles and permission groups

Admin, write and read roles per workspace, plus permission groups that limit which models, blocks and integrations a team can use.

Run logs

Every workflow run records each block’s inputs, outputs and errors, so a reviewer can trace how a result was reached.

Deployed versions

Workflows run from a deployed version, so a change is reviewed before it reaches production runs.

Audit trail

Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.

SSO and SCIM

Sign in through your identity provider with SAML 2.0 or OIDC, and provision people with SCIM.

More on how Agent Serve handles access, data and audit on the security page.

Row-level access keeps regional managers to their own cities, and every event workflow keeps a run log, so a strange number can be traced to the rows behind it.

Where to start

Pick one decision, such as COD holds by city. Connect the order data, wire the Shopify webhook, define RTO rate and COD share once, and build one dashboard page with one monitor. Run the morning meeting from it for two weeks before adding anything else.

Questions teams ask

Is this real time?

Near-real-time. Materialized datasets refresh on a schedule, as often as every 15 minutes. Live datasets query the source on each view, with results cached for up to about a minute. Events that workflows write into tables appear as the rows land. It is not second-by-second streaming.

Do you integrate with our courier or payment gateway?

There is no native integration for couriers such as Delhivery or Shiprocket, or for gateways like Razorpay. Connect them with the generic API block, with the API key stored as a workspace secret, or through Settings → Tool connections where the provider offers an MCP server, a standard way to plug a service’s tools into AI agents.

Can we still export to Excel?

Yes, and Excel files can be a data source too. The aim is that the daily decision is made from the shared numbers, not from a copy someone edited.

How it works

From order events to a decision

Data sources feed datasets that refresh every 15 minutes or query live. Workflows write order, NDR and call events into tables as they happen. A semantic model and named metrics sit underneath dashboards, Chat, monitors and scheduled reports.

Data · Sources and events

  1. 01Data sourcesPostgreSQL, MySQL, BigQuery, Snowflake, Excel and more, materialized on a schedule or queried live.
  2. 02Shopify webhookPoints at a workflow’s Webhook trigger, so each new order arrives as it is placed.
  3. 03Event workflowsWrite orders, courier NDR updates and call outcomes into tables as rows land.
  4. 04Orders and events tablesOne row per order or event, with city, payment mode, courier and status.

Dashboard · One set of numbers

  1. 05Semantic model and metricsShared definitions of orders, RTO rate, COD share and contribution margin.
  2. 06Daily operations dashboardOrders, RTO, NDRs and ad spend by city, channel and courier.
  3. 07ChatAnswers ad-hoc questions from the same metrics.
  4. 08Monitors and reportsAlerts by email, in-app or Slack; scheduled PDF, PNG or link reports.

Written by the Valnora & Elric team.

Figures, dashboards and sample outputs in this article are illustrative examples, not customer results. This article is for information only and isn't legal or regulatory advice.

Enterprise access

Put AI agents to work across your team

Agent Serve is available to teams by invitation. Tell us what you want to build and we will set up your workspace with you.