Daily work
Flow detail
One Flow's full picture: configuration, recent runs, throughput, and the Run-now button.
- Who uses this
- Every authenticated team member.
What it is
The detail screen for a single Flow. Tells you when it last ran, when it runs next, what it's configured to do, and how recent runs went.
What you can do here
- Read the configuration — Slate Query — In Progress URL, Slate Query — Positive Outcomes URL, Slate Source Format — Writeback URL, cadence, use case.
- Test Connection (sky-blue, Plug icon) — exercises every leg of the round-trip
with live credentials. Fails fast with
MISSING_IDENTIFIER_COLUMNif your In Progress Query lacks a person identifier — see the In Progress Query requirements doc for the fix. - Refresh fields (indigo, RefreshCw icon) — re-probes both queries and adds any newly-introduced columns to the data dictionary as pending. Use after you change a Slate query to see new fields without waiting for the next scheduled run.
- Run now (amber, Play icon) — pushes
next_run_atto the past so the scheduler picks the Flow up on its next sweep (≤15 min). Bypasses the cadence schedule for ad-hoc testing. Disabled when the Flow is paused. - Activate / Deactivate (green or red, Power icon) — flips the Flow on/off. A deactivated Flow is skipped by the scheduler. Saving a Flow as active when required fields are missing auto-deactivates it and shows a banner — see "Saved but deactivated" below.
- Pause schedule (amber, Pause icon, only visible while active) — one-click escape that disables the Flow so you can edit configuration safely or delete the Flow.
- Delete (red, Trash icon) — only available when the Flow is paused. Deletion is permanent (run history is preserved in the audit log).
- Resume Flow (emerald, RotateCw icon, only visible when auto-paused) — restarts a Flow that auto-paused after consecutive failures. Click after you've fixed the underlying config issue (usually a Slate-side query change).
- Open recent runs — each run has its own forensics page at
/flow-runs/[runId]. - Edit cadence — jump to
/flows/[id]/schedule.
Common workflows
Verify a brand-new Flow
- Open the Flow detail.
- Click Run now.
- Wait for the run to complete (usually under a minute for small batches).
- Open the run from the Recent runs list to inspect what was scored and what was written back.
Investigate a failure
- Open the failed run from Recent runs.
- Read the Errors section. Most failures point at a Slate-side config problem.
- Fix it in Slate, then click Run now to retry.
How Celia uses your two Slate queries
In Progress query — who gets scored
The In Progress query defines both the student population Celia analyzes and the signals it reasons against. Only columns your query returns can influence a score. Each run fetches this query fresh; scores always reflect the current snapshot.
Not every column your query returns reaches Celia. Before sending the batch, CeliaConnect
applies a field allowlist filter: a column must be either a standard Celia
signal key (engagement_score, application_status, etc.) or declared
in your Data Dictionary. Anything else is stripped. This keeps token costs predictable and
prevents undeclared fields from influencing analysis. See the In Progress Query requirements admin resource for the full allowlist rules.
Nine fields are required — the Flow cannot be activated unless all nine are present in your Data Dictionary (meaning they appear in your Slate query output and have been discovered via Refresh fields):
student_type— Student typeprogram_interest— Program of interestentry_term— Entry termcampus_visit_count— Campus visits attendedlast_activity_date— Last activity dateapplication_status— Application statushome_state— Home statedocs_missing— Missing checklist itemsresidency_country— Residency country
Both the In Progress query and the Positive Outcomes query must return these fields. This list applies to all Flows regardless of use case.
Positive Outcomes query — what Celia learns
The Positive Outcomes query returns students who have already converted (e.g., deposited, enrolled). CeliaConnect fetches it on every run alongside the In Progress query, then computes field-level statistics comparing converters against in-progress students — which values appear more often among converters, and by how much.
These statistics (called positive-cohort priors) are sent to Celia as part of
the system prompt so it knows, at this specific institution, which signal patterns are
historically associated with conversion. A prior might say: "students with
campus_visit_count >= 1 convert at 41 percentage points higher than those who haven't
visited." Celia uses this as context — not as an override — when signals are ambiguous.
Only fields declared in your Data Dictionary appear in the priors. Adding a new field to the dictionary and running the Flow starts surfacing that field's lift statistics to Celia immediately.
The run detail page shows a Baseline source badge indicating which surface(s) contributed positive examples: Both surfaces, In query only, Positives query only, or Empty (no converters found — Celia falls back to a neutral starting point).
Common gotchas
Run now is disabled
The Flow is paused or another run is in flight. Wait for the current run to complete or unpause.
Configuration is locked
A run is currently in flight. Wait for it to finish — config edits during a run can corrupt the Writeback target.
Baseline source shows "Empty"
Neither query returned any students with is_positive_outcome = 1. If your
Positive Outcomes query is configured, verify it includes a WHERE clause that flags
converters. If you're in your first cycle and no students have converted yet, this is expected —
scores will be anchored to fleet defaults until converters accumulate.
Scores seem to ignore my custom fields
The field is probably not in the Data Dictionary, so it's being stripped before Celia sees it. Go to Settings → Data dictionary, add an entry with the exact column name your Slate query uses, and run the Flow again.
"Saved but deactivated" banner
You saved the Flow with Active on, but one or more required fields are missing from your Data Dictionary. The system auto-deactivated the Flow and listed the missing fields in the banner. Add them to your Slate query, click Refresh fields to discover them, then click Activate again.
Run fails with "missing required fields"
A run was attempted but one or more of the nine required fields were absent at runtime. The
run detail page shows the error code missing_required_fields. Open this Flow's
settings, confirm your Slate query selects all nine required fields, click Refresh fields, then retry. Required fields: student_type, program_interest, entry_term, campus_visit_count, last_activity_date, application_status, home_state, docs_missing, residency_country.