> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unifygtm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connecting your data

> Choose the right approach to get your data into Unify.

export const SalesforceLogo = () => <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path d="M9.98736 5.83214C10.7614 5.02566 11.839 4.52545 13.0308 4.52545C14.6151 4.52545 15.9973 5.40886 16.7334 6.72031C17.373 6.43452 18.0811 6.27553 18.826 6.27553C21.6834 6.27553 24 8.6123 24 11.4947C24 14.3774 21.6834 16.7142 18.826 16.7142C18.4837 16.7144 18.1423 16.6803 17.8068 16.6126C17.1587 17.7688 15.9234 18.5501 14.5057 18.5501C13.9121 18.5501 13.3508 18.413 12.851 18.1692C12.1939 19.7148 10.6629 20.7986 8.87863 20.7986C7.02052 20.7986 5.43692 19.6229 4.82907 17.974C4.56344 18.0304 4.28822 18.0598 4.00581 18.0598C1.79351 18.0598 0 16.2479 0 14.0123C0 12.5142 0.805814 11.2061 2.00308 10.5063C1.75659 9.93915 1.61948 9.31315 1.61948 8.65502C1.61948 6.08408 3.70667 4 6.28103 4C7.79248 4 9.13574 4.71863 9.98736 5.83214Z" fill="#00A1E0" />
  </svg>;

export const HubspotLogo = () => <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path fill-rule="evenodd" clip-rule="evenodd" d="M17.2421 17.2947C15.4495 17.2947 13.9963 15.8566 13.9963 14.0829C13.9963 12.3088 15.4495 10.8707 17.2421 10.8707C19.0348 10.8707 20.488 12.3088 20.488 14.0829C20.488 15.8566 19.0348 17.2947 17.2421 17.2947ZM18.2138 7.89901V5.04163C18.9675 4.68936 19.4954 3.93487 19.4954 3.05925V2.9933C19.4954 1.78482 18.4963 0.796098 17.2751 0.796098H17.2088C15.9876 0.796098 14.9885 1.78482 14.9885 2.9933V3.05925C14.9885 3.93487 15.5164 4.68966 16.2701 5.04194V7.89901C15.148 8.07068 14.1227 8.52868 13.2772 9.20272L5.34945 3.09994C5.40177 2.90114 5.43852 2.6965 5.43884 2.48137C5.44008 1.11293 4.32076 0.00185084 2.93734 1.60552e-06C1.55455 -0.00153942 0.43149 1.10646 0.429933 2.4752C0.428376 3.84395 1.54769 4.95503 2.93111 4.95657C3.38177 4.95719 3.7991 4.83051 4.16473 4.62463L11.9629 10.6282C11.2998 11.6188 10.9112 12.8053 10.9112 14.0829C10.9112 15.4202 11.3381 16.6573 12.0594 17.6747L9.68813 20.0217C9.50065 19.9659 9.30631 19.9271 9.10013 19.9271C7.96369 19.9271 7.04213 20.8387 7.04213 21.9634C7.04213 23.0883 7.96369 24 9.10013 24C10.2369 24 11.1581 23.0883 11.1581 21.9634C11.1581 21.76 11.1189 21.5673 11.0625 21.3818L13.4083 19.0604C14.4731 19.8645 15.7992 20.3478 17.2421 20.3478C20.7387 20.3478 23.5728 17.5428 23.5728 14.0829C23.5728 10.9506 21.2476 8.36286 18.2138 7.89901Z" fill="#FF7A59" />
  </svg>;

## Overview

There are two fundamental ways to get data into Unify:

* **Sending events** — Real-time signals from websites and products (page
  visits, user actions, identity information)
* **Syncing object records** — Structured data from CRMs, warehouses, databases, APIs,
  and other systems (product users, subscriptions, enrichment data)

Events and records often come from different sources, but they serve the same
overall purpose of connecting all of the data relevant to your go-to-market
operations in one place.

## Sending events

Events are the real-time behavioral signals that power intent-based workflows in
Unify. They capture what visitors and users are doing on your website or in your
product and link that activity to Companies and People.

### Example use cases

