> 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/survey.md).

# In-App Survey

This guide walks you through creating a simple **NPS Survey** in the Digia Engage Dashboard, attaching it to a Digia Survey campaign, connecting that campaign to **CleverTap**, and testing it on a device.

By the end, you should have:

* a reusable NPS Survey built in Digia Engage
* a Survey campaign that points to that Survey
* a CleverTap In-App campaign that triggers the Digia Survey campaign
* a test device where you can complete the Survey end to end

Surveys are useful when you want structured feedback inside the app, such as:

* NPS or CSAT collection
* post-purchase feedback
* onboarding feedback
* cancellation or churn-reason capture
* lightweight research before launching a feature

Unlike a Nudge or Guide, a Survey has two parts:

| Part         | What it controls                                                                                                 |
| ------------ | ---------------------------------------------------------------------------------------------------------------- |
| **Survey**   | The questionnaire: welcome screen, questions, answer choices, branching, result pages, and survey-level settings |
| **Campaign** | The delivery wrapper: campaign key, optional variables, frequency cap, and CleverTap handoff values              |

{% hint style="info" %}
This guide keeps the Survey itself intentionally simple. For deeper survey design, read [Understanding and Building Surveys](/digia-engage/experience-guides/surveys/understanding-surveys.md), [Survey Blocks Reference](/digia-engage/experience-guides/surveys/blocks-reference.md), [Survey Branching and Logic](/digia-engage/experience-guides/surveys/branching-logic.md), and [Survey Global Settings](/digia-engage/experience-guides/surveys/global-settings.md).
{% endhint %}

