> ## 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.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.omni.co/feedback

```json
{
  "path": "/share/deliveries/index",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# 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).

<Check>
  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!
</Check>

## 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).                                                                                    |

## 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

## 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).

## Getting started

Ready to get started? Refer to the [Creating deliveries guide](/share/deliveries/setup) to learn how.
