Linking Coupa as a source

Alpha source

The Coupa source is currently in alpha. If you run into issues, please let us know.

The Coupa connector syncs spend management data from your Coupa instance into PostHog, including invoices, purchase orders, requisitions, suppliers, contracts, expense reports, users, and approvals.

Prerequisites

Before linking Coupa, you need an OIDC client set up in your Coupa instance:

  1. In Coupa, go to Setup > Integrations > OAuth2/OpenID Connect Clients.
  2. Create a new OIDC client using the client credentials grant type.
  3. Grant it read scopes for the objects you want to sync:

TableRequired scope
Invoicescore.invoice.read
Purchase orderscore.purchase_order.read
Requisitionscore.requisition.read
Supplierscore.supplier.read
Contractscore.contract.read
Expense reportscore.expense.read
Userscore.user.read
Approvalscore.approval.read

You only need to grant scopes for the tables you plan to sync. If your Coupa instance doesn't support per-object scopes, PostHog falls back to a scope-less token request that uses whichever scopes the admin granted the OIDC client.

Linking Coupa

  1. Go to the Data pipeline page and the Sources tab in PostHog.
  2. Click + New source and select Coupa.
  3. Provide your Coupa instance URL (e.g., https://myorg.coupahost.com). Only HTTPS URLs are accepted.
  4. Provide the Client ID from your OIDC client.
  5. Provide the Client secret from your OIDC client.
  6. Optional: Add a prefix to your table names.
  7. Click Next.

The data warehouse then starts syncing your Coupa data. You can see details and progress in the data pipeline sources tab.

Sync behavior

All Coupa tables support incremental syncing using Coupa's updated_at filter. On incremental syncs, PostHog only fetches records modified since the last sync, which keeps sync times short and reduces API usage.

If a sync is interrupted, it resumes from where it left off rather than starting over.

Configuration

OptionTypeRequired
Instance URLtextYes
Client IDtextYes
Client secretpasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
invoices

A supplier invoice submitted for payment in Coupa.

Incremental, Full refreshupdated_at
purchase_orders

A purchase order issued to a supplier in Coupa.

Incremental, Full refreshupdated_at
requisitions

A purchase requisition requesting goods or services in Coupa.

Incremental, Full refreshupdated_at
suppliers

A supplier (vendor) that goods or services are purchased from in Coupa.

Incremental, Full refreshupdated_at
contracts

A contract governing terms with a supplier in Coupa.

Incremental, Full refreshupdated_at
expense_reports

An employee expense report submitted for reimbursement in Coupa.

Incremental, Full refreshupdated_at
users

A user account within the Coupa instance.

Incremental, Full refreshupdated_at
approvals

An approval step recorded against a document in a Coupa approval chain.

Incremental, Full refreshupdated_at

Community questions

Was this page useful?

Questions about this page? or post a community question.