* You want to identify companies visiting your marketing website (IP reveal)
* You want to track product usage to trigger sales plays (PLG motions)
* You want to capture form fills, logins, or other user interactions
* You want real-time or near-real-time signals to power automations

### Choosing an event source

The right way to send events depends on what tools you already have deployed.

#### Marketing websites

For marketing websites, blogs, docs sites, and other public-facing pages, the
goal is typically to capture page visits and identify visitors.

| Your situation                              | Recommended approach                                                                                                                                                                             |
| :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| No existing analytics tool on the site      | **[Unify Website Tag](/developers/intent-client/website-tag)** — Copy and paste a script tag. Fastest way to get started. Automatically captures page visits and basic form fills.               |
| Already using **Segment** on the site       | **[Segment integration](/reference/integrations/segment)** — Forward existing Segment events to Unify. No additional SDK needed.                                                                 |
| Already using **PostHog** on the site       | **[PostHog integration](/reference/integrations/posthog)** — Forward existing PostHog events to Unify. No additional SDK needed.                                                                 |
| Using another tool (e.g., Google Analytics) | **[Unify Website Tag](/developers/intent-client/website-tag)** — GA doesn't forward events to Unify. The Website Tag can run alongside GA without conflicts since they serve different purposes. |

#### Web applications (product usage)

For SaaS products and web applications, the goal is typically to track user
actions (feature usage, paywall hits, milestones) and identify logged-in users.

| Your situation                                                         | Recommended approach                                                                                                                                                                                                                               |
| :--------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Already using **PostHog** in your product                              | **[PostHog integration](/reference/integrations/posthog)** — Reuse your existing PostHog instrumentation. No new SDK needed.                                                                                                                       |
| Already using **Segment** in your product                              | **[Segment integration](/reference/integrations/segment)** — Reuse your existing Segment instrumentation.                                                                                                                                          |
| Using another tool with webhook support (e.g., RudderStack, Amplitude) | **[Analytics API](/developers/api/analytics/overview)** — Configure a webhook destination in your tool pointing to Unify's Analytics API. You'll need to map events to Unify's `track` and `identify` format.                                      |
| Using another tool without webhook support                             | **[JavaScript](/developers/intent-client/js-client) or [React](/developers/intent-client/react) Library** — Install the Unify Intent Client alongside your existing tool for the specific events you want to action on in Unify.                   |
| No analytics tool                                                      | **[JavaScript](/developers/intent-client/js-client) or [React](/developers/intent-client/react) Library** — The Unify Intent Client is the default path for in-product tracking. You get `identify()` and `track()` with direct-to-Unify delivery. |

#### Backend and server-side events

Some events originate from backend systems rather than browsers—for example,
a subscription renewal, a usage limit being hit, or a derived milestone like
"onboarding completed."

| Your situation                            | Recommended approach                                                                                                                                                            |
| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Need to send events from backend services | **[Analytics API](/developers/api/analytics/overview)** — Send `track` and `identify` events directly to Unify from your server. Use a stable identifier like email or user ID. |

<Info>
  Server-side events complement client-side tracking—but they are typically not
  a replacement. Client-side events provide session context, attribution data,
  and browser-based identity. Server-side events cover backend-only actions and
  provide resilience against ad blockers.
</Info>

### Quick reference: event ingestion methods

| Method                                                    | Best for                                                | Requires code changes? |
| :-------------------------------------------------------- | :------------------------------------------------------ | :--------------------- |
| [Website Tag](/developers/intent-client/website-tag)      | Marketing websites with no existing analytics           | No—copy and paste      |
| [React Library](/developers/intent-client/react)          | React web applications                                  | Yes                    |
| [JavaScript Library](/developers/intent-client/js-client) | Non-React web applications                              | Yes                    |
| [Segment integration](/reference/integrations/segment)    | Teams already using Segment                             | No—configuration only  |
| [PostHog integration](/reference/integrations/posthog)    | Teams already using PostHog                             | No—configuration only  |
| [Analytics API](/developers/api/analytics/overview)       | Server-side events, unsupported tools, custom pipelines | Yes                    |

## Syncing records

