Skip to content
Get API key (opens in a new tab)

tier.earned

Sent when a loyalty member earns a tier, with the member's profile, their points and the earned tier.

When it fires

  • When a member reaches a tier, whether or not the tier's entry rewards were fulfilled.
  • tier is the member's standing when the delivery is sent.

Receive it

Pick tier.earned in a webhook destination's events, or tick All events. See Create a destination.

To filter it or wait before sending, send it from a Flow on the Tier earned trigger instead. See Send from a Flow.

Payload

Example payload
{
  "created_at": "2026-11-02T09:30:00.000Z",
  "data": {
    "points": {
      "expiring_30d": 400,
      "expiring_60d": 650,
      "expiring_90d": 750,
      "lifetime_earned": 5400,
      "lifetime_spent": 4150,
      "next_expiration_at": "2026-12-31T00:00:00.000Z",
      "pending": 100,
      "spendable": 1150,
      "total": 1250
    },
    "profile": {
      "avatar_url": "https://cdn.cevoid.com/avatars/prf_sarah/profile.jpg",
      "bio": "Lifestyle creator and photography enthusiast",
      "birthday": "1992-04-18",
      "country": "US",
      "created_at": "2026-01-15T09:30:00.000Z",
      "email": "sarah.johnson@example.com",
      "external_id": "customer_7391056823401",
      "first_name": "Sarah",
      "id": "prf_sarah",
      "language": "en",
      "last_name": "Johnson",
      "location": "San Francisco, CA",
      "name": "Sarah Johnson",
      "notes": "VIP customer; prefers email communication",
      "social_instagram_handle": "sarah.lifestyle",
      "social_tiktok_handle": "sarah.creates",
      "social_x_handle": "sarah_j",
      "updated_at": "2026-01-20T14:22:15.000Z"
    },
    "tier": {
      "current_tier": {
        "expires_at": "2026-12-31T23:59:59.999Z",
        "icon_url": "https://cdn.cevoid.com/tiers/silver.png",
        "id": "tier_silver",
        "name": "Silver"
      },
      "next_tier": {
        "entry_rewards": [
          {
            "icon_url": "https://cdn.cevoid.com/rewards/reward-icon.png",
            "title": "10% Off Reward",
            "type": "DISCOUNT_CODE"
          }
        ],
        "icon_url": "https://cdn.cevoid.com/tiers/gold.png",
        "id": "tier_gold",
        "milestones": [
          {
            "current": 750,
            "percent_complete": 75,
            "remaining": 250,
            "required": 1000,
            "type": "POINTS"
          }
        ],
        "name": "Gold",
        "perks": [
          {
            "value": "Exclusive early access to launches"
          }
        ]
      }
    },
    "tier_achievement": {
      "earned_at": "2026-01-15T09:30:00.000Z",
      "entry_rewards": [
        {
          "awarded_at": "2026-01-15T09:30:00.000Z",
          "description": "Get 10% off your next order.",
          "discount_code": {
            "code": "SUMMER10",
            "expires_at": "2026-12-31T23:59:59.999Z",
            "external_discount_code_id": "discount-code-12345",
            "one_time_use_per_customer": true,
            "value_type": "PERCENTAGE"
          },
          "fulfilled_at": "2026-01-15T10:00:00.000Z",
          "fulfillment_status": "FULFILLED_AUTO",
          "icon_url": "https://cdn.cevoid.com/rewards/reward-icon.png",
          "id": "rwd_01hzy3d4mk8w2q",
          "title": "10% Off Reward",
          "type": "DISCOUNT_CODE",
          "usages": []
        }
      ],
      "perks": [
        {
          "value": "Exclusive early access to launches"
        }
      ],
      "previous_tier": {
        "icon_url": "https://cdn.cevoid.com/tiers/silver.png",
        "id": "tier_silver",
        "name": "Silver"
      },
      "tier": {
        "icon_url": "https://cdn.cevoid.com/tiers/gold.png",
        "id": "tier_gold",
        "name": "Gold"
      }
    }
  },
  "id": "evt_m3p82kdq5xw7tz4c",
  "type": "tier.earned",
  "version": 1
}
Show all 111 linesShow fewer lines
versionnumberrequired

