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

# Event Model and Taxonomy

> Reference for the Upstack event model — captured events, standard event names, properties, and how each flows from storefront capture through enrichment to destination forwarding.

Every interaction a customer has with your Shopify store generates an event. Upstack Data captures these events server-side, enriches them with identity and product data, and forwards them to your configured destinations.

<Tip>
  Upstack tracks 13 standard events out of the box. Most Shopify stores see meaningful data flowing within minutes of installing the Upstack Pixel — no manual event mapping required.
</Tip>

## How Events Are Captured

The **Upstack Pixel** is a lightweight script injected into your Shopify storefront via the theme app extension. When a visitor performs an action — viewing a page, adding a product to cart, completing a purchase — the pixel fires an event to the Upstack edge API.

From there, events flow through a four-stage pipeline:

1. **Capture** — Upstack Pixel detects the interaction and sends a structured event payload to the Cloudflare edge API.
2. **Resolve** — Upstack ID attaches identity data (email, phone, cookie, device) to the event, linking anonymous sessions to known customers.
3. **Enrich** — Product catalog data, UTM parameters, and click IDs are merged into the event.
4. **Activate** — The enriched event is forwarded to each configured destination (Meta CAPI, TikTok, Klaviyo, GA4, etc.) in the format each platform expects.

## Standard Event Taxonomy

Standard events have well-defined names, properties, and semantics that all destinations understand. Using standard events ensures compatibility across your entire marketing stack.

| Event Name               | When It Fires                     | Key Properties                                                     |
| ------------------------ | --------------------------------- | ------------------------------------------------------------------ |
| **PageView**             | Every page load                   | `page_url`, `page_title`, `referrer`                               |
| **ViewContent**          | Product or collection page viewed | `content_ids`, `content_type`, `content_name`, `value`, `currency` |
| **AddToCart**            | Item added to cart                | `content_ids`, `content_type`, `value`, `currency`, `num_items`    |
| **InitiateCheckout**     | Checkout flow started             | `content_ids`, `value`, `currency`, `num_items`                    |
| **Purchase**             | Order completed                   | `content_ids`, `value`, `currency`, `order_id`, `num_items`        |
| **Search**               | Site search performed             | `search_string`, `content_ids`, `content_type`                     |
| **Lead**                 | Lead form submitted               | `value`, `currency`, `content_name`                                |
| **CompleteRegistration** | Account created                   | `content_name`, `value`, `currency`                                |
| **AddPaymentInfo**       | Payment method entered            | `content_ids`, `value`, `currency`                                 |
| **AddShippingInfo**      | Shipping details entered          | `content_ids`, `value`, `currency`                                 |
| **Subscribe**            | Email or SMS subscription         | `value`, `currency`                                                |
| **StartTrial**           | Free trial initiated              | `value`, `currency`, `content_name`                                |
| **CustomEvent**          | Any merchant-defined event        | Varies — see [Custom Events](/data-dictionary/custom-events)       |

<Note>
  All standard events include automatic context fields — `page_url`, `user_agent`, `ip_address`, `event_time`, and identity signals — regardless of the event type. See [Properties & Context](/data-dictionary/properties-and-context) for the full reference.
</Note>

## How Destinations Receive Events

Each destination maps standard events to its own naming convention. For example, an Upstack `Purchase` event becomes:

* A Meta CAPI `Purchase` event with hashed `em`, `ph`, and `fbclid` match keys
* A TikTok Events API `CompletePayment` event with `ttclid` attached
* A Klaviyo `Placed Order` event with full product details
* A GA4 `purchase` event with `transaction_id` and line items

You configure which events each destination receives in the Upstack dashboard. Upstack handles the schema transformation automatically.

## What's Next

<CardGroup cols={2}>
  <Card title="Standard Events Reference" icon="list-check" href="/data-dictionary/standard-events">
    Full specification for every standard event — required properties, optional fields, and example payloads.
  </Card>

  <Card title="Custom Events" icon="code" href="/data-dictionary/custom-events">
    Define your own events to capture interactions beyond the standard taxonomy.
  </Card>

  <Card title="Properties & Context" icon="table" href="/data-dictionary/properties-and-context">
    Complete reference for all user data, custom data, and context fields attached to events.
  </Card>

  <Card title="Identity & Stitching" icon="link" href="/data-dictionary/identity-stitching">
    How Upstack ID enriches events with resolved identity data.
  </Card>
</CardGroup>
