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

# Give customers a birthday voucher

> Run a daily flow that finds the customers whose birthday is tomorrow, gives each one a bonus voucher, and tells them with a push.

This page shows you how to give every customer a bonus voucher for their birthday, without doing it by hand each day. A flow runs every day and finds the customers whose birthday is tomorrow. It gives each of them a voucher, then a push tells them it's waiting.

## What you'll build

```mermaid theme={"system"}
flowchart TB
    A["Member segment<br/>Days to birthday = 1<br/>runs daily"] --> B["Offer<br/>Voucher - Triggered"]
    B --> C["Activity event<br/>Assigned"]
    C --> D[Push]
```

A voucher is an [offer](/business-documentation/activities/offers) whose **Type** is **Voucher - Triggered**. It gives the customer a bonus, never money off. Because the type is a triggered one, the flow decides who gets it. The **Activity event** then passes on each customer who got a voucher, so the push only reaches them.

## Settings

| Block | What to set here |
| - | - |
| **Member segment** | **Days to birthday**, from **Membership**, equal to 1. A **Recurring** schedule that runs **Daily**. |
| **Offer** | **Type** **Voucher - Triggered**, a **Validity period** in days, and a bonus rule under **Discount**. |
| **Activity event** | **Assigned**. The block sets it for you. |
| **Push** | Your birthday message. Its **Segmentation** is set to **Custom** for you once it's connected. |

## Check the campaign's dates

The flow, the voucher and the push all have to fall inside the campaign's dates. So give the campaign dates that cover the whole time you want to give out birthday vouchers, such as a full year. See [Create a campaign](/business-documentation/campaigns/create-a-campaign).

## Find tomorrow's birthdays

Open the campaign's **Orchestration** view, in **Design** mode. From **Segment** in the **Block library**, add a **Member segment** and double-click it. In **Create member segment**, choose **From Scratch**.

On **Add Segment details**, give it a **Member segment name**, such as *Birthday tomorrow*. Then open **Segment attributes**. Open **Membership** and add **Days to birthday**. Keep **Equal** and enter 1.

**Days to birthday** never reads 0. On a customer's birthday, it already counts the days to their next one, so a rule of 0 finds nobody. With 1, the flow finds customers the day before, and their voucher is ready on the day.

## Run it every day

Go back to **Add Segment details**. The schedule panel is at the bottom, named after the flow, such as **Schedule - Flow 1**.

| Field | What to set here |
| - | - |
| **Schedule type** | **Recurring**. |
| **Start date** | The first day you want to find birthdays. It can't be in the past. |
| **End date** | The campaign's end date, or earlier. |
| **Frequency** | **Daily**, with **Every** 1 **day(s)**. |

Select **Save**. Each customer has one birthday a year, so a daily run gives each customer one voucher a year. [Schedule a campaign and check its results](/business-documentation/use-cases/schedule-a-campaign-and-check-its-results) shows the schedule step by step.

## Add the voucher

From **Activity**, add an **Offer**. Connect the **Member segment** to it first, then double-click the **Offer** and choose **From Scratch**. Connecting it first means the **Type** list shows only the types a flow can hand out, and the form leaves out **Segmentation**.

Fill in the offer as described in [Create an offer](/business-documentation/activities/offers/create-an-offer). These settings make it a birthday voucher.

