> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/destinations/categories/database/postgresql/faq.md).

# FAQ

<details>

<summary>Can I use Supabase as my PostgreSQL destination?</summary>

Yes. Supabase runs on PostgreSQL, so you can use Coupler.io's PostgreSQL destination to load data into it. In your Supabase dashboard, go to **Settings → Database** to find your connection credentials (host, port, database name, user, and password), then enter them in the PostgreSQL destination setup.

</details>

<details>

<summary>What's the difference between Replace and Append mode?</summary>

**Replace** deletes all existing rows in the table and loads the latest data from your source on every run. Use this when you always want the table to reflect the current state — for example, a live snapshot of your ad campaigns or subscriptions.

**Append** adds new rows to the bottom of the table without removing existing data. Use this for historical tracking — for example, logging daily metrics, transaction events, or usage data over time.

</details>

<details>

<summary>What happens if the schema or table I specify doesn't exist yet?</summary>

Coupler.io will create them automatically on the first successful run. You don't need to pre-create anything in PostgreSQL — just make sure the connected user has CREATE privileges at the database and schema level.

</details>

<details>

<summary>Can I send data from multiple sources into the same PostgreSQL database?</summary>

Yes. You can create multiple data flows, each pointing to the same PostgreSQL database but writing to different tables or schemas. You can also use a single data flow with multiple sources and apply Join, Append, or Aggregate transformations before the data lands in PostgreSQL.

</details>

<details>

<summary>Why are some of my column names getting truncated or causing errors?</summary>

PostgreSQL has a 63-character limit on column names. Sources like Facebook (Meta) Ads and Stripe sometimes produce field names longer than this, which causes the data flow to fail. Use the **Transformations** step in your data flow to rename those columns to something shorter before they reach PostgreSQL.

{% hint style="info" %}
See the Common Issues article for step-by-step guidance on handling column name length errors.
{% endhint %}

</details>

<details>

<summary>How do I keep my existing PostgreSQL data safe when using Replace mode?</summary>

Replace mode overwrites everything in the target table on each run. If you need to preserve historical data, switch to **Append** mode instead. Alternatively, set up a separate table for Coupler.io's writes and use SQL views or queries to combine it with your other data.

</details>

<details>

<summary>Does Coupler.io enforce data types when writing to PostgreSQL?</summary>

Yes. Coupler.io detects column types from your source data and enforces them when writing to PostgreSQL. This means numeric fields land as numbers, dates as date types, and so on — rather than everything being stored as text. If the existing table has different types, you may see type mismatch errors. Letting Coupler.io create the table from scratch (using Replace mode on a new table) is the cleanest way to get properly typed columns.

</details>

<details>

<summary>What Coupler.io IP addresses should I allowlist for PostgreSQL?</summary>

If your PostgreSQL server restricts inbound connections by IP, allowlist the following Coupler.io addresses:

* `34.123.243.115`
* `34.170.96.92`

This applies to self-hosted databases, AWS RDS, Google Cloud SQL, and any other setup with network-level access controls.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/destinations/categories/database/postgresql/faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
