> AffiliateOS Help Center. Index of every article for AI tools: https://www.affiliateos.ai/help/llms.txt

# Global or offer-specific postbacks: which one fires

Postbacks and conversions · For publishers, networks · Updated 30 October 2026
Web version: https://www.affiliateos.ai/help/postbacks/global-or-offer-specific

For every conversion we pick exactly one active postback row and send to its URL. A row for that offer beats a global row, and for later steps a row naming the exact event beats a row for any event.

## Conversions and events

Each row has a **Postback Type**: Conversion or Event.

- A **conversion** is an offer's first step. An install is always a conversion, and an offer with one step only ever sends conversions.
- An **event** is any later step, such as reaching level 10.

A Conversion row receives conversions and events. An Event row receives events only. Being a conversion or an event says nothing about pay: read your earnings on each postback, in `payout` (in `revenue` on the Hosted Offerwall).

## The order we check

For one conversion, we take your active rows that apply and send to the highest one in this list.

| Rank | Row | Applies to |
|---|---|---|
| 1 | Event, Specific, naming this event | That event on that offer |
| 2 | Event, Specific, Any event on this offer | Every later step of that offer |
| 3 | Conversion, Specific | Every step of that offer |
| 4 | Event, Global | Every later step of every offer |
| 5 | Conversion, Global | Every step of every offer |

Rows set to Inactive are skipped, so a switched-off specific row falls through to the next one that applies. Only one row fires; we don't send to several.

## Example

Example, for Pebble Rewards. Two active rows:

- A: Conversion, Global, `https://api.pebble.example/afos`
- B: Event, Specific, Harbor Blocks, "Reach level 40", `https://api.pebble.example/afos/l40`

| What happened | Row that fires | Why |
|---|---|---|
| `u_48213` installs Harbor Blocks | A | An install is a conversion. Event rows never take conversions. |
| `u_48213` reaches level 10 | A | B names a different event. A takes events too. |
| `u_48213` reaches level 40 | B | Rank 1 beats rank 5. |
| Any step of another offer | A | B is for Harbor Blocks only. |

## Naming an event

An Event row with **Postback Level** Specific asks for an **Offer** and then an **Event**. The list shows that offer's steps, plus **Any event on this offer**. Pick several when you create the row and we save one row per event, all with the same URL. Steps that already have an active row show as already set up.

The match is exact: an event row fires only when the step's name equals the goal's `name` in the Offer API, which is also what the postback carries as `conversion_name`. Pick from the list rather than typing names you've seen elsewhere.

## When nothing fires

- **No row applies.** If you have rows but none fits this conversion, nothing is sent and **Flight Recorder** shows the delivery as `skipped_no_url`. The most common cause is a set of Event rows with no Conversion row: installs then go nowhere. The form warns you before you save such a set.
- **An account-level URL.** If our team set a postback URL on your account, it's used only while you have no rows at all. Saving your first row replaces it, even an Inactive row.
- **No postback secret.** Rows don't matter until it exists. See [How to set up a postback URL](https://www.affiliateos.ai/help/postbacks/set-up-postback-url).

> **Keep one Conversion row, Global, Active.** It's the safety net under every other row. With it in place, a step that no specific row covers still reaches your server.

## Networks

Networks set one global URL under **Workspace settings**, in **Postback Configuration**. Offer-specific URLs, where your account has them, win over it for their offer, and one switched off falls through to the global URL. With no URL that applies, the conversion is recorded and nothing is sent.
