Linking Yotpo as a source
This source is currently in alpha. The interface and available tables may change.
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Alpha: This source is in alpha. If you run into issues, reach out to our support team.
The Yotpo connector syncs your review and email marketing data – product reviews, email analytics, raw email delivery records, and unsubscribers – into PostHog, so you can analyze customer feedback and email engagement alongside your product data.
Prerequisites
You need a Yotpo account with API access. You'll need your app key (also called the store ID) and an API secret. Both are available in your Yotpo account settings.
Adding a data source
- In PostHog, go to the Sources tab of the data pipeline section.
- Click + New source and click Link next to this source.
- Enter your credentials (see Configuration below) and click Next.
- Select the tables you want to sync, choose a sync method and frequency, then click Import.
Once the syncs are complete, you can start querying this data in PostHog.
When linking Yotpo, you'll need:
- App key (store ID) – your Yotpo app key, found in your Yotpo account settings under General Settings.
- API secret – your Yotpo API secret, found in the same settings page.
- Start date for email data – a date in
YYYY-MM-DDformat. Email tables (email_analyticsandraw_data) sync data from this date onward. Reviews and unsubscribers sync all available records regardless of this setting.
Sync modes
Each table can be synced in one of several modes, depending on what the source supports:
- Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
- Incremental – only new or updated rows are synced on each run, using a cursor field (such as an
updated_attimestamp). Cheaper than a full refresh, but deletes aren't captured. - Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
- Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.
See sync methods for a full explanation of how each mode works and how to choose between them.
All Yotpo tables use full refresh syncing. Incremental and append-only syncing are not supported because the Yotpo API does not provide reliable timestamp filters or unique keys across all endpoints.
This means every sync re-downloads all data for each table. For the email_analytics and raw_data tables, the configured start date limits how far back data is fetched.
Configuration
| Option | Description |
|---|---|
App key (store ID)Type: text Required: True | |
API secretType: password Required: True | |
Start date for email dataType: text Required: True | Email tables include data from this date. Reviews and unsubscribers include all available records. |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
reviews | Product and site reviews, including unpublished reviews. | Full refresh | — | id |
email_analytics | Daily counts of review request emails sent, grouped by email type, from the configured start date. | Full refresh | — | since, until |
raw_data | Email delivery and engagement records from the configured start date. | Full refresh | — | — |
unsubscribers | Email addresses excluded from Yotpo review request emails. | Full refresh | — | user_email, email_type_id |
Troubleshooting
"Yotpo rejected the app key or API secret"
Your credentials are incorrect. Double-check your app key and API secret in your Yotpo account settings, then reconnect.
"Yotpo did not return an access token"
The API accepted your credentials but didn't return a token. Verify your API credentials are correct and your Yotpo account has API access enabled, then reconnect.
401 or "access token is invalid or expired"
Your access token has expired or been revoked. Check your credentials and reconnect.
403 or "denied access to this table"
Your Yotpo account doesn't have permission to access this endpoint. Check your account's API access level.
Invalid start date
The start date must be in YYYY-MM-DD format and cannot be in the future.
If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.





