Linking Ramp as a source

Alpha release

The Ramp source is currently in alpha. It has been tested against Ramp's developer API documentation but not yet battle-tested with live production workloads. If you run into issues, please let us know.

The Ramp connector syncs your corporate spend data into PostHog, including transactions, reimbursements, users, cards, and departments.

Adding a data source

  1. Go to the Data pipeline page and select the Sources tab.
  2. Click + New source and select Ramp by clicking the Link button.
  3. Select your Environment from the dropdown:

LabelConnects to
Productionapi.ramp.com
Sandbox (demo)demo-api.ramp.com

  1. Enter your Client ID and Client secret. These come from a developer app you create in Ramp (see Creating a developer app below).
  2. Click Next.
  3. Select the tables you want to import, set the sync method and frequency, then click Import.

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

Creating a developer app

To connect Ramp to PostHog, you need to create a developer app with the correct read scopes:

  1. In your Ramp dashboard, go to Settings > Developer API.
  2. Create a new developer app.
  3. Grant the following read scopes:
  • transactions:read
  • reimbursements:read
  • users:read
  • cards:read
  • departments:read
Scopes are fixed at app creation

Ramp locks scopes when the developer app is created. You can't add scopes later – make sure all five read scopes are granted before creating the app.

  1. Enable client credentials authentication on the app.
  2. Copy the Client ID (starts with ramp_id_...) and Client secret (starts with ramp_sec_...) – you'll need both when linking the source in PostHog.

Configuration

OptionTypeRequired
EnvironmentselectYes
Client IDtextYes
Client secretpasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
transactions

A card transaction (purchase) made on a Ramp card.

Incremental, Full refreshuser_transaction_time
reimbursements

An out-of-pocket expense reimbursement request in Ramp.

Full refresh
users

A user (employee) in the Ramp organization.

Full refresh
cards

A physical or virtual Ramp card issued to a user.

Full refresh
departments

A department defined in the Ramp organization.

Full refresh

Sync modes

The transactions table supports incremental syncing using the user_transaction_time field. All other tables use full refresh.

TableSync methodNotes
transactionsIncrementalUses user_transaction_time as the cursor
reimbursementsFull refresh
usersFull refresh
cardsFull refresh
departmentsFull refresh

Incremental syncs only fetch records with a user_transaction_time at or after the last synced value. Full refresh syncs reload all data on each run.

Incremental syncs don't capture status changes

Ramp's API doesn't support an updated_after filter on transactions. This means incremental syncs capture new transactions but miss late state changes on existing ones (e.g., a transaction moving from pending to cleared). If tracking transaction status changes matters to you, run an occasional full refresh sync on the transactions table.

Available tables

TableDescription
transactionsCorporate card transactions and spend data
reimbursementsEmployee reimbursement requests and payouts
usersRamp users in your organization
cardsCorporate cards issued to employees
departmentsDepartment structure within your organization

Community questions

Was this page useful?

Questions about this page? or post a community question.