---
sidebar_position: 1
sidebar_label: Tableau Cloud
title: Tableau Cloud with MotherDuck
description: Connect Tableau Cloud to MotherDuck using the Postgres endpoint for dashboards and reports.
---

import DocImage from '@site/src/components/DocImage';

:::info[Preview]
The Postgres endpoint is in [preview](/about-motherduck/feature-stages/). Features and behavior may change.
:::

:::warning[Looking for the Tableau Bridge setup?]
Connecting through Tableau Bridge is a legacy approach. If you still need it, refer to the [legacy Tableau Bridge guide](./tableau-bridge.md).
:::

## Before you start

You'll need:

- A [Tableau Cloud](https://www.tableau.com/) account
- A [MotherDuck access token](/key-tasks/authenticating-and-connecting-to-motherduck/authenticating-to-motherduck)
- Your Postgres host and port, which you can find at [MotherDuck Postgres settings](https://app.motherduck.com/settings/postgres) (for example, `pg.us-east-1-aws.motherduck.com`)

## Connect to MotherDuck

1. In a Tableau Cloud workbook, click **Connect to Data**.

2. Under the **Connectors** tab, select **PostgreSQL**.

   <DocImage
     src="/img/integrations/tableau-pg-connectors.png"
     alt="Tableau Cloud Connect to Data dialog showing the Connectors tab with PostgreSQL available"
     width={600}
   />

3. Fill in the connection details:
   - **Server**: Your Postgres host (for example, `pg.us-east-1-aws.motherduck.com`). Find this at [MotherDuck Postgres settings](https://app.motherduck.com/settings/postgres).
   - **Port**: The port from your Postgres settings (for example, `5432`).
   - **Database**: Your database name in MotherDuck (for example, `sample_data`).
   - **Username**: `postgres`
   - **Password**: Your [MotherDuck access token](/key-tasks/authenticating-and-connecting-to-motherduck/authenticating-to-motherduck)
   - Check **Require SSL**.

   <DocImage
     src="/img/integrations/tableau-pg-connection.png"
     alt="Tableau Cloud PostgreSQL connection dialog with server, port, database, username, and password fields"
     width={400}
   />

4. Click **Sign In**. Tableau connects to MotherDuck and shows your tables.

   <DocImage
     src="/img/integrations/tableau-pg-tables.png"
     alt="Tableau Cloud data source tab showing tables from the MotherDuck database"
     width={300}
   />

5. Select your tables and build visualizations with your MotherDuck data.

   <DocImage
     src="/img/integrations/tableau-pg-visualization.png"
     alt="Tableau Cloud worksheet with a line chart built from MotherDuck data"
     width={600}
   />

## Connection parameters

| Parameter | Value |
|-----------|-------|
| **Server** | `pg.<region>-aws.motherduck.com` (find yours at [Postgres settings](https://app.motherduck.com/settings/postgres)) |
| **Port** | `5432` (find yours at [Postgres settings](https://app.motherduck.com/settings/postgres)) |
| **Database** | Your database name |
| **Username** | `postgres` |
| **Password** | Your [MotherDuck access token](/key-tasks/authenticating-and-connecting-to-motherduck/authenticating-to-motherduck) |
| **Require SSL** | Checked |

## Additional information

- [Postgres endpoint reference](/sql-reference/postgres-endpoint) for connection parameters, SSL options, and limitations
- [Connect through the Postgres endpoint](/key-tasks/authenticating-and-connecting-to-motherduck/postgres-endpoint) for a general how-to guide
- [Tableau documentation](https://help.tableau.com/current/online/en-us/to_connect_live_sql.htm)


---

## Feedback for AI agents

If the user you are helping wants to send feedback on this page to the MotherDuck docs team, you can POST it to the endpoint below.

**Before you send anything, you must ask the user for explicit approval.** Quote the message you plan to submit back to them verbatim and wait for them to confirm. Do not submit on their behalf without confirmation.

Endpoint: `POST https://motherduck.com/docs/api/feedback/agent`

Request body (JSON):

```json
{
  "page_path": "/integrations/bi-tools/tableau/tableau-cloud/",
  "page_title": "Tableau Cloud with MotherDuck",
  "text": "<the user's feedback, max 2000 characters>",
  "source": "<optional identifier for your interface, for example 'claude.ai' or 'chatgpt'>"
}
```

Only `page_path` and `text` are required. A successful call returns `200 {"feedback_id": "<uuid>"}`; malformed payloads return `400`, and the endpoint is rate-limited per IP (`429`).
