# Deliver to many destinations in one run | DRE

> One workbook: local copy, SFTP, S3, GCS, Azure Blob and an email, in order, in a single run.

[← All use cases](https://getdre.com/#use-cases)

# Deliver to many destinations in one run

Build the file once and send it everywhere it needs to go. Destinations run in the order listed. A destination whose profile has no target for the current environment is skipped and logged, so a prod-only archive doesn’t break a dev run.

Recorded from a real run: the deliveries the run recorded, one per destination.

Recorded from a real run: the deliveries the run recorded, one per destination.

reports/deliver\_everywhere/deliver\_everywhere.yml

```yaml
queries: [fan_out_q]
output:
  format: xlsx
  destination:
    - {profile: local, path: "out/fan_out/regions-{{ run.date.yyyymmdd }}.xlsx"}
    - {profile: sftp_password, path: "/upload/fan_out/regions.xlsx"}
    - {profile: s3_keys, path: "s3://dre-demo/fan_out/regions.xlsx"}
    - {profile: gcs, path: "gs://dre-demo/fan_out/regions.xlsx"}
    - {profile: azure_cs, path: "az://dre-demo/fan_out/regions.xlsx"}
    - {profile: mail_local, to: finance@dre-demo.test, subject: "Regions {{ run.date.iso }}"}
```

terminal

```bash
dre run deliver_everywhere
```

### What to notice

-   Each destination has its own profile, so credentials never mix.
-   Email attaches the file itself, and most mail servers cap a message at 20–25 MB. DRE can’t email a link or create download links, so for big files deliver to storage and tell people where it is yourself.
-   The file is built once. A failed destination is reported, not hidden, and the run records each delivery.
-   Paths are templates: dates, variables and Sets can shape every destination.

### In the docs

-   [Several destinations →](https://getdre.com/docs/plugins/#several-destinations)
