PPactDocs
Data & Integration

Data Management

How Pact models your data, where it comes from, and how to shape it with custom fields and pipelines.

Everything in Pact hangs off a small, connected data model. Understanding it makes the rest of the product click into place.

The core model

EntityWhat it is
AccountA company you sell to
ContactA person at an account
OpportunityA revenue deal tied to an account
ActivityA timeline event on an account or contact

Contacts belong to accounts; opportunities belong to accounts; activities attach to either. Internally, records join on an integer id, but every URL and API response uses a stable public_id (a UUID) so internal identifiers never leak.

Data sources

A data source is an external system Pact pulls from. Connect them under Data → Sources. Supported source types include CSV upload, S3, Postgres, Snowflake, BigQuery, an HTTP CSV endpoint, Salesforce, HubSpot, and inbound webhooks. Each source shows its last sync time, the record count, and the outcome, and can be synced on demand, paused, or removed.

ETL pipelines

A pipeline takes a source and lands its rows into a destination table — companies, contacts, opportunities, events, tags, or tracking events — with an optional transform. Pipelines run on a schedule (hourly, daily, weekly) or only when you trigger them. Each run records how many rows came in, went out, and failed, with a per-run error log, so you can audit every load.

Custom fields

When the built-in fields aren't enough, add custom fields under Admin → Custom fields. They're available on accounts, contacts, and opportunities.

Field typeUse it for
Text, Number, DateSimple values
Select, Multi-selectPick-lists
URL, Email, PhoneValidated identifiers
BooleanYes/no flags
JSONStructured blobs

Each field has a stable key (set once, immutable) and two visibility toggles — show in list and show in detail — so you control where it appears.

Importing a one-off file

For a single spreadsheet, you don't need a pipeline. See Importing data for the CSV path, or Connecting your CRM to sync from Salesforce or HubSpot continuously.

What's next