# Digia Engage

Digia Engage is a native UI rendering layer for your **Customer Engagement Platform (CEP)**. It plugs into the CEP you already use (**CleverTap**, **MoEngage**, or **WebEngage**) and renders in-app experiences from layouts you design in the [Digia Engage Dashboard](https://engage.digia.tech).

When a CEP campaign triggers, the matching Digia plugin intercepts the payload and renders a **100% native** experience on the device: bottom sheets, dialogs, inline banners, tooltips, and spotlights. No WebViews, no campaign UI code, and no app-store release to change what's shown.

***

## Why Digia Engage

Shipping an in-app experience, even a simple banner or tooltip, usually means a developer has to build it, get it reviewed, merge it, and ship an app release. That can take days or weeks.

Digia removes that bottleneck. A developer integrates the SDK **once**. After that, product and marketing teams design experiences in the Digia Engage Dashboard and launch them through existing CEP campaigns, with no further code changes and no new release.

CEPs are strong at deciding **who** to target and **when** to fire, but their native in-app rendering is typically WebView-based, visually rigid, and evaluated server-side on every trigger. Digia keeps the CEP for targeting and triggering and replaces only the rendering layer. That layer is native, pre-fetched, and fast.

***

## How It Works

Digia complements your CEP; it does not replace it. Responsibilities split cleanly:

| Question               | Owner    | How                                               |
| ---------------------- | -------- | ------------------------------------------------- |
| **Who** sees it?       | Your CEP | Audience segmentation, user properties            |
| **When** does it show? | Your CEP | Event triggers, journey rules                     |
| **What** is shown?     | Digia    | A layout you design in the Digia Engage Dashboard |

Every CEP campaign carries a corresponding **Digia Campaign Key**. That key maps to a Digia campaign, which internally holds everything about what to render, whether that is a nudge, a guide, or inline content. At runtime:

1. **App start.** The SDK pre-fetches and caches all your Digia campaigns.
2. **Trigger.** The CEP fires a campaign for a matched user.
3. **Intercept.** The Digia plugin catches the payload and reads the Digia Campaign Key.
4. **Render.** The SDK resolves the key against its local cache and renders the native experience, with no per-trigger network round-trip.

Because evaluation runs locally against a pre-fetched cache, experiences display almost instantly. How to set the Digia Campaign Key in each CEP is covered in the integration guides below.

***

## Experience Types

Digia Engage supports three experience types, each backed by a different SDK component.

### Nudge

An overlay rendered above all app content, such as a bottom sheet or dialog. Common uses are promotions, announcements, and upgrade or rating prompts. Rendered by `DigiaHost`.

Once the SDK is integrated, a nudge can be shown anywhere with no extra developer work. The trigger lives in the CEP itself, so whatever targeting and triggering capabilities your CEP offers can be used to fire it.

### Guide

A tooltip or spotlight anchored to a specific UI element, used for single- or multi-step onboarding tours and feature discovery. Rendered by `DigiaHost` and anchored with `DigiaAnchor`.

Guides need a one-time developer step: wrap any view with `DigiaAnchor` and it becomes targetable. An anchor-less spotlight is coming soon.

### Inline

Content injected directly into your layout, such as banners, cards, and promotional strips inside a feed. Rendered by `DigiaSlot`.

A developer places a `DigiaSlot` at each spot where inline content can appear. Only then can PMs and PMMs show or change content in that spot, with no further code.

***

## SDK Support

| Platform         | Package                                                                                          | Status      | Supported CEP Plugins                                                                                                                                                                                                                                                                                                                                                |
| ---------------- | ------------------------------------------------------------------------------------------------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Flutter**      | [`digia_engage`](https://pub.dev/packages/digia_engage)                                          | ✅ Available | MoEngage ([`digia_moengage_plugin`](https://pub.dev/packages/digia_moengage_plugin)), CleverTap ([`digia_engage_clevertap`](https://pub.dev/packages/digia_engage_clevertap)), WebEngage ([`digia_webengage_plugin`](https://pub.dev/packages/digia_webengage_plugin))                                                                                               |
| **Android**      | [`tech.digia:engage`](https://central.sonatype.com/artifact/tech.digia/engage)                   | ✅ Available | MoEngage ([`tech.digia:engage-moengage`](https://central.sonatype.com/artifact/tech.digia/engage-moengage)), CleverTap ([`tech.digia:engage-clevertap`](https://central.sonatype.com/artifact/tech.digia/engage-clevertap)), WebEngage ([`tech.digia:engage-webengage`](https://central.sonatype.com/artifact/tech.digia/engage-webengage))                          |
| **React Native** | [`@digia-engage/core`](https://www.npmjs.com/package/@digia-engage/core)                         | ✅ Available | MoEngage ([`@digia-engage/moengage`](https://www.npmjs.com/package/@digia-engage/moengage)), CleverTap ([`@digia-engage/clevertap`](https://www.npmjs.com/package/@digia-engage/clevertap)), WebEngage ([`@digia-engage/webengage`](https://www.npmjs.com/package/@digia-engage/webengage))                                                                          |
| **iOS (Swift)**  | [`DigiaEngage`](https://swiftpackageindex.com/Digia-Technology-Private-Limited/digia_engage_iOS) | ✅ Available | MoEngage ([`DigiaMoEngage`](https://swiftpackageindex.com/Digia-Technology-Private-Limited/digia_moengage_iOS)), CleverTap ([`DigiaEngageCleverTap`](https://swiftpackageindex.com/Digia-Technology-Private-Limited/digia_engage_clevertap_iOS)), WebEngage ([`DigiaWebEngage`](https://swiftpackageindex.com/Digia-Technology-Private-Limited/digia_webengage_iOS)) |

Support for additional CEP plugins is in development.

***

## Get Started

* [**Digia CleverTap Integration**](/digia-engage/integrations/clevertap-integration.md): Connect CleverTap (In-App and Native Display) across Flutter, Android, iOS (Swift), and React Native.
* [**Digia MoEngage Integration**](/digia-engage/integrations/moengage-integration.md): Connect MoEngage (Self-Handled In-App) across Flutter, Android, iOS (Swift), and React Native.
* [**Digia WebEngage Integration**](/digia-engage/integrations/webengage-integration.md): Connect WebEngage (In-App Notifications) across Flutter, Android, iOS (Swift), and React Native.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digia.tech/digia-engage/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
