Build queries with Azi
Working with Azi
Goal: Turn a plain-English question into a saved warm query, without writing KQL.
Azi translates what you describe into KQL. The clearer you are about the metric, the time range, and the grouping, the better the first proposal. You always preview and approve before anything is saved.
THE LOOP
Describe, preview, approve
You describe the answer you want. Azi proposes a query. You run a preview. You approve, refine, or reject. Approved queries become a shared source of truth; rejected ones cost nothing.
Four asks that cover most needs
| You ask | Azi proposes (in KQL) |
|---|---|
| "Average signups per hour over the last day" | a summarize count() by bin(Timestamp, 1h) |
| "Every hour with more than 100 signups" | a where threshold over hourly buckets |
| "Signups by campaign this week" | a metric split by Campaign |
| "Unusual spikes in conversion this week vs last" | a multi-step query with a baseline and comparison |
Tips for a better first proposal
- Name the time range ("last 24 hours", "this week").
- Name the fields you mean ("by campaign", "by source").
- Say the aggregation ("average", "count", "sum").
- Say the order if it matters ("highest first").
Refining a proposal
| Say | Azi does |
|---|---|
| "Group by day instead of hour" | swaps bin(Timestamp, 1h) to 1d |
| "Only the spring campaign" | adds where Campaign == "spring" |
| "Raise the threshold to 250" | edits the where value |
| "Sort newest first" | flips order by to desc |
When to edit the KQL yourself
For a small tweak - a number, a field name, a sort direction - it's often fastest to edit the query text directly. KQL Basics is all you need to read first.
You stay in the loop
Azi proposes; you decide. From any external AI over MCP it can test ideas (run_adhoc_warm_query) and
propose the saved query (manage_proposals), but accepting always happens in the portal - there is no
accept tool over MCP, by design. Your request, the proposal, your approval, and the time are all
recorded.
Next steps
- Read or tweak the KQL -> KQL Basics
- Save and reuse it -> Warm Queries
- The boundary, in one page -> You stay in the loop