# Bottom-Sheet Nudge with CleverTap

URL: https://www.digia.tech/docs/user/clevertap/bottom-sheet-nudge

CleverTap Change your setup in the sidebar
This guide walks you through creating a **bottom-sheet Nudge** in the Digia Engage Dashboard, connecting it to **CleverTap** , and testing it on a device. By the end, you should have:

- a bottom-sheet Nudge designed and active in Digia Engage
- a CleverTap In-App campaign that points to that Digia campaign
- a test device where you can trigger and verify the experience
A Nudge is an overlay shown above the app screen. Use a bottom sheet when you want the message to feel contextual and lightweight, such as:

- a limited-time offer after a product is added to cart
- a feature announcement on app launch
- a reminder to complete setup
- a rating or feedback prompt
info
Prefer a quick visual walkthrough first? Watch [Creating Native Nudge Campaigns Without App Releases](https://www.youtube.com/watch?v=m5JjB_tKsxI) .

## Before You Start

Make sure you have:

- Access to the correct **Digia Engage project** .
- Access to the matching **CleverTap project** .
- Your app must already be integrated with Digia Engage and CleverTap. Share theCleverTap developer integration guide with your app team if this setup is not complete yet.
- The audience and trigger event decided in CleverTap, for example `Product Added To Cart` .
- If you plan to target specific app screens, review usable pages inComponent Registry .
- Any content ready: headline, body copy, image URL, CTA text, deep link, coupon code, or offer details.
- A test profile or test segment in CleverTap so you can verify the campaign before launch.
If you plan to personalize the Nudge, decide the variables before you build. For example, a campaign might use:

| 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 that your team can recognize later, such as:

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

On the **Basics** step, enter the campaign name, select **Nudge** , and choose your builder ( **Canvas** or **Classic** ). Digia creates a campaign key from the name. You will use this key in CleverTap later.

![Digia Engage campaign Basics step with campaign name, Nudge type, and builder selection highlighted](/docs/img/engage/user-guides/bottomsheet_step1_light.webp) ![Digia Engage campaign Basics step with campaign name, Nudge type, and builder selection highlighted](/docs/img/engage/user-guides/bottomsheet_step1_dark.webp) Select **Nudge** as the campaign type before continuing.
## Add Variables, If Needed

The **Setup** step lets you start from a template or build from scratch, configure target screens, and declare variables that the UI will use.

![Digia Engage Setup step showing campaign starting point, template selection, target screens, and variables](/docs/img/engage/user-guides/bottomsheet_step2_light.webp) ![Digia Engage Setup step showing campaign starting point, template selection, target screens, and variables](/docs/img/engage/user-guides/bottomsheet_step2_dark.webp) Choose a template or start from scratch, and configure target screens and variables in Setup.If your Nudge uses dynamic values, add them on this step before you design the UI.

Examples:

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

![Digia Engage Setup step with campaign variables and fallback values](/docs/img/engage/user-guides/bottomsheet_step3_light.webp) ![Digia Engage Setup step with campaign variables and fallback values](/docs/img/engage/user-guides/bottomsheet_step3_dark.webp) Add only the variables your Nudge UI will use, along with fallback values.
## Design the Nudge

Use the visual builder to add and edit the content.

The builder has three main areas:

- The left panel lists the layers in the Nudge.
- The middle panel shows the live mobile preview.
- The right panel shows the attributes for whichever layer is selected.
A simple campaign might use this structure:

| Layer | Example | Image | Product, offer, or brand visual | Text | `Get 20% off your next order` | Text | `Use {{coupon}} before midnight.` | Button | `Shop now` | Button or close icon | `Maybe later` 

Supported widgets include images, text, buttons, layout groups, gaps, and close actions. Keep the bottom sheet focused on one message and one primary action. Use short headline/body copy, preview the design on the smallest device size your campaign supports, and make sure text does not clip before you continue.

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

![Digia Engage Nudge builder with layer selection, preview, properties, and continue highlighted](/docs/img/engage/user-guides/bottomsheet_step4_light.webp) ![Digia Engage Nudge builder with layer selection, preview, properties, and continue highlighted](/docs/img/engage/user-guides/bottomsheet_step4_dark.webp) Select elements, check the mobile preview, adjust properties, and continue when the Nudge design is ready.info
Once the Nudge UI is saved, useLive Testing Campaigns to send it to a connected debug device and check the experience before moving into delivery, review, and CleverTap setup.

## Set Delivery Rules in Digia

On the **Delivery** step, choose how often Digia is allowed to show this Nudge to the same user.

Common choices:

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

CleverTap controls who qualifies and when the trigger happens. Digia's frequency cap controls whether the Nudge should still render after CleverTap fires.

For example, CleverTap may fire every time a user adds a product to cart, but Digia can still limit the Nudge to once per session.

![Digia Engage Delivery step with frequency controls highlighted](/docs/img/engage/user-guides/bottomsheet_step5_light.webp) ![Digia Engage Delivery step with frequency controls highlighted](/docs/img/engage/user-guides/bottomsheet_step5_dark.webp) Choose the frequency cap that matches how often the Nudge should render for the same user.
## Review, Activate, and Copy CleverTap Config

On the **Review** step, check:

- The campaign name is correct.
- The campaign type is **Nudge** .
- The surface is a bottom sheet.
- The content and CTA are ready.
- The frequency cap matches your campaign plan.
Review the campaign settings and check the mobile preview before continuing.

![Digia Engage Review step with campaign overview and mobile preview](/docs/img/engage/user-guides/bottomsheet_step6_light.webp) ![Digia Engage Review step with campaign overview and mobile preview](/docs/img/engage/user-guides/bottomsheet_step6_dark.webp) Review the Digia setup and preview the bottom sheet before continuing.In the **Integration details** section, select the **CleverTap** tab. Copy the campaign key and variables config to paste into the CleverTap `DigiaTemplate` . When you are ready, choose **Save & exit** or **Activate** . Nothing shows to your users until the CleverTap campaign is configured and live.

![Digia Engage Review step with CleverTap integration details, campaign key, and activation controls](/docs/img/engage/user-guides/bottomsheet_clevertap_light.webp) ![Digia Engage Review step with CleverTap integration details, campaign key, and activation controls](/docs/img/engage/user-guides/bottomsheet_clevertap_dark.webp) Copy the campaign key and variables config from the CleverTap integration details tab.
## Create the CleverTap In-App Campaign

Now switch to CleverTap. This is where you decide who should see the Nudge and when it should appear.

Create an **In-App** campaign. Configure the audience, trigger, schedule, and priority as you normally would in CleverTap. For the first test, keep the audience narrow so only your test users qualify.

![CleverTap In-App campaign setup screen with Single Message selected](/docs/img/engage/user-guides/clevertap-create-inapp-campaign.webp) Create a Single Message In-App campaign and go to the editor.In CleverTap's **What** section, keep the message type set to **Single Message** and select **Go To Editor** . In the editor, switch to **Custom Code Templates** and choose **DigiaTemplate** .

![CleverTap template picker showing available In-App templates](/docs/img/engage/user-guides/clevertap-basic-templates.webp) Use the template picker to move from the default templates to custom code templates.![CleverTap Custom Code Templates tab showing DigiaTemplate](/docs/img/engage/user-guides/clevertap-digia-template-card.webp) Select **DigiaTemplate** .info
If you do not see **DigiaTemplate** , your developer team has not completed the one-time CleverTap template setup. Share theCleverTap developer integration guide with them before continuing.

## Link CleverTap to the Digia Campaign

In the CleverTap campaign message/template step, set the Digia campaign key.

Add:

| Field | Value | `digia_campaign_key` | The campaign key copied from Digia 

If your Digia campaign uses variables, also pass them from CleverTap.

Use the variables config copied from Digia as the starting point. Replace the sample profile paths only if your CleverTap project stores these values under different user properties.

```json
{
  "coupon": "{{Profile.coupon | default:'SAVE20'}}",
  "first_name": "{{Profile.first_name | default:'Aarav'}}",
  "expiry_time": "{{Profile.expiry_time | default:'4 PM'}}"
}
```

![CleverTap DigiaTemplate with campaign key and variables filled](/docs/img/engage/user-guides/clevertap-digia-template-filled.webp) Paste the campaign key and variables config copied from Digia.
## Test the Campaign End to End

Before launching to a real audience, test the full path from CleverTap trigger to Digia render:

1. Use a test audience in CleverTap.
2. Activate or preview the CleverTap 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.
![CleverTap Preview and Test modal for an In-App campaign](/docs/img/engage/user-guides/clevertap-preview-test.webp) Use Preview & Test with a test profile or device token before launching.
### 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 user qualifies in CleverTap | CleverTap owns audience and trigger rules | The trigger event fired | CleverTap only sends the campaign after its trigger | Frequency cap has not already been reached | Digia may suppress repeat renders 

info
CleverTap can sometimes take up to an hour to start delivering a new campaign. If the campaign still does not appear after that, reach out to Digia support.

## Launch Checklist

Before going live, confirm:

- Digia campaign is active.
- CleverTap campaign uses **DigiaTemplate** .
- `digia_campaign_key` matches the Digia campaign key.
- Variables are valid JSON, if used.
- Audience and trigger rules are correct in CleverTap.
- Frequency cap is set in Digia.
- The campaign was tested on at least one real device.
Once these are complete, schedule or activate the CleverTap campaign for the intended audience.

## What to Measure

After launch, review:

| Metric | What it tells you | Impressions | How often the Nudge was shown | Primary CTA clicks | How many users took the main action | Dismissals | How many users closed the Nudge | Conversion event in CleverTap | Whether the campaign moved the business metric 

Use CleverTap for audience and conversion analysis. Use Digia campaign reporting to understand how the rendered experience performed.

## Recap

1. Create a **Nudge** campaign in Digia.
2. Add any variables used in the UI.
3. Design the bottom sheet and set delivery rules.
4. Create a CleverTap **In-App** campaign using `DigiaTemplate` .
5. Paste the campaign key as `digia_campaign_key` .
6. Paste the variables config only if your Digia content uses variables.
7. Test on a real device.
8. Launch from CleverTap.
For the technical mapping between Digia and CleverTap, see [How Digia Maps to CleverTap Campaigns](/docs/developer/clevertap/#4-how-digia-maps-to-clevertap-campaigns) .
