Research

Gate-check usage data

Push back on what "active" means before pulling a single number, catch a suspicious zero before it ships as a finding, and never call an automation "running" without a schedule ID and a run record to prove it.

Copy as Markdown to paste into an AI, so it understands your context faster

The Verifier Gate (SOP §6): before a number or a status claim ships, it has to clear four checks. Definition gate: real people, not visitors (a raw unique-visitor count runs several times higher than genuine humans); "active" means someone who actually did something, not someone who passively received a message; paid means a real invoice, not a tracking pixel that might be broken; region means the account's own time zone, not a spoofable IP. Source gate: confirmed and inferred stay in separate columns. Something overheard in a DM is not consensus, and anything short of hard evidence gets labeled "unconfirmed" instead of quietly getting promoted to fact. Self-verification gate: a "0" or a wild swing gets proven to be real before it's reported as a finding. The query gets checked for a broken filter or an empty join before the number is trusted. Status gate: "the automation is running" requires a schedule ID and a run history to point to; "we're planning to build this" never gets written as "this is already running."

Copy this prompt to start your first task:

Set up a daily check on our growth metrics — lock down what "active" (someone who actually did something, not passive) really means, catch suspicious zeros or wild swings before they get reported, cross-check numbers against a second source, and post a trustworthy daily summary in #growth.
Live preview

What is this workflow?

Gate-checking usage data means hiring a Data Analyst teammate that acts as your growth data hub and verifier, not just someone who runs a query and pastes the result. It produces a daily growth digest — real DAU, core active, new signups, and paid — cross-checked against a second source before any of it gets written down, plus a channel-attribution report that lists every real source instead of just the two or three channels someone remembered to check. An anomaly scan stays silent by default and only speaks up when something has actually moved, and a "still-alive" heartbeat line runs even on a boring day, so a quiet automation reads as "nothing changed" instead of "silently stopped running."

How to use this workflow

Hire a Data Analyst: write the bio to match this role, not the generic template

Open AI Teammates in the sidebar, click Hire AI Teammate, and pick the Data Analyst template. The template's default bio describes connecting evidence to decisions in general. Replace it on the Profile step so the teammate starts out already knowing it's the verifier, not just the one who runs the query:

You're our growth data hub and verifier, not just a number-puller. Before any number ships, lock the definition (real people vs. visitors, active vs. passive), cross-check it against a second source, and never call an automation 'running' without a schedule ID and a run record. If a number looks off, prove the query isn't broken before reporting it as a finding.

Confirm the name and click Create teammate. They land in their own channel, which is where you'll send everything below. More on hiring →

Live preview

Connect the sources that answer different questions

The SOP is explicit that these are separate truth sources, not one dashboard: behavioral analytics answers "who visited and clicked," the business database answers "what did they actually do," and the billing ledger answers "what did they actually pay." Mixing them up is exactly how "visitors" gets reported as "users." Add PostHog, Amplitude, or MongoDB from the skills marketplace (all three are real, installable Helio skills, not a hypothetical connector), plus whatever query access your own warehouse or event table needs. The paid numbers in the daily digest need the billing side connected too — query access to wherever billing actually lives (the billing database, a warehouse table, or a regular Stripe export), because none of the behavioral tools above can answer "what did they actually pay." Skills & Plugins →

Live preview

The attribution table (which UTM or KOL link actually drove a signup) is a different kind of source again, and it usually lives in Notion. Connect that as a Tool under Integrations instead of a skill, since Notion is a native connector. Connect your tools →

List every real source, not the two or three someone remembers

The attribution table only means something if it's actually complete. A channel report that only checks the sources someone thought to look at just launders a partial picture into a confident-sounding number:

Which channel actually drove the most signups last month?
Live preview

Stay quiet by default, and prove a quiet day isn't a broken one

The point of a heartbeat isn't the alert, it's the absence of one. Nothing crossing a threshold should look identical from the outside to an automation that's still actually running:

Anything from the anomaly scan today?
Live preview

Turn it into a daily growth digest: require honesty when it fails

The digest posts to #growth, and a teammate can only post in channels it's a member of — open #growth and add this teammate before turning the schedule on. Then open Automations in the sidebar and click Create via Chat. On Home, choose this teammate and send the prefilled scheduled-task starter. When the interview asks what to schedule, use the recurring job below:

Every day at 8am, pull real DAU, core active, new signups, and visitor UV from behavioral analytics, and real new paid, repeat, and existing paid from billing. Compare each to yesterday and to the same day last week. Cross-check the headline number against a second source before you write it down. Post a conclusion-first daily digest to #growth, then, if a public dashboard is already set up, refresh it with de-identified aggregates only. If you can't pull the data or can't post, report the failure and why. Never report success you didn't actually have. On a day where nothing changed, still post one line with a timestamp, so a quiet day and a silently broken automation don't look the same from the outside.
Live preview

Querying your data sources and posting the digest run on their own: pulling from analytics, billing, and the attribution table is a read action, and posting to a channel this teammate already belongs to doesn't reach outside Helio or leave anything irreversible, so this flow doesn't wait on your approval. See Control for what does pause for sign-off.

If reports should stay aggregated and de-identified (no real names, emails, or individual sessions), put that in the teammate's instructions, and spot-check the output before sharing it more widely.

Tips for Better Results

TipDescription
Lock the definition before pulling a number"Active" means someone who did something, not someone who passively received a message, and paid means a real invoice, not a tracking pixel. Settle this before the query runs, not after.
Keep confirmed and inferred in separate columnsSomething overheard in a DM isn't consensus. Anything short of hard evidence gets labeled "unconfirmed" instead of quietly being promoted to fact.
Prove a suspicious zero before reporting itA "0" or a wild swing gets checked for a broken filter or an empty join before it ships as a finding, not after.
Require a schedule ID before calling something "running""The automation is running" needs a schedule ID and a run history to point to. "We're planning to build this" is a different claim and never gets written as if it's already live.

Common Questions

Ready to try this with your own AI teammate?
Start free with 1,000 credits — no credit card required.
Try Helio →

On this page