# Program emails and triggers

> Send members emails about loyalty program events through a CRM integration, or from Cevoid with flows and email templates.

Breadcrumb: Loyalty › Program emails and triggers · Updated: 2026-10-17
Docs index: https://docs.cevoid.com/llms.txt

Send members emails when events happen in your loyalty program, such as earning a tier, receiving a reward, or approaching points expiration. Cevoid sends program events to your CRM as triggers, and flows can also email members from your email templates.

| Trigger or email | Type | Sent when |
| --- | --- | --- |
| [Member Joined Program](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#member-joined-program) | CRM trigger | A profile joins your loyalty program |
| [Member Left Program](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#member-left-program) | CRM trigger | A profile leaves your loyalty program |
| [Challenge Completed](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#challenge-completed) | CRM trigger | A member completes a challenge |
| [Challenge Available](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#challenge-available) | CRM trigger, Klaviyo only | A challenge becomes available to a member |
| [Tier Earned](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#tier-earned) | CRM trigger | A member reaches a new tier |
| [Reward Fulfilled](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#reward-fulfilled) | CRM trigger | A reward is fulfilled for a member |
| [Tier Evaluation](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#tier-evaluation) | CRM trigger | A member is approaching their tier evaluation date |
| [Points Expiration Reminder](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#points-expiration-reminder) | CRM trigger | A member is approaching their points expiration date |
| _Reached tier_ | Email from a flow | A member reaches a new tier |
| _Earned/redeemed reward_ | Email from a flow | A member earns or redeems a reward |
| _Tier evaluation reminder_ | Email from a flow | A member is approaching a tier evaluation |
| _Points expiration friendly reminder_ | Email from a flow | A member's points are approaching expiration |
| _Points expiration last reminder_ | Email from a flow | A member's points are about to expire, as a last reminder |

The emails are described in [Send program emails with flows](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#send-program-emails-with-flows).

## Send program events to your CRM

If you send your emails from a CRM, Cevoid sends it event triggers when program events occur, and you build flows in your CRM that respond to them. To send the emails from Cevoid instead, see [Send program emails with flows](https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers#send-program-emails-with-flows).

### Supported integrations

| Integration | Status |
| --- | --- |
| [Klaviyo](https://docs.cevoid.com/integrations/email-crm/klaviyo.md) | Available |
| [Voyado](https://docs.cevoid.com/integrations/email-crm/voyado.md) | Available |

### Build program flows in Klaviyo

Cevoid events trigger flows in Klaviyo. Each event includes data you can use to personalize the email.

1. Create a new flow in Klaviyo
2. Select **Metric** as the trigger
3. Select the Cevoid event from the table, for example **Cevoid: Tier Earned**
4. Click **Save**
5. Add your email content

| Flow | Event | Data in the event |
| --- | --- | --- |
| New tier reached | **Cevoid: Tier Earned** | Tier name, milestone, and the entry rewards connected to the tier |
| Reward fulfilled | **Cevoid: Reward Fulfilled** | Reward name, description, and redemption instructions |
| Challenge available | **Cevoid: Challenge Available** | Challenge title, description, and link |

To choose which events Cevoid sends, see [Configure event sharing](https://docs.cevoid.com/integrations/email-crm/klaviyo.md#configure-event-sharing).

### Build program segments in Klaviyo

Cevoid profile data and events let you build segments in Klaviyo for targeted campaigns.

1. Create a new segment in Klaviyo
2. Add the condition and value from the table
3. Click **Create segment**

| Segment | Condition | Value |
| --- | --- | --- |
| All loyalty program members | **Properties about someone**: **Cevoid: Program Member** | **is true** |
| Members in a specific tier | **Properties about someone**: **Cevoid: Tier Name** | **equals** your tier name |
| Members who completed a challenge | **What someone has done (or not done)**: **Cevoid: Challenge Completed** | **at least once over all time** |

To target members who completed a specific challenge, add a filter for the challenge title or `shortId`.

## Available triggers

Cevoid sends the following triggers to your connected CRM when program events occur. Use the triggers to build email flows, segments, and campaigns.

To enable triggers, see the article for your integration: [Klaviyo](https://docs.cevoid.com/integrations/email-crm/klaviyo.md) or [Voyado](https://docs.cevoid.com/integrations/email-crm/voyado.md). Klaviyo receives all eight triggers. Voyado receives every trigger except Challenge Available.

### Member Joined Program

Triggered when a profile joins your loyalty program.

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `name` | Member's name |
| `email` | Member's email address |
| `avatarUrl` | Member's avatar image URL |
| `shortId` | Member's unique identifier |

<details>
<summary>Payload example</summary>

```json
{
  "avatarUrl": "https://cdn.cevoid.com/members/1.jpg",
  "email": "member@example.com",
  "hasJoinedProgram": true,
  "name": "Member Name",
  "shortId": "123456"
}
```

</details>

### Member Left Program

Triggered when a profile leaves your loyalty program.

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `reason` | Why they left: `OPTED_OUT`, or `DELETED` when the profile was deleted |

<details>
<summary>Payload example</summary>

```json
{
  "reason": "OPTED_OUT"
}
```

</details>

### Challenge Completed

Triggered when a member completes a challenge.

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `title` | Challenge name |
| `summary` | Challenge description |
| `banner` | Challenge banner image URL |
| `shortId` | Challenge unique identifier |
| `url` | Link to the challenge |

<details>
<summary>Payload example</summary>

```json
{
  "banner": "https://cdn.cevoid.com/missions/1.jpg",
  "shortId": "123456",
  "summary": "Challenge summary",
  "title": "Challenge Title",
  "url": "https://challenge.cevoid.com/your-brand/your-challenge"
}
```

</details>

### Challenge Available

Triggered when a new challenge becomes available to a member. Cevoid sends this trigger to Klaviyo only: Voyado doesn't receive it.

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `title` | Challenge name |
| `summary` | Challenge description |
| `banner` | Challenge banner image URL |
| `shortId` | Challenge unique identifier |
| `url` | Link to the challenge |

<details>
<summary>Payload example</summary>

```json
{
  "banner": "https://cdn.cevoid.com/missions/1.jpg",
  "shortId": "123456",
  "summary": "Challenge summary",
  "title": "Challenge Title",
  "url": "https://challenge.cevoid.com/your-brand/your-challenge"
}
```

</details>

### Tier Earned

Triggered when a member reaches a new tier.

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `tier.name` | Tier name |
| `tier.iconUrl` | Tier icon URL |
| `tier.milestone` | Milestone value reached |
| `rewards` | Array of entry rewards received (includes title, type, discount code if applicable) |

<details>
<summary>Payload example</summary>

```json
{
  "tier": {
    "shortId": "123456",
    "iconUrl": "https://cdn.cevoid.com/tiers/1.jpg",
    "milestone": 100,
    "name": "Gold"
  },
  "rewards": [
    {
      "title": "20% Off",
      "iconUrl": "https://cdn.cevoid.com/rewards/1.jpg",
      "fulfillmentStatus": "FULFILLED_AUTO",
      "rewardedAt": "2026-01-11T21:37:04.222Z",
      "source": "Earned",
      "type": "DISCOUNT_CODE",
      "discountCode": "GOLD20OFF",
      "productUrl": "https://www.example.com/products/PRODUCT_CODE"
    }
  ]
}
```

</details>

### Reward Fulfilled

Triggered when a reward is fulfilled for a member, whether earned through activities, tiers, or redeemed from redeemable rewards.

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `parentType` | Where the reward came from (e.g., `ACTIVITY`) |
| `parentId` | ID of the source activity or tier |
| `rewards` | Array of rewards (includes title, type, points amount or discount code) |

<details>
<summary>Payload example</summary>

```json
{
  "parentType": "ACTIVITY",
  "parentId": "1234",
  "rewards": [
    {
      "title": "Discount Code",
      "iconUrl": "https://cdn.cevoid.com/rewards/1.jpg",
      "fulfillmentStatus": "FULFILLED_AUTO",
      "rewardedAt": "2026-01-11T21:37:04.222Z",
      "source": "Earned",
      "type": "DISCOUNT_CODE",
      "discountCode": "20OFF",
      "productUrl": "https://www.example.com/products/PRODUCT_CODE"
    },
    {
      "title": "Bonus Points",
      "iconUrl": "https://cdn.cevoid.com/rewards/1.jpg",
      "fulfillmentStatus": "FULFILLED_AUTO",
      "rewardedAt": "2026-01-11T21:37:04.222Z",
      "source": "Earned",
      "type": "POINTS",
      "points": 100
    }
  ]
}
```

</details>

### Tier Evaluation

Triggered when a member is approaching their tier evaluation date. The timing is configured in your [tier evaluation settings](https://docs.cevoid.com/loyalty/tiers/tier-evaluation.md).

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `evaluationDate` | When the evaluation occurs |
| `evaluationType` | `COLLECTIVE` or `INDIVIDUAL` |
| `currentTier` | Member's current tier (name, icon) |
| `nextTier` | Next tier details including milestones, progress, entry rewards, and perks |

<details>
<summary>Payload example</summary>

```json
{
  "evaluationDate": "2025-12-31T23:59:59.000Z",
  "evaluationType": "COLLECTIVE",
  "currentTier": {
    "name": "Silver",
    "iconUrl": "https://cdn.cevoid.com/tiers/1.jpg",
    "shortId": "234567"
  },
  "nextTier": {
    "name": "Gold",
    "iconUrl": "https://cdn.cevoid.com/tiers/1.jpg",
    "shortId": "345678",
    "milestones": [
      {
        "type": "POINTS",
        "required": 1000,
        "current": 750,
        "remaining": 250,
        "percentComplete": 75
      },
      {
        "type": "AMOUNT_SPENT",
        "required": 500,
        "current": 200,
        "remaining": 300,
        "percentComplete": 40
      }
    ],
    "entryRewards": [
      {
        "type": "DISCOUNT_CODE",
        "title": "20% OFF",
        "iconUrl": "https://cdn.cevoid.com/rewards/1.jpg"
      }
    ],
    "perks": [
      { "value": "Free shipping on all orders" },
      { "value": "Early access to sales" }
    ]
  }
}
```

</details>

### Points Expiration Reminder

Triggered when a member is approaching their points expiration date. The timing and reminder types are configured in your [points expiration settings](https://docs.cevoid.com/loyalty/setup/points.md#points-expiration).

**Information sent with this trigger**

| Field | Description |
| --- | --- |
| `reminderType` | `FRIENDLY` (early reminder) or `LAST` (final reminder) |
| `pointsExpiring` | Number of points about to expire |
| `expirationDate` | When the points expire |
| `currentBalance` | Member's total points balance |
| `daysUntilExpiration` | Days remaining until expiration |

<details>
<summary>Payload example</summary>

```json
{
  "reminderType": "FRIENDLY",
  "pointsExpiring": 500,
  "expirationDate": "2026-01-11T21:37:04.222Z",
  "currentBalance": 1250,
  "daysUntilExpiration": 30
}
```

</details>

## Send program emails with flows

Cevoid can also email members itself, from your [email templates](https://docs.cevoid.com/emails/email-templates.md). Start a blank flow on one of the triggers below in [Settings → Flows](https://app.cevoid.com/settings/flows) and add an _Action_ step: on these triggers, its action is _Send notification_. Set its _Delivery target_ to **Email**, select the template in _Email template_, and publish the flow. For building and publishing a flow, see [Flows](https://docs.cevoid.com/flows.md). Edit the templates in [Settings → Emails (new) → Email templates](https://app.cevoid.com/settings/email-templates), under _Loyalty_.

| Flow trigger | Starts when | Email template |
| --- | --- | --- |
| _Tier earned_ | A member earns a tier | _Reached tier_ |
| _Reward fulfilled_ | A member gets rewards, from an activity, a redeemable reward, a tier, or a purchase incentive | _Earned/redeemed reward_ |
| _Tier evaluation approaching_ | A [tier evaluation reminder](https://docs.cevoid.com/loyalty/tiers/tier-evaluation.md#evaluation-reminder-emails) is due | _Tier evaluation reminder_ |
| _Points expiration approaching_ | A friendly or last [points expiration reminder](https://docs.cevoid.com/loyalty/setup/points.md#expiration-reminder-emails) is due | _Points expiration friendly reminder_, _Points expiration last reminder_ |

- **Tier rewards:** The _Reached tier_ email lists the tier's entry rewards. Rewards that come with a tier get no _Earned/redeemed reward_ email.
- **Two points reminders:** _Points expiration approaching_ starts for both reminders. To send each one its own template, add an _If / else_ step on _Reminder stage_, under _Points expiration_, and give each branch its own _Action_ step.
- **Timing:** Reminders follow the days set in [Points](https://docs.cevoid.com/loyalty/setup/points.md#expiration-reminder-emails) and [Tier evaluation and earning windows](https://docs.cevoid.com/loyalty/tiers/tier-evaluation.md#evaluation-reminder-emails). A reminder that no longer applies when the flow sends it, such as a tier evaluation reminder after the member's tier has changed, isn't sent.
- **Member preferences:** Tier and reward emails go only to members with _Confirmation emails_ on, and reminders only to members with _Reminder emails_ on. Members change these with _Manage email preferences_ in the email's footer.
- **Buttons:** The reminder templates show their button only once you enter a _Button link_

## Related articles

- [Profile data and event sharing](https://docs.cevoid.com/profiles/profile-data-event-sharing.md)
- [Tiers](https://docs.cevoid.com/loyalty/tiers.md)
- [Tier evaluation and earning windows](https://docs.cevoid.com/loyalty/tiers/tier-evaluation.md)
- [Activities overview](https://docs.cevoid.com/loyalty/activities.md)
- [Redeemable rewards](https://docs.cevoid.com/loyalty/rewards/redeemable-rewards.md)

---

Canonical: https://docs.cevoid.com/loyalty/setup/program-emails-and-triggers
