A comms automation is a scheduled broadcast that fires repeatedly. Common patterns:
- "Send the daysheet to the band every morning at 6am"
- "Text hotel address + tomorrow's van call to everyone at 10pm each night"
- "Email the production crew Monday's schedule every Friday at noon"
Where automations live
/dashboard/comms/automations — list, create, pause/resume, delete.
Each automation row shows:
- Name + cron + timezone
- Audience + channels
- Body prompt (the natural-language description of what to send each run)
- Enabled / paused
- Next run time
- Last run's result (delivered count or error)
How they fire
A background scheduler ticks every 60 seconds. When an automation's next_run_at is in the past, it gets enqueued to run.
When a run executes:
- The agent composes the body from the body_prompt (using live tour data via find_today, search_knowledge, etc.)
- sendComm fans the result to the audience on the enabled channels
- The automation's
next_run_atis recomputed from the cron expression
The composition step uses the same brain that powers the dashboard chat — so when your body_prompt says "send tonight's hotel address and tomorrow's van call", the agent looks those up live, every run.
Body prompts
The body_prompt is NOT a literal template — it's a description for the agent to compose from. Examples:
- "Send today's daysheet link plus venue, hotel, and load-in summary."
- "Tonight's hotel name and address, plus tomorrow morning's van call time."
- "Tomorrow's flight time and gate from Sky Harbor."
Each run, the agent reads your live tour data and composes a fresh message. So one automation row can drive a different message every day without you maintaining a template.