> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Sharing content with schedules & alerts

> Keep your team informed by automating the delivery of dashboards and tiles.

Omni offers two ways to automate sharing content, which can be delivered to platforms like Slack or webhooks:

* **Schedules**, which deliver content at specified frequencies
* **Alerts**, which deliver content only if specific conditions are met

Embedded Omni instances [also support this functionality](/embed/customization/deliveries).

<Tip>
  Check out our [Alerts for operational workflows](https://omni.co/blog/using-alerts-for-operational-workflows-in-omni) blog post to see how some Omni customers use alerts!
</Tip>

## Destinations

<Note>
  **A delivery can only have one destination.** To deliver to multiple destinations, you'll need to create a delivery for each destination. For example, to deliver a dashboard to email and Slack, you'll need to create two deliveries.
</Note>

A **destination** is the channel or service Omni will send deliveries to. Omni currently supports the following delivery destinations:

| Destination   | How it works                                                                                                                                                                                                                                       |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Email         | Sends an email to one or more recipients. Recipients can be other users in your Omni organization or non-users, such as an external stakeholder. Supports customizing sender options, such as email domain. [Learn more](/share/deliveries/email). |
| Google Sheets | Delivers the contents of a single tile to an existing Google Sheets workbook. [Learn more](/share/deliveries/google-sheets).                                                                                                                       |
| Amazon S3     | Delivers content to an Amazon S3 bucket using cross-account IAM role assumption. AWS IAM setup is required prior to use. [Learn more](/share/deliveries/amazon-s3).                                                                                |
| SFTP          | Delivers content to an existing SFTP server. [Learn more](/share/deliveries/sftp).                                                                                                                                                                 |
| Slack         | Delivers content to individual Slack users, public channels, and private channels. Set up in Slack is required prior to use in Omni. [Learn more](/share/deliveries/slack).                                                                        |
| Webhook       | Sends a request to a webhook URL, such as a Zapier webhook. Recipients are determined by the webhook's configuration. [Learn more](/share/deliveries/webhooks).                                                                                    |

## Schedule delivery times

Schedules deliver content at specified times. Note that delivery times are approximate and will happen within 15 minutes of the specified time.

## Alert condition types

When you create an alert, you choose a small **Results to check** query. On each scheduled run, Omni runs that query and evaluates a condition against its results.

If the condition is met, the full delivery is sent. If not, the run is recorded as a successful "condition unmet" outcome and nothing is delivered.

You'll select one of the following condition types when configuring an alert:

| Condition type                   | Triggers the delivery when...                                         |
| -------------------------------- | --------------------------------------------------------------------- |
| **Results have changed**         | The **Results to check** query's results differ from the previous run |
| **Results have stayed the same** | The **Results to check** query's results match the previous run       |
| **No results are returned**      | No rows are returned                                                  |
| **Any results are returned**     | At least one row is returned                                          |

<Note>
  **First-run behavior for "Results have changed" and "Results have stayed the same":** On the very first run, there's no previous result to compare against, so the condition evaluates to false and no delivery is sent. The first run establishes a baseline; alerts can fire starting on the second run.
</Note>

## Delivery access

The ability to create deliveries can be controlled through instance and document-level settings:

* **Instance** - In **Settings > General > Content permissions**, Organization Admins can [select the default abilities for documents](/administration/content-permissions).
* **Document** - In a saved document that has a Dashboard, navigate from the Dashboard to **File > Document Settings** to [select the abilities other users can have when accessing the document](/share#controlling-document-interactivity).

**Note:** for external embed it's possible an environmental variable has been added to disable scheduling for embed users. If you have checked the Instance and Document level settings to ensure they allow Scheduled Deliveries and still do not see the option for embed users to access the Schedule settings panel please reach out to support

## Data and permissions in deliveries

All queries in a delivery run using the **schedule creator's** identity and user attributes at the time the delivery runs. Every recipient receives the same content — the data the creator can access, shaped by the creator's [user attributes](/administration/users/attributes) and any [access filters](/modeling/develop/data-access-control) applied to their account at that time.

Email deliveries support a **Personalize delivery with the recipient's user attributes** option. When enabled, each recipient receives content filtered by their own user attributes at the time the delivery runs, instead of the creator's. For setup details, see [email delivery personalization](/share/deliveries/email#email-settings).

## Delivery cache

Deliveries intentionally bypass any existing cached results to guarantee data freshness. Once a scheduled query completes, Omni creates or updates a cache entry from that run. Deliveries can be used to preemptively [warm the cache](/analyze-explore/performance/caching#cache-warming-preemptively-caching-data).
