Admin settings
Workspace configuration. Per-browser preferences (refresh intervals, etc.) remain on each dashboard card.
Card load queue
Stage out API calls on page load. Cards load in priority order, capped at the chosen concurrency. Saved to this browser only.
Background cache
Pre-compute and store report data so cached weeks/periods load instantly. Settings + entries live on the server.
Users
Members of the PCO Group that gates admin access to this dashboard.
Actions
One-shot admin actions. Buttons here fire immediately — no Save step.
Card access
Map PCO groups to dashboard cards so non-admins see only what they need.
Service account health
Bundles
Cards
Pastoral care row scoping
Weekly Check-ins
Reminder text (the message the ✈ button sends) and the weekly email report. Same config as the card's ⚙️ cog wheel.
{{eventName}}.Current Service
Pick which PCO Check-Ins events appear in the today-only breakdown, and (for Revival Kids only) narrow to specific service times. The refresh interval is a per-browser preference (saved to localStorage).
Services & Volunteers
Manage service-type ↔ Check-Ins event mappings, position-to-location bindings, and the /services.html polling cadence. Same config as the cog on /services.html — edits here and there go to the same place. The error log stays on /services.html (page-local diagnostic).
localStorage.servicesRefreshMs) — set here OR from the cog on /services.html, both write the same key.Pay Period Allocations
Source list, service-type picker (with hours-per-shift multipliers), and the bi-monthly email report. Same config as the card's ⚙️ cog wheel — edits here and there go to the same place.
Routine Scheduler
Recurring routines that promote workflow cards on a schedule.
The Routine Scheduler card has no cog wheel today. Routine CRUD happens inline on the card itself and on each workflow's detail page.
If we ever add a workspace-level setting (e.g. a default time zone or quiet-hours window), it lands here.
Scheduled Messages
Health-check view of every recurring messaging job (read-only on the dashboard).
The Scheduled Messages card is a read-only index — clicking each row jumps to the right surface (Weekly Check-ins / Pay Period / Headcount Reminders modals; or /scheduled-texts.html for user-defined jobs).
No settings to migrate. The underlying jobs' configuration lives on their respective card tabs.
Headcount Reminders
Defaults that apply to every reminder, plus the allow-list of PCO events the rule picker can choose from. The per-rule editor (event, phone, schedule, grace override) stays on the card body.
{{eventName}}, {{eventTimeName}}.Workflows
Shortcut to PCO workflows that need your attention.
The Workflows card has no cog wheel — the count is computed against your signed-in PCO identity and the dropdown picks a category for browsing.
No settings to migrate.
Thermostat Control
Manage which PCO rooms are eligible for thermostat scheduling, map new rooms to thermostat IPs, set the dashboard card's refresh interval, and view / clear scheduler alerts.
rooms.json on the venstar backend and triggers a sync. The room name is picked from PCO Calendar Resources (no free-text input — prevents typos that cause unmapped-room alerts).Ministry App Review
Auto-triage of Ministry App form submissions. Shadow mode runs the routing logic end-to-end but skips PCO writes; Live mode writes for real and emails the assigned pastor.
formAnswer and every entry in aliases.
Webhook + secret info
—Webhook secret: —
(set via
MINISTRY_APP_WEBHOOK_SECRET env var on Render)
ministry-app-triage-history.json. The card's activity feed re-populates on the next webhook delivery.Pastoral Care
Per-track config (workflow ID, note category, pastors list, select-field options) and the Pastoral Care Contact tagging fields. The Manager List ID (row-scoping) lives under Card access → Pastoral care row scoping — it's workspace-wide, not per-track.
/pastoralcare.html's inline search gets the boolean field stamped Yes; the rule-based list re-runs immediately so downstream segmentation picks them up. Leave either blank to disable that half of tagging without breaking person creation.
/pastoralcare.html and the dashboard's Pastoral Care card. Saved per-browser. The first track here is position 1 on both surfaces, and it also becomes the default selected track when the page loads without a ?track=… deep link. New tracks added later append to the end.
pastoral-care-tracks.json in DATA_DIR.
Room Companion
Per-room max volume limit, manual xAir reconnect, and the weekly reconnect schedule for the FOH rooms (21–24). Same backend as the dashboard's Room Companion card.
+10 dB is the Behringer X-Air ceiling. Changing it needs Save; it persists to companion-page3-config.json.
Reconnect disables then re-enables the room's xAir module in Companion (audio briefly drops while it re-establishes). It fires immediately — no Save step. Moved here off the dashboard card so it can't be hit by accident mid-service.
Dashboard