Scheduled delivery
Send Prisms and Mosaics automatically on a recurring schedule by email, Slack, or Teams โ and send a test before you commit.
When to use it โ When people need a report on a rhythm (a daily snapshot, a Monday-morning sales summary, a month-end recap) without opening Celiq to pull it.
Where to find it โ A single Prism's schedule lives on the Prism detail panel (the Schedule delivery action). Workspace-wide Mosaic schedules are managed at Lumen โ Schedules (
/lumen/schedules).Who can use it โ Weaver and Luminary. Listing schedules is open to any signed-in user; creating, toggling, and deleting workspace Mosaic schedules requires Weaver and above.
Scheduled delivery turns a report you would otherwise open and export by hand into something that arrives on its own. You pick how often it runs, what time, who receives it, and the file format. Before it goes live, you can fire a one-off test so you know the recipients and format are right.
There are two scopes. A Prism schedule is attached to one Prism โ each Prism has at most one schedule, and editing it overwrites the previous one. Mosaic schedules are workspace-level, cron-based, and managed centrally in Lumen, where multiple schedules can target the same Mosaic.
Overview
A schedule answers four questions: how often, at what time, to whom, and in what format.
For a Prism, you configure the schedule from the Prism detail panel. The fields map directly to what Celiq stores:
| Field | Options | Default |
|---|---|---|
| Frequency | daily, weekly, monthly | weekly |
| Time | a time of day (24-hour) | 09:00 |
| Channel | email, slack, teams | email |
| Destination | email address, Slack channel, or webhook | โ |
| Format | pdf, csv, excel | pdf |
Saving a Prism schedule upserts it: if the Prism already has a schedule, your new values replace it and the schedule is reactivated. A Prism never accumulates more than one schedule.
For a Mosaic, schedules are listed, toggled on and off, and deleted at Lumen โ Schedules. These are cron-based โ the recurrence you pick in the form is translated into a cron expression โ so they support finer rhythms (hourly, every N minutes, specific days, specific months) in addition to daily/weekly/monthly. Each row shows its recurrence, format, enabled state, and when it last ran.
When to use it
- A stakeholder wants the same report at the same time, repeatedly, and should not have to log in to get it.
- You want a Prism's numbers to land in an inbox or a Slack channel first thing in the morning.
- A Mosaic should be distributed to a recurring audience on a fixed cadence.
- You want to confirm a report renders and reaches the right people before turning the recurring job on โ use the test send.
Use a Prism schedule for a single chart or report. Use a Mosaic schedule when the deliverable is a whole dashboard, or when you need cron-level control over the cadence.
Concepts
- Prism schedule โ a single recurring delivery bound to one Prism. Stored as one record per Prism; saving again overwrites it.
- Mosaic schedule โ a workspace-level, cron-based delivery for a Mosaic. Listed and managed at Lumen โ Schedules. A Mosaic can have several.
- Frequency / recurrence โ how often the report is sent. Prism schedules use
daily,weekly, ormonthly; Mosaic schedules additionally support hourly, every-N-minutes, specific days, and specific months via cron. - Channel โ where it is delivered:
email,slack, orteams. - Destination / recipients โ for email, a comma-separated list of addresses; for Slack, the channel(s).
- Format โ the attachment type:
pdf,csv, orexcelfor Prisms (pdf,csv,pngin the unified delivery modal). - Test send โ a one-off delivery that emails the schedule's recipients immediately so you can verify the setup before relying on the recurring run.
- Enabled / active โ whether the schedule actually runs. A paused schedule keeps its configuration but does not send.
Getting started
Prerequisites:
- You have a saved Prism (for a Prism schedule) or a Mosaic (for a Mosaic schedule).
- You are a Weaver or Luminary to create or manage schedules.
- For Slack delivery, your workspace's Slack integration is connected and the target channel exists.
To open a Prism schedule, go to the Prism, open its detail panel, and choose Schedule delivery. To manage workspace Mosaic schedules, open Lumen โ Schedules at /lumen/schedules.
Step-by-step
Open the schedule editor
Open the Prism and click Schedule delivery on its detail panel. The Schedule delivery dialog opens with the fields Frequency, Time, Channel, Destination, and Format.
Choose a frequency and time
Pick Frequency (Daily, Weekly, or Monthly) and set the Time of day. If you leave them untouched, a new schedule defaults to weekly at 09:00 UTC.
Pick a channel and destination
Set Channel to Email, Slack, or Teams. In Destination, enter the email address, Slack channel, or webhook. For email, separate multiple addresses with commas โ the test send splits this field on commas to find recipients.
Choose a format
Select Format โ PDF, CSV, or Excel. PDF is the default.
Save the schedule
Click Save schedule. Celiq upserts the schedule for this Prism and marks it active. If a schedule already existed, your values replace it.
Send a test (recommended)
After saving, trigger a test delivery. Celiq emails the recipients listed in the schedule's destination with a clearly marked test message, so you can confirm the address list and the chosen frequency/format before the recurring run takes over.
For a Mosaic schedule, open Lumen โ Schedules, review the existing rows, and use the row controls to toggle a schedule on or off or to delete it. Each row shows the cron-derived recurrence (for example "Every Monday at 09:00 UTC"), the format, and whether it is active.
Examples
A weekly Monday-morning PDF of a sales Prism, sent to two stakeholders by email:
{
"frequency": "weekly",
"time_of_day": "09:00",
"timezone": "UTC",
"channel": "email",
"destination": "ceo@company.com, head-of-sales@company.com",
"format": "pdf"
}Save this on the Prism, then send a test. The test email arrives with a Test delivery badge, the Prism's name, and the configured frequency and format, plus a link back into Celiq โ confirming the recipient list before the schedule runs for real.
A daily CSV dropped into a Slack channel instead:
{
"frequency": "daily",
"time_of_day": "07:30",
"channel": "slack",
"destination": "#daily-metrics",
"format": "csv"
}Best practices
- Always send a test first. It is the fastest way to catch a typo'd address, an empty recipient list, or a wrong format before anyone relies on the report.
- Keep recipient lists current. For email, the destination is a plain comma-separated list โ review it when people join or leave the audience.
- Match cadence to how the data updates. A daily send of a monthly metric just creates noise; align the frequency with how often the underlying numbers change.
- Pause instead of deleting. For Mosaic schedules, toggle a schedule off when you only need to stop it temporarily โ you keep the configuration for later.
- Use the right scope. One chart or report โ Prism schedule. A whole dashboard or a cron-level cadence โ Mosaic schedule at Lumen โ Schedules.
Tips
Each Prism holds a single schedule. Re-saving from the Prism detail panel overwrites the existing one and reactivates it โ there is no separate "edit" versus "create". If you need several different cadences for the same content, model it as a Mosaic and add multiple Mosaic schedules.
Common mistakes
- Sending a test before saving. The test reads the schedule that is stored for the Prism. Save the schedule first, then send the test โ testing an unsaved form has nothing to deliver.
- Leaving the destination empty. A schedule with no recipients cannot be tested or delivered. The test send rejects an empty recipient list.
- Using a deprecated endpoint. The old
scheduledDeliveryroutes are gone (they return 410). Use the Prism schedule on the Prism detail panel, or Mosaic schedules at Lumen โ Schedules. - Expecting per-recipient timezones. A Prism schedule's time is interpreted in its configured timezone (UTC by default), not each recipient's local time.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Test returns "No schedule configured for this prism" (404) | No schedule has been saved for this Prism yet | Save the schedule from the Prism detail panel, then send the test |
| Test returns "No recipients configured in the schedule" (400) | The destination field is empty, or contains no valid addresses | Add at least one email address to Destination and save before testing |
| Endpoint returns 410 Gone with "This endpoint is deprecated" | You called the old scheduledDelivery route | Use the Prism schedule on the Prism detail panel (or Mosaic schedules at Lumen โ Schedules) |
| Can't toggle or delete a Mosaic schedule | Toggling and deleting Mosaic schedules require Weaver and above | Ask a Weaver or Luminary to make the change, or have your role updated |
| Slack delivery never arrives | The workspace Slack integration is not connected, or the channel name is wrong | Connect Slack and confirm the destination channel โ see Slack |
| Save appears to do nothing | A network or server error while saving | Retry; the Prism panel shows "Failed to save schedule" on error and "Schedule saved" on success |