Linking Pennylane 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.

Learn more
PostHog Wizard hedgehog

Contents

The Pennylane connector syncs your accounting data from Pennylane – a French accounting and invoicing platform – into PostHog. This includes customers, suppliers, invoices, quotes, transactions, ledger entries, and more.

Prerequisites

  • A Pennylane account on the Essential plan or higher
  • Admin access to create API tokens
  • A company API token with read-only access to the tables you want to sync

Creating an API token

  1. In Pennylane, go to Settings > Connectivity > Developers.
  2. Create a new API token.
  3. Select Read only access.
  4. Select the scopes for each table you want to sync. See the required scopes table below.

Adding a data source

  1. In PostHog, go to the Data pipeline page and select the Sources tab.
  2. Click + New source and then click Link next to Pennylane.
  3. Paste your API token.
  4. Click Next.
  5. Select the tables you want to sync, set the sync method and frequency, then click Import.

Once the syncs complete, you can start using Pennylane data in PostHog.

Required scopes

Each table requires a specific read-only scope on your API token. Some tables share a scope.

TableRequired scope
customerscustomers:readonly
supplierssuppliers:readonly
productsproducts:readonly
customer_invoicescustomer_invoices:readonly
supplier_invoicessupplier_invoices:readonly
quotesquotes:readonly
commercial_documentscommercial_documents:readonly
billing_subscriptionsbilling_subscriptions:readonly
purchase_requestspurchase_requests:readonly
transactionstransactions:readonly
bank_accountsbank_accounts:readonly
journalsjournals:readonly
ledger_accountsledger_accounts:readonly
ledger_entriesledger_entries:readonly
ledger_entry_linesledger_entries:readonly
fiscal_yearsfiscal_years:readonly
categoriescategories:readonly
category_groupscategories:readonly

Configuration

OptionTypeRequired
API tokenpasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
customers

A customer of the company.

Incremental, Full refreshupdated_at—
suppliers

A supplier of the company.

Incremental, Full refreshupdated_at—
products

A product or service available for invoicing.

Incremental, Full refreshupdated_at—
customer_invoices

A customer invoice or credit note issued by the company.

Incremental, Full refreshupdated_at—
supplier_invoices

A supplier invoice received by the company.

Incremental, Full refreshupdated_at—
quotes

A quote issued to a customer.

Incremental, Full refreshupdated_at—
commercial_documents

A commercial document issued to a customer.

Full refresh——
billing_subscriptions

A subscription that generates recurring customer invoices.

Full refresh——
purchase_requests

A request to purchase from a supplier.

Full refresh——
transactions

A bank transaction on one of the company's bank accounts.

Incremental, Full refreshupdated_at—
bank_accounts

A bank account connected to the company.

Full refresh——
journals

An accounting journal of the company.

Full refresh——
ledger_accounts

An account in the company's accounting ledger.

Full refresh——
ledger_entries

An accounting entry in a journal.

Incremental, Full refreshupdated_at—
ledger_entry_lines

A debit or credit line in a ledger entry.

Incremental, Full refreshupdated_at—
fiscal_years

A fiscal year of the company.

Full refresh——
categories

A category used to classify company records.

Full refresh——
category_groups

A group of categories used to classify company records.

Full refresh——

Sync methods

Incremental sync

Incremental sync is available for nine tables that have Pennylane changelogs: customers, suppliers, products, customer_invoices, supplier_invoices, quotes, transactions, ledger_entries, and ledger_entry_lines.

Instead of re-downloading the full table, incremental sync reads the Pennylane changelog to fetch only changed records since the last sync.

There are two limitations to be aware of:

  • 4-week changelog retention – Pennylane keeps changelog events for 4 weeks. If the last sync is older than 27 days, the next sync reads the full table instead of the changelog.

  • Deletions are not synced – Incremental sync does not remove records that were deleted in Pennylane. Use a full refresh sync to remove deleted records.

Full refresh sync

Full refresh re-downloads the entire table on each sync. This is available for all 18 tables and is the only sync method for the nine tables without changelogs.

Use full refresh when you need to capture deletions or when a table doesn't support incremental sync.

Troubleshooting

Sync failing with an access error

If your sync fails with an access or permission error, check that your API token has the required scopes for the tables you're syncing. You can find the required scope for each table in the required scopes table above.

Generate a new token with the correct scopes in Pennylane under Settings > Connectivity > Developers, then reconnect the source.

Sync failing with an authentication error

If your sync fails with an authentication error, your API token may be expired or deleted. Generate a new token in Pennylane and update your source configuration in PostHog.

For more help, see the Data Warehouse troubleshooting guide.

Still have questions?

Was this page useful?