Linking Zylo 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
Alpha release

This source is currently in alpha. It hasn't been tested against a live Zylo account yet, so you may encounter unexpected issues. Please report any problems you find.

The Zylo connector syncs your SaaS spend and license management data into PostHog, including applications, licenses, users, contracts, payments, and more. Use it to analyze software spend alongside your product data.

Prerequisites

You need:

  • A Zylo account with Enterprise API access
  • An API token ID and token secret, created in Zylo under Integrations → API Integration → Connect
  • Read scopes on your API key for the resources you want to sync (e.g. applications:read, contracts:read, spend:read, team:read)

Adding a data source

  1. Go to the sources tab of the data pipeline section in PostHog.
  2. Click + New source and then click Link next to Zylo.
  3. Enter your Zylo Token ID and Token secret from your Zylo API Integration settings.
  4. Click Next.
  5. Select the tables you want to sync and configure sync frequency as needed.
  6. Click Import.

Scope requirements

Different tables require different API key scopes. If your token doesn't have a particular scope, those tables show a permission error but other tables still sync successfully.

TablesRequired scope
Applications, ApplicationLicenses, SavingsEvents, ApplicationBudgetsapplications:read
Contracts, ContractLineItems, Supplierscontracts:read
Paymentsspend:read
ApplicationUsers, ActivityHistoryteam:read
PurchaseOrders, POLineItemsapplications:read and spend:read (premium feature)

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_at timestamp). 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 Zylo tables support incremental sync using either zylo_created_at or zylo_modified_at timestamps. Full refresh is also available for all tables.

Configuration

OptionTypeRequired
Token IDtextYes
Token secretpasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
Applications

A SaaS application discovered or added in Zylo's software catalog.

Incremental, Full refreshzylo_created_at, zylo_modified_at
ApplicationLicenses

A license seat for an application, typically assigned to a user.

Incremental, Full refreshzylo_created_at, zylo_modified_at
ApplicationUsers

A user of an application, with usage and license activity.

Incremental, Full refreshzylo_created_at, zylo_modified_at
Contracts

A software contract with a supplier, covering one or more applications.

Incremental, Full refreshzylo_created_at, zylo_modified_at
ContractLineItems

A single priced line item within a contract, e.g. a license tier or add-on.

Incremental, Full refreshzylo_created_at, zylo_modified_at
Payments

A payment made for an application, sourced from AP or expense data.

Incremental, Full refreshzylo_created_at, zylo_modified_at
PurchaseOrders

A purchase order raised against a supplier for software spend. Premium feature — requires applications:read and spend:read API key scopes.

Incremental, Full refreshzylo_created_at, zylo_modified_at
POLineItems

A single line item within a purchase order.

Incremental, Full refreshzylo_created_at, zylo_modified_at
Suppliers

A supplier (vendor) that PostHog customers buy software or services from.

Incremental, Full refreshzylo_created_at, zylo_modified_at
SavingsEvents

A recorded cost-savings event, e.g. a license reduction or contract renegotiation.

Incremental, Full refreshzylo_created_at, zylo_modified_at
ApplicationBudgets

A yearly budget allocation for an application.

Incremental, Full refreshzylo_created_at, zylo_modified_at
ActivityHistory

An audit log entry recording a change to a Zylo record.

Incremental, Full refreshzylo_created_at, zylo_modified_at

  • applications - SaaS applications in your Zylo catalog
  • application_licenses - License seats assigned to users
  • application_users - Users of applications with usage and activity data
  • contracts - Software contracts with suppliers
  • contract_line_items - Priced line items within contracts
  • payments - Payments made for applications
  • purchase_orders - Purchase orders for software spend (premium feature)
  • po_line_items - Line items within purchase orders (premium feature)
  • suppliers - Vendors that you buy software from
  • savings_events - Cost-savings events like license reductions
  • application_budgets - Yearly budget allocations per application
  • activity_history - Audit log of changes to Zylo records

Troubleshooting

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.

Community questions

Was this page useful?