Skip to main content
The demand inbox answers three questions for a seller: what demand came in, how did my agent respond, and did we win? Every row is one buyer brief (an RFP) joined to the response your storefront agent produced and the commercial result that followed. Open a row and you get the proposal pass: the complete, unchangeable record of one response. Open the inbox with “Show me recent buyer briefs” in the app, or call open_demand_inbox.

The metrics strip

Every figure comes from records that exist. A metric with no inputs reads as unavailable rather than a made-up zero, and money in different currencies is listed side by side, never converted and summed. Imported historical briefs are kept out of these numbers because they describe work done before your agent existed.

The ledger

Each row shows the brief, the buyer and advertiser, the kind of response, the result, your grade and who led the response. The result follows the commercial outcome: a buy that is forwarded or delivered counts as closed_won, a rejected or expired one as closed_lost, and everything else stays pending. Grade (A to F), feedback and led by (agent or human) are yours to record.

Where a brief came from

Each RFP also has a purpose: live for real demand, evaluation for tests, and draft for work that has not gone to a buyer. Rows that are not live carry a badge so they are never mistaken for real demand.

The proposal pass

A pass is one turn of an RFP: one request and one response. Once a turn finishes it never changes; revising it creates a new turn that points back to its parent.
A ready pass shows:
  • What the seller heard. The brief as a business document: advertiser, buyer, budget, flight, markets, channels, formats and any constraints. Fields the buyer did not send are simply absent.
  • The decision. pitch when the agent could meet the brief, or counter_pitch when it offers an alternative, together with what was requested, what is supported, and the limitations. For example: “Age targeting 30 to 55 is not available; this plan uses 25 to 54.”
  • The plan. Each product with its price, the floor it was priced against, its share of the budget, its role in the plan and the rationale for including it. A single-product plan still explains why it takes 100%.
  • Pass history. Every earlier turn on the same RFP, so you can see how the answer evolved.
A passed turn records the reason and the condition under which a new turn would be useful. A needs_clarification turn lists the questions and the catalog facts that were missing.

Working a brief

1

Grade it

Record a grade, who led the response and a short note. Grades feed the Avg grade metric and tell you where the agent needs coaching.
2

Coach and re-run

Append a revision turn with an instruction, such as “push the Marquee CTV package harder”. The agent composes a new pass under the same rules and floors.
3

Endorse the good ones

Endorse a brief and response pair you want the agent to learn from. Removing the endorsement keeps the record and only stops it being used as an example.
4

Share it

Request a representation of a pass (HTML, PDF, PowerPoint or the raw JSON response) to share with a buyer or a colleague.

The same records over MCP

The inbox and the pass read and write the same records your own agent can use:
save_rfp (append a revision turn)
Each finished response from a hosted storefront agent, whether ready or passed, is one merchandising cycle and costs one IU. Failed turns and turns that ask for clarification are not charged.

AI Business Rules

The policy every pass is composed under.

Glossary

RFP, turn, disposition and more.