> AI agents: this is one page from Mammoth Analytics documentation. The index of all pages as Markdown is https://mammoth.io/docs/llms.txt. Append `.md` to any docs URL, or send `Accept: text/markdown`, to get Markdown.

# Export to Google Sheets, email, SFTP, Tableau or an API

> Send a View after every run to SFTP, SharePoint, OneDrive, Azure Blob, Google Sheets, email, Tableau Server/Cloud, a REST API or any API via the AI Agent.

Mammoth can deliver a View after every pipeline run to a file store (SFTP, SharePoint, Azure Blob Storage, OneDrive), an app (Google Sheets, Email, Tableau Server/Cloud) or an API. Click **Export** in the View toolbar and pick a card on the **External Destinations** tab. Google Sheets and Email are on every plan; file exports need a paid plan, Tableau and REST API need Team or Pro, and **Somewhere else…** is available on Enterprise plans (see [Export destinations by plan](https://mammoth.io/docs/learn/share-and-export/send-to-destinations/#export-destinations-by-plan)).

What every export shares (when it runs, send only new rows, run history, Auto-sync) is on [Export data after every pipeline run](https://mammoth.io/docs/learn/share-and-export/send-to-destinations/).

## Supported file, app and API destinations

| Destination | Credential type | Typical use |
| --- | --- | --- |
| SFTP | Port 22 | Scheduled file delivery to external servers |
| SharePoint | (OAuth app) | Microsoft 365 file integration |
| Azure Blob Storage | (Azure AD app) | Cloud file storage |
| OneDrive | (Azure AD app) | Microsoft 365 file integration |
| Tableau Server/Cloud | (Personal Access Token) | Publish directly as a Tableau data source |
| REST API | (per endpoint) | Push data to any HTTP endpoint |
| Google Sheets | (Google account) | Shared spreadsheets |
| Email | (workspace members) | A file in people's inbox after each update |

File stores, Tableau and Elasticsearch are replaced on every run, so they can't send only new rows. Email and REST API can; Google Sheets can with **Append**.

## Export a file to an SFTP server

| Field | What to enter |
| --- | --- |
| **Host** | SFTP server hostname |
| **Port** | Default 22 |
| **Username** | SFTP login |
| **Password** | SFTP password |
| **Directory** (optional) | Destination folder on the server; defaults to the home directory |
| **File Name** | Name for the delivered file; auto-filled from the Dataset and View names |
| **File type** | The format of the delivered file (see [Choose the file type](#choose-the-file-type-for-a-file-destination)) |
| **Randomize file name** | Appends a random suffix to the filename to avoid overwriting previous deliveries |

The SFTP form has no hidden-columns option and no **Validate Connection** button; hidden columns are not delivered. SFTP exports remember your connection details in a **Connection** dropdown, the same way as database exports (see [Reuse a saved database connection](https://mammoth.io/docs/learn/share-and-export/send-to-a-database/#reuse-a-saved-database-connection)).

![External SFTP export form with Host, Port, Username, Password, Directory, File Name and a Randomize file name checkbox](https://mammoth.io/docs/images/20260422_170822_SFTPformshowingHostPortUsernamePasswordDirectory1.webp)

## Export a file to SharePoint

| Field | What to enter |
| --- | --- |
| **Tenant ID** | Your Microsoft Azure tenant ID |
| **Client ID** | The app registration client ID |
| **Client Secret** | The app registration client secret |
| **Site URL** | Your SharePoint site URL (for example `contoso.sharepoint.com/sites/MySite`) |
| **Document Library** (optional) | The document library to place the file in |
| **Folder Path** (optional) | Subfolder path (for example `/General/Folder`) |
| **File Name** | Name for the delivered file |

**Include hidden columns**: this checkbox always appears on the SharePoint form, whether or not the View has any hidden columns.

![External SharePoint export form with Tenant ID, Client ID, Client Secret, Site URL, Document Library and Folder Path fields](https://mammoth.io/docs/images/20260422_170910_SharePointformshowingTenantID1.webp)

## Export a file to Azure Blob Storage

Azure Blob Storage authenticates via an Azure AD app registration, the same way as SharePoint and OneDrive.

| Field | What to enter |
| --- | --- |
| **Tenant ID** | Your Microsoft Azure tenant ID |
| **Client ID** | The app registration client ID |
| **Client Secret** | The app registration client secret |
| **Storage Account Name** | For example `mystorageaccount` |
| **Container Name** | For example `my-container` |
| **Folder Path** (optional) | For example `exports/data`; defaults to the root of the container |
| **File Name** | Name for the delivered file |

**Include hidden columns**: this checkbox always appears on the form, whether or not the View has any hidden columns.

## Export a file to OneDrive

OneDrive authenticates via an Azure AD app registration, the same way as SharePoint and Azure Blob Storage.

| Field | What to enter |
| --- | --- |
| **Tenant ID** | Your Microsoft Azure tenant ID |
| **Client ID** | The app registration client ID |
| **Client Secret** | The app registration client secret |
| **User ID** | The OneDrive account to deliver to, for example `user@contoso.com` |
| **Folder Path** (optional) | For example `/Documents/Exports`; defaults to the root of the user's OneDrive |
| **File Name** | Name for the delivered file |

**Include hidden columns**: this checkbox always appears on the form, whether or not the View has any hidden columns.

## Choose the file type for a file destination

SFTP, SharePoint, Azure Blob Storage and OneDrive each have a **File type** dropdown with **CSV** (the default), **JSON**, **NDJSON**, **XML** and **YAML**. The delivered file takes that extension, for example `Sales_Q3.ndjson`.

Excel and Parquet aren't offered for file destinations. To send Excel, use an [Email](#email-a-view-as-a-file-after-every-update) export or a [download](https://mammoth.io/docs/learn/share-and-export/download/).

## Export to Google Sheets

1. Click **Export** → **Google Sheets**. The form is titled **Export to Google Sheets**.
2. Under **Google account**, pick an account or click **Connect Google account**. Mammoth can only open spreadsheets it creates or that you pick here.
3. Choose **New spreadsheet** and enter a **Spreadsheet name**, or choose **Existing spreadsheet** and click **Pick a spreadsheet**.
4. Enter the **Tab name** (up to 100 characters).
5. Choose the **Write mode** (below).
6. Click **Apply**.

| Write mode | What it does |
| --- | --- |
| **Replace** | Clears the tab, then writes the header and all rows |
| **Append** | Adds the rows under the data already in the tab. The header is written only into an empty tab |

A spreadsheet holds at most 10,000,000 cells and 50,000 characters per cell. Larger Views fail: export to CSV or use a [Live link](https://mammoth.io/docs/learn/share-and-export/live-links/) instead.

## Email a View as a file after every update

The **Email** export sends the View as a file to people in your workspace each time the export runs.

1. Click **Export** → **Email**.
2. In **To**, add people from this workspace, up to 50. Only workspace members can get it, and each person gets their own email.
3. Enter a **Subject** and, optionally, a **Message**.
4. Pick the **File** type. CSV is the default.
5. Optionally tick **Don't send when there are no rows**, and use **Send a test to me** to check it.
6. Click **Apply**.

By default the email sends whenever the data updates. To limit how often it sends, or to put it on a schedule, see [Limit how often an email export sends](https://mammoth.io/docs/learn/share-and-export/send-to-destinations/#limit-how-often-an-email-export-sends). For a one-off email, use **Email** in the **Save a copy** popover instead (see [Download a View](https://mammoth.io/docs/learn/share-and-export/download/#email-a-copy-to-workspace-members)).

### Large files and the Excel row limit

Files are attached up to 10 MB. A bigger file is zipped, or sent as a download link only that person can open, for 7 days. Excel and Parquet files aren't zipped, so a big one goes as a link.

Excel holds up to 50,000 rows. On a bigger View the form says "Excel holds up to 50,000 rows, and this view has more."

### Put the View name, row count and date in the subject

Under **Subject**, **Fill in:** has three buttons that insert a fill-in Mammoth replaces when it sends. The buttons show the fill-in itself, in curly brackets:

| Button | Replaced with |
| --- | --- |
| `{view}` | The View's name |
| `{rows}` | The number of rows sent |
| `{date}` | The send date, such as 4 Nov 2026 |

The default subject uses all three, so an email reads like "Overdue invoices · 1,204 rows · 4 Nov 2026". The subject holds up to 200 characters and the message up to 2,000.

### Preview and test the email export

The **Preview** box shows the subject as it will read today, who it comes from (your name, via Mammoth, to each person on the list), your message and the file. The email itself also shows the first 5 rows (up to 6 columns).

Click **Send a test to me** to get a copy in your own inbox ("Test sent to" your address). If it fails: "The test email couldn't be sent. Try again."

If you type an address that isn't a workspace member, the form warns that they can't get it. More than 50 people gives "An email export can go to at most 50 people."

### People who stopped these emails

Every email has a link to stop getting it. After someone uses it, the form lists them under **To**, for example "Sam stopped these emails on 3 Nov 2026". Click **Add back** to put a workspace member back on the list. The person who stopped them sees "You won't get these emails any more. Whoever set them up can add you back."

### Download links for large files

When the file is too big to attach, each person gets their own link. Opening it while signed in shows **Your file is downloading** and starts the download. If it doesn't start, use the download button.

The page says until when the link works (7 days from sending). After that it shows **This link has expired**. A link that isn't valid shows **This file can't be opened** ("This link isn't valid.").

## Publish a View to Tableau Server or Tableau Cloud

The Tableau export publishes the View's output directly as a Tableau data source, using a Personal Access Token rather than a username and password.

| Field | What to enter |
| --- | --- |
| **Server URL** | For example `https://prod-apnortheast-a.online.tableau.com` |
| **Site Name** (optional) | Leave empty for the default site |
| **Token Name** | The Personal Access Token's name |
| **Token Secret** | The Personal Access Token's secret value |
| **Project Name** | The Tableau project to publish into (defaults to `default`) |
| **Datasource Name** | Auto-filled from the Dataset and View names |

This form has no "Include hidden columns" checkbox: hidden columns are never included in a Tableau publish.

## Push data to a REST API

The **REST API Export** pushes each pipeline run's data to any HTTP endpoint you specify, as a POST, PUT, or PATCH request.

| Field | What to enter |
| --- | --- |
| **Base URL** | For example `https://api.example.com/v1` |
| **Authentication** | **None**; **API Key** (Key Name, the header name such as `X-API-Key`, and Key Value); **Bearer** (Bearer Token); **Basic** (Username and Password); or **OAuth 2.0** (Client ID, Client Secret, Authorization URL and Token URL) |
| **Endpoint path** | For example `/v1/records` |
| **HTTP method** | POST, PUT, or PATCH |
| **Wrap path** (optional) | Wraps the row data under this key in the request body; pre-filled with `records` |
| **Batch size** | Rows sent per request (default: 1,000, maximum 10,000) |
| **Advanced Settings** | **Timeout (sec)** (default: 30) and **Verify SSL Certificate** (on by default; turn off only for endpoints with self-signed certificates) |

How Mammoth sends:

- It refuses to send to a URL that resolves to a private or reserved IP address, so the endpoint must be publicly reachable.
- If the endpoint answers with a 5xx error, Mammoth retries up to 3 times. For a 429 (rate limited) response it retries up to 5 times.
- OAuth 2.0 uses the authorization-code flow.

### Fill the REST API form from the API's docs

The top of the REST API Export form has a **Fill from API docs** box. Mammoth reads an API's documentation and fills the form for you. It never fills in keys or passwords: you add those.

1. Paste a link in **Link to the API docs**, such as `https://developer.example.com/api`.
2. Optionally describe what you're sending in **What are you sending? (optional)**, for example "orders, one per row".
3. Click **Fill the form**. Reading the docs can take a minute.
4. Check the result. It says how many fields it filled and from which site, lists the fields, what **You'll need** (such as a key) and anything to **Check before you apply**, and links the pages it **Read:**.
5. Add your credentials, then click **Apply**. Click **Undo** to put the form back as it was.

If the docs can't be read, you see "Couldn't read those docs. Check the link, or fill the form in." If the API needs something a fixed REST export can't do (for example, something different per record), Mammoth says "The REST API export can't send to this API:" with the reason. You can then click **Fill the form anyway** or **Try another link**. On Enterprise plans you can also click **Set it up with Somewhere else…** to hand it to the AI Agent (below).

## Send data anywhere with the AI Agent (Somewhere else…)

Available on Enterprise plans. The last card on the **External Destinations** tab, **Somewhere else…** ("Describe it, and the agent sets it up"), opens the AI Agent in the export panel under the title **Send this view anywhere**. Use it for an API Mammoth has no built-in destination for.

1. Describe where the View should go, or paste a link to the API's docs. Suggestions such as "Post rows to a webhook as NDJSON" help you start.
2. The Agent reads the docs and shows exactly what it will send.
3. Approve it. It saves an export step on the View: "Saved as an export step on this view. It runs now and whenever the view updates."

The task card shows the destination's name, format and URL, and the last run, for example "Last run: 12,480 delivered" or "Stopped at batch 2 of 25: 500 delivered, 20 rejected, 480 not sent". To fix or change a saved one, open it and describe the change under **Fix or change this export**.

The card hides while the workspace has agents turned off, or has blocked sending data out of Mammoth. See [AI Agent access](https://mammoth.io/docs/learn/workspace/ai-agent-access/).

### Limit which hosts custom destinations can reach

A workspace can limit where **Somewhere else…** custom destinations send its data. Other export types aren't affected.

Workspace Owners can change it, or anyone whose workspace role includes the **Modify name, logo, etc.** permission. The section is hidden for everyone else.

1. Open **Settings**, then **Workspace**.
2. In the **Export destinations** section, turn on **Only allow approved hosts**.
3. Type a hostname such as `api.example.com` and click **Add**. Repeat for each host.
4. Click **Save**.

| Setting | What it does |
| --- | --- |
| **Only allow approved hosts** off (default) | A custom destination can send to any host the person approves on the Agent's card |
| **Only allow approved hosts** on | A custom destination that reaches any other host can't be saved, and a saved one stops at its next run |

Rules for the list:

- Exact hostnames only: no wildcards, ports or paths. Hostnames are stored in lowercase.
- Up to 100 hosts.
- With the switch on and no hosts, the page warns "With no approved hosts, every custom destination in this workspace stops sending at its next run."
- If saved exports already send to a host missing from the list, the page names those hosts and warns that they stop at their next run.

## Limits

| Item | Limit |
| --- | --- |
| Email recipients | 50 workspace members |
| Email attachment | 10 MB (larger files are zipped or sent as a 7-day link) |
| Email subject / message | 200 / 2,000 characters |
| Excel in an email | 50,000 rows |
| Google Sheets | 10,000,000 cells per spreadsheet, 50,000 characters per cell, tab name up to 100 characters |
| REST API batch size | 1,000 rows by default, 10,000 maximum |
| REST API retries | 3 for a 5xx error, 5 for a 429 |
| Approved hosts | 100 |

## Troubleshooting file, app and API exports

| Symptom or message | Cause | Fix |
| --- | --- | --- |
| Google Sheets export fails on a big View | The spreadsheet would pass 10,000,000 cells or 50,000 characters in a cell | Export to CSV or use a Live link |
| "Excel holds up to 50,000 rows, and this view has more." | The email's file type is Excel and the View is bigger | Pick CSV or another file type |
| "An email export can go to at most 50 people." | More than 50 people in **To** | Remove some people, or set up a second export |
| "The test email couldn't be sent. Try again." | The test send failed | Try again |
| "Couldn't read those docs. Check the link, or fill the form in." | Mammoth couldn't read the API docs link | Check the link, or fill the form in by hand |
| "The REST API export can't send to this API:" | The API needs something a fixed REST export can't do | Click **Fill the form anyway**, **Try another link**, or (Enterprise) **Set it up with Somewhere else…** |
| A REST API export can't reach the endpoint | The URL resolves to a private or reserved IP address | Use a publicly reachable endpoint |
| A custom destination stopped at its next run | **Only allow approved hosts** is on and its host isn't on the list | Add the host in **Settings** → **Workspace** → **Export destinations** |

For a destination that doesn't update, see [Troubleshooting exports](https://mammoth.io/docs/learn/share-and-export/send-to-destinations/#troubleshooting-exports).

## Related

- [Export data after every pipeline run](https://mammoth.io/docs/learn/share-and-export/send-to-destinations/): plans, when it runs, send only new rows and Auto-sync.
- [Send data to a database or warehouse](https://mammoth.io/docs/learn/share-and-export/send-to-a-database/): Snowflake, BigQuery, PostgreSQL and more.
- [Live links](https://mammoth.io/docs/learn/share-and-export/live-links/): a CSV URL for Power BI, Excel and Google Sheets.
- [Download a View](https://mammoth.io/docs/learn/share-and-export/download/): a one-off file or email.
- [Send messages](https://mammoth.io/docs/learn/automate/messages/): automation emails with CSV files.

---
Source: https://mammoth.io/docs/learn/share-and-export/send-to-files-and-apps.md · Updated: 2026-11-08
