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
| Entity | What it is |
|---|---|
| Account | A company you sell to |
| Contact | A person at an account |
| Opportunity | A revenue deal tied to an account |
| Activity | A 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 type | Use it for |
|---|---|
| Text, Number, Date | Simple values |
| Select, Multi-select | Pick-lists |
| URL, Email, Phone | Validated identifiers |
| Boolean | Yes/no flags |
| JSON | Structured 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.