{% hint style="info" %}
Prefer a quick visual walkthrough first? Watch [Creating Native NPS Survey Experiences](https://www.youtube.com/watch?v=UFR8_nYLyfk).
{% 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 `Order Delivered`, `Checkout Completed`, or `App Launched`.
* 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 CleverTap so you can verify the Survey before launch.

For this walkthrough, we will build a default Numeric 0-10 NPS Survey with:

| Field              | Value                                 |
| ------------------ | ------------------------------------- |
| Survey name        | `NPS Feedback Survey`                 |
| Main question      | `How likely are you to recommend us?` |
| Survey variables   | None                                  |
| Delivery frequency | `Until completed`                     |

Variables are optional. This NPS example does not use variables, so the CleverTap `variables` value will be `{}`.

***

## 1. Create the Survey

Go to **Surveys** and choose **New survey**.

Use a name that your team can recognize later:

```
NPS Feedback Survey
```

This name is internal. Respondents do not see it.

<figure><img src="/files/RVS2FL5ScWPo9rWKY2Qj" alt="Digia Engage New survey modal with survey name and create button highlighted"><figcaption><p>Create the reusable Survey before creating the campaign that will deliver it.</p></figcaption></figure>

***

## 2. Add the Default NPS Block

In the Survey builder, choose **Add a block**, open the **NPS** category, and select **Numeric 0-10**.

<figure><img src="/files/x2OCl8Zx1LZAPrFtRRtJ" alt="Digia Engage Survey block picker with NPS and Numeric 0-10 highlighted"><figcaption><p>Use the Numeric 0-10 block for a standard NPS-style question.</p></figcaption></figure>

Keep the default NPS scale and update the question copy:

```
How likely are you to recommend us?
```

The Survey builder has three main areas:

* The left panel lists Survey blocks and result pages.
* The middle panel shows the live mobile preview.
* The right panel shows properties for the selected block or element.

For this first NPS Survey, keep the default welcome screen, Numeric 0-10 block, and result page. This keeps the campaign easy to test before you add branching or custom styling.

<figure><img src="/files/G9ZaCHKWm97wzyfwpcSO" alt="Digia Engage Survey builder with blocks, preview, and properties highlighted"><figcaption><p>Edit the NPS question in the preview and keep the default block properties unless you need a visual adjustment.</p></figcaption></figure>

***

## 3. Check Logic and Survey Settings

For this default NPS Survey, keep **Logic** set to **Linear**. Every respondent should see the welcome screen, answer the NPS question, and then see the result page.

Use **Settings** only if you need to change survey-level behavior such as:

* welcome screen visibility
* progress indicator
* button labels
* close button behavior
* dialog or bottom-sheet display
* auto-advance behavior

You do not need to change these settings for the default NPS example.

<figure><img src="/files/ktQ2JZO7JEDydXXCJaQE" alt="Digia Engage Survey Logic tab with flow and branching controls highlighted"><figcaption><p>Keep the flow linear for the default NPS Survey.</p></figcaption></figure>

{% hint style="info" %}
When your survey needs multiple question types, branching, or survey-level styling, use the deeper Survey guides before setting up delivery.
{% endhint %}

***

## 4. Create a Survey Campaign

After the Survey is ready, go to **Campaigns** and choose **New Campaign**.

Use a campaign name that describes the delivery use case:

```
NPS Feedback Survey - CleverTap
```

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

<figure><img src="/files/XQDuO5ch7P7oGznWQGoH" alt="Digia Engage campaign Basics step with campaign name and Survey type highlighted"><figcaption><p>Select <strong>Survey</strong> as the campaign type so you can attach survey content.</p></figcaption></figure>

***

## 5. Attach the NPS Survey

On the **Choose UI** step, select the **NPS Feedback Survey** you created earlier.

The Survey content stays reusable. The campaign controls when that Survey is delivered and which campaign key CleverTap should send.

<figure><img src="/files/c5k6gQ7AazfsMgvuf3jU" alt="Digia Engage Attach a survey step with NPS Feedback Survey selected"><figcaption><p>Attach the saved NPS Survey to this campaign.</p></figcaption></figure>

{% hint style="info" %}
Once the Survey is attached and saved, use [Live Testing Campaigns](/digia-engage/user-guides/live-testing.md) to send it to a connected debug device and confirm the prompt, result page, and submit flow before moving into delivery, review, and CleverTap setup.
{% endhint %}

***

## 6. Set Delivery Rules in Digia

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

For most feedback Surveys, **Until completed** is a good starting point. It lets the Survey show again in a later session until the user submits it, then stops.

<figure><img src="/files/7R0W46QT9VMsQY5V4Hoo" alt="Digia Engage Delivery step with frequency controls and Until completed highlighted"><figcaption><p>Use a frequency cap that avoids repeatedly asking users after they complete the Survey.</p></figcaption></figure>

Common choices:

| Frequency cap        | When to use it                                            |
| -------------------- | --------------------------------------------------------- |
| **Until completed**  | Feedback Surveys that should stop after submission        |
| **Once ever**        | One-time research or NPS collection                       |
| **Once per session** | Short contextual polls                                    |
| **Once per day**     | Surveys that can be shown again later, but not repeatedly |

CleverTap controls who qualifies and when the trigger happens. Digia controls whether the Survey should still render after CleverTap fires.

***

## 7. Review and Copy CleverTap Config

On the **Review** step, check:

* The campaign name is correct.
* The campaign type is **Survey**.
* The correct NPS Survey is attached.
* The Survey has the expected blocks.
* The frequency cap matches your feedback plan.

You can save as draft while CleverTap setup is still pending, or activate when the Survey campaign is ready. Nothing shows to your users until the CleverTap campaign is configured and live.

<figure><img src="/files/XasqZx1g41zDBSjnGfgX" alt="Digia Engage Survey campaign Review step with summary and launch checks highlighted"><figcaption><p>Review the campaign summary and launch checks before saving or activating.</p></figcaption></figure>

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

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

For this default NPS Survey, the variables value is:

```json
{}
```

***

## 8. Create the CleverTap In-App Campaign

Now switch to CleverTap. This is where you decide who should see the Survey 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 %}

***

## 9. Link CleverTap to the Digia Survey

In the CleverTap campaign message/template step, paste the values copied from Digia.

| DigiaTemplate field  | Value                           |
| -------------------- | ------------------------------- |
| `digia_campaign_key` | `nps_feedback_survey_clevertap` |
| `variables`          | `{}`                            |

Use the exact campaign key copied from your Digia campaign. If your campaign key is different because you used a different campaign name, paste the value shown in your own Digia setup section.

<figure><img src="/files/1VcGg09LaTbJ1qc1L0tI" alt="CleverTap DigiaTemplate with campaign key and variables fields"><figcaption><p>Paste the Survey campaign key and variables config into <strong>DigiaTemplate</strong>.</p></figcaption></figure>

Keep the Survey questions, answer options, branching, and result pages in Digia. CleverTap should only carry the campaign key and optional variables.

***

## 10. Test the Survey 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 CleverTap event from a test device.
4. Confirm the Survey appears in the app.
5. Select an NPS score and submit the Survey.
6. Confirm the result page appears.
7. Confirm the Survey does not appear again after completion, if you selected **Until completed**.

<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 Survey does not appear, check:

| What to check                               | Why it matters                                       |
| ------------------------------------------- | ---------------------------------------------------- |
| The Digia campaign is active                | Draft campaigns will not render for users            |
| The NPS Survey is attached to the campaign  | The campaign needs saved Survey content to render    |
| `digia_campaign_key` matches exactly        | The key is case-sensitive                            |
| **DigiaTemplate** is available in CleverTap | The In-App campaign must use the registered template |
| 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 after completion   |
| Variables are valid JSON                    | For this example, the value should be `{}`           |

{% 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:

* Survey content is complete.
* Digia Survey campaign is active.
* The correct NPS Survey is attached to the campaign.
* CleverTap campaign uses **DigiaTemplate**.
* `digia_campaign_key` matches the Digia campaign key.
* `variables` is valid JSON.
* Audience and trigger rules are correct in CleverTap.
* Frequency cap is set in Digia.
* The Survey 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 Survey was shown                        |
| Starts                              | How many users began the Survey                       |
| Completions                         | How many users submitted the Survey                   |
| NPS score distribution              | How users are distributed across the 0-10 scale       |
| Detractors, passives, and promoters | Which user groups need follow-up                      |
| Drop-off by step                    | Where respondents stopped                             |
| Conversion event in CleverTap       | Whether the Survey audience behaved differently later |

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

***

## Recap

1. Create the **NPS Feedback Survey** in Digia.
2. Add the default **Numeric 0-10** NPS block.
3. Keep logic and survey settings at their defaults.
4. Create a **Survey** campaign in Digia.
5. Attach the saved NPS Survey to the campaign.
6. Set delivery rules, usually **Until completed** for feedback Surveys.
7. Copy the campaign key and `{}` variables config from Digia.
8. Create a CleverTap **In-App** campaign using `DigiaTemplate`.
9. Paste the key as `digia_campaign_key` and paste `{}` into `variables`.
10. Test on a real device before launch.

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