Bottom-Sheet Nudge with MoEngage
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.
Prefer a quick visual walkthrough first? Watch Creating Native Nudge Campaigns Without App Releases.
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 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.
- 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.
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.
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 |
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.

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.

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.

Once the Nudge UI is saved, use Live Testing Campaigns to send it to a connected debug device and check the experience before moving into delivery, review, and MoEngage setup.
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 |

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.

Copy the Digia campaign key from the MoEngage setup section in Digia. If the campaign uses variables, copy the variables config too.
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.

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

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
{
"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.

Test the Campaign End to End
- Use a test audience in MoEngage.
- Activate or preview the MoEngage campaign for that test audience.
- Trigger the event from a test device.
- Confirm the bottom sheet appears in the app.
- Tap the primary CTA and confirm it performs the expected action.
- Dismiss the Nudge and confirm the frequency cap behaves as expected.


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 |
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.
Launch Checklist
- Digia campaign is active.
- MoEngage campaign uses Self-Handled In-App.
digia_campaign_keymatches 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
- Create a Nudge campaign in Digia.
- Add only the variables the UI needs.
- Design and preview the bottom sheet.
- Set Digia delivery rules.
- Copy the campaign key into a MoEngage campaign and test on device.