alicehasnoidea/docs
WebsiteLog inGet Started Free
Guides

Scheduled Reports

How to set up automated daily, weekly, or custom Slack reports. Schedule any alice skill to post metrics to a channel on a cron schedule.

How Scheduled Reports Work

A scheduled report is a skill with a cron trigger attached. At the configured time, alice automatically runs the skill's query, formats the result, and posts it to the designated Slack channel. No human interaction required.

The flow works like this:

  1. Cron fires at the scheduled time
  2. Alice executes the skill's query using default parameter values
  3. Results are formatted according to the skill's format configuration
  4. The formatted message is posted to the configured Slack channel
  5. The run is logged in the skill run history with full audit trail

Scheduled reports use the same query and format settings as manual /alice commands. If the skill works when you run it manually, it will work on a schedule.

Setting Up a Schedule

Schedules are configured in the Triggers step of the skill builder. Every skill has a Command trigger (always active) and can optionally enable a Schedule trigger, a Monitor trigger, or both.

Triggers step showing Command (always on), Schedule (enabled), and Monitor trigger options
Enable the Schedule trigger to add cron-based automation to any skill.

Step 1: Enable the Schedule Trigger

Click the Schedule card in the Triggers step. When enabled, the configuration panel expands below.

Step 2: Choose a Schedule

Alice offers five quick presets, plus a custom cron expression field:

PresetCron ExpressionWhen It Runs
Every morning (9am weekdays)0 9 * * 1-5Monday through Friday at 9:00 AM
Every hour0 * * * *On the hour, every hour
Every Monday 9am0 9 * * 1Monday mornings only
Daily at midnight0 0 * * *Every day at 12:00 AM
Every 15 minutes*/15 * * * *Four times per hour

Click a preset to apply it, or type a custom cron expression directly. The cron expression follows standard 5-field format:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, where 0 and 7 are Sunday)
│ │ │ │ │
* * * * *
Schedule configuration showing quick presets, custom cron input, and timezone selector
Choose a preset or enter a custom cron expression. The cron field updates in real-time as you select presets.

Step 3: Set the Timezone

The timezone determines when the cron fires. It defaults to America/New_York but you can change it to match your team's location. Common timezones:

TimezoneUTC OffsetRegion
America/New_YorkUTC-5US East
America/ChicagoUTC-6US Central
America/DenverUTC-7US Mountain
America/Los_AngelesUTC-8US West
Europe/LondonUTC+0UK
Europe/ParisUTC+1Central Europe
Europe/BerlinUTC+1Central Europe
Asia/TokyoUTC+9Japan
Asia/ShanghaiUTC+8China
Asia/KolkataUTC+5:30India
Australia/SydneyUTC+11Australia East
Pacific/AucklandUTC+13New Zealand
UTCUTC+0Universal

All times are adjusted for daylight saving time automatically.

Step 4: Select a Slack Channel

Choose the Slack channel where results will be posted. The channel selector shows all channels the alice bot has access to, including private channels the bot has been invited to.

Channel selector dropdown showing public and private Slack channels
Pick the channel. Private channels appear with a lock icon.

If you do not see your channel in the list, make sure the alice bot has been invited to it. In Slack, go to the channel and type /invite @alice.

The channel selection is required for scheduled reports. Without it, alice has nowhere to post the results.

Common Schedule Patterns

Daily Standup Metrics

Post key business metrics to #ops every weekday morning before standup.

  • Schedule: Every morning (9am weekdays) -- 0 9 * * 1-5
  • Skill type: Summary output with MRR, active users, churn rate, and new signups
  • Channel: #ops or #daily-standup

This is the most popular schedule pattern. The team opens Slack, sees the numbers, and walks into standup informed.

Weekly Revenue Report

Post a detailed revenue breakdown every Monday morning for leadership review.

  • Schedule: Every Monday 9am -- 0 9 * * 1
  • Skill type: Summary with revenue metrics or Table with subscription details
  • Channel: #revenue or #leadership

End-of-Day Digest

Summarize the day's activity after business hours.

  • Schedule: Custom cron 0 18 * * 1-5 (6pm weekdays)
  • Skill type: Summary with daily totals (new customers, revenue, failed payments)
  • Channel: #ops

Hourly Payment Health Check

