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

# Overview

> Introduction to the Converge Source concepts

export const OutboundLink = ({linkText, linkTarget}) => {
  return <a target="_blank" href={linkTarget}> {linkText} 
    <div className="inline h-3 w-3 fill-gray-500 dark:fill-gray-100 text-gray-500 dark:text-gray-300 ml-1 mr-1">
      <svg className="inline w-2.5 h-2.5 bg-gray-500 dark:bg-gray-300" style={{
    maskImage: `url('https://mintlify.b-cdn.net/v6.5.1/solid/up-right-from-square.svg')`,
    maskRepeat: "no-repeat",
    maskPosition: "center center"
  }}></svg> 
    </div>
    </a>;
};

A handful of concepts shape how Converge turns raw events into clean, unified data. This section introduces each one. You don't have to configure most of them, but understanding them makes it much easier to reason about your setup and debug it.

## An introductory example

Imagine an ecommerce store that has the following minimal customer journey:

1. **Viewed Page**: User visits the storefront
2. **Added To Cart**: User adds an item to cart
3. **Placed Order**: User places an order

For the optimal setup, they will want to track `Viewed Page` and `Added To Cart` on the browser, but `Placed Order` events on <Tooltip tip="Important to track 100% of conversions"> the server</Tooltip>.

### Challenges with server-side tracking

Tracking the `Placed Order` on the server is more reliable, but it introduces three challenges, each of which maps to a core Converge concept.

* <OutboundLink linkText="Aliases" linkTarget="/sources/concepts/aliases" />: to recognize which browser-side events and which server-side events come from the same user.
* <OutboundLink linkText="Profile properties" linkTarget="/sources/concepts/profile-properties" />: to store browser-side information about a user so it's available later.
* <OutboundLink linkText="Deduplication" linkTarget="/sources/concepts/deduplication" />: to make sure that the same order doesn't get processed twice.

## The concepts

### Aliases

An <OutboundLink linkText="alias" linkTarget="/sources/concepts/aliases" /> is a unique identifier for a profile across data sources. Aliases are how Converge stitches a server-side order back to the browser session it came from, and how it re-identifies returning customers over time.

### Profile properties

<OutboundLink linkText="Profile properties" linkTarget="/sources/concepts/profile-properties" /> are characteristics of a user, like email or user agent, that persist across events rather than belonging to a single event.

### Server-side enrichment

<OutboundLink linkText="Server-side enrichment" linkTarget="/sources/concepts/server-side-enrichment" /> is how Converge automatically adds stored profile data to a stitched server-side event, so a sparse order event inherits the browser context destinations need to match it.

### Deduplication

<OutboundLink linkText="Deduplication" linkTarget="/sources/concepts/deduplication" /> ensures an event tracked in more than one place, such as a `Placed Order` seen on both the browser and the server, is only counted once.

### Sales channels

<OutboundLink linkText="Sales channels" linkTarget="/sources/concepts/sales-channels" /> classify each event by its tracking context, such as web, subscription, or POS. This keeps stitching and deduplication rates accurate by only applying them where they make sense.

### New customer status

<OutboundLink linkText="New customer status" linkTarget="/sources/concepts/new-customer-status" /> determines whether a `Placed Order` is a customer's first purchase, via the `$is_new_customer` property. It powers the `New Customer Order` event and new-customer reporting at your destinations.
