Linking Cin7 Core as a source
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.

Contents
The Cin7 Core connector syncs your inventory management data – products, stock levels, customers, suppliers, sales, purchases, and more – into PostHog, so you can analyze your inventory and order data alongside your product data.
Note: This source supports Cin7 Core (formerly DEAR Inventory) only. It doesn't support Cin7 Omni.
Prerequisites
You need a Cin7 Core account with API access enabled. To get your credentials:
- Log in to Cin7 Core.
- Go to Integrations > API.
- Create an API application if you don't have one.
- Copy your Account ID and Application key.
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 Cin7 Core, you'll need:
- Account ID - Your Cin7 Core account identifier, found under Integrations > API.
- Application key - Your API application key from Cin7 Core. This is stored securely and never displayed after setup.
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.
Seven tables support incremental sync using ModifiedSince or UpdatedSince filters, so only changed records are fetched on each run. All other tables use full refresh.
| Incremental tables | Cursor field |
|---|---|
products | LastModifiedOn |
customers | LastModifiedOn |
suppliers | LastModifiedOn |
sales | Updated |
sale_credit_notes | Updated |
purchases | LastUpdatedDate |
purchase_credit_notes | LastUpdatedDate |
The Cin7 Core API allows 60 calls per minute. PostHog sends at most one request per second to stay within this limit.
Configuration
| Option | Type | Required |
|---|---|---|
Account ID | text | Yes |
Application key | password | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
products | Product catalog containing stock and service items. | Incremental, Full refresh | LastModifiedOn | — |
product_families | Product families that group product variants by options. | Full refresh | — | — |
product_availability | Stock levels per product, location, bin, and batch. | Full refresh | — | — |
product_categories | Categories used to organize products. | Full refresh | — | — |
brands | Brands assigned to products. | Full refresh | — | — |
customers | Customers and their sales, billing, and contact settings. | Incremental, Full refresh | LastModifiedOn | — |
suppliers | Suppliers and their purchasing, payment, and contact settings. | Incremental, Full refresh | LastModifiedOn | — |
sales | Sale list with one row per sale, including status and totals. | Incremental, Full refresh | Updated | — |
sale_credit_notes | Sales that have a credit note, including their status and totals. | Incremental, Full refresh | Updated | — |
purchases | Purchase list with one row per purchase order. | Incremental, Full refresh | LastUpdatedDate | — |
purchase_credit_notes | Purchases that have a credit note, including their status and totals. | Incremental, Full refresh | LastUpdatedDate | — |
stock_adjustments | Inventory adjustments and their transaction status. | Full refresh | — | — |
stock_takes | Inventory stock takes and their locations and status. | Full refresh | — | — |
stock_transfers | Inventory transfers between locations. | Full refresh | — | — |
locations | Warehouses and bins used to store or move stock. | Full refresh | — | — |
payment_terms | Payment terms used for customer and supplier transactions. | Full refresh | — | — |
chart_of_accounts | Accounts keyed by account Code, including classification and payment details. | Full refresh | — | — |
tax_rules | Tax rules applied to sales and purchases. | Full refresh | — | — |
units_of_measure | Units of measure used for product quantities. | Full refresh | — | — |
carriers | Carriers available for shipments. | Full refresh | — | — |
price_tiers | Named product price tiers keyed by Code from 1 to 10. | Full refresh | — | — |
Below is a reference of all 21 available tables and their sync methods:
| Table | Sync method | Description |
|---|---|---|
products | Incremental | Product catalog with SKUs, pricing, and attributes |
product_families | Full refresh | Product groupings and variant options |
product_availability | Full refresh | Stock levels per product, location, bin, and batch |
product_categories | Full refresh | Product categorization |
brands | Full refresh | Product brands |
customers | Incremental | Customer records with billing and contact settings |
suppliers | Incremental | Supplier and vendor records |
sales | Incremental | Sales orders and transactions |
sale_credit_notes | Incremental | Credit notes for sales |
purchases | Incremental | Purchase orders |
purchase_credit_notes | Incremental | Credit notes for purchases |
stock_adjustments | Full refresh | Inventory adjustment records |
stock_takes | Full refresh | Physical inventory counts |
stock_transfers | Full refresh | Stock movements between locations |
locations | Full refresh | Warehouse and storage locations |
payment_terms | Full refresh | Payment term configurations |
chart_of_accounts | Full refresh | Accounting chart of accounts |
tax_rules | Full refresh | Tax rule configurations |
units_of_measure | Full refresh | Unit of measure definitions |
carriers | Full refresh | Shipping carrier information |
price_tiers | Full refresh | Pricing tier configurations |
Troubleshooting
- If your sync fails with an authentication error, Cin7 Core rejected the account ID or application key. Copy both values from Integrations > API in Cin7 Core and reconnect the source.
- If your sync fails with a rate limit error, wait a minute and try again. The Cin7 Core API allows 60 calls per minute per application.
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.





