> 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/clevertap/bottom-sheet-nudge.md).

# Bottom-Sheet Nudge

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

{% 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**.
* Access to the matching **CleverTap project**.
* Your app must already be integrated with Digia Engage and CleverTap. Share the [CleverTap developer integration guide](/digia-engage/developer-guides/clevertap.md) 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 in [Component Registry](/digia-engage/user-guides/component-registry.md).
* 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              |

***

## 1. Create a New Campaign

Go to **Campaigns** and choose **New Campaign**.

Use a name that 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 CleverTap later.

<figure><img src="/files/dbg6GyfqMfwiL0qgsI4e" 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 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.

<figure><img src="/files/sM43txwi8OcqUzk9X3ea" 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 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.

<figure><img src="/files/9zRWMcNsVT7grZ6JuN8K" 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 CleverTap 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.

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.

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

***

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

You can now activate this campaign. Nothing shows to your users until the CleverTap campaign is configured and live.

After reviewing, scroll down to **Set up your CleverTap In-App campaign**. Copy the campaign key and the variables config from that section. You will paste those values into the CleverTap `DigiaTemplate`.

<figure><img src="/files/OMIByDPpn0FRjCTkKFwi" alt="Digia Engage Review step with campaign key and variables config highlighted"><figcaption><p>Copy the campaign key and variables config from the CleverTap setup section.</p></figcaption></figure>

<figure><img src="/files/Ztb6ogz830OrBCckts6x" 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>

***

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

<figure><img src="/files/XAbCzdWUyNkSK4xrx9b4" alt="CleverTap In-App campaign setup screen with Single Message selected"><figcaption><p>Create a Single Message In-App campaign and go to the editor.</p></figcaption></figure>

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

<figure><img src="/files/IVT3pvbJeOmyfkOMcBWG" alt="CleverTap template picker showing available In-App templates"><figcaption><p>Use the template picker to move from the default templates to custom code templates.</p></figcaption></figure>

<figure><img src="/files/DmUcgL41aKYwr2Vm137m" alt="CleverTap Custom Code Templates tab showing DigiaTemplate"><figcaption><p>Select <strong>DigiaTemplate</strong>.</p></figcaption></figure>

{% hint style="info" %}
If you do not see **DigiaTemplate**, your developer team has not completed the one-time CleverTap template setup. Share the [CleverTap developer integration guide](/digia-engage/developer-guides/clevertap.md) with them before continuing.
{% endhint %}

***

## 7. 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'}}"
}
```

<figure><img src="/files/xARxIMgcFrWoQ6lGh1D3" alt="CleverTap DigiaTemplate with campaign key and variables filled"><figcaption><p>Paste the campaign key and variables config copied from Digia.</p></figcaption></figure>

***

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

<figure><img src="/files/V551PGsuYu0IAXvBK5Gv" alt="CleverTap Preview and Test modal for an In-App campaign"><figcaption><p>Use Preview &#x26; Test with a test profile or device token before launching.</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 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                   |

{% hint style="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.
{% endhint %}

***

## 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](/digia-engage/developer-guides/clevertap.md#4-how-digia-maps-to-clevertap-campaigns).