The version of this event type. A published version only gains fields, so ignore fields you do not use; a breaking change is a new version.

idstringrequired

Stable event id (evt_ plus 16 characters), also sent as the webhook-id header. Retries and manual replays send the same id, so ignore an event whose id you have already processed.

typestringrequired

What data describes. New types are added over time, and an endpoint on "All events" receives them, so ignore any type you do not handle.

created_atstring<date-time>required

When the event happened, as an ISO 8601 timestamp.

originobject

Why your endpoint received the event. Omitted when the event was forwarded without a Flow of your own.

origin properties
flowobjectrequired

The Flow that sent the event.

flow properties
idstringrequired

The Flow id, shown in the Flow URL.

namestringrequired

The Flow name at the time of sending.

triggerstringrequired

The event that started the Flow. One of order.fulfilled, order.delivered, product-review.submitted, company-review.submitted, product-review.replied, company-review.replied, upload.completed, post.approved, profile.program-joined, profile.program-left, tier.earned, reward.fulfilled, tier.evaluation-approaching, points.expiration-approaching.

dataobjectrequired

The resources the event carries, keyed by resource name. type decides which resources are included, and resources your plan does not include are left out.

data properties
tier_achievementobject
tier_achievement properties
tierobjectrequired

Tier the member reached.

tier properties
idstringrequired

Cevoid tier ID.

namestringrequired

Display name of the tier.

icon_urlstring

Optional icon representing the tier.

previous_tierobject

Tier the member held before. Omitted for a first tier or when it no longer exists.

previous_tier properties
idstringrequired

Cevoid tier ID.

namestringrequired

Display name of the tier.

icon_urlstring

Optional icon representing the tier.

earned_atstring<date-time>required

When the member reached the tier.

perksobject[]required

Perks of the tier when it was reached.

perks[] properties
valuestringrequired

Human-readable perk text.

entry_rewardsobject[]required

Rewards the member received for reaching the tier, as the member rewards API returns them.

entry_rewards[] properties
idstringrequired

Cevoid earned reward ID.

titlestringrequired

Reward title at the time it was awarded.

descriptionstring

Member-facing reward description.

typestringrequired

Reward type. One of BADGE, DISCOUNT_CODE, CUSTOM, POINTS, PRODUCT.

icon_urlstring<uri>

Reward icon URL.

svg_iconstring

Inline SVG icon markup.

fulfillment_statusstringrequired

Current fulfillment state. One of UNFULFILLED, IN_PROGRESS, RETRYING, FAILED_AUTO, FAILED_THIRD_PARTY, FULFILLED_MANUAL, FULFILLED_AUTO, FULFILLED_THIRD_PARTY, CANCELLED, EXPIRED.

fulfilled_atstring<date-time>

Timestamp when fulfillment completed.

failed_reasonstring

Reason fulfillment failed.

awarded_atstring<date-time>

Timestamp when the reward was awarded.

invalidated_atstring<date-time>

Timestamp when the reward was invalidated.

badgeobject

Badge-specific reward details.

badge properties
typestringrequired

Badge presentation type. One of DEFAULT, CUSTOM.

locationstring

Badge placement metadata.

iconstring

Badge icon identifier.

colorstring

Badge accent color.

pointsobject

Points-specific reward details.

points properties
amountnumberrequired

Points granted by the reward.

discount_codeobject

Discount-code reward details.

discount_code properties
codestringrequired

Discount code granted to the member.

external_discount_code_idstring

Discount code identifier in the source system, when applicable.

expires_atstring<date-time>

Timestamp when the discount code expires.

one_time_use_per_customerbooleanrequired

Whether the member can use the code only once.

