The Scenario
It's a Thursday afternoon and you've inherited a cohort-analysis workbook from a growth analyst who left the company six weeks ago.
The workbook has a tab labeled "Segment Filters" with a note at the top: "Update these dropdowns before each quarterly review." The dropdowns reference plan types and referral sources from Keen IO — but the lists haven't been updated since Q3 and you're about to walk into the Q1 review for the following year.
You need the current unique values for "plan_type" and "referral_source" from the "user_signup" event collection in Keen IO. The quarterly review is tomorrow morning.
The bad version:
- Write a Keen IO funnel or extraction query for "user_signup" over the last 90 days and try to find the unique values endpoint in the API docs.
- Get back a JSON array of thousands of events, realize unique values aren't in this response, and look for a different query type.
- Copy the values you can find manually, paste them into the sheet, and hope you haven't missed any plan types that were introduced in the last quarter.
The dropdown lists drive the cohort filter logic that the VP of Growth is going to interact with during the review. Walking in with outdated filters isn't a minor oversight — it's the kind of thing that derails a 45-minute meeting in the first five minutes.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. Connect it to Keen IO and ask it to run a unique-value query the same way you'd ask a question — it handles the API call type selection, the response parsing, and the cell writing.
Open the Segment Filters tab and try this:
Query Keen IO for all unique values of the "plan_type" property in the "user_signup" collection over the last 90 days and paste them as a list starting in cell A2. Then do the same for "referral_source" starting in cell B2.
What You Get
- Column A starting at A2: each unique "plan_type" value on its own row (e.g., "starter", "growth", "enterprise", "agency")
- Column B starting at B2: each unique "referral_source" value (e.g., "organic", "paid-search", "partner-referral", "direct")
- Values reflect the last 90 days of actual event data — not a static list from Q3
- If a column already has data-validation rules referencing that range, they update automatically when the values land
What If the Data Is Not Quite Ready
You need values from the last 30 days only, not 90
Query Keen IO for all unique values of "referral_source" in the "user_signup" collection filtered to the last 30 days and paste them as a list in column B starting at B2.
You need unique values from two different collections combined
Query Keen IO for all unique values of "plan_type" in the "user_signup" collection over the last 90 days. Also query "plan_type" in the "subscription_upgraded" collection over the same period. Combine the two lists, deduplicate, sort alphabetically, and write the result to column A starting at A2.
The property name changed — you're not sure which collection has the right field name
List all properties in my Keen IO "user_signup" collection schema and write them to column D starting at D2, so I can find which property name holds the plan tier data.
Kill chain: pull unique values, validate against existing list, flag additions and removals
Query Keen IO for all unique values of "plan_type" in the "user_signup" collection over the last 90 days. Compare the results against the current values in column A (A2:A20). Write new values not in the current list to column C starting at C2 labeled "New". Write values in the current list that no longer appear in Keen IO to column D starting at D2 labeled "Removed". Leave column A unchanged.
Asking for the comparison and the annotation in the same prompt means you get an actionable diff, not just a raw list you have to diff yourself.
Try It
Get the 7-day free trial of SheetXAI and open your cohort-analysis workbook, then ask it to refresh your Keen IO segment filter lists before the next review cycle. For related tasks, see the schema registry spoke or the full Keen IO overview.
