> For the complete documentation index, see [llms.txt](https://docs.digia.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digia.tech/digia-engage/user-guides/moengage/bottom-sheet-nudge.md).

# Bottom-Sheet Nudge

This guide walks you through creating a **bottom-sheet Nudge** in Digia Engage, connecting it to **MoEngage**, and testing it on a device. By the end, you should have a designed Nudge in Digia, a MoEngage campaign that points to it, and a test device where you can verify the experience.

Use a bottom sheet when you want a contextual overlay, such as an offer, announcement, setup reminder, or rating prompt. Dialog Nudges follow the same flow; choose a dialog layout in the builder instead of a bottom sheet.

{% hint style="info" %}
Prefer a quick visual walkthrough first? Watch [Creating Native Nudge Campaigns Without App Releases](https://www.youtube.com/watch?v=m5JjB_tKsxI).
{% endhint %}

***

## Before You Start

Make sure you have:

* Access to the correct **Digia Engage project** created with **MoEngage** as the CEP integration.
* Access to the matching **MoEngage project**.
* Your app must already be integrated with Digia Engage and MoEngage. Share the [MoEngage developer integration guide](/digia-engage/developer-guides/moengage.md) with your app team if this setup is not complete yet.
* The audience and trigger event decided in MoEngage.
* If you plan to target specific app screens, review usable pages in [Component Registry](/digia-engage/user-guides/component-registry.md).
* A test profile or test segment in MoEngage so you can verify the campaign before launch.
* Any content ready: headline, body copy, image URL, CTA text, deep link, coupon code, or offer details.

{% hint style="info" %}
This guide is written for product managers and marketers. Developer-only setup is linked above so you know what must already be complete before campaign testing.
{% endhint %}

If you plan to personalize the Nudge, decide the variables before you build.

| Variable      | Example value | Used for                  |
| ------------- | ------------- | ------------------------- |
| `coupon`      | `SAVE20`      | Button copy or offer copy |
| `first_name`  | `Aarav`       | Personalized greeting     |
| `expiry_time` | `4 PM`        | Urgency text              |

***

## 1. Create a New Campaign

Go to **Campaigns** and choose **New Campaign**. Use a name your team can recognize later, such as:

```
Cart Offer Bottom Sheet - July
```

On the **Basics** step, enter the campaign name, select **Nudge**, and continue. Digia creates a campaign key from the name. You will use this key in MoEngage later.

<figure><img src="/files/3oFYAE3ZWMZW6ZGayveI" alt="Digia Engage campaign Basics step with the Nudge campaign type highlighted"><figcaption><p>Select <strong>Nudge</strong> as the campaign type before continuing.</p></figcaption></figure>

***

## 2. Add Variables, If Needed

The **Setup** step shows the campaign key and lets you declare variables that the UI will use. If your Nudge uses dynamic values, add them before you design the UI.

| In the Nudge copy                    | Variable name |
| ------------------------------------ | ------------- |
| `Use {{coupon}} at checkout`         | `coupon`      |
| `Offer ends at {{expiry_time}}`      | `expiry_time` |
| `Hi {{first_name}}, this is for you` | `first_name`  |

Variables are optional. If every piece of text is fixed, you can skip this part.

<figure><img src="/files/1xT6hiHPICFJw6JAlnLe" alt="Digia Engage Setup step with campaign key and variables highlighted"><figcaption><p>Add only the variables your Nudge UI will use.</p></figcaption></figure>

***

## 3. Design the Nudge

Use the visual builder to add and edit the content. The left panel lists layers, the middle panel shows the mobile preview, and the right panel shows attributes for the selected layer.

A simple campaign might include an image, headline, short body copy, one primary button, and a close action. Keep the message focused on one outcome, preview it on the smallest device size you support, and make sure text does not clip.

For the primary CTA, choose the tap behavior, such as opening a deep link, opening a URL, copying a code, or closing the sheet.

<figure><img src="/files/WY5SmfcUh4EmJRoAxMNC" alt="Digia Engage Nudge builder with layer selection, preview, properties, and continue highlighted"><figcaption><p>Select a layer, check the preview, adjust its properties, and continue when the Nudge is ready.</p></figcaption></figure>

{% hint style="info" %}
Once the Nudge UI is saved, use [Live Testing Campaigns](/digia-engage/user-guides/live-testing.md) to send it to a connected debug device and check the experience before moving into delivery, review, and MoEngage setup.
{% endhint %}

***

## 4. Set Delivery Rules in Digia

On the **Delivery** step, choose how often Digia is allowed to show this Nudge to the same user. MoEngage controls who qualifies and when the trigger happens. Digia controls whether the Nudge should still render after MoEngage fires.

| Frequency cap         | When to use it                                |
| --------------------- | --------------------------------------------- |
| **Once ever**         | One-time announcements or onboarding messages |
| **Once per session**  | Cart, checkout, or browsing prompts           |
| **Once per day**      | Daily offers or reminders                     |
| **N times then stop** | Reminders that should eventually stop         |

<figure><img src="/files/7uKzxShhbMFuBE5EXZyw" alt="Digia Engage Delivery step with frequency controls highlighted"><figcaption><p>Choose the frequency cap that matches how often the Nudge should render for the same user.</p></figcaption></figure>

***

## 5. Review and Copy MoEngage Config

On the **Review** step, check the name, campaign type, surface, content, CTA, and frequency cap. You can save as draft while MoEngage setup is pending, or activate when the Nudge is ready. Nothing shows to users until the MoEngage campaign is configured and live.

<figure><img src="/files/ciwTEwpe0529ZNflWzyl" alt="Digia Engage Review step with the readiness checklist highlighted"><figcaption><p>Review the Digia setup before saving the draft or activating the campaign.</p></figcaption></figure>

Copy the Digia campaign key from the MoEngage setup section in Digia. If the campaign uses variables, copy the variables config too.

***

## 6. Create the MoEngage Self-Handled In-App Campaign

Create a MoEngage Self-Handled In-App campaign. MoEngage decides the audience, trigger event, schedule, and priority. Digia decides what renders after the campaign fires.

<figure><img src="/files/NgXcfmlGxv0pd1j7WKrz" alt="MoEngage Target users step for the Cart Offer Bottom Sheet campaign"><figcaption><p>Name the MoEngage campaign, choose the target platforms, select the trigger, and define the audience.</p></figcaption></figure>

On the content step, choose **Start from scratch** and select **Self-Handled**.

<figure><img src="/files/xwbIRHqxmoPM6jDPTe0C" alt="MoEngage content step with the Self-Handled option"><figcaption><p>Use Self-Handled so MoEngage sends the Digia campaign payload to your app.</p></figcaption></figure>

***

## 7. Link MoEngage to the Digia Campaign

In MoEngage, go to the campaign data or key-value pairs section and add the Digia payload. Use `digia_campaign_key` for the campaign key and pass `variables` as plain JSON only when your Digia UI uses variables.

**MoEngage campaign data / key-value pairs**

```json
{
  "digia_campaign_key": "cart_offer_bottom_sheet_july",
  "variables": {
    "coupon": "SAVE20",
    "first_name": "Aarav",
    "expiry_time": "4 PM"
  }
}
```

Use the exact campaign key copied from your own Digia campaign. Keep the Nudge layout, copy, actions, and frequency cap in Digia; MoEngage should only carry the campaign key and optional runtime variables.

<figure><img src="/files/1gwOHHhhvmhVEvVLfEV5" alt="MoEngage Self-Handled content editor with Digia campaign key and variables"><figcaption><p>Paste the campaign key and variables payload into the Self-Handled content editor.</p></figcaption></figure>

***

## 8. Test the Campaign End to End

1. Use a test audience in MoEngage.
2. Activate or preview the MoEngage campaign for that test audience.
3. Trigger the event from a test device.
4. Confirm the bottom sheet appears in the app.
5. Tap the primary CTA and confirm it performs the expected action.
6. Dismiss the Nudge and confirm the frequency cap behaves as expected.

<figure><img src="/files/7RHF06Cvn5s96c69BtFA" alt="MoEngage test campaign modal"><figcaption><p>Use MoEngage's test campaign flow to send the Nudge to a test user or device.</p></figcaption></figure>

<figure><img src="/files/B2r32fQwJaciUWaMcUmM" alt="MoEngage schedule and goals step"><figcaption><p>Before publishing, confirm schedule, priority, delivery controls, and goals.</p></figcaption></figure>

### If the campaign does not appear, check:

| What to check                                      | Why it matters                                             |
| -------------------------------------------------- | ---------------------------------------------------------- |
| The Digia campaign is active                       | Draft campaigns will not render for users                  |
| `digia_campaign_key` matches exactly               | The key is case-sensitive                                  |
| The MoEngage campaign uses **Self-Handled In-App** | The Digia plugin only receives the expected payload format |
| The user qualifies in MoEngage                     | MoEngage owns audience and trigger rules                   |
| The trigger event fired                            | MoEngage only sends the campaign after its trigger         |
| Frequency cap has not already been reached         | Digia may suppress repeat renders                          |

{% hint style="info" %}
MoEngage can sometimes take time to start delivering a newly activated campaign. If the campaign still does not appear after your usual campaign propagation window, reach out to Digia support.
{% endhint %}

***

## Launch Checklist

* Digia campaign is active.
* MoEngage campaign uses **Self-Handled In-App**.
* `digia_campaign_key` matches the Digia campaign key.
* Variables are valid.
* Audience and trigger rules are correct in MoEngage.
* Frequency cap is set in Digia.
* The campaign was tested on at least one real device.

***

## Recap

1. Create a **Nudge** campaign in Digia.
2. Add only the variables the UI needs.
3. Design and preview the bottom sheet.
4. Set Digia delivery rules.
5. Copy the campaign key into a MoEngage campaign and test on device.
