Question types
Specific metric questions
This is the most common kind of question. One query runs, and you get an answer you can check against the SQL. The best questions name three things: the metric, the time range, and the breakdown. “Revenue last month by week” is a complete question. “How are sales?” is not.Raw data pulls
Use pull or export language when you want the data itself rather than an interpretation. Name the fields, the time range, and any filters such as product, campaign, store, or channel. Data pulls always run as a single query. They skip Deep Analysis and never produce a chart. The reply confirms what was pulled and attaches the rows as a CSV. Asking for several dimensions does not make a question a data pull. “What is revenue by UTM source and medium?” asks what the data means, so it gets an analysis. “Pull order ID, UTM source, UTM medium, and revenue for last week” asks for rows. Data pulls return at most 100 rows. If you get exactly 100, assume the result was cut off and narrow the request.Open-ended questions and Deep Analysis
Questions such as “Why are our metrics declining?” or “What should we focus on to grow?” have no single number as an answer. For these, the analyst runs Deep Analysis. Deep Analysis runs two analyses: your question, plus one strategic question the analyst writes to add a second angle. Each shows up in the thread with its own title. The final reply combines both into one answer with recommendations, and it carries the reasoning and feedback actions. Deep Analysis takes longer than a single query. If you want a fast, specific answer, phrase the question specifically. “What was our Meta ROAS last month?” answers faster than “How is Meta performing?” A single question never runs longer than 7 minutes.Definitions and schema
Questions about what a metric means, how it is calculated, or where data lives are answered without running SQL. Definitions come from SourceMedium documentation. Schema questions are answered from your warehouse’s table metadata, and the reply includes Schema docs links to the table pages. “What is LTV?” gets a definition. “What was our LTV last month?” gets an analysis.Data and attribution health
“How is my data health?” reports which tables are fresh, which are empty, and which domains are ready to analyze. “How is my attribution health?” audits UTM coverage on your acquisition orders. See Data and attribution health.Follow-ups
In the same thread you can ask for a new breakdown, a summary, or a recommendation. Summaries and recommendations use what the thread already found and do not run new SQL. If you ask for one before any analysis has run, the analyst asks you to run an analysis first. If your request is ambiguous, it runs a fresh analysis instead. Thread rules, including when to mention the bot, are on Reading results.Example prompts by domain
Copy one, then swap in the metric, time range, and breakdown you care about.Orders and revenue
Customers
Marketing and ads
Email and SMS
Products, subscriptions, and returns
Web analytics and attribution
Media mix (MMM)
These work on Pro warehouses with a media mix measurement vendor connected (Fospha today). The vendor’s modelled results land in two tables, both in the catalog:rpt_media_mix_channel_dailyis daily by channel group and media platform (store, market, media source and currency are in the grain too), with spend, MMM-attributed revenue, last-click revenue and platform-reported revenue side by side. Use it for channel-level questions.obt_media_mix_performancekeeps every row at the level the vendor reported it (ad, ad group, campaign or channel), with the sales venue the revenue landed on. Use it for campaign questions.
channel_group column, so fill in the bracketed names yourself. The platforms named are examples; for a platform that is not in your feed, expect a plain “not in the data”.
- The feed carries the vendor’s modelled results: spend, MMM-attributed revenue, last-click and platform-reported revenue, and new-customer conversions. It carries no response curves, saturation points, headroom, adstock or confidence intervals. Channel contribution, ROAS by measurement lens, period comparisons and new-customer questions can be answered from the data. Saturation, marginal ROAS, what-if and “which channel to cut” answers are the analyst’s own estimates. Ask how an estimate was made, and treat it as a starting point for a spend test.
- Grouping by media platform folds the zero-spend organic rows into the paid platform. An organic channel group can share a
media_platformvalue with a paid group, so ROAS, a last-click comparison or a new-customer CAC by media platform includes credit the spend did not buy. Say “paid channels only, by channel group” in any question about return on spend or cost per new customer. A comparison table added to an answer about something else can still be by media platform, so read side tables with the same care. - For a headline or board number, ask: “According to the media mix model, what was blended MMM ROAS for [quarter], paid channels only, by channel group, as total attributed revenue divided by total spend?”
- Email and SMS groups can carry their tool fees as spend, so they count as paid. Ask for them to be listed separately if you want media spend only.
- A bare question such as “How is our ROAS looking?” can be answered from the order and ad tables rather than the MMM. Put “MMM” or “according to the media mix model” in the prompt when you want the modelled figures, and name the window.
- The most recent days of the feed are not settled, and the feed ends before today;
is_measurement_completemarks the rows that are. For a monthly number, ask for a month that has closed. If the answer falls back to a different window than you asked for, repeat “paid channels only, by channel group” for the fallback as well. - To check how fresh the feed is, ask for the vendor’s latest run across all rows (
vendor_last_completed_at). An older month keeps the run time from its last rebuild, so one month’s value can look stale when the feed is current. - Year-over-year comparisons only cover the vendor’s history, which can be shorter than the platform’s. A channel can show up as “new” rather than grown. Ask for the first date the feed has for that channel before quoting a growth rate.
- MMM-attributed revenue is modelled credit. It does not add up to order revenue, and the vendor’s channel groups are not the same as SourceMedium’s
sm_channel. - The vendor may not split new and returning customers for every channel group. Ask for CAC as “spend divided by MMM new-customer conversions, leaving out groups the vendor does not split by new customer”. A blended CAC that keeps such a group’s spend in without its customers comes out too high.
- Questions the feed cannot answer (a confidence interval, an adstock decay rate, a platform that is not in the feed) still deserve the same qualifiers, so that any point value or proxy quoted beside the “not in the data” answer is the paid, channel-group figure.
- Campaign questions read
obt_media_mix_performance. Ask for ROAS recomputed from summed revenue and spend rather than an average of per-row ratios, and treat a campaign ranking inside one platform as weaker evidence than the channel-level figures.
Customer support
These work when a help desk is connected (the integrations list shows which are supported). Tickets land inobt_customer_support_tickets, one row per ticket with status, channel, tags, assignee, resolution time and CSAT. The conversations themselves land in obt_customer_support_ticket_messages, one row per message with the sender, whether an agent wrote it, and the text. Both are in the catalog. Theme questions read the message bodies; counts, channels and tags come from the ticket table; first response time and agent workload need the messages.
- A theme question over the message bodies is the slowest thing on this page, because the analyst samples and classifies conversations in SQL. Expect ranges rather than exact counts, and ask which tickets could not be classified, since some channels carry no transcript.
- Tags are the fast path to themes, but many tags are routing labels (channel, store, automation, priority) rather than topics. Ask for the two to be separated.
- There is no first response time column. It has to be derived from the messages table: the first agent message the customer could see after the customer’s first message, leaving out tickets an agent started and internal notes. Ask for that method to be stated, and for a median next to the average, because a few slow replies pull the average up. Some help desks log both sides of a phone call at once, so those tickets read a first response time near zero.
- Nothing on a ticket names a product. “Which products generate tickets” can only be answered by linking tickets to the customer’s recent orders, which covers the tickets whose customer has an order and counts every product in those orders. Treat the result as an estimate; ask your support team to fill a product field in the help desk if you need the real answer.
- A help desk connected to one store covers that store only. Ask which store the tickets belong to.
- If no help desk is connected, the support tables exist but are empty.
- The Gorgias and Richpanel integrations fill the support tables today, and they differ in internal notes, phone calls, channel names and team assignment. The platform notes on the messages table and the tickets table say how.
Raw data pulls
Definitions and schema
Health checks
Tips for better answers
State a time range
State a time range
Say “last 30 days,” “in January,” or “Q4 2024.” If you leave it out, the query picks one, and you will see it in the SQL. “Recently” is not a time range.
Name the metric you mean
Name the metric you mean
“Revenue” is clearer than “sales.” “Orders” is clearer than “transactions.” Use the terms from your dashboards. See Metrics.
Ask one thing at a time
Ask one thing at a time
“What was revenue and how did AOV change?” works better as two questions in the same thread.
Use top N for rankings
Use top N for rankings
“Top 10 products by revenue” is specific. “Best products” is not.
Use pull or export language for rows
Use pull or export language for rows
“Pull order ID, date, UTM source, and revenue for last week” returns rows and a CSV. “What are the trends in orders by UTM source?” returns an analysis.
Add context to open-ended questions
Add context to open-ended questions
“How can we improve Q1 performance given the new product line?” gives Deep Analysis something to work with.
Check data health first when it matters
Check data health first when it matters
A “last 7 days” answer is wrong if the last 3 days have not synced. Ask “How is my data health?” before an analysis you plan to present.
Related
Reading results
What each part of a reply means, thread rules, and how to validate a number.
Table schemas
Column-level documentation for every table the analyst can query.