value_typestring

Discount value type. One of FIXED_AMOUNT, PERCENTAGE, FREE_SHIPPING.

productobject

Product reward details.

product properties
idstring

Cevoid product ID. Omitted when the historical product can no longer be resolved.

codestringrequired

Product reward code granted to the member.

product_urlstring<uri>

Resolved storefront URL for the rewarded product.

external_discount_code_idstring

Discount code identifier in the source system, when applicable.

expires_atstring<date-time>

Timestamp when the product reward code expires.

one_time_use_per_customerbooleanrequired

Whether the member can claim the reward only once.

usagesobject[]required

Recorded reward usages.

usages[] properties
order_idstring

Cevoid order ID. Omitted when a historical order cannot be resolved.

order_numberstring

Human-readable Order number.

domainstring

Store domain where the reward was used.

external_order_idstring

Order identifier in the source system, when applicable.

used_atstring<date-time>

Timestamp when the usage was recorded.

profileobject
profile properties
idstringrequired

Cevoid profile ID.

external_idstring

Identifier this profile carries in the workspace source system, when known.

namestring

Display name of the profile.

first_namestring

First name of the profile.

last_namestring

Last name of the profile.

emailstring

Email address for the profile.

avatar_urlstring

Profile image URL.

countrystring

Country code associated with the profile.

languagestring

Preferred language code associated with the profile.

locationstring

Free-form location associated with the profile.

social_instagram_handlestring

Instagram handle associated with the profile.

social_tiktok_handlestring

TikTok handle associated with the profile.

social_x_handlestring

X handle associated with the profile.

birthdaystring<date>

Birthday in YYYY-MM-DD format.

biostring

Profile biography text.

notesstring

Merchant notes about the profile.

created_atstring<date-time>required

ISO 8601 timestamp when the profile was created.

updated_atstring<date-time>required

ISO 8601 timestamp when the profile was last updated.

pointsobject
points properties
totalnumberrequired

Total active and pending points.

spendablenumberrequired

Active points available to spend.

pendingnumberrequired

Earned points not active yet.

expiring_30dnumberrequired

Points expiring within 30 days.

expiring_60dnumberrequired

Points expiring within 60 days.

expiring_90dnumberrequired

Points expiring within 90 days.

lifetime_earnednumberrequired

Points earned over the membership lifetime.

lifetime_spentnumberrequired

Points spent over the membership lifetime.

next_expiration_atstring<date-time>

Earliest upcoming active-points expiration.

tierobject
tier properties
current_tierobject | nullrequired

Current tier, or null.

current_tier properties
idstringrequired

Cevoid tier ID.

namestringrequired

Display name of the tier.

icon_urlstring

Optional icon representing the tier.

expires_atstring<date-time>

When the current tier expires, if tier evaluations expire.

next_tierobject | nullrequired

Next reachable tier, or null.

next_tier properties
idstringrequired

Cevoid tier ID.

namestringrequired

Display name of the tier.

icon_urlstring

Optional icon representing the tier.

milestonesobject[]required

Progress required for the next tier.

milestones[] properties
typestringrequired

Metric used to qualify for the next tier. One of POINTS, AMOUNT_SPENT, NUMBER_OF_PURCHASES.

requirednumberrequired

Required amount for the next tier. AMOUNT_SPENT values use major currency units.

currentnumberrequired

Current progress. AMOUNT_SPENT values use major currency units.

remainingnumberrequired

Remaining amount. AMOUNT_SPENT values use major currency units.

percent_completenumberrequired

Progress percentage, capped at 100.

entry_rewardsobject[]required

Rewards granted at the next tier.

entry_rewards[] properties
typestringrequired

Reward type granted when the tier is reached.

titlestringrequired

Human-readable reward title.

icon_urlstring

Optional icon representing the reward.

perksobject[]required

Perks associated with the next tier.

perks[] properties
valuestringrequired

Human-readable perk text.