* In **Details**, set **Type** to **Voucher - Triggered** before anything else. That switches on **Pre-activated**. Leave it on, so the voucher works without the customer activating it in the app.
* Set **Validity period** to how many days the customer has to use it, such as 14. The days count from when the flow gives it out. A voucher never lasts past the offer's end date, so set the offer's dates to cover the whole campaign.
* In **Discount**, pick **Basket Discount** or **Product Discount**. Then pick **Bonus Amount** or **Bonus Percent** as the **Offer type**. See [Discount types](/business-documentation/activities/offers/discount-types#offer-type-and-offer-value).
* In **Content**, write the **Offer title** and **Description** customers see in the app.

Select **Publish** and confirm. Publishing the flow doesn't publish the voucher. If you don't publish it here, the flow runs every day and gives nobody a voucher.

## Add a push

From **Trigger**, add an **Activity event** and connect the **Offer** to it. It reads **Assigned**, the one event an offer has.

From **Activity**, add a **Push** and connect the **Activity event** to it. Double-click the **Push** and write your message, as described in [Push notifications](/business-documentation/communication/push). Its **Segmentation** already reads **Custom**, so each customer who gets a voucher gets the push.

Publish the push from its form, too. A push that isn't published when the flow reaches it doesn't go out, and isn't sent later. See [When a triggered communication acts](/business-documentation/communication/triggering#when-a-triggered-communication-acts).

![The Orchestration canvas of the campaign Autumn loyalty journeys, in Design mode, with the Block library and Use templates panels collapsed. One flow runs left to right through four connected blocks. First, a Member segment with the Start tab and the label Flow 5, named Birthday tomorrow but cut to Birthday tom… on the block, with a Publish button: Draft, Start 2026/10/17 15:00, End 2026/12/16 15:00, Repeat Daily, and a collapsed Attributes list. Second, an Offer named Birthday voucher: Draft, Start 2026/10/17 15:00, End 2026/12/30 15:00, Validity period 14 days. Third, an Activity event reading Promotion and Assigned. Last, a Push named Birthday push: Draft, Start 2026/10/17 15:00, End 2026/12/30 15:00. The zoom reads 79%.](https://mintcdn.com/lobyco-4c9fb3ad/WYxSmfbwe1zr5xYw/images/usecase-31-birthday-flow-on-the-canvas.png?fit=max\&auto=format\&n=WYxSmfbwe1zr5xYw\&q=85\&s=bb2706d6b65f25b642e7af3e5891a9d6)

*The birthday flow on the canvas*

## Save and publish the flow

Select **Save** at the top right of the canvas. Then select **Publish** on the **Member segment**, the block with the **Start** tab, and confirm. The schedule starts, and the flow runs every day from its start date.

To see how many customers the next run would find, open the chevron beside **Publish** and choose **Count**. It doesn't give out vouchers or send anything.

## Check the result

The day after the first run, check these three things.

* Open **History** on the canvas. Each day has a run card started by **Scheduled**, with the status **Done**.
* Select a run, then the **Member segment**. Its **Count** is how many customers had a birthday the next day.
* Find one of those customers in **[Members](/business-documentation/self-service/find-a-customer)** and open their **Coupons** tab. The voucher is there, with its **Valid from** and **Valid to** dates.

[Follow each run in History](/business-documentation/campaigns/schedule-and-run-a-campaign#follow-each-run-in-history) explains every run status.

A run that fails isn't tried again. If a run fails, fix it and run the flow by hand with **Execute** the same day. [Or run it now](/business-documentation/campaigns/schedule-and-run-a-campaign#or-run-it-now) shows how. The next day is too late, because **Days to birthday** no longer reads 1 for those customers.

## Variation: greet each customer by name

The push after an **Activity event** can only use the details the event carries. To add a customer's details, such as their first name, build the push in a second flow, with an **Enrich** block.

```mermaid theme={"system"}
flowchart LR
    A["Member segment<br/>Days to birthday = 1"] --> B["Enrich<br/>First name"]
    B --> C[Push]
```

1. To reuse the first segment's rules, open it and choose **Save as template** from the arrow beside **Save**. Add a second **Member segment** with **From Template**. Give it a daily schedule that starts later than the first flow's, for example an hour after. The two flows run separately, so the later start gives the first flow time to hand out the vouchers before the push goes.
2. Add an **Enrich** and connect the new segment to it. In **Select elements**, tick the **Membership** table and its **First name** column. Tick **Do not remove member without result**, so customers with no first name on file still get the push.
3. Connect the **Enrich** to a **Push**. In its **Title** or **Message**, type `{` and pick the first name from the list. Write the message so it still reads well for a customer with no first name on file.
4. Remove the **Activity event** and the **Push** from the first flow, so customers don't get two pushes.

[Personalise a triggered communication](/business-documentation/communication/triggering#personalise-a-triggered-communication) explains which details a communication can use. The [Block reference](/business-documentation/campaigns/orchestration-canvas/block-reference#enrich) lists every Enrich setting.

## Related

* [Offer types](/business-documentation/activities/offers/offer-types) explains **Voucher - Triggered** and the other reward types.
* [Create an offer](/business-documentation/activities/offers/create-an-offer) covers every field on the offer form.
* [Schedule and run a campaign](/business-documentation/campaigns/schedule-and-run-a-campaign) describes every schedule field, and running a flow by hand.
* [Block reference](/business-documentation/campaigns/orchestration-canvas/block-reference) describes the **Member segment**, **Activity event** and **Enrich** blocks in full.
* [Welcome new customers](/business-documentation/use-cases/welcome-new-customers-with-a-sign-up-journey) builds the same offer-and-push flow, started by each sign-up, with a **Gift** coupon.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.