PPact
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
DealA revenue opportunity tied to an account
ActivityA timeline event on an account or contact

Contacts belong to accounts; deals belong to accounts; activities attach to either. Internally, records join on an integer id. Most routed records also carry a stable public_id (a UUID), and their URLs and API responses use it so internal identifiers never leak. Deals are the exception today — they are addressed by their integer id.

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, deals, 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 deals.

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