> ## 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.

# Global event mappings in Upstack

> Rename or derive an event once and send it to all your connected destinations. Set conditions, add a worked example, and see how global mappings show up in your reporting.

Global event mappings let you take an event that's already flowing through Upstack — like a purchase — and send it to your destinations under a new name when it meets conditions you choose. You set it up **once**, and every connected destination inherits it. It's the fastest way to create events like `high_value_purchase` or `subscription_purchase` without touching each destination one by one.

## Prerequisites

* An [Upstack Data](https://app.upstackdata.com) account with the pixel installed and events flowing
* At least one [destination connected](/get-started/connect-a-destination)
* A clear idea of the event you want to create and when it should fire

## What a global event mapping does

A mapping watches for a base event (standard or custom), and when its conditions match, it sends that event to your destinations under a new name. For example, a purchase over \$500 can be sent as `high_value_purchase`, so your ad platforms can optimize for high-value buyers specifically.

A few things to know up front:

* **It applies everywhere.** Every connected destination inherits your global mappings automatically. You can fine-tune or turn one off for a single destination later — see [Destination event mappings](/guides/custom-events/destination-event-mappings).
* **It shows up in your reporting.** A global mapping fires as a real event, so it appears in your Upstack analytics and event debugger as well as at your destinations.
* **Your standard events keep flowing.** A mapping adds a renamed event — it doesn't replace or stop the original.

<Note>
  Google Ads is the one exception — it doesn't use event mappings. Google Ads relies on its own Conversion Action setup instead.
</Note>

## Create a global event mapping

<Steps>
  <Step title="Open Event Mappings">
    Go to **Event Destinations** and click the **Event Mappings** button (globe icon) in the page header. The right-side **Global Event Mappings** panel opens, listing any mappings you already have.
  </Step>

  <Step title="Add a mapping">
    Click **Add Mapping** to open the trigger editor.
  </Step>

  <Step title="Name it and pick the base event">
    Give the mapping a clear **Display name** (just for you — it isn't sent to destinations). Then choose the **Base event** — pick a standard event like `purchase` from the list, or type your own custom event name.
  </Step>

  <Step title="Set the conditions (optional)">
    Under **Only when…**, add the conditions that decide when the event fires. Set **Match** to **ALL** or **ANY** of your condition groups, then add conditions inside each group (for example, order value **is greater than** 500). Use **ANY** when any one rule should be enough; use **ALL** when every rule must be true. Leave it empty to fire on every base event.
  </Step>

  <Step title="Set the destination event name">
    Enter the **Destination event name** — the name your destinations receive. Use lowercase with underscores, e.g. `high_value_purchase`.
  </Step>

  <Step title="Choose the value to send (optional)">
    Turn on **Override event value** to send profit, margin, a fixed amount, or a custom formula instead of the event's own value — see [Set the value sent with the event](#set-the-value-sent-with-the-event) below.
  </Step>

  <Step title="Save">
    Click **Save custom event**. The mapping is now live for every connected destination (except Google Ads).
  </Step>
</Steps>

## Worked example: high-value purchases

Say you want to optimize for orders over \$500.

1. **Display name:** High value purchase
2. **Base event:** `purchase`
3. **Conditions:** Match **ALL** → order value **is greater than** `500`
4. **Destination event name:** `high_value_purchase`

Now whenever a purchase over \$500 comes through, your destinations also receive a `high_value_purchase` event — and it shows up in your Upstack reporting so you can confirm it's firing.

<Tip>
  If you send a revenue event to Meta, pair it with a matching Custom Conversion in Meta Events Manager so you can select it as a campaign optimization goal. See [Approve Meta custom events](/guides/facebook-ads/how-to-approve-facebook-meta-custom-events).
</Tip>

## Conditions

Conditions (the **Only when…** section) are the filters that decide when a mapping fires. Leave them empty and the mapping fires on **every** base event; add conditions and it fires **only** when they match.

Each condition is a **field**, an **operator**, and a **value** — for example *order value* **is greater than** `500`. You can filter on any field the event carries: order and cart values, customer traits, page and campaign context, device, and more.

**Operators** include comparisons (*is greater than*, *is at least*, *equals*), text matches (*contains*, *starts with*), list checks (*is in*, *includes any*), and existence checks (*exists*, *does not exist*). The available operators change to fit the field you pick.

**Groups.** Conditions live in groups. Set **Match** to **ALL** (every condition in the group must be true) or **ANY** (one is enough). Add multiple groups for more complex logic — for example *(order value > 500)* **OR** *(customer is returning AND category is apparel)*.

<Tip>
  Start simple. A single condition like *order value is greater than 500* covers most high‑value‑purchase mappings. Add more groups only when one rule isn't enough.
</Tip>

## Set the value sent with the event

By default, Upstack forwards the event's own value. Turn on **Override event value** to send profit, margin, a fixed amount, or a custom formula instead — so your ad platforms optimize on the value that matters to you.

See **[Custom event value & formulas](/guides/custom-events/value-and-formulas)** for every value option, the formula builder (Simple vs Advanced), and the full operand reference.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Do global mappings change my standard events?">
    No. A mapping adds a renamed event when its conditions match — your standard events keep flowing exactly as before.
  </Accordion>

  <Accordion title="Will the mapped event appear in my reporting?">
    Yes. Global mappings fire as real events, so they show up in your Upstack analytics and event debugger in addition to being sent to your destinations.
  </Accordion>

  <Accordion title="Does every destination get the mapping?">
    Every connected destination inherits it automatically — except Google Ads, which uses Conversion Actions instead. You can disable or override a global mapping for a single destination from that destination's Event Mappings tab.
  </Accordion>

  <Accordion title="What if two mappings could apply to the same event?">
    Each mapping is evaluated independently — every mapping whose conditions match fires. There's no priority ordering between global mappings, so if you don't want overlap, make each mapping's conditions specific enough that only one matches.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Destination event mappings" icon="sliders" href="/guides/custom-events/destination-event-mappings">
    Disable or override a global mapping for a single destination, or add destination-only triggers.
  </Card>

  <Card title="Custom events overview" icon="bolt" href="/guides/custom-events/how-to-create-custom-event-triggers">
    What custom events are and when to use them.
  </Card>

  <Card title="NC & RC Purchase in Meta" icon="meta" href="/guides/facebook-ads/set-up-nc-and-rc-purchase-events-in-meta">
    Set up new- and returning-customer purchase events in Meta.
  </Card>

  <Card title="Approve Meta custom events" icon="check" href="/guides/facebook-ads/how-to-approve-facebook-meta-custom-events">
    Approve and verify custom events in Meta Events Manager.
  </Card>
</CardGroup>