Records are the structured, persistent data that populates [objects](/reference/objects/overview)
in Unify. While events capture what's happening right now, records represent
what Unify knows—companies, people, CRM data, product users, subscriptions, and
more.

### Example use cases

* You want to sync CRM data from Salesforce or HubSpot
* You have product usage data modeled in a data warehouse (e.g., a `users`
  table in BigQuery or Snowflake)
* You want to bring in business data like subscriptions, contracts, or usage
  tiers
* You have enrichment data from a third-party tool

### Choosing a sync method

| Your situation                                                                  | Recommended approach                                                                                                                                                                                                            |
| :------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Data lives in a **CRM** (Salesforce, HubSpot)                                   | **[Salesforce](/reference/integrations/salesforce)** or **[HubSpot](/reference/integrations/hubspot) native integrations** — These keep your CRM data in sync with Unify objects automatically.                                 |
| Data lives in a **warehouse** (Snowflake, BigQuery, ClickHouse, Redshift, etc.) | **[Hightouch](/developers/guides/data-systems/hightouch-destination)** or **[Fivetran](/developers/guides/data-systems/fivetran-destination)** — Reverse ETL tools that sync warehouse tables into Unify objects on a schedule. |
| Data lives in a **database** (PostgreSQL, MySQL, MongoDB, etc.)                 | **[Hightouch](/developers/guides/data-systems/hightouch-destination)** or **[Fivetran](/developers/guides/data-systems/fivetran-destination)** — Both support databases as sources in addition to warehouses.                   |
| Data comes from **internal APIs or custom pipelines**                           | **[Data API](/developers/api/data/overview)** — Programmatically create objects, define attributes, and push records.                                                                                                           |
| Data comes from a **third-party tool** (e.g., Clay)                             | **[Data API](/developers/api/data/overview)** — Use webhooks or scripts to push data from external tools into Unify objects.                                                                                                    |

<Tip>
  **Model your data as objects.** Rather than adding lots of custom attributes
  directly to the Company or Person objects, create dedicated custom objects
  (e.g., **Product User**) and link them to Person or Company with reference
  attributes. This keeps your data organized and makes it easy to filter based
  on data source.
</Tip>

For a step-by-step walkthrough, see
[Connect a data system](/developers/guides/data-systems/overview).

## CRM data

If you use Salesforce or HubSpot, Unify has native integrations that sync CRM
data automatically. This is managed through the Unify UI—no developer setup is
required.

<CardGroup cols={2}>
  <Card title="Salesforce" href="/reference/integrations/salesforce/overview" icon={<SalesforceLogo />} horizontal>
    Connect your Salesforce instance.
  </Card>

  <Card title="HubSpot" href="/reference/integrations/hubspot/overview" icon={<HubspotLogo />} horizontal>
    Connect your HubSpot CRM.
  </Card>
</CardGroup>

When you connect a CRM, Unify creates objects (like **Salesforce Account** or
**HubSpot Contact**) that are linked to the Company and Person objects. CRM data
flows bidirectionally and stays in sync.

## Combining data sources

Many teams use multiple data sources together. For example:

* **Website Tag** on the marketing site for anonymous visitor identification
* **PostHog integration** in the product for usage events
* **Hightouch** to sync product user records from the data warehouse
* **Salesforce integration** to keep CRM data in sync

Events and records complement each other. Events provide real-time behavioral
signals. Records provide structured context. Together, they give Unify the full
picture it needs to power targeted, timely go-to-market actions.

## Next steps

<CardGroup cols={2}>
  <Card title="Connect website traffic" href="/developers/guides/website-traffic/introduction" icon="browser" horizontal>
    Get started with marketing website tracking.
  </Card>

  <Card title="Connect product usage data" href="/developers/guides/product-usage-data/introduction" icon="computer-mouse-button-left" horizontal>
    Track in-app user behavior and product signals.
  </Card>

  <Card title="Connect a data system" href="/developers/guides/data-systems/overview" icon="database" horizontal>
    Sync structured data from warehouses and databases.
  </Card>

  <Card title="Send records via API" href="/developers/guides/send-data/overview" icon="code" horizontal>
    Push data programmatically from custom pipelines.
  </Card>
</CardGroup>