Monitor payment success rates throughout the day.

  • Schedule: Every hour -- 0 * * * *
  • Skill type: Summary with payment success rate, failed count, and past-due count
  • Channel: #payment-alerts

For lower-frequency monitoring, consider a Monitor trigger instead, which only notifies when a condition is met.

Monthly Business Review

Post comprehensive metrics on the first of each month.

  • Schedule: Custom cron 0 9 1 * * (9am on the 1st)
  • Skill type: Summary with MRR, ARR, churn rate, net revenue retention, new customers
  • Channel: #leadership or #monthly-review

Custom Cron Examples

Use CaseCronDescription
Twice a day0 9,17 * * 1-59am and 5pm weekdays
Every 30 minutes*/30 * * * *On the hour and half-hour
Quarterly0 9 1 1,4,7,10 *9am on Jan 1, Apr 1, Jul 1, Oct 1
Weekends only0 10 * * 0,610am Saturday and Sunday
First Monday of month0 9 1-7 * 19am on the first Monday

Parameters in Scheduled Reports

When a skill runs on a schedule, there is no user to provide parameter values. Alice uses the default value for every parameter.

This means:

  • Every required parameter must have a default value, or the scheduled run will fail
  • The defaults you set in the builder are the values used every time the schedule fires
  • If you want to change what the scheduled report queries, update the parameter defaults in the skill editor

For example, if your skill has a days parameter that defaults to 30, the scheduled report always queries the last 30 days. To change it to 7 days, edit the skill and update the default.

Managing Scheduled Reports

Viewing All Schedules

Navigate to Dashboard > Skills and filter by the "Scheduled" trigger type to see all skills with active cron triggers. Each skill shows its schedule expression and next run time.

Skills list filtered by scheduled trigger, showing cron expression and next run time
Filter the skills list to see all active scheduled reports.

Toggling On and Off

You can temporarily disable a schedule without deleting the skill or its configuration. Open the skill, go to the Triggers step, and click the Schedule card to toggle it off. The cron configuration is preserved, so you can re-enable it later.

This is useful for:

  • Pausing during holidays or company events
  • Temporarily muting a noisy schedule while debugging
  • Testing a schedule before going live

Editing a Schedule

Open the skill editor, navigate to the Triggers step, and modify the cron expression, timezone, or channel. Changes take effect on the next scheduled run.

Run History

Every scheduled execution is logged in the skill's run history. Navigate to the skill detail page to see:

  • When each run executed
  • Whether it succeeded or failed
  • The result data that was posted
  • Duration of the execution

Failed runs show error details. Common failure reasons:

  • Required parameter without a default value
  • Source connection expired or revoked
  • Slack channel deleted or bot removed
  • Query syntax error

Plan Limits

Free
PlanScheduled ReportsMinimum Frequency
Free1 scheduleWeekly only
ProUnlimitedAny frequency
BusinessUnlimitedAny frequency

Free plans are limited to one scheduled report, and it must run on a weekly cadence (once per week). This is enough to get a taste of automated reporting. Upgrade to Pro for unlimited schedules at any frequency.

Pro

Pro and Business plans can attach cron schedules to any number of skills with any cron expression, including sub-hourly frequencies like every 15 minutes.

Troubleshooting

Report not posting: Check that the alice bot is a member of the target channel. Run /invite @alice in the channel. Also verify the channel ID in the trigger configuration is correct.

Wrong timezone: If the report posts at the wrong time, check the timezone setting in the Triggers step. The default is America/New_York, which may not match your team.

Empty results: If the query returns no data, alice still posts a message indicating zero results. If you prefer silence when there is no data, consider using a Monitor instead, which only notifies when a condition is met.

Failed runs: Check the run history on the skill detail page. Common causes are expired source credentials (reconnect in Sources) or a query referencing a table that was renamed.

Duplicate messages: If a skill has both a cron trigger and a separate scheduled skill for the same data, you may get duplicate posts. Consolidate into one skill with one cron trigger.

  • Creating a Skill -- build a skill to schedule
  • Monitors -- alert when conditions are met instead of posting on a schedule
  • Formatting Output -- choose the best format for automated posts
  • Parameters -- set defaults for scheduled execution
  • Actions -- action buttons on scheduled report messages
  • Slash Commands -- run the same skill manually between scheduled posts
  • Plans -- compare schedule limits across tiers

Was this page helpful?

On this page