Ecommerce · Sale day
MixedFashion & D2CA sale day war room for Diwali, built before the traffic arrives
On the biggest day of the year, the problem is rarely missing data. It is six tabs, four people and nobody sure who is watching payments. Here is a war room with one screen, alerts every 5 minutes and Relays that investigate before they ask.
Valnora & Elric team6 min read
- WorkflowsThe visual builder: blocks, models and integrations wired into agent logic.
- TablesA database, built in, for cases, queues and decisions.
- DashboardsCharts, tables and KPI tiles over governed metrics.
- MonitorsWatch a metric and alert the right people when it moves.
- RulesPlain-language checks that pass, fail or flag a record.
- RelaysAI coworkers with a role, a schedule and approvals before external actions.
- MetricsNamed, reusable measures every chart and agent reads the same way.
Mehr Apparel is a fictional ethnic-wear brand, used here as an illustration. Diwali week brings several times their usual daily orders, most of them in two evening peaks. Last year the founders watched Shopify on one laptop, the growth lead watched Meta on another, and nobody noticed that UPI payments were failing for 40 minutes until the support inbox filled up.
This post sets out the architecture for a war room that fixes that: one screen, five alerts and a team of Relays on watch, with people approving anything that spends money.
The architecture at a glance
Sale day war room: data in, one screen, a team on watch
Workflows · Data in
- 01Order webhookShopify order webhooks write each order to the orders table as it is placed.
- 02Payment eventsGateway webhooks for failed and captured payments, via a Webhook trigger. Not a native integration.
- 03Stock and ad syncEvery 15 minutes: Shopify inventory levels, Google Ads performance, Meta spend via the API block.
- 04RTO risk scoreEach COD order is flagged by pincode history, order value and first-order status.
Dashboard · War room
- 05War room screenOrders per 15 minutes, payment success, spend vs revenue, stock cover, risky COD share.
- 06Five monitorsOrder drop, payment failures, stock cover, ROAS drop and risky COD share, every 5 minutes.
Relay team · On watch
- 07Ads watcherInvestigates ROAS and spend alerts; drafts pauses or budget moves for approval.
- 08Stock watcherFinds campaigns still sending traffic to SKUs about to sell out.
- 09Payments watcherBreaks payment failures down by method and bank and writes the incident note.
- 10ApprovalsSpend changes and emails wait for the shift lead. Paper mode for the rehearsal.
People · Shift
- 11Shift leadOwns alerts for a four-hour block, approves or declines every proposed action.
- 12Channel ownersGrowth, ops and payments owners act on their area and close the alert.
There are four lanes. Workflows bring data in. A dashboard shows it. Monitors decide when someone should look. A Relay team does the first ten minutes of investigation and proposes an action, and a shift lead decides.
Lane 1: Data in, as it happens
Everything the war room shows lives in Tables, written by workflows:
- Orders. A Shopify orders webhook points at a workflow’s Webhook trigger. Each order lands in the orders table with value, payment method, pincode, SKU lines and UTM source.
- Payments. Your payment gateway’s webhooks for failed and captured payments hit a second workflow. Gateways such as Razorpay are not native integrations; the webhook and the API block do the job, with the key stored as a workspace secret.
- Stock and ads. A scheduled workflow runs every 15 minutes. The Shopify block lists inventory levels for the sale SKUs, the Google Ads block pulls campaign performance, and the API block reads Meta spend from the Marketing API.
- RTO risk. As each COD order lands, a rule flags it as risky when its pincode has a high return history, the value is above your limit and it is the buyer’s first order. Those orders go to your COD confirmation flow.
Lane 2: One screen
The war room is a dashboard on a TV and on every laptop, with row-level access so an agency partner sees only ad panels. Five panels are enough:
- Orders per 15 minutes against the same window last year.
- Payment success rate by method.
- Spend against revenue by channel, with delivered ROAS from metrics defined once.
- Stock cover in hours for the sale SKUs.
- Share of COD orders flagged risky, by region.
Panels that read the webhook tables update as rows land. Stock and ad panels move every 15 minutes. That is near-real-time, and on sale day it is enough: the decisions take minutes, not seconds.
Lane 3: Five monitors, every 5 minutes
Monitors re-check every 5 minutes and alert in-app, by email and in a Slack channel called #war-room:
- Order drop. Orders per 15 minutes fall below half of the expected curve. Often a checkout problem, not demand.
- Payment failures. Failure rate above twice the normal rate for two checks in a row.
- Stock cover. A sale SKU under 3 hours of cover.
- ROAS drop. Delivered ROAS on a campaign falls below your floor after enough spend.
- Risky COD share. Flagged COD orders above your limit in one region.
Lane 4: A Relay team on watch
Start from the Ecommerce ops team template and keep three Relays in Assist mode. Each one starts when its monitors alert, writes findings to the team’s shared notes board and hands off by rule: if the stock watcher finds a SKU about to sell out, it hands the ad question to the ads watcher.
What the solution produces
Payments watcher incident note (illustrative)
Record- Alert
- Payment failure rate 14% in the last 15 minutes, usual 6%
- Where
- UPI collect requests only; cards and netbanking normal
- Since
- 20:35, rising for three checks in a row
- Not the cause
- No checkout change deployed today; order volume normal
- Suggested action
- Payments owner to check the gateway status page and contact the account manager; consider promoting UPI intent at checkout.
- Not done
- No customer messages, no changes to checkout or ads
Ads watcher proposal (illustrative)
MessageProposal: pause 2 Meta ad sets promoting KUR-SLK-M, stock cover 1.8 hours at current rate.
Spend in the last hour on these ad sets: ₹38,400. Other sizes and colours are in stock.
This is a spend-related change and needs your approval. It expires in 24 hours.
- Ads watcher. Reads Google Ads reports and, through Meta’s ads MCP server connected under Tool connections, campaign insights. A budget or status change is a spend call, so it waits for the shift lead.
- Stock watcher. Reads stock cover and orders, finds which campaigns still send traffic to a SKU that will sell out within hours.
- Payments watcher. Breaks failures down by method and bank, checks whether anything changed, and writes the incident note. It contacts no customers.
By default a Relay handles 25 tasks a day and 2 at once, so plan which alerts each one owns on sale day. The team kill switch pauses all three at once if anything looks wrong.
The rehearsal
Run a full rehearsal a week before. Replay last year’s order file into the orders table through a workflow, let the monitors fire, and put the Relays in paper mode, which simulates spend calls instead of making them. Check that the right person gets each alert and that every proposal makes sense.
Controls and governance
Approvals before action
Relays never send email or book meetings without an approval, under any autonomy setting. An approval covers the exact payload the reviewer saw and expires if nobody decides.
Audit trail
Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.
Run logs
Every workflow run records each block’s inputs, outputs and errors, so a reviewer can trace how a result was reached.
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.
Deployed versions
Workflows run from a deployed version, so a change is reviewed before it reaches production runs.
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.
On the day, the approval queue is the shift lead’s inbox. Approvals cover the exact change shown, run once and are written to the audit log, so the post-sale review starts from a record of what was proposed, approved and declined, not from memory.
After the sale, keep the dashboard and turn the monitor thresholds back to normal. For the everyday version, see the live store dashboard and ad budget pacing.
Questions teams ask
How real time is it?
Panels that read webhook-fed tables update as rows land. Stock and ad spend refresh every 15 minutes, because that is how often the sync workflows run. Monitors re-check every 5 minutes. It is near-real-time, not second by second.
Can the Relays pause ads on their own?
Only within limits you set. Budget and status changes are spend calls, so they wait for approval unless the Relay has delegated limits per action and per day and the change fits inside them. Most teams keep approvals on for sale day.
Is our payment gateway a built-in integration?
Gateways such as Razorpay are not native integrations. Their webhooks reach a workflow’s Webhook trigger, and the API block calls their API with your key stored as a workspace secret.
What you need
- Shopify admin access for order webhooks and the Shopify block
- Your payment gateway’s webhook settings and API key, stored as a workspace secret
- Google Ads account access, and a Meta access token or Meta’s ads MCP server connected under Tool connections
- Your courier history by pincode for the RTO risk rule
- A shift rota for sale day, with one named shift lead per block
- A rehearsal date at least a week before the sale