# Table of Contents - [Delete User Profile](#delete-user-profile) - [Sample Events by Business Vertical](#sample-events-by-business-vertical) - [Manage Users](#manage-users) - [How Profiles Merge](#how-profiles-merge) - [Composite Events](#composite-events) - [Schema](#schema) - [Project Setup](#project-setup) - [Upload Past User Profiles](#upload-past-user-profiles) - [Role-Based Access Control](#role-based-access-control) - [Event Design](#event-design) - [User Profiles](#user-profiles) - [Events](#events) - [Nested Objects](#nested-objects) - [CleverTap Overview for Users](#clevertap-overview-for-users) - [Security & Data Governance](#security-data-governance) - [Technology Partners](#technology-partners) - [Onboarding Glossary](#onboarding-glossary) - [Release Notes](#release-notes) - [Set Up Dashboard](#set-up-dashboard) - [PII Encryption](#pii-encryption) - [Field-Level at Rest Encryption](#field-level-at-rest-encryption) - [File Upload Encryption](#file-upload-encryption) - [CPaaS Encryption](#cpaas-encryption) - [Audit Logs](#audit-logs) - [PII Tokenization](#pii-tokenization) - [Bring Your Own Key (BYOK) Encryption](#bring-your-own-key-byok-encryption) - [Automated Audit Log Exports for SIEM](#automated-audit-log-exports-for-siem) - [IP Whitelisting](#ip-whitelisting) - [Domain Whitelisting for Web SDK](#domain-whitelisting-for-web-sdk) - [LINE Messenger](#line-messenger) - [FreshSales](#freshsales) - [PostHog](#posthog) - [Crowdin](#crowdin) - [Sinch](#sinch) - [Messenger Partners](#messenger-partners) - [Slack](#slack) - [Email Love](#email-love) - [Become a Technical Partner](#become-a-technical-partner) - [Error Stream](#error-stream) - [Clearout](#clearout) - [Dynamic Content Partners](#dynamic-content-partners) - [Partner Vouchers](#partner-vouchers) - [Optilyz](#optilyz) - [Direct Mail Partners](#direct-mail-partners) - [API](#api) - [Coupons](#coupons) - [LeadSquared](#leadsquared) - [Contextual Location Partners](#contextual-location-partners) - [Radar](#radar) - [LeadSquared Export](#leadsquared-export) - [BigQuery Export](#bigquery-export) - [Attribution Partners](#attribution-partners) - [Remote Config](#remote-config) - [AccuWeather](#accuweather) - [Troubleshooting & FAQs](#troubleshooting-faqs) - [Data Warehouse](#data-warehouse) - [Profile and Events (Legacy)](#profile-and-events-legacy-) - [Cloud Storage](#cloud-storage) - [AppTrove by Trackier](#apptrove-by-trackier) - [Status Alerts for Exports](#status-alerts-for-exports) - [Iterate](#iterate) - [Slack (via Zapier)](#slack-via-zapier-) - [Customer Relationship Management](#customer-relationship-management) - [Conditional Split Node](#conditional-split-node) - [mParticle Import (Audience)](#mparticle-import-audience-) - [Mixpanel Export](#mixpanel-export) - [Create A/B Tests](#create-a-b-tests) - [Google Cloud Platform (GCP)](#google-cloud-platform-gcp-) - [Amazon EventBridge](#amazon-eventbridge) - [Mixpanel Import (Cohort)](#mixpanel-import-cohort-) - [Twilio](#twilio) - [App Tracking Transparency (ATT)](#app-tracking-transparency-att-) - [Use Case 2: Recover Abandoned Cart Using Journeys](#use-case-2-recover-abandoned-cart-using-journeys) - [Coupon Stats](#coupon-stats) - [CleverTap Essentials Billing](#clevertap-essentials-billing) - [Create Loyalty Wallet](#create-loyalty-wallet) - [OpenWeather](#openweather) - [View Coupons](#view-coupons) - [Wallet Overview](#wallet-overview) - [Payments and Overages](#payments-and-overages) - [Profile Exports](#profile-exports) - [Amplitude Import (Cohort)](#amplitude-import-cohort-) - [Loyalty Wallets](#loyalty-wallets) - [Platform Considerations](#platform-considerations) - [Instapage](#instapage) - [Product A/B Tests (Legacy)](#product-a-b-tests-legacy-) - [Mixpanel](#mixpanel) - [SheetDB](#sheetdb) - [Promo Campaign Errors](#promo-campaign-errors) - [Create Coupons](#create-coupons) - [Use Loyalty Wallets in Campaigns](#use-loyalty-wallets-in-campaigns) - [Rewards](#rewards) - [Promo Campaigns](#promo-campaigns) - [Promo Campaign Operations](#promo-campaign-operations) - [Promo Campaign Stats](#promo-campaign-stats) - [Journey Stats](#journey-stats) - [Regex Campaign](#regex-campaign) - [Coupon Operations](#coupon-operations) - [Wallet Operations](#wallet-operations) - [IntelliNODE FAQs](#intellinode-faqs) - [Conditional Split with Advanced Conditions](#conditional-split-with-advanced-conditions) - [Journey Use Cases](#journey-use-cases) - [n8n](#n8n) - [Conditional Split Stats](#conditional-split-stats) - [Archive Journeys](#archive-journeys) - [Create Conditional Split Journey](#create-conditional-split-journey) - [Create and Manage Voucher Lists](#create-and-manage-voucher-lists) - [Use Case 1: Score a Customer Using Past Behaviour Segment Journey](#use-case-1-score-a-customer-using-past-behaviour-segment-journey) - [Align Journey Nodes](#align-journey-nodes) - [Manage Personal Information](#manage-personal-information) - [Conditional Split By Event Property](#conditional-split-by-event-property) - [Billing and Overages: FAQs](#billing-and-overages-faqs) - [Plans and Programs](#plans-and-programs) - [Workflow Automation Partners](#workflow-automation-partners) - [Conditional Split By User Property](#conditional-split-by-user-property) - [WhatsApp Direct Add-on](#whatsapp-direct-add-on) - [Support Ticket](#support-ticket) - [Setup and Integration](#setup-and-integration) - [IntelliNODE Stats](#intellinode-stats) - [Journey Operations](#journey-operations) - [Filter Journeys](#filter-journeys) - [Account and Data Management](#account-and-data-management) - [FAQs](#faqs) - [Overview](#overview) - [Viewing Journey Reports](#viewing-journey-reports) - [Journey: Troubleshooting and FAQs](#journey-troubleshooting-and-faqs) - [Zapier](#zapier) - [View Promo Campaigns](#view-promo-campaigns) - [Airtable](#airtable) - [Create an IntelliNODE Journey](#create-an-intellinode-journey) - [Node Stats](#node-stats) - [Debugger](#debugger) - [Engagement Stats](#engagement-stats) - [Compliance & Certifications](#compliance-certifications) - [Sinch](#sinch) - [Events Changelog](#events-changelog) - [Create Promo Campaigns](#create-promo-campaigns) - [Edit a Journey](#edit-a-journey) - [Licensing Fee](#licensing-fee) - [AiSensy](#aisensy) - [Lifecycle Optimizer](#lifecycle-optimizer) - [Sheetlabs](#sheetlabs) - [Email Add-on](#email-add-on) - [General Data Protection Regulation (GDPR)](#general-data-protection-regulation-gdpr-) - [Smashpops](#smashpops) - [Apxor](#apxor) - [Nexmo](#nexmo) - [8X8](#8x8) - [Pipedream](#pipedream) - [Interakt](#interakt) - [Gupshup](#gupshup) - [OneXtel](#onextel) - [System-Triggered Alert Emails](#system-triggered-alert-emails) - [Haptik](#haptik) - [IntelliNODE Use Cases](#intellinode-use-cases) - [Message Archiving](#message-archiving) - [CleverTap for Startups: Technology Partners](#clevertap-for-startups-technology-partners) - [Route Mobile](#route-mobile) - [QuickReply](#quickreply) - [Kaleyra](#kaleyra) - [Times Mobile](#times-mobile) - [DataChannel](#datachannel) - [Pingbix](#pingbix) - [Infobip](#infobip) - [MSG91](#msg91) - [Exotel](#exotel) - [CleverTap](#clevertap) - [Branded Domain](#branded-domain) - [Segments](#segments) - [Generic WhatsApp](#generic-whatsapp) - [Features and Add-ons](#features-and-add-ons) - [Control Groups](#control-groups) - [Journeys List](#journeys-list) - [A/B & Multivariate Testing](#a-b-multivariate-testing) - [Recommended Delay for Inaction Campaigns](#recommended-delay-for-inaction-campaigns) - [Time in User Property](#time-in-user-property) - [Conversations](#conversations) - [Product Experiences Next Gen](#product-experiences-next-gen) - [Best Time Campaign](#best-time-campaign) - [Messaging Frequency Caps](#messaging-frequency-caps) - [Define Goals](#define-goals) - [Journey Overview](#journey-overview) - [Geofencing Campaign](#geofencing-campaign) - [Create a Journey](#create-a-journey) - [Setting Up a Journey](#setting-up-a-journey) - [Journey States](#journey-states) - [Journey Concepts](#journey-concepts) - [Use Custom Reward Issued in Engagements](#use-custom-reward-issued-in-engagements) - [Personalization in Journeys](#personalization-in-journeys) - [Custom Rewards](#custom-rewards) - [Journey Performance](#journey-performance) - [Constant Event Property](#constant-event-property) - [Define Entry Segment](#define-entry-segment) - [Publish a Journey](#publish-a-journey) - [Delivery Preferences within Journey Nodes](#delivery-preferences-within-journey-nodes) - [Handle Duplicate Voucher Codes](#handle-duplicate-voucher-codes) - [Use Partner Vouchers in Campaigns](#use-partner-vouchers-in-campaigns) - [Define Journey Path](#define-journey-path) - [Create Custom Rewards](#create-custom-rewards) - [View Custom Rewards](#view-custom-rewards) - [Product A/B Tests](#product-a-b-tests) - [A/B Test: Best Practices](#a-b-test-best-practices) - [Troubleshooting & FAQs](#troubleshooting-faqs) - [A/B Test Results](#a-b-test-results) - [Import](#import) - [CSV Upload](#csv-upload) - [SFTP](#sftp) - [Product Experiences (Legacy) Setup](#product-experiences-legacy-setup) - [API](#api) - [A/B Test: FAQs](#a-b-test-faqs) - [Partners](#partners) - [Exports](#exports) - [Product Experiences (Legacy)](#product-experiences-legacy-) - [Analytics Partners](#analytics-partners) - [Amplitude](#amplitude) - [AWS S3](#aws-s3) - [Amplitude Export](#amplitude-export) - [Weather API](#weather-api) - [Amplitude Event Streaming](#amplitude-event-streaming) - [Generic Attribution Partner](#generic-attribution-partner) - [Cloud Storage](#cloud-storage) - [Microsoft Azure](#microsoft-azure) - [Formsuite](#formsuite) - [HubSpot](#hubspot) - [LeadSquared Import](#leadsquared-import) - [Swipe Pages](#swipe-pages) - [Pipedrive](#pipedrive) - [HighTouch](#hightouch) - [Salesforce CRM](#salesforce-crm) - [Treasure Data](#treasure-data) - [Litmus](#litmus) - [Crash Analytics Partners](#crash-analytics-partners) - [Zoho Form](#zoho-form) - [Omnissa Intelligence (Apteligent)](#omnissa-intelligence-apteligent-) - [mParticle](#mparticle) - [Customer Data Platform](#customer-data-platform) - [Census](#census) - [Boltic](#boltic) - [mParticle Export](#mparticle-export) - [Nexla](#nexla) - [Poplar](#poplar) - [B.Layer](#b-layer) - [Contentful](#contentful) - [Inkit](#inkit) - [Jasper AI](#jasper-ai) - [Blitzllama](#blitzllama) - [Delighted](#delighted) - [Typeform](#typeform) - [Movable Ink](#movable-ink) --- # Delete User Profile Overview [](https://docs.clevertap.com/docs/delete-user-profile#overview) ----------------------------------------------------------------------------- This section covers how an admin can delete a user profile. > ❗️ > > ### > > Permanent Deletion > > [](https://docs.clevertap.com/docs/delete-user-profile#permanent-deletion) > > Once an admin deletes a profile, the profile is permanently deleted and cannot be retrieved. Delete a User Profile [](https://docs.clevertap.com/docs/delete-user-profile#delete-a-user-profile) ======================================================================================================= To delete a user profile, perform the following steps: 1. From the dashboard, navigate to _Segments_ > _Find People_. 2. Click on the appropriate profile once you have identified it. 3. Click **Delete Profile**. ![1415](https://files.readme.io/b8d9fbf-1_Delete_Profile.png "Click Delete Profile") Delete Profile 4. On the window popup, select the checkbox to agree to delete profile data. 5. Click **Delete**. ![412](https://files.readme.io/462245d-2_Confirm_Delete_Profile.png "Click Cancel or Delete Button") Confirm Delete Profile Deletion Timeline [](https://docs.clevertap.com/docs/delete-user-profile#deletion-timeline) ----------------------------------------------------------------------------------------------- Once a profile is marked for deletion, the actual deletion happens in the next 48 hours. Every day from 2 AM to 4 AM (local time), our system fetches the profiles which are marked for deletion, then deletes them in batches. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/delete-user-profile#note) > > For each user profile deleted, the events will be saved with CleverTap as per the data retention policy > 📘 > > ### > > Bulk Delete Profiles > > [](https://docs.clevertap.com/docs/delete-user-profile#bulk-delete-profiles) > > You can bulk delete profiles using the API. For more information, refer to the [delete user profile API](https://developer.clevertap.com/docs/delete-user-profile-api) > . Updated about 2 months ago * * * Ask AI --- # Sample Events by Business Vertical Please see the links below for example events by vertical that you can track with CleverTap. * [Ecommerce Events](https://docs.google.com/spreadsheets/d/1y7z2c3NtYFU75_a9QenuXjToazg97ebg4xIYGC3e__E/edit#gid=0) * [Content/Media Events](https://docs.google.com/spreadsheets/d/1d91A_hU90GwS2_mpN-BbmrMOLNszVdizNA3iaN7_UcE/pubhtml?gid=1342915562&single=true) * [Bookings](https://docs.google.com/spreadsheets/d/1d91A_hU90GwS2_mpN-BbmrMOLNszVdizNA3iaN7_UcE/pubhtml?gid=345843948&single=true) * [Classifieds](https://docs.google.com/spreadsheets/d/1d91A_hU90GwS2_mpN-BbmrMOLNszVdizNA3iaN7_UcE/pubhtml?gid=2031360571&single=true) * [Travel -1](https://docs.google.com/spreadsheets/d/1d91A_hU90GwS2_mpN-BbmrMOLNszVdizNA3iaN7_UcE/pubhtml?gid=1791352780&single=true) * [Travel -2](https://docs.google.com/spreadsheets/d/1d91A_hU90GwS2_mpN-BbmrMOLNszVdizNA3iaN7_UcE/pubhtml?gid=1737011753&single=true) * [Ride sharing](https://docs.google.com/spreadsheets/d/1dt8D19PSTx0F1lZfUO7PV3_XMhpCYrxId8HaPxUYP-0/edit#gid=0) * [Video Streaming](https://docs.google.com/spreadsheets/d/1Bku46znWrL0bYms-yPB-QTkck9-AI4L23WAMWr3Zntc/edit#gid=0) * [Telecom Events](https://docs.google.com/spreadsheets/d/1AGs0DwA4EP7KS7NeReCMFYu_jRyhp6a5cE1KytjtC4g/edit#gid=0) * [Food Tech](https://docs.google.com/spreadsheets/d/1F4NntQ4CNAWwUWK6bv_ciVQ8T9fjGNVdODEAHQdgOSw/edit#gid=0) * [Fintech Events](https://docs.google.com/spreadsheets/d/1swPaifzOaclu-R-aVdcc0gKZE0rxRCnO8XB405ENXFU/edit#gid=0) * [Gaming](https://docs.google.com/spreadsheets/d/1ILN68sBfMtI8ycs31-nywyKnsugz0wksuZQQvLYFvNI/edit#gid=0) Updated about 2 months ago * * * Ask AI --- # Manage Users Overview [](https://docs.clevertap.com/docs/manage-users#overview) ====================================================================== To access the CleverTap dashboard, the user needs an invitation and an appropriate access level. The account admin can perform different operations, such as adding a new user, deleting an existing user, assigning a role to a user, editing the user's current role, and so on from the _Settings_ > _Users_ page. ![A dashboard image of User Settings page which gives an overview of added users and their access type](https://files.readme.io/4ad9c66d5e3b370dda07c60a04d21f65404a0b1537a1734be355262577f07520-Users_Navigation.png "Users Page Navigation") User Settings After the new user is added, the dashboard allows an admin to view the following information about all the users added to the project: * Name * Role * Email * User Status * Last Login * Passcode-Status. Invite Users [](https://docs.clevertap.com/docs/manage-users#invite-users) ------------------------------------------------------------------------------ To invite a new user to the CleverTap dashboard: 1. Click **\+ User** from the _Users_ page. 2. Enter the email address and assign the role. For more information about different roles in the CleverTap dashboard, refer to [Role-Based Access Control](doc:role-based-access-control) . ![Invite Users](https://files.readme.io/a6364c54837b4a8886a9cd91ed670bbec7fdde0fdd81788150f3238bdca6a5f6-Invite_Users.png) Invite Users > 📘 > > ### > > Assign Multiple Roles to a User > > [](https://docs.clevertap.com/docs/manage-users#assign-multiple-roles-to-a-user) > > You can assign multiple roles to a user if needed. If you assign two system roles to the user, the role with higher precedence is assigned to the user. > 📘 > > ### > > Invite Multiple Users at Once > > [](https://docs.clevertap.com/docs/manage-users#invite-multiple-users-at-once) > > You can invite multiple users (up to 50) at once by clicking **\+ User** from the _Invite User_ window. ![A dashboard image showing how to invite multiple users at once to the project](https://files.readme.io/a3d7e754fc9ea124cd7499303470731f3ee4b122d2c6923674690969d665cb4a-Bulk_User_Invite.png "Invite Multiple Users to Dashboard") Invite Multiple Users at Once 3. Click **Invite** to extend invitations to the email IDs added. Download User List [](https://docs.clevertap.com/docs/manage-users#download-user-list) ------------------------------------------------------------------------------------------ You can download the list of all users by clicking **Download as CSV** from the _Users_ page. ![A dashboard image showing the option to download user list as CSV](https://files.readme.io/316aa4d70b8dee9178b2750c5da9e112bfb220dad76aad65039264f2d7eabccb-Download_as_CSV.png "Download User List") Download User List as CSV Operations [](https://docs.clevertap.com/docs/manage-users#operations) ========================================================================== The account admin can perform different user management operations from the CleverTap dashboard. Each of these operations is described briefly in the following sections: Revoke Access [](https://docs.clevertap.com/docs/manage-users#revoke-access) -------------------------------------------------------------------------------- Revoking user access implies that the user can no longer access the dashboard. To do so, click the ![Ellipses](https://files.readme.io/2717d2a-ellipses_icon.png) against the required user and select _Revoke User Access_ from the list. ![A dashboard image showing the option to Revoke User Access of a user](https://files.readme.io/ff67eeef82dc136192a51b15330abd0c3faca9a83408a8db520bc8c90908e6ae-Revoke_User_Access.png "Revoke Access") Revoke User Access Edit Role [](https://docs.clevertap.com/docs/manage-users#edit-role) ------------------------------------------------------------------------ You can also edit the role of the user in the future. To do so, click the ![Ellipses](https://files.readme.io/2717d2a-ellipses_icon.png) against the required user and select _Edit Role_ from the list. ![A dashboard image showing the option to Edit Role of a user](https://files.readme.io/5963e7810ba35dd527a2ebc534de18bafe97c7098db5aaf0d544d4f6ddb2e611-Edit_Role.png "Edit a Role") Edit Role For more information about role management, refer to [Role-Based Access Control](doc:role-based-access-control) . ### Bulk Action For Managing Multiple User Roles [](https://docs.clevertap.com/docs/manage-users#bulk-action-for-managing-multiple-user-roles) You can assign or unassign roles for multiple users at once. To do so: 1. Select the set of users for whom you want to assign or unassign the roles 2. Click the ![](https://files.readme.io/22ed0b8-image.png) icon. ![Manager Multiple User Roles in Bulk](https://files.readme.io/087f4f6460583409f2bb3c502af0f621050b6c9bb459f35b1eece01c0741e6dd-Bulk_Action_for_Managing_Multiple_Roles.png) Manage Multiple User Roles in Bulk 4. After the _Edit Roles_ window opens, enter the roles you wish to assign to your users in the _Assign roles_ field. Similarly, enter the roles you wish to unassign for your users in the _Unassign roles_ field. 5. After making the required changes, click **Continue**. ![Save Bulk Actions](https://files.readme.io/416bca13c62d3aff8dd86308a4fc8ddb4d749f31039404aceeec81a129da0828-Multiple_Roles_Assignment.png) Save Bulk Actions 6. Review the bulk changes in user roles and click **Save**. Delete User [](https://docs.clevertap.com/docs/manage-users#delete-user) ---------------------------------------------------------------------------- Admins can delete users from a project to ensure unauthorized users, such as former employees, can no longer access the CleverTap dashboard. This eliminates manual interventions, making user offboarding secure and seamless. Once deleted, the user loses access, and all deletions are recorded in audit logs for security and compliance. However, admins cannot delete themselves from a project; other admins can. To delete a user: 1. Click the ![Ellipses](https://files.readme.io/2717d2a-ellipses_icon.png) icon against the required user and select **Delete User**. 2. Click **Delete** to confirm the action to permanently remove the user from the project. ![Delete a User](https://files.readme.io/0de3e86a9df1cde55bbd98b4d9715fd63b9ac8e416de1a7bab9b1bdf4d3873b5-Delete_User.png) Delete a User Reset Passcode [](https://docs.clevertap.com/docs/manage-users#reset-passcode) ---------------------------------------------------------------------------------- Reset Passcode generates a fresh new passcode for the user. Post resetting, the user must incorporate this passcode for the APIs. To reset the passcode, click the ![Ellipses](https://files.readme.io/2717d2a-ellipses_icon.png) icon against the required user and select _Reset Passcode_ from the list. ![A dashboard image showing the option to Reset the Passcode of a user](https://files.readme.io/7ceab210ba5ce562e78dab2ce792ecfadf757b8f427b87af8acfd017f8492218-Reset_Passcode.png "Reset Passcode") Reset Passcode Grant User Passcode [](https://docs.clevertap.com/docs/manage-users#grant-user-passcode) -------------------------------------------------------------------------------------------- Every CleverTap API call requires a passcode to authenticate the API calls. Granting a user passcode helps authenticate the user when making API calls. To grant a passcode, click the ![Ellipsis](https://files.readme.io/2717d2a-ellipses_icon.png) icon against the required user and select _Grant Passcode_ from the list. ![A dashboard image showing the option to Grant Passcode to a user](https://files.readme.io/5a749c9ba96244de87cf366e7dab3a8ffe64205f873b4e7c53b614424e040055-Grant_Passcode.png "Grant Passcode") Grant Passcode Select the tenure for which you want to grant the passcode and then click **Grant** to confirm your action. ![A pop-up asking to select the Passcode Time for the user](https://files.readme.io/f537e123c5519a313c110175d55e4e24211d2d5c5bf0ba9881943aa4e381bcc8-Grant_Passcode_Popup.png "Grant Passcode") Select Passcode Time For more information about API authentication in CleverTap, refer to [Authentication](https://developer.clevertap.com/docs/authentication) . FAQ [](https://docs.clevertap.com/docs/manage-users#faq) ============================================================ ### Q. How to recover Admin access and assign it to a new user if the original Admin account is deactivated? [](https://docs.clevertap.com/docs/manage-users#q-how-to-recover-admin-access-and-assign-it-to-a-new-user-if-the-original-admin-account-is-deactivated) A. If your organization’s sole admin account has been deactivated and you no longer have access to it, you can still recover admin access and assign new admin privileges by following these steps: 1. Contact your organization’s IT administrator or domain owner to temporarily reactivate and grant access to the email account of the Project's admin. 2. Once the account is reactivated, use the _Forgot Password_ option on the CleverTap login page to reset the password for that admin user account. 3. After resetting the password, log in to the account and assign admin access to an existing user within your Project or invite a new user with Admin access. This new admin will then have access to the CleverTap dashboard for that project. 4. (Optional) [Revoke](doc:manage-users#revoke-access) the former admin's access from the dashboard project. To prevent similar issues in the future, CleverTap recommends assigning admin roles to at least two users. This ensures that if one admin leaves or becomes unavailable, the other can still manage the project and perform necessary administrative tasks. Updated about 2 months ago * * * Ask AI --- # How Profiles Merge CleverTap creates a profile for a user across all of their devices. This ensures that when you look at a user profile in CleverTap, its a holistic view of a user, including all of their behavior, across devices. Profiles in CleverTap merge in two scenarios: * **When the same person is identified on multiple devices.** In this case, if CleverTap gets the same identity on different devices. The profiles of these users will be merged. * **When multiple people are identified on the same device.** If you push multiple identities on the same device, without using the OnUserLogin API, CleverTap will merge profiles for all of these users. If you would like to avoid this merge, you have to ensure that when you are identifying users (that is, users are logging in, you call the OnUserLogin API). Orphan Profiles * Even though CleverTap tries to merge the profiles for a user who logs from multiple devices, there may be cases when they do not merge. In this case, the unidentified profile will be treated as an orphan profile. * We do not delete the orphan profile or the events performed by this profile. Updated about 2 months ago * * * Ask AI --- # Composite Events Overview [](https://docs.clevertap.com/docs/composite-events#overview) -------------------------------------------------------------------------- Composite events provide you the ability to combine multiple events. A composite event can be used as a single event on the dashboard which can be analyzed in reports. > 👍 > > ### > > Composite Events Examples > > [](https://docs.clevertap.com/docs/composite-events#composite-events-examples) > > Some examples include: > > * The _Video played_ and _Song played_ events can be combined into a single event called _Content consumed_. > * You may group _Item purchased_ and _Subscription created_ into a new composite event called _Money spent_. Create a Composite Event [](https://docs.clevertap.com/docs/composite-events#create-a-composite-event) ========================================================================================================== To create a composite event, perform the following steps: 1. Navigate to _Settings_ > _Schema_ > _Composite Events_. The _Composite Events_ page displays. 2. Click the **Add composite event** button. 3. Name your event and select the events that you want to group together. In our example, we name the event as _Travel Bookings_. 4. Select the events and filter by properties, if required. In our example, we filter the _Hotel Booked_ event by the event property _Rating_ which is 3 stars and flight booked event by the event property _Class_ (_Economy_). > 📘 > > ### > > Additional Events > > [](https://docs.clevertap.com/docs/composite-events#additional-events) > > You can add any additional events (if required) or save the new composite event. ![619](https://files.readme.io/06128bd-Events_Composite_Create.png "Set Up Composite Event Options and Click Save") Set Up Composite Event > 📘 > > ### > > Considerations > > [](https://docs.clevertap.com/docs/composite-events#considerations) > > Consider the following: > > * You can combine existing events into a new composite event. > * This event does not add to the event storage limit. > * This event adds to the global event limit. > * You can have a maximum of 20 underlying events in a composite event. Delete a Composite Event [](https://docs.clevertap.com/docs/composite-events#delete-a-composite-event) ========================================================================================================== To delete a composite event, perform the following steps: 1. Click the ellipsis. 2. Click the **Delete** icon to delete the composite event. ![1401](https://files.readme.io/ee75996-1_Delete_composite_event.png "Click the Ellipsis Icon and Delete a Composite Event") Delete a Composite Event Create a Composite Event Property [](https://docs.clevertap.com/docs/composite-events#create-a-composite-event-property) ============================================================================================================================ Now that you have created a composite event, you can create a composite property using the properties of the underlying events. You can create a composite event property by grouping together two or more underlying event properties. After they are grouped together, they behave as a single event property. For example, we create an event property called _Booking_ revenue that groups the underlying properties such as _Flight_ booked amount (from flight booked event) and _Hotel_ booked amount (from the hotel booked event). When you analyze the _Booking_ revenue property, it will function as a single event property. You can add composite event properties from the _Composite Events_ page. To add a composite event property, perform the following steps: 1. Click the **Add property** link for the required composite event from the list. ![1401](https://files.readme.io/21d4852-2_Add_property.png "Click +Composite Event") Composite Event Property 2. Click the **Property** button and select _Add composite property_. ![1178](https://files.readme.io/2ec7b45-Events_Composite_Add_Property_compsite_and_single.png "Click the Property Button and Select Add Composite Property") Add Property 3. Select the properties to be added from the underlying events. ![593](https://files.readme.io/5837078-Events_Composite_Add_composite_properties.png "Map Event Property to the Composite Property and Click Save") Map Event Property to Composite Property 4. Click **Save**. You can now start using this composite property instead of two separate underlying properties. For example, you can view a trend of the _Booking Revenue_ property in the [Trends](doc:trends#view-a-trend) report. ![1172](https://files.readme.io/cfea8e2-Events_Composite_Trend.png "Click Properties Tab and Click View Trend") View Trend Add an Individual Event Property [](https://docs.clevertap.com/docs/composite-events#add-an-individual-event-property) ========================================================================================================================== You can choose to add any of the properties that belong to any of the underlying events as an individual property to the composite event. The composite event behaves as a single event and this individual property behaves as its underlying property. Therefore, you can stop referencing the underlying event just to analyze a specific property. For example, if you want to analyze an event called _Flight Class_ from the flight booked event, you can add this event to the main composite event _Travel Bookings_, then use it as if it is an underlying property of this event. You do not need to use the Flight Booked event because the new composite property offers you a better view of your events. You can add event properties from the _Composite Events_ page. To add a composite event property, perform the following steps: 1. Click the **Add property** link for the required composite event from the list. ![613](https://files.readme.io/73bae29-Events_Composite_Create.png "Set Composite Event Property Options and Click Save") Add Composite Event Property 2. Click the **Property** button on the top and select _Add property_. ![1180](https://files.readme.io/4607f7d-Events_Composite_Add_Property_Single.png "Click the Property Button and Select Add Property.") Add Property 3. Select the property to be added from the underlying event. ![517](https://files.readme.io/eba39db-Events_Composite_Add_single_property.png "Select the Property to be added from the Underlying Event") Add Property to Event 4. Click **Save**. You have now grouped the underlying properties together. > 🚧 > > ### > > Composite Events Limitations > > [](https://docs.clevertap.com/docs/composite-events#composite-events-limitations) > > * Composite events cannot be split by their event properties in Pivots, Trends, and Funnels. > * Composite events are not available for Intent Based Segments, Trigger Events in Campaigns (Live Behavior Segment), Flows, mapped events in Catalogs, Recommendations, and Bulletins. > * Composite events cannot be exported using AWS S3 and GCP export feature. Updated about 2 months ago * * * Ask AI --- # Schema Overview [](https://docs.clevertap.com/docs/schema#overview) ================================================================ A Schema is a framework for maintaining, organizing, and structuring your data. It enforces rules to maintain data integrity, allowing you to avoid data quality issues later. Schema standardizes your data before you even begin using it. Since bad data incurs high costs in terms of effort and money, you can save a significant amount of manual effort in tracking your data over time. To preserve data sanity, the schema table stores event and user properties in a pre-defined order. It ensures better output because it enforces standardization of the incoming data and avoids duplication or corruption of data. Better input leads to a better outcome in your campaigns and journeys. It also provides more accurate insights into your data analytics. Events [](https://docs.clevertap.com/docs/schema#events) ============================================================ You can see your events under _Settings_ > _Schema Events_. On this page, you can view all the events you are working with, along with editing or discarding to searching and filtering them. The _Events_ schema has four parts: * [Custom events](https://docs.clevertap.com/docs/schema#section-custom-events) * [System events](https://docs.clevertap.com/docs/schema#section-system-events) * [Conversion event](https://docs.clevertap.com/docs/schema#section-conversion-event) * [Qualifying event](https://docs.clevertap.com/docs/schema#section-qualifying-event) Custom Events [](https://docs.clevertap.com/docs/schema#custom-events) ========================================================================== Custom events are events that you can define, edit, remove, and so on. These are your app events that you can fully control. 1. Navigate to _Settings_ > _Schema_ > _Events_. 2. Click the **Custom events** tab. If you have already defined your events, they are all present on this tab. ![](https://files.readme.io/a13c357-Custom_Events.png) View Custom Events | Event Detail | Description | | --- | --- | | **Event name** | The name of the event as it is displayed on the dashboard. | | **Type** | There are two types:

* **Defined:** Events that are part of your schema definition.
* **Undefined:** Events that are not defined in the schema but passed to CleverTap. | | **Status** | An event can have any of the following statuses:

* **Active:** An event that has been passed to CleverTap.
* **Inactive:** An event that has not yet been passed to CleverTap.
* **Discarded:** An event for which all past data has been dropped. Any future data that is passed for the event with the same name will also be dropped. | | **DRP** | Data retention policy defines the length of time that the data is retained. | | **This month** | The number of occurrences of the event in the current month. | | **Last month** | The number of occurrences of the event in the previous month. | | **Count** | A count can be an event, event property, or a user property update. | | **Properties** | Attributes that provide additional context around the event. For more information, refer to [Event Property](doc:events#event-properties)
. | Add Event [](https://docs.clevertap.com/docs/schema#add-event) ------------------------------------------------------------------ You can add an event from the _Custom events_ tab. 1. Navigate to _Settings_ > _Schema Events_ > _Custom events_. 2. Click the **+Event** button to add an event. 3. Add the event name. This name must be unique in the schema. ![](https://files.readme.io/6a62a19-Add_New_Event.png) Add Custom Event For more information, refer to [Event Property](doc:events#event-properties) . Edit Event [](https://docs.clevertap.com/docs/schema#edit-event) -------------------------------------------------------------------- The name cannot be changed after the event is published. 1. Click the edit icon on the event row. 2. Edit the event name. 3. Click the checkmark. Set Data Retention Policy [](https://docs.clevertap.com/docs/schema#set-data-retention-policy) -------------------------------------------------------------------------------------------------- The data retention policy (DRP) retains an event for the specified time before discarding it automatically. Your subscription plan will decide the default DRP limit. 1. Navigate to _Settings_ > _Schema_ > _Events_. 2. From the System Events tab, click the ellipsis on the event row and click **Set DRP**. 3. Select _Custom_, then enter your specific time limit. > 📘 > > **CleverTap Essentials Plan Limit** > > The default DRP for CleverTap Essentials Plan users is one year, which cannot be changed. 4. Click **Save**. ![](https://files.readme.io/ba7f979-SET_DRP.png) Set Data Retention Policy Remove Event [](https://docs.clevertap.com/docs/schema#remove-event) ------------------------------------------------------------------------ You must be careful before removing an event. If you ever need to remove an event from the schema, remove it from the event row on the _Events_ page. You can only remove an inactive event from your schema; however, the effects are minimal because the event is not active. This action does not drop another event coming in with the same name. 1. Click the ellipsis menu on the event row. 2. Click **Remove**. ![](https://files.readme.io/b6033f7-Custom_Events.png) Remove an Event After an event is removed: * The entire event row is removed from the schema. * If an event comes in with the same name, it is considered an undefined event. Discard Event [](https://docs.clevertap.com/docs/schema#discard-event) -------------------------------------------------------------------------- You can discard an active event from the schema. You can still see the event row in the schema; however, it will be marked as discarded. > ❗️ > > **When Discarding an Event** > > You can only discard an active event. Exercise extreme caution when discarding an event because this action cannot be undone. This action has an impact on your schema because it purges all data for the discarded event. It also drops any future incoming event with the same name. 1. Click the ellipsis menu on the event row. 2. Click **Discard**. ![](https://files.readme.io/6f94655-Discard_event.png) Discard an Event Define Event [](https://docs.clevertap.com/docs/schema#define-event) ------------------------------------------------------------------------ The events that are passed to CleverTap but not defined are marked as undefined events. You can define these events from the event row. Defining an event marks it as a recognized event in the schema, and therefore, when the event is received, this will not cause any error. 1. Click the ellipsis menu on the event row. 2. Select _Define Event_, and a new window displays. 3. Click **Define & Save**. Publish Schema/Events [](https://docs.clevertap.com/docs/schema#publish-schemaevents) ----------------------------------------------------------------------------------------- To publish the events, perform the following: 1. Check that you have all the required events. 2. Click the **Publish Events** button. | Event Name | Description | | --- | --- | | **Property name** | The name of the property. | | **Type** | The type of property:

* **Defined:** Properties that you have added to the schema.
* **Undefined:** Properties that you have not added to the schema and are currently receiving data. | | **Status** | An event property can have any of the following statuses:

* **Active:** An event property that has been passed to CleverTap.
* **Inactive:** An event property that has not yet been passed to CleverTap.
* **Discarded:** An event property for which all past data has been dropped. Any future data passed for this user property with the same name will also be dropped. | | **Required** | Defines whether a property is mandatory for the event:

* **Yes:** The property is mandatory. The event is dropped if it is received without the event property.
_Note:_ Use with caution. If an event is received without the required property, the entire event is dropped. This helps keep data clean but may unintentionally drop valid events.

* **No:** The property is optional. The event is allowed even if it is received without the event property. | | **Data type** | Defines the data type of the event property:

* String
* Integer
* Float
* Boolean
* Mixed
* List | | **Data type fallback** | The fallback action if the event property is not in the defined format:

* **Drop event:** Drops the incoming event if the data type does not match.
_Note:_ This action cannot be undone and purges all past and future data for the event.
* **Drop event property:** Drops the incoming event property if the data type does not match.
_Note:_ This action cannot be undone and purges all past and future data for the event property.
* **Allow property:** Allows the property even if the data type does not match.

An error is reported for all actions. A _drop_ has higher severity, while _allow_ has lower severity. For more information, see [Error Stream](https://docs.clevertap.com/docs/error-stream)
. | | **Created on** | The date when the user property was created. | | **Description** | The description of the event property. You can set this from the ellipsis menu on the event property row. The property is optional, and the event is allowed even if it is received without the event property. | > 📘 > > **Effect of Changing the Data Type of an Event or User Property** > > * If you change the user or event property's data type, then all the incoming data will be validated as per the schema definition once you publish the changes. > * The values already present in the old data type will not change in the new data type. > * For the users who already have the value of the user/event property in the old data type, you will have to again pass the user/event property with the value that will have a new data type. Add Event Property [](https://docs.clevertap.com/docs/schema#add-event-property) ------------------------------------------------------------------------------------ To add an event property: 1. Click the number of properties shown in the _Custom events_ tab 2. Click **+Property**, then click **Add new**. You can also add an event property from the catalog by clicking **Add from catalog**. For more information, refer to [Add Columns from a Catalog](doc:catalog-data-ingestion#add-columns-from-a-catalog) . 3. Enter a property name and choose the relevant property details. 4. Select the checkmark. ![](https://files.readme.io/9a45a27-Add_property.png) Add Event Property Edit Event Property [](https://docs.clevertap.com/docs/schema#edit-event-property) -------------------------------------------------------------------------------------- You can edit any column; however, you can only edit names for unpublished event properties. 1. Click the edit icon on the property row from the _Custom events_ tab. 2. Edit the property name and any other appropriate property details. 3. Click the checkmark. ![](https://files.readme.io/804cbdc-Edit_Event_Property.png) Edit Event Property Remove Event Property [](https://docs.clevertap.com/docs/schema#remove-event-property) ------------------------------------------------------------------------------------------ You can remove an unpublished event property. 1. Click the ellipsis icon on the property row from the _Custom events_ tab. 2. Click **Remove**. After an event property is removed: * The entire event property row is removed from the schema. * If an event property comes in with the same name, it is considered undefined. Discard Event [](https://docs.clevertap.com/docs/schema#discard-event-1) ---------------------------------------------------------------------------- You can discard an active event from the schema. You can still see the event row in the schema; however, the event is marked as discarded. Post discarding, CleverTap removes the data after 16 days. However, you can choose to restore the discarded event after 24 hours. For more information, refer to [Restore Events](doc:schema#restore-event) . > ❗️ > > ### > > Caution When Discarding an Event > > [](https://docs.clevertap.com/docs/schema#caution-when-discarding-an-event) > > You can discard only an active event. Discarding an event purges all data for that event and drops any future incoming events with the same name. This action impacts your schema. A discarded event can be restored, but only after 24 hours. 1. Click the ellipsis menu on the event row. 2. Click **Discard**. ![](https://files.readme.io/6f94655-Discard_event.png) Discard an Event > 📘 > > **Discard Access** > > Only admin users can discard events. Restore Event [](https://docs.clevertap.com/docs/schema#restore-event) -------------------------------------------------------------------------- You can restore a previously discarded event, event property, or user property from the schema. Once restored, it becomes available again across Campaigns, Journeys, Analytics, and other features that use the schema. > 🚧 > > **Cooldown Period for Restore and Re-discard** > > * After you discard an item, you cannot restore it for the next 24 hours. > * After you restore an item, you cannot discard it again for the next 24 hours. > > These measures prevent accidental or repeated changes to your schema. > 📘 > > **Private Beta** > > This feature is currently available in Private Beta for selected customers. To enable, contact your Customer Success Manager or raise a support ticket. ### Restore a Single Item [](https://docs.clevertap.com/docs/schema#restore-a-single-item) 1. Go to the _Custom events_ page. 2. Locate the discarded event you want to restore. 3. Click the ![](https://files.readme.io/d1a1a29245a043e42fe9f768ccb6c41e50dc1693d8b3553ac09edd9cadcc8355-Restore_Icon.png) icon. 4. In the confirmation window, click **Restore**. ![](https://files.readme.io/b64c088b7f531e770b0e9b81441008e59bb5b099c0a00a2f8b0be2826e0b9568-image.png) Restore Custom Event ### Restore Multiple Items [](https://docs.clevertap.com/docs/schema#restore-multiple-items) 1. Go to the Events, or Event Properties, or User Properties table on the _Custom events_ page. 2. Select the discarded items you want to restore. 3. Click the ![](https://files.readme.io/4f93c7fed376db11d7b36dd4e54539e1a2284761341d8dfc3e227322f366d3d5-Restore_Icon.png) icon from the toolbar. 4. In the confirmation window, click **Restore**. ![](https://files.readme.io/f3def79a65dda3e144e4a8711f3e4e0407dc1b61b35dbcb12699fbde4ba41230-image.png) Bulk Restore Discarded Items > 📘 > > **Restore Access** > > Only admin users can restore the discarded events. User Properties [](https://docs.clevertap.com/docs/schema#user-properties) ============================================================================== This section shows how to manage your user properties. 1. Navigate to _Settings_ > _Schema_ > _User Properties_. All the user properties are listed on this page. 2. Click any of the properties on the user property row to see the property details. From this page, you can also search and filter properties. | Property Detail | Description | | --- | --- | | **Property name** | The name of the user property. | | **Type** | The type of property:

* **Defined:** Properties that you have added to the schema.
* **Undefined:** Properties that you have not added to the schema and are currently receiving data. | | **Status** | A user property can have any of the following statuses:

* **Active:** A user property that has been passed to CleverTap.
* **Inactive:** A user property that has not yet been passed to CleverTap.
* **Discarded:** A user property for which all past data has been dropped. Any future data passed for this user property with the same name will also be dropped. | | **Data type** | Defines the data type of the user property:

* String
* Integer
* Float
* Boolean
* Mixed
* List | | **Data type fallback** | Includes the following actions:

* **Drop user property:** Drops the incoming property if the data type does not match.
_Note:_ Use with extreme caution. This action cannot be undone and purges all past and future data for the discarded user property.
* **Allow property:** Allows the property even if the data type does not match.
An error is reported for all actions. A _drop_ has higher severity, while _allow_ has lower severity. For more information, see [Error Stream](https://docs.clevertap.com/docs/error-stream)
. | | **Created on** | The date when the user property was created. | Add User Property [](https://docs.clevertap.com/docs/schema#add-user-property) ---------------------------------------------------------------------------------- To add a user property from this page: 1. Click the **+Property** button. 2. Enter a property name and choose a data type. 3. Click the checkmark. ![](https://files.readme.io/fc5ba43-Add_User_Property.png) Add User Property Edit User Property [](https://docs.clevertap.com/docs/schema#edit-user-property) ------------------------------------------------------------------------------------ You can edit any column; however, you can only edit names for unpublished user properties. To edit a property, click the edit icon on the property row. 1. Click the edit icon on the property row. 2. Edit the property name and the data type. 3. Click the checkmark. ![](https://files.readme.io/0afe960-Edit_User_Property.png) Edit User Property Remove User Property [](https://docs.clevertap.com/docs/schema#remove-user-property) ---------------------------------------------------------------------------------------- You can remove an unpublished property. 1. Click the ellipsis icon on the property row. 2. Click **Remove**. After a user property is removed: * The entire user property row is removed from the schema. * If a user property comes in with the same name, it is considered as an undefined user property. Discard User Property [](https://docs.clevertap.com/docs/schema#discard-user-property) ------------------------------------------------------------------------------------------ You can discard a published user property from the schema. You can still see the property row in the schema; however, it will be marked as discarded. 1. Click the ellipsis icon on the property row. 2. Click **Discard**, and a new window displays. 3. Click **Discard** again. ![](https://files.readme.io/d75580c-Discard_User_Property.png) Discard User Property > ❗️ > > **When Discarding a User Property** > > Exercise extreme caution when discarding a user property. This action cannot be undone. This action has an impact on your schema because it purges data for the discarded user property. It also drops any future incoming user property with the same name. Create Linked Event for User Property [](https://docs.clevertap.com/docs/schema#create-linked-event-for-user-property) -------------------------------------------------------------------------------------------------------------------------- You can link an event with a user property. This allows you to trigger campaigns, conversions, and exits based on changes in user properties. For example, a gaming app has a user property named `Game Level` that represents a user's progress in the game. You can link an event named `Game Level Upgraded` to the `Game Level` user property. By doing so, any change in this property to a higher level will activate a campaign. The campaign will congratulate the users and grant them a reward or a unique power corresponding to their achievement. > 📘 > > **Key Points to Remember** > > * This feature is supported only for messaging channels such as Push, SMS, Email, In-App, Webhooks, and remarketing channels such as Google Ads and Facebook Audiences. > * For In-App, CleverTap SDK v7.0.0 or higher is required. > * User property updates via Journeys are not supported for this feature. To link an event with a user property: 1. Navigate to _Settings_ > _Schema_ > _User Property_ from the CleverTap dashboard. 2. Click the ![](https://files.readme.io/01a6671-Ellipsis.png) icon and select _Create Linked Event_. 3. Enter the _Event Name_ and click **Create Event**. Create Linked Event ### Create Linked Events in Bulk [](https://docs.clevertap.com/docs/schema#create-linked-events-in-bulk) You can select multiple user properties at a time and link a required event to it. To create linked events in bulk: 1. Select the user properties you want to link and click the ![](https://files.readme.io/9bd94d1-Bulk_Link.png) icon. ![](https://files.readme.io/6675b4f-Bulk_Link_Event.png) Bulk Link Events 2. Enter the events you want to link for each user property and click **Create**. ![](https://files.readme.io/7b5b7fd-Create_Linked_Events_in_Bulk.png) Create Linked Events in Bulk ### Discard Linked Event [](https://docs.clevertap.com/docs/schema#discard-linked-event) You can discard a linked event from the user property. To discard linked events: 1. Click the ![](https://files.readme.io/01a6671-Ellipsis.png) icon of the user property. 2. Select _Discard Linked Event_ and click **Discard**. ![](https://files.readme.io/5980787-Discard_Linked_Event.gif) Discard a Linked Event > 📘 > > **Key Points to Remember** > > The following are the key points to consider when creating linked events: > > * You can link only one event with a user property. > * You can link events only on active properties. > * You cannot create a linked event with the same name as a system event. > * Discarding a linked event from the user property: > * Delinks the event and the user property. > * Stops receiving additional data associated with the user property. > * Does not delete any data. System Events [](https://docs.clevertap.com/docs/schema#system-events) ========================================================================== System events are tracked automatically. CleverTap offers the capability to configure system events, enabling businesses to monitor and analyze user actions in their applications. However, some businesses may not have an immediate need for certain system events, resulting in potentially avoidable expenses. CleverTap allows businesses to configure those unused system events, providing a seamless process to address this issue. Configure System Events [](https://docs.clevertap.com/docs/schema#configure-system-events) ---------------------------------------------------------------------------------------------- To configure the tracking of system events: 1. Navigate to _Settings_ > _Schema_ > _Events_ from the CleverTap dashboard. 2. Select the event that you want to configure from the _System events_ tab. 3. Click the ![](https://files.readme.io/fb90f6a-Ellipsis.png) icon and select _Enable/Disable_ from the list. ![](https://files.readme.io/4454bcf-UTM_Tracking_Toggle_Off.gif) Turn Off Toggle to Disable Tracking UTM Visited Currently, you can enable or disable tracking for the following events from the CleverTap dashboard: Push Impressions The Push Impression event is tracked when a push notification sent from CleverTap is delivered to a user’s device. After the toggle for Push Impressions is turned on, the CleverTap SDK starts recording an event whenever a push notification sent via CleverTap is delivered to the user’s device. The _Push Impression_ event has its own event properties and the users can configure these non-required event properties to optimize the cost. To do so: 1. Navigate to _Settings_ > _Schema_ > _Events_ from the CleverTap dashboard. 2. Select the _Push Impressions_ event from the _System events_ tab. 3. Click the ![](https://files.readme.io/fb90f6a-Ellipsis.png) icon and select _Setup push impressions_ from the list. 4. Turn ON the **Mobile Push** toggle and click **Save**. The _Push impressions tracking enables_ message displays on the screen. ![](https://files.readme.io/94f4dcb-Turn_Off_Push_Impression_Tracking.gif) ### Disable Event Property Tracking [](https://docs.clevertap.com/docs/schema#disable-event-property-tracking) The users can disable the tracking of some of the _Push Impression_ event properties from the CleverTap dashboard. However, there are a few Push Impression event properties for which you do not have the option to disable the tracking. These are listed as follows: | Property | Property Description | Configurable | | --- | --- | --- | | `wzrk_push_amp` | Indicates whether push amplification is enabled. | No | | `wzrk_pn` | Indicates whether the push notification is sent from CleverTap. | No | | `CT Source` | Specifies the source of the CleverTap campaign. | No | | `wzrk_id` | Specifies the CleverTap campaign ID associated with the notification. | No | | `wzrk_pid` | Specifies the unique ID for the push notification. | No | | `wzrk_pivot` | Indicates the variant used in the A/B test campaign. | No | | `wzrk_acct_id` | Specifies the CleverTap Account ID. | No | | `CT App Version` | Indicates the version of the CleverTap App. | No | | `wzrk_dt` | Specifies the delivery type for the notification. | No | | `wzrk_acts` | Refers to the CTA button included in the notification. | No | | `wzrk_pn_h` | Indicates the RenderMax health status of the push notification. | No | | `wzrk_pn` | Indicates that the notification is sent from CleverTap, if present. | No | | `wzrk_bp` | Displays an image in the notification if the URL is present. | Yes | | `wzrk_sound` | Plays the default or custom Android notification sound if present. | Yes | | `nt` | Displays the notification title; defaults to app name if absent or empty. | Yes | | `nm` | Displays the notification body; ignores the notification if absent or empty. | Yes | | `wzrk_dl` | Opens the specified deeplink when the notification is clicked, if present. | Yes | | `wzrk_d` | Ignores the notification if this key is present. | No | | `ico` | Displays the small notification icon from the specified URL if present and not empty. | Yes | | `wzrk_pivot` | Identifies the variant type in A/B testing if present and not empty.. | Yes | | `wzrk_rnv` | Raises the Push Impressions event if present and not empty. | No | | `wzrk_nms` | Displays summary text with the image if present and not empty. | Yes | | `wzrk_st` | Displays subtitle text next to the app name if present and not empty. | Yes | | `wzrk_clr` | Applies the hex color to the small icon and app name (on Android versions below Pie) if present and not empty. | Yes | | `wzrk_bpds` | Indicates the image rendering status with the following values:

* NO\_IMAGE- No image included
* SUCCESS- Image downloaded successfully
* NO\_NETWORK- Image included but no network connectivity
* DOWNLOAD\_FAILED- Image download failed due to an external error | Yes | | `wzrk_cid` | Refers to the channel ID used for the push notification. | Yes | | `wzrk_mutable_content` | Enables rendering of rich push notification via extension class if set to true. | Yes | | `wzrk_bi` | Specifies the badge icon to be displayed in the push notification. | Yes | | `wzrk_bc` | Specifies the badge count to be shown on the app icon. | Yes | | `Campaign Type` | Indicates the campaign’s channel type (for example, Push, Email, SMS). | No | | `wzrk_ttl` | Specifies the time to live (TTL) for the notification. | Yes | | `wzrk_ttl_s` | Specifies the time to live for the notification in seconds. | Yes | | `wzrk_cts` | Records the timestamp when the notification is clicked. | No | | `wzrk_ck` | Defines the collapse key (typically a timestamp) for the notification. | Yes | | `wzrk_collapsible` | Specifies whether the notification is collapsible. | Yes | | `wzrk_category` | Specifies the notification category for APNS (iOS only). | Yes | | `wzrk_interruption_level` | Sets the interruption level on APNS (iOS only). | No | | `wzrk_relevance_score` | Assigns the relevance score on APNS (iOS only). | No | To disable the tracking of Push Impression event properties: 1. From the _System events_ tab, click the _Properties_ hyperlink. The Push Impressions properties list opens. ![](https://files.readme.io/1dd0fc5-View_Push_Impressions_Properties.png) 2. Select the configurable property, click the ![](https://files.readme.io/fb90f6a-Ellipsis.png) icon, and select _Disable Property_ from the list. The _Enable property tracking_ popup opens. ![](https://files.readme.io/479d1ac-Disable_a_Push_Impression_Property.gif) 3. Click **Disable** to confirm your action. The _Property tracking successfully disabled_ message displays on the screen. The status of the event property changes to _Active_. Once disabled, if you want to enable the tracking later, you can do so by clicking the ![](https://files.readme.io/fb90f6a-Ellipsis.png) icon and selecting **Enable Property** from the list. > 📘 > > **Key Points to Remember** > > The following are some of the points to consider when configuring the _Push Impressions_ event: > > * The event property tracking feature is not available for required properties. > * The **Status** is always _Active_ for mandatory properties. > * The tracking of configurable properties is enabled by default for new (new users of CleverTap dashboard) or returning users (existing users who turned off push impression feature) of Push Impression feature. > * For existing users, the tracking of event properties remains as is, however, they have the additional capability to enable/disable tracking for the same. Web Session Started This is a web entry event similar to the App launched event. This event refers to the event triggered when a user starts a session or engages with your website. This event will be recorded in two cases: * When a user opens a webpage. * When a user reloads the browser after 20 minutes of inactivity. > 📘 > > **Default Behavior** > > This event is disabled by default for all customers and can be configured by the customers. When enabled, it captures the unique visitors to the website in a particular session. UTM Visited The _UTM Visited_ event is tracked when a user clicks on a link from a marketing campaign that has a UTM parameter defined on it. This event is also tracked when a CleverTap-integrated attribution platform, such as AppsFlyer or Branch, sends this information to CleverTap. This event is recorded for your marketing campaigns from external sources, such as Google Ads or Facebook. > 📘 > > **Default Behavior** > > The UTM Visited tracking is ON for new customers by default. For existing customers, the tracking of UTM Visited remains as is. However, they have the capability to enable or disable the same. > 📘 > > **Configuring Other System Events** > > For the remaining system events, you can only change the DRP. Conversion Event [](https://docs.clevertap.com/docs/schema#conversion-event) ================================================================================ The conversion event helps track conversion. To set a conversion event: 1. Navigate to _Settings_ > _Schema_ > _Events_. 2. Click the **Conversion event** tab. To track revenue, set the user conversion event and revenue property. This property must be a numeric value. Qualifying Event [](https://docs.clevertap.com/docs/schema#qualifying-event) ================================================================================ To set a qualifying event: 1. Navigate to _Settings_ > _Schema_ > _Events_. 2. Click the **Qualifying event** tab. This event qualifies users as active if they have performed the event at least once in the defined time. Currently, the [active %](https://docs.clevertap.com/docs/trends#section-active) tab uses the qualifying event on the _Trends_ page. ![](https://files.readme.io/5d67342-set_qualifying.png) Set Qualifying Event Download Schema Data from Dashboard [](https://docs.clevertap.com/docs/schema#download-schema-data-from-dashboard) ====================================================================================================================== You can download the data for all events and user profiles from the CleverTap dashboard or via an API. Event Data [](https://docs.clevertap.com/docs/schema#event-data) -------------------------------------------------------------------- To download event data from the CleverTap dashboard in CSV format: 1. Navigate to _Settings_ > _Schema_ > _Events_. You can download event data from the _System events_ tab or the _Custom event_ tab. 2. Click the **Download as CSV** button, then the _Download CSV file_ window displays. 3. Select to download _Events_ or _Events with properties_. 4. Click **Download**. User Profile data [](https://docs.clevertap.com/docs/schema#user-profile-data) ---------------------------------------------------------------------------------- To download all event data from the CleverTap dashboard in CSV format: 1. Navigate to _Settings_ > _Schema_ > _User Properties_. 2. Click the **Download as CSV** button. Download with API [](https://docs.clevertap.com/docs/schema#download-with-api) ---------------------------------------------------------------------------------- To download event data or user profile data with API, refer to the following: * Use the [Events Schema API](https://developer.clevertap.com/docs/get-schema#section-get-events-schema-api) to download event data. * Use the [User Properties Schema API](https://developer.clevertap.com/docs/get-schema#section-get-user-properties-schema-api) to download user profile data. Considerations [](https://docs.clevertap.com/docs/schema#considerations) ============================================================================ There are some specific validations when creating events and properties. For more information, refer to [Platform Considerations](doc:platform-considerations) . FAQs [](https://docs.clevertap.com/docs/schema#faqs) ======================================================== ### Can we get all past behavior data for an event after discarding it? [](https://docs.clevertap.com/docs/schema#can-we-get-all-past-behavior-data-for-an-event-after-discarding-it) No, we cannot get all past behavior data for an event after discarding it. ### Does a discarded event appear under the user profile in the user's activity? [](https://docs.clevertap.com/docs/schema#does-a-discarded-event-appear-under-the-user-profile-in-the-users-activity) No, a discarded event does not appear under the user profile in the user's activity. ### For how many days can I get the data of discarded events? [](https://docs.clevertap.com/docs/schema#for-how-many-days-can-i-get-the-data-of-discarded-events) You will not get any event data after discarding an event. We recommend you export that event before you delete it. ### If we disable the UTM Visited event from the schema, can it still be ingested through third-party mediums such as attribution tools like AppsFlyer or Customer Data Platforms (CDPs) like Segment? [](https://docs.clevertap.com/docs/schema#if-we-disable-the-utm-visited-event-from-the-schema-can-it-still-be-ingested-through-third-party-mediums-such-as-attribution-tools-like-appsflyer-or-customer-data-platforms-cdps-like-segment) When the UTM Visited event is disabled from the schema, it is dropped at the processing layer, rendering it inaccessible for ingestion from any third-party medium. Updated about 2 months ago * * * Ask AI --- # Project Setup Overview [](https://docs.clevertap.com/docs/project-setup#overview) ======================================================================= A project can be an individual app, website, or product. You can combine multiple platforms, such as Android, iOS, Web, and so on, in a single project. You can also have separate projects for each platform, depending on your business goals. Create a Project [](https://docs.clevertap.com/docs/project-setup#create-a-project) ======================================================================================= After you log on to the CleverTap platform for the first time, you can create a project. From the setup page, perform the following steps: 1. Enter a _Project name_. 2. Select the _Business category_ from the list. 3. Define the Account Timezone. > 📘 > > ### > > What Affects Timezones > > [](https://docs.clevertap.com/docs/project-setup#what-affects-timezones) > > Campaign delivery, Journeys, and scheduled data exports are based on timezones. 4. Choose from the following platforms: * Android * iOS * Web * API 5. Choose the platform for your app. Select _Native_ for native [Android](https://developer.clevertap.com/docs/android) and [iOS](https://developer.clevertap.com/docs/ios) apps. You can also select the other hybrid platforms for Android and iOS, such as: * [Cordova](https://developer.clevertap.com/docs/cordova) * [Unity](https://developer.clevertap.com/docs/unity) * [Xamarin](https://developer.clevertap.com/docs/xamarin) * [React Native](https://developer.clevertap.com/docs/react-native) * [Flutter](https://developer.clevertap.com/docs/flutter-sdk) 6. Click **Create Project**. A project with the specified name is created. ![462](https://files.readme.io/f493061-Chunk_1_-_Dashboard_setup_1.png "Create a Project") Create a Project Create a Test Project [](https://docs.clevertap.com/docs/project-setup#create-a-test-project) ------------------------------------------------------------------------------------------------- CleverTap automatically creates a _Test_ project for testing when you create a Live project. You can perform all your tests on this project before you actually roll out the changes. However, you also have the flexibility to create additional test projects within a Live project if needed. > 📘 > > ### > > Permissions > > [](https://docs.clevertap.com/docs/project-setup#permissions) > > To create a Live or Test project, you must have the Admin access. To create a Test project: 1. Go to _Organization_ > _Projects_ from the CleverTap dashboard. 2. Click **\+ Test Project**. 3. Enter _Project name_. 4. Click **Add**. The Test project is created on the _Projects_ page. ![Create a Test Project](https://files.readme.io/7882f92-Create_a_Test_Project.gif) Create a Test Project Edit a Project Name [](https://docs.clevertap.com/docs/project-setup#edit-a-project-name) --------------------------------------------------------------------------------------------- The admin can edit a project name later, and it will not affect the project in any other way except for the name change. To modify a project name, perform the following steps: 1. From the CleverTap dashboard, navigate to _Settings_ > _Project_. 2. Click the ![](https://files.readme.io/a581163-Ellipsis.png) icon next to the project name. 3. Modify the project name. 4. Click **Save**. ![Change a Project Name](https://files.readme.io/b1d3eb3-Edit_a_Project_Name.gif) Change a Project Name Add Billing Details [](https://docs.clevertap.com/docs/project-setup#add-billing-details) ============================================================================================= This section on the dashboard allows organization admins to configure and manage billing information for the CleverTap account. To view the billing details, go to **Organization** > **Billing** > **Billing details** from the CleverTap dashboard. The **Billing details** page opens. It is split into three main areas: * [Primary Billing Contact](doc:project-setup#primary-billing-contact) * [Secondary Billing Contacts](doc:project-setup#secondary-billing-contact) * [Billing Details and Address](doc:project-setup#billing-details-and-address) Primary Billing Contact [](https://docs.clevertap.com/docs/project-setup#primary-billing-contact) ----------------------------------------------------------------------------------------------------- This form specifies the primary individual responsible for receiving all billing-related communications. This person is the main recipient of billing emails and will be contacted for any payment or invoice issues. ![Primary Billing Contact](https://files.readme.io/1266a368a1c4ac82de7dbeeb130be60f6474983efa7c3aa98856eda64b63d67a-image.png) Primary Billing Contact This form has the following fields: * **Name** _(Required)_: Enter the full name of the primary contact. * **Email Address** _(Required)_: Select from a list of registered users. * **Phone Number** _(Optional)_: Enter the phone number of the billing contact. Secondary Billing Contacts [](https://docs.clevertap.com/docs/project-setup#secondary-billing-contacts) ----------------------------------------------------------------------------------------------------------- This form allows you to add up to 10 additional users as secondary billing contacts. In addition to the primary contact, these users will also receive billing communications. This form has a searchable list to select multiple users. ![Secondary Billing Contacts](https://files.readme.io/7eec679193112b2638f67bdad2e4f68b21ec74345611cda417ebee0990a5ec53-image.png) Secondary Billing Contacts Billing Details and Address [](https://docs.clevertap.com/docs/project-setup#billing-details-and-address) ------------------------------------------------------------------------------------------------------------- These details are required for tax and legal compliance purposes. It includes organization and billing address details that are split into three main areas: * [Billing Details](doc:project-setup#billing-details) * [Billing Address](doc:project-setup#billing-address) * [Shipping Address](doc:project-setup#shipping-address) ### Billing Details [](https://docs.clevertap.com/docs/project-setup#billing-details) This section allows the user to provide details of the organization for tax and legal compliance. ![](https://files.readme.io/c1873ff107920bb4e4044b004efee244161e945d90dc6d44df5ca0e1cb9b27b3-image.png) This form has the following fields: * **Organization Name** _(Required)_: Enter the legal name of the organization. * **DBA (Doing Business As)** _(Optional)_: Specify any alternate business name. * **Tax Number** _(Optional)_: Enter the tax identification number. ### Billing Address [](https://docs.clevertap.com/docs/project-setup#billing-address) This section allows the user to provide a billing address. ![](https://files.readme.io/f259f4128509fd5d55e135eab83de36195b2ada482f7430b0470ed5959394743-image.png) This form has the following fields: * **Billing Address Line 1** _(Required)_: Street, apartment, or company address. * **Billing Address Line 2** _(Required)_: Additional location details (area, sector, and so on). * **Country** _(Required)_: Select from the list. * **State/Province/Region** _(Required)_: Select from the list. * **City/Town** _(Required)_: Enter the name of the city or town. * **Postal Code** _(Required)_: Enter the postal/ZIP code. ### Shipping Address [](https://docs.clevertap.com/docs/project-setup#shipping-address) This section allows the user to provide a different shipping address if necessary. ![](https://files.readme.io/72299150c6212635fc4aba2819cbfbcf17777e3af407a335ad72dcf2718a18ad-image.png) This form has the following fields: * **Checkbox**: _Same as billing address_ auto-fills the shipping address fields, same as billing address. * **Shipping Address Line 1** _(Required)_: Apartment, unit, or suite. * **Shipping Address Line 2** _(Required)_: Street address. * **Country** _(Required)_: Select from the list. * **State/Province/Region** _(Required)_: Select from the list. * **City/Town** _(Required)_: Enter city or town name. * **Postal Code** _(Required)_: Enter postal/ZIP code. Updated about 2 months ago * * * Ask AI --- # Upload Past User Profiles Overview [](https://docs.clevertap.com/docs/upload-past-user-profiles#overview) ----------------------------------------------------------------------------------- This section covers how identified user profiles are treated in the CleverTap dashboard. Already Identified User [](https://docs.clevertap.com/docs/upload-past-user-profiles#already-identified-user) ================================================================================================================= When already identified users visit your app or website from another device or browser, CleverTap creates new profiles for such users. Once they identify with their identities on the app or website through login for example, CleverTap merges the newly created profile with the already present user profile and all the events that were recorded on the new profile before the user identification is blacklisted. These events are shown with a gray background on the user profile. Even though the profiles are merged together, they are stored in two separate memory locations in CleverTap. ![837](https://files.readme.io/cebe9ee-1_Upload_Past_User_Profiles.png "Upload Past User Profiles") View Already Identified Users Existing Profiles [](https://docs.clevertap.com/docs/upload-past-user-profiles#existing-profiles) ===================================================================================================== If a user has an existing profile stored in your CleverTap account and if the user buys a new device and downloads your app and perform some events on this app without sign-up or log-in, the device does not know that this user has an existing profile. Therefore, the system creates an anonymous profile and stores the events in this newly created profile. Once the user shares her identity (e.g., email, mobile phone number, or Google advertising ID) to the anonymous profile for example while login, then this profile gets merged with the user's original profile but the events captured before passing the identity are saved in an orphan profile with only a CleverTap ID and no email, mobile phone number, and other useful properties. In this case, there is no use in qualifying orphan profiles in campaigns or journeys. However, to keep clear data as to how many profiles have been created on the CleverTap dashboard, we include the orphan profiles in the _Find People_ count but these profiles are not included when downloaded. Updated about 2 months ago * * * Ask AI --- # Role-Based Access Control Overview [](https://docs.clevertap.com/docs/role-based-access-control#overview) =================================================================================== As part of our continued commitment to account security and effective collaboration, CleverTap provides Role-Based Access Control (RBAC) to help administrators manage user access across the dashboard. RBAC enables you to assign role-specific permissions, ensuring that each team member, agency partner, or regional stakeholder has access only to the features and data relevant to their responsibilities. With granular access controls, organizations can manage campaigns, data visibility, and account settings securely and efficiently. Invite Users and Assign Roles [](https://docs.clevertap.com/docs/role-based-access-control#invite-users-and-assign-roles) ============================================================================================================================= The admin must invite new users to assign roles and can also reassign existing users' roles. For more information about inviting users to the dashboard, refer to [Manage Users](doc:manage-users#invite-users) . Components of Access [](https://docs.clevertap.com/docs/role-based-access-control#components-of-access) =========================================================================================================== The following table outlines the available components and their respective subcomponents that can be permissioned when setting up or modifying a role. There are two types of roles: System and Custom. System roles are pre-defined and cannot be changed. For custom roles, an _Admin_ role can configure or assign access to these roles. | **Component** | **Subcomponents** | | --- | --- | | **Boards** | • _System Boards_
• _Custom Boards_ | | **Segments** | • _Manual Segmentation_: Segments, Find People
• _Automated Segmentation_: Goals, IBS, RFM | | **Analyze** | • _Core Analytics_: Events, Funnels, Cohorts, Trends, Attribution, Device Crossovers
• _Advanced Analytics_: Pivots, Flows | | **Engage** | • _Campaigns_: Channel Campaigns
• _Journeys_
• _Recommendations_
• _Catalogs_
• _Global Campaign Limit (GCL)_: Define the maximum number of campaigns that can run concurrently
• _Global Throttle Limit (GTL)_: Control the number of messages sent per user per day
• _Bulletins_ | | **Real Impact** | • _Control Groups_: Custom Control Group, System Control Group
• _Real Impact Dashboard_ | | **Settings** | • _Billing_: Billing, app usage, plan, invoices
• _Account Settings_: Add new app, change account, timezone, privacy settings
• _User Settings_: Invite user, revoke access, passcode settings
• _CSV Uploads_: Profile uploads, external user list
• _My Profile and Password_
• _Exports_: Event and profile exports to Amazon S3
• _Downloads_: Download profile
• _Email Reports_: Campaign and Journey reports
• _Campaign Integration and Settings_: Push, Email, SMS, Web Push, Facebook, Google AdWords
• _Campaign Settings_: Campaign limits, best time settings
• _SFTP Imports_: Event and profile imports via SFTP
• _SSO Settings_: Enable/disable SAML SSO
• _GCS Exports_: Event and profile exports to Google Cloud Storage
• _Custom List Segment_
• _Session Analytics_: Enable session tracking
• _Geofences_: Create geofence clusters
• _Attribution Partner Settings_
• _MIXPANEL Exports_: Event exports to Mixpanel
• _Amplitude Exports_: Event exports to Amplitude
• _Mparticle Exports_: Event and profile exports to Mparticle
• _Security_: IP Whitelisting, 2FA
• _Segment Exports_: Event exports to Segment.io
• _Azure Exports_: Event and profile exports to Azure Blob Storage
• _Role Settings_: Role-based access control
• _CDP Imports_: Event and profile imports from external datasource | | **Others** | • _User Profile Management_: Delete user, de-merge user, mark as test
• _Error Stream_: Error stream | | **Schema** | • _Event and Profile Properties Schema_
• _Conversion Event_
• _Qualifying Event_ | | **Optimization Features** | • _Lifecycle Optimizer_ | | **Product Experiences (Legacy)** | • _Setup_: Legacy Setup
• _Experiences & Experiments_: Legacy Experiences & Experiments | | **CMS** | • _Files_: CMS Files
• _Templates_: CMS Templates | | **Product Experiences** | • _Remote Config & A/B tests_: Remote Config, A/B tests | | **Promotions** | No sub-options | Types of Roles [](https://docs.clevertap.com/docs/role-based-access-control#types-of-roles) =============================================================================================== Roles in CleverTap can be broadly categorized as System Roles and Custom Roles. The following sections discuss each of these roles in detail. System Roles in CleverTap [](https://docs.clevertap.com/docs/role-based-access-control#system-roles-in-clevertap) --------------------------------------------------------------------------------------------------------------------- CleverTap provides four standard system roles. These roles are predefined and _cannot be cloned, deleted, or edited_. | **Role** | **Description** | **Key Permissions** | | --- | --- | --- | | **Admin** | Full and unlimited access to the account. | * Assign users to any role (Admin, Creator, Member, or Custom)
\- Revoke user access
\- Create, stop, and archive campaigns
\- Approve/reject campaigns from Creators
\- View analytics
\- Download user profiles and reports
\- Add/update billing details
\- Modify event and profile schema
\- Manage security settings (IP Whitelisting, 2FA, Campaign Approval Workflow) | | **Creator** | Create and manage all types of engagement (campaigns, journeys, product experiences). | * Create, stop, and delete engagements
\- View analytics
\- Download reports
\-_Cannot revoke user access or view billing details_. | | **Member** | Read-only access to view analytics and reports. | * View campaign performance
\- Access dashboards and reports | | **Approver** | Approve campaigns created by users in the Creator role. | * Assign users to Creator, Member, or Custom Roles
\- Create, stop, and archive campaigns
\- Approve/reject campaigns from Creators
\- View analytics
\- Download user profiles and reports | | **Agent** | Read-only access to view analytics and reports. Access to Conversations. | Replying to customer chats, ticket statuses, and managing chats with users. No access to campaign, billing, and so on. For more information, refer to [Conversations](https://docs.clevertap.com/docs/conversations)
. | > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/role-based-access-control#note) > > The Approver role can only be accessed when the [Campaign Approval Workflow](https://docs.clevertap.com/docs/campaign-approval-workflow) > feature is turned on. Custom Roles [](https://docs.clevertap.com/docs/role-based-access-control#custom-roles) ------------------------------------------------------------------------------------------- Custom Roles in CleverTap allow administrators to define and assign precise access controls based on specific business needs. You can configure permissions at a granular level—across components, engagement features, and data access—ensuring that each user has access only to what’s relevant to their role. Custom Roles are of two types: * _Basic Custom Role_: Allows you to provide access to dashboard components and engagement permissions. * _Advanced Custom Role_: Allows you to define data access at a granular level, as well as dashboard components and engagement permissions. Define Access for Custom Roles [](https://docs.clevertap.com/docs/role-based-access-control#define-access-for-custom-roles) =============================================================================================================================== Once a custom role is created, administrators can configure specific permissions for components, engagement features, and data access to ensure each user has appropriate and secure access based on their responsibilities. Define Access for Basic Custom Roles [](https://docs.clevertap.com/docs/role-based-access-control#define-access-for-basic-custom-roles) ------------------------------------------------------------------------------------------------------------------------------------------- Basic Custom Roles refer to user-defined roles that are not tied to advanced data segmentation or user property filters. These roles allow you to control access at the component level—such as Boards, Campaigns, or Analytics—based on standard read/write permissions. Administrators can assign a Basic Custom Role when inviting new users or by cloning and modifying an existing role. To define a Basic Custom Role, configure the following: * _Access Level_ : * Read Access: Grants view-only access to the selected component. Users can see the data (such as campaign statistics) but cannot make changes or download content. * Write Access: Grants full access to create, edit, and manage the selected component, including modifying configurations such as throttle limits. * _Component_: Choose the feature or module (such as Campaigns or Journeys) to which the user should have access. * _Engagement Permissions_: Use this setting to control which roles can engage with users through specific channels and apply global campaign or throttle limits as required. * _Data Access_: Provide users access to different datasets and restrict access to the data you do not want them to view on the CleverTap dashboard. ow. ### Component Access [](https://docs.clevertap.com/docs/role-based-access-control#component-access) You can assign granular permissions to the users for each component. Define which components are available to the user role. You can specify whether the users must have complete or restricted access to Campaigns and Journeys. For more information, refer to [Components of Access](doc:role-based-access-control-advance-governance#components-of-access) . ![Provide Component Access](https://files.readme.io/d2ea0b423c0110329211f10128bb02901c3794fbfa6ccc7d2e28d76140e3b522-image.png) Provide Component Access ### Engagement Permissions [](https://docs.clevertap.com/docs/role-based-access-control#engagement-permissions) This tab is visible only to roles with _Write_ access to engagement components, such as Campaigns and Journeys. You can define the Limits and Channel access from this tab. ![Limits and Channels Permissions](https://files.readme.io/4882c07e60aac57d6f21b8a884f4cc4b65949b9205cc4a37e5d61f9de8123a3c-image.png) Limits and Channels Permissions #### Global Campaign and Throttle Limit Access [](https://docs.clevertap.com/docs/role-based-access-control#global-campaign-and-throttle-limit-access) Administrators can define whether users have permission to modify limits for campaigns and journeys, ensuring better control over engagement volume and compliance. The following table explains the Global Campaign and Throttle Limit for user roles when creating or editing an engagement, that is, Campaigns or Journeys: | Read | Write | Apply by Default in Engagements | User Access Provided | | --- | --- | --- | --- | | Yes | Yes | Yes | The limit is applied by default. Users can choose to enable or disable it based on the use case. For example, a team member sending both transactional and promotional messages can choose to apply limits only to promotional campaigns. | | Yes | No | Yes | The limit is applied by default for this role. Users can view the specified limit but cannot modify it. For example, a marketer sending regular promotional messages can see the applied limits but cannot adjust them—ensuring adherence to predefined sending limits. | | Yes | Yes | No | The limit is not applied by default. Users can choose to apply the limit if needed. For example, a team member who mainly sends transactional messages but occasionally runs promotional campaigns can enable limits when required. | | Yes | No | No | No limits are applied. Users can view the limit but cannot change it. For example, a team member responsible for transactional messages does not have limits enforced to ensure critical communication is always sent. | You can view the impact of assigned permissions when creating campaigns or journeys. For more information, refer to [Global Campaign and Throttle Limits](https://docs.clevertap.com/docs/global-campaign-and-throttle-limits-permissions) . #### Channel Level Access [](https://docs.clevertap.com/docs/role-based-access-control#channel-level-access) Channel-level access lets administrators control which users can view or manage campaigns and journeys for specific communication channels such as Push Notifications, Emails, SMS, Web Push, App Inbox, and so on. In multi-team setups, not every user needs access to every channel. Channel-level permissions help teams collaborate effectively by controlling who can view or modify campaigns on each channel, ensuring that users only interact with channels relevant to their role or team. A user should first have access to the Campaigns or Journeys in general. From there, their channel-level permissions determine their role within each channel: * **Read access**: If users have read access to Campaigns or Journeys, they can view content for all channels. This ensures a consistent experience within Journeys. * **Write access**: If users have write access to Campaigns or Journeys, they can create, edit, clone, publish, or delete content—but only for channels where they have been explicitly granted channel-level write access. > 📘 > > ### > > Channel Write Restrictions > > [](https://docs.clevertap.com/docs/role-based-access-control#channel-write-restrictions) > > * For example, if a user role has write access to Push Notifications but not to Emails, the user can: > * Create and edit Push Notification campaigns. > * View Email campaigns but cannot create, edit, or clone them. > * Drag and drop only Push Notification nodes (not Email nodes) inside Journeys. > * Campaign actions such as labeling, archiving, pausing, stopping, and publishing can only be performed on Push Notification campaigns. If a user does not have the necessary permissions to access campaigns or journeys, contact the admin to request access. ![Limited Access Error](https://files.readme.io/5a04d9f08557d3ed7705766c495c01a1f91c92c540e798003dae802dbe706ba5-image.png) Limited Access Error Define Access for Advanced Custom Roles [](https://docs.clevertap.com/docs/role-based-access-control#define-access-for-advanced-custom-roles) ------------------------------------------------------------------------------------------------------------------------------------------------- Custom roles can be mapped to user groups for advanced role-based access control. You can give various users access to different datasets and restrict access to the data you do not want them to view on the CleverTap dashboard. Administrators can also restrict data access to new custom roles based on selected user properties, such as geographies. Users assigned to these roles are limited to only read or modify the data available to the particular role. For example, you can grant access to the role _US Campaign Manager_, which has write access to campaigns only for United States users. This role cannot create campaigns for users in other geographies. > 📘 > > ### > > Private Beta > > [](https://docs.clevertap.com/docs/role-based-access-control#private-beta) > > Currently, this is a Private Beta Release. If you want access to this feature, contact your Account Manager. ### Data Access and Segment Restrictions [](https://docs.clevertap.com/docs/role-based-access-control#data-access-and-segment-restrictions) The Advanced Custom Roles allow configuring Data Access permissions. In addition to the [Components Access](https://docs.clevertap.com/docs/role-based-access-control#component-access) and [Engagement Permissions](https://docs.clevertap.com/docs/role-based-access-control#engagement-permissions) tab, the Data Access tab allows you to define which users a role can view and interact with on the CleverTap dashboard. You can choose to grant access to all users or apply filters using user properties or predefined segments to restrict access. This functionality helps enforce role-based data visibility, which is particularly useful for distributed teams, regional ownership, and compliance-driven environments. **Example 1: Regional Access by User Property** A regional marketing manager for France is assigned a role with a user property filter where `Country = France`. Even when viewing "All Users" reports, the manager will only see data related to users in France. Information from other regions remains inaccessible. **Example 2: Segment-Based Access** A custom role is restricted to: * Users in the segment _Engaged Users – at least 4 times_ * Users with the `Customer Type = Gold` This ensures that the user can only access data for a specified user base, even when broad filters such as _All Users_ are selected. ![Map User Properties and Events](https://files.readme.io/2f9a3d0fca0a25fce0bed68574cfd0545abf6cfc9333149a8c64dc1c8933fb27-image.png) Map User Properties and Events > 📘 > > ### > > **Note** > > [](https://docs.clevertap.com/docs/role-based-access-control#note-1) > > When you restrict access using a user property or segment, the limitation applies globally—even if the role attempts to view _All Users_. > > You _cannot assign more than one segment role per user_. ### Masking Personally Identifiable Information and Events [](https://docs.clevertap.com/docs/role-based-access-control#masking-personally-identifiable-information-and-events) This option allows you to mask personal information such as Email, Phone number, Location, Gender, User properties, other sensitive data, and the event activity of a user profile for the specific user role. For more information, refer to [PII Masking](https://docs.clevertap.com/docs/pii-masking) . ### Access Overview [](https://docs.clevertap.com/docs/role-based-access-control#access-overview) The Overview tab provides a summary of the role configuration, including role name, assigned permissions, data access settings, and engagement limits. This view allows administrators to quickly review and validate all access controls before finalizing the custom role. ![Role Overview](https://files.readme.io/c3e0e17570fb82b12d54efecc0c2b4f24af9c40aa7f41b1e68c17474b20c9c8e-image.png) Role Overview Create Custom Roles [](https://docs.clevertap.com/docs/role-based-access-control#create-custom-roles) ========================================================================================================= To create a custom role, perform the following steps: 1. Navigate to _Settings_ > _Roles_ from the dashboard. 2. Click **Create Role**. ![Create a New Role](https://files.readme.io/7f28c0d0d7362316f3fc1e4b40a178020819dfbd8712e722951ff087098aad04-image.png) Create a New Role 3. The _Create Role_ page appears. Select the required permissions for each tab and click **Next** when done. 4. In the final step, specify the name and click **Create** to add the new role. The Overview tab displays permissions assigned to the new role. ![Role Overview](https://files.readme.io/36a2944dc79224c17011e70217c2cd1ca86db0bb09e845f85cca93cb94d7a95f-image.png) Role Overview Manage Custom Roles [](https://docs.clevertap.com/docs/role-based-access-control#manage-custom-roles) ========================================================================================================= You can edit, clone, or delete custom roles. To edit, clone, or delete a role, hover over the role and select the corresponding icon. ![Role Operations](https://files.readme.io/bbc503426c5f5508969bfd86cb7bf2fb77244764e89cc88e4ff9ded187ffb1aa-image.png) Role Operations Handle Access Conflicts [](https://docs.clevertap.com/docs/role-based-access-control#handle-access-conflicts) ----------------------------------------------------------------------------------------------------------------- Permissions and access can be set while creating a custom role. The following order of preference applies. * **Role Assignment**: A user can only be assigned system role(s) and custom role(s). * **Permission Conflict on System Roles**: When a user is assigned multiple system roles, there is a permission conflict, and the role with the higher access level is enabled. For example, if a user is assigned both Admin and Creator roles, Admin access is enabled. Thus, a user cannot have multiple system roles enabled simultaneously. * **Component Conflict on System Role and Custom Role**: When a user is assigned a system role and a custom role, there can be situations where one role has access to a component, and another role does not allow access to the same component. In this case, the permissions will be a union. For example, a user has two roles: “Creator” and “Custom B.” Role Creator has write access to Campaigns while role Custom B does not have access to Campaigns. In this scenario, write access is granted. * **Component Conflict on Custom Roles**: When a user is assigned multiple custom roles, there can be situations where one role has access to a component, and another role does not allow access to the same component. In this case, the permissions are restricted to the intersection of the roles. For example, a user has two roles: “Custom A” and “Custom B.” Role Custom A has write access to Campaigns while role Custom B does not have access to Campaigns. In this scenario, the user will not have write access to the Campaigns. ![Permission Clash For Custom Roles](https://files.readme.io/2ca1e03-Jash-Deepen-Document-v1.png) Permission Conflict For Custom Roles Enforcement Across Campaign Actions [](https://docs.clevertap.com/docs/role-based-access-control#enforcement-across-campaign-actions) ========================================================================================================================================= Users can view all channels while creating or managing campaigns, but can only take action (create, edit, clone, stop, archive, label, or publish) on campaigns for channels where they have write access. Restricted channels are visible but disabled. RBAC is enforced across all entry points (for example, Listings, Segments, Analytics, or URL access). * **Bulk actions** (like stop, archive, or label) fail entirely if any selected campaign is unauthorized. * **Cloning** is only allowed if the user has write access to all channels used in the original campaign. * **Push + App Inbox**: If the user does not have write access for App Inbox, the option to send it with Push is disabled. * **Direct URL access** is validated against RBAC before allowing publish or edit. * **Campaigns created via API** are not restricted by RBAC settings. General Rules of Access [](https://docs.clevertap.com/docs/role-based-access-control#general-rules-of-access) ================================================================================================================= These rules define how CleverTap applies access controls across system and custom roles. Understanding these guidelines helps ensure roles are assigned appropriately and that permissions are enforced consistently across the platform. * Any role with write access automatically includes read access. * A user can have only one system role at a time. * A user can be assigned multiple custom roles, with one important exception: If a custom role includes data access restrictions based on user properties (such as geography or customer tier), the user can only be assigned one such role. For example, if one custom role is restricted to users in the U.S. and another to users in India, the user can be assigned only one of these roles. This ensures that data access remains isolated to a single segment and prevents overlapping access. * Users can hold one system role and multiple custom roles (excluding filtered roles). FAQs [](https://docs.clevertap.com/docs/role-based-access-control#faqs) =========================================================================== Do RBAC settings apply to campaigns created via API? No, RBAC restrictions for campaigns do not apply to API-created campaigns. What happens if a user has multiple roles with conflicting channel access? * If one role grants **write access** and another does not, the most restrictive permission is applied. * For example, if Role A grants write access and Role B is read-only, the user will only have **read-only** access. Will users with restricted channel access still be able to view campaigns and journey setups? Yes. All users have **read or view-only access** to all campaign channels by default. This helps them view multi-channel Conversations only — replying, ticket statuses, managing chats with users. No campaign or billing etc.setups (such as in journeys) even if they can’t edit them. However, they cannot create, edit, clone, or publish campaigns for channels where write access is restricted. Can users with restricted channel access create campaigns or journeys from Analytics or Segments? No. If a user does not have write access to Campaigns and Journeys, CleverTap blocks them from creating campaigns directly from the Analytics or Segments sections. An error message is shown when the user tries to initiate the action. Updated about 2 months ago * * * Ask AI --- # Event Design Overview [](https://docs.clevertap.com/docs/event-design#overview) ====================================================================== A good event design can unlock actionable insights and maximize the value of your analytics data. CleverTap offers a comprehensive event design framework to help businesses track and analyze user interactions effectively. This document describes the guidelines and the best practices of event design within CleverTap. By following the guidelines and best practices outlined in this guide, businesses can optimize their event-tracking strategy and drive meaningful user engagement and retention. Guidelines for Event Design [](https://docs.clevertap.com/docs/event-design#guidelines-for-event-design) ============================================================================================================ The following is a comprehensive set of guidelines to help you navigate the complexities of event tracking: How Many Events to Track? [](https://docs.clevertap.com/docs/event-design#how-many-events-to-track) ------------------------------------------------------------------------------------------------------- Determining the number of events to track depends on the complexity of your app or website's functionality. While some apps or websites may require only a few key events, others with richer functionalities may need a more extensive event-tracking approach. It is essential to strike a balance and avoid tracking every minor user action, focusing instead on actions crucial for completing processes within your app or website. * **Basic Apps**: Apps with fundamental features typically require only a few key events. For example, these apps require approximately 20 key events to track essential user interactions, such as Sign-ups, Purchases, and App Launches. * **Feature-rich Apps**: Applications offering a wide range of features and functionalities may require tracking approximately 200 events to capture diverse user actions comprehensively. For example, in addition to tracking Sign-ups and Purchases, these apps may need to monitor advanced interactions such as feature usage, content consumption, and social sharing. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/event-design#note) > > Please note that these number serves as a rough guideline and may vary depending on individual app requirements. Which Events to Track? [](https://docs.clevertap.com/docs/event-design#which-events-to-track) ------------------------------------------------------------------------------------------------- Identifying the events to track depends on the critical actions users perform within your app. A helpful rule of thumb is to check if all steps of a process can be represented in a funnel structure. You can optimize your event-tracking strategy by focusing on actions that drive engagement and contribute to your app's success. You can consider the following examples of essential events to track: * **Sign-up Process Completion**: Tracking when users complete the sign-up process provides valuable insights into user acquisition and conversion rates. * **In-App Purchases**: Monitoring purchases within your app allows you to analyze user spending behavior and optimize revenue generation strategies. * **Onboarding Progress**: Tracking users' progress through the onboarding process helps identify potential bottlenecks and areas for improvement. Best Practices for Event Design [](https://docs.clevertap.com/docs/event-design#best-practices-for-event-design) ==================================================================================================================== From naming conventions to user action properties, explore key strategies to enhance your event-tracking strategy and drive actionable insights. Unlock the full potential of your app analytics with the best practices for effective event design listed below. Nomenclature for Events [](https://docs.clevertap.com/docs/event-design#nomenclature-for-events) ---------------------------------------------------------------------------------------------------- Clear and descriptive event names ensure consistency and clarity in your event-tracking strategy. Name events by adopting a Noun-Verb pair format (for example, App Launched, Product Viewed) to ensure consistency. This approach enhances data comprehension and facilitates collaboration within your team. Let's illustrate this concept with a few more examples: | Poor Event Name | Improved Event Name | | --- | --- | | Initiated\_Buy\_Screen1 | Product Added to Cart | | Clicked\_Button123 | Button Clicked | | Opened\_Screen\_ABC | Screen ABC Opened | | Selected\_Item\_XYZ | Item XYZ Selected | | Completed\_Form\_1 | Form 1 Completed | Finding Essential Events to Track [](https://docs.clevertap.com/docs/event-design#finding-essential-events-to-track) ------------------------------------------------------------------------------------------------------------------------ Identifying key user actions involves understanding the most frequent and important actions users perform within your app. You can identify key user actions by answering two fundamental questions: * What are the most frequent actions users perform in my app? * What are the most important actions I want users to perform in my app? These questions guide the selection of meaningful and actionable user-centric metrics, steering away from traditional event-centric tracking methods. For example: * **Frequent User Actions**: _Search_, _Visit Sale Pages_, _Add to Cart_ * **Important User Actions**: _Register_, _View Products_, _Purchase_ Tracking User Action Properties [](https://docs.clevertap.com/docs/event-design#tracking-user-action-properties) -------------------------------------------------------------------------------------------------------------------- Enhance the granularity of event tracking by incorporating user action properties. Start with tracking fundamental actions and gradually introduce complexity by including action properties to enrich your data analysis. For example, with the _Added to Cart_ event, you can track properties such as _Product Name_, _Product Category_, and _Cart Amount_. By including properties like _Product Name_ and _Category_, you can gain deeper insights into user behavior and preferences, enabling more targeted marketing campaigns and personalized user experiences. Managing Consistency Across Platforms [](https://docs.clevertap.com/docs/event-design#managing-consistency-across-platforms) -------------------------------------------------------------------------------------------------------------------------------- Maintain consistency in tracked user actions across web and mobile platforms to ensure accurate data analysis and reporting. For example, tracking _Product Viewed_ consistently across web and mobile platforms enables seamless multi-platform marketing reporting and unbiased platform-wise analysis. Resources and Support [](https://docs.clevertap.com/docs/event-design#resources-and-support) ================================================================================================ For additional resources and support on event design within CleverTap, explore the following: * Explore further insights and tips on event design in our blog post: [A Marketer's Guide to Event Design](https://clevertap.com/blog/a-marketers-guide-to-event-design/) . * For assistance or inquiries regarding event design and implementation, contact our support team at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#f88b8d8888978a8cb89b949d8e9d8a8c9988d69b9795) . Updated about 2 months ago * * * Ask AI --- # User Profiles Overview [](https://docs.clevertap.com/docs/user-profiles#overview) ======================================================================= After integrating our SDK, the platform creates a user profile for each person who launches your app or visits your website. ![1423](https://files.readme.io/fb9b378-1_User_Profile.png "View User Profile Details") User Profile A CleverTap user profile has a set of default fields, such as email, phone number, and language. You can also extend the default user profile by adding custom fields that are specific to your business. > 👍 > > ### > > Custom Profile Field Example > > [](https://docs.clevertap.com/docs/user-profiles#custom-profile-field-example) > > If you offer a subscription service in your app, you can create a custom profile field to track what type of plan the user purchased. ![685](https://files.readme.io/908f59f-2_User_properties.png "View User Properties") User Properties The benefit of adding more information to a CleverTap user profile means the ability to: * Create a user segment for people who have a specific profile property you have defined, then build a campaign to engage with that segment. * Personalize your campaign messaging with information. * [Personalize your app](https://developer.clevertap.com/docs/app-personalization) based on information from that person's CleverTap user profile. User Profile Data Model [](https://docs.clevertap.com/docs/user-profiles#user-profile-data-model) ===================================================================================================== A CleverTap user profile consists of three parts: * Identifiers: Each user profile is given a unique CleverTap ID. You can also add other identifiers to recognize the user including email, phone number, Facebook ID, or your own custom identifier. * Properties: This is information stored about the user such as age, gender, device, and location. You can also extend the default user profile by adding custom fields that are specific to your business. * Events: This is a log of actions taken by a user in your app such as a product viewed, a video watched, or an item added to cart. User Profile Types [](https://docs.clevertap.com/docs/user-profiles#user-profile-types) ------------------------------------------------------------------------------------------- The CleverTap user profile type changes automatically depending on the information set in them. A user profile can only belong to one type. * Anonymous: Anonymous profiles do not contain uniquely identifiable information about the user. * Identified: Identified user profiles (also referred to as addressable profiles) can be reached either via email or push notifications. They contain uniquely identifiable information such as email or user ID. ### User Scenarios for Anonymous Profiles [](https://docs.clevertap.com/docs/user-profiles#user-scenarios-for-anonymous-profiles) When tracking anonymous profiles, CleverTap tries to retain guest events as much as possible. The following scenarios explain how anonymous profiles are logged in the system. **Scenario 1** Anonymous user X performs event A from desktop A > Logs in > Performs event B. **Scenario 2** The same user now uses a separate browser and performs event A anonymously > Logs in (as the same user) > Performs event B. Event B will be mapped to this user X. In scenario 2, all the events done before the user identifies themselves are mapped to an anonymous profile. All events post login is mapped to user X and is visible on the profile. As a best-case scenario, the platform shows all the events on the same user X except that any events done in an anonymous mode are shown in gray; these grayed-out events will not be considered for analytics or segmentation. The events before the login event will not be remapped to user X because they are done in an anonymous mode. Since the user has performed the events anonymously, we consider this user as a different user, even though, this is mapped to an already existing identified profile. Updating the User Profile [](https://docs.clevertap.com/docs/user-profiles#updating-the-user-profile) ========================================================================================================= Adding user properties to your user profiles can help you enrich your user information, segment your audience better, and hyper-personalize your messages. CleverTap provides different methods to update user profile properties. By leveraging these methods, businesses can effectively engage with users and drive growth. The following are the different ways to update user profile properties on the CleverTap dashboard: * [Update User Profile via SDK](doc:user-profiles#update-user-profile-via-sdk) * [Update User Profile via API](doc:user-profiles#update-user-profile-via-api) * [Upload CSV File](doc:user-profiles#upload-csv-file) * [Import User Profiles via SFTP](doc:user-profiles#import-user-profiles-via-sftp) * [Track an Event from the SDK](doc:user-profiles#track-an-event-from-sdk) Update User Profile via SDK [](https://docs.clevertap.com/docs/user-profiles#update-user-profile-via-sdk) ------------------------------------------------------------------------------------------------------------- You can use the CleverTap SDK to update user profiles and enrich the profile further to send personalized campaigns. The `Onuserlogin` method is used to identify individual users on a device. However, if additional user properties such as gender and date of birth are required, the profiles can be updated using the `profilePush` method. For more information, refer to [Update User Profile via SDK](https://developer.clevertap.com/docs/concepts-user-profiles#updating-the-user-profile) . Update User Profile via API [](https://docs.clevertap.com/docs/user-profiles#update-user-profile-via-api) ------------------------------------------------------------------------------------------------------------- You can also update user profile properties using CleverTap's RESTful API. The API allows you to update user profiles and supports updates at scale. To do so, use the CleverTap API to update the user profile property. The CleverTap server receives the update and applies it to the respective user profile. For more information, refer to [Upload User Profile API](https://developer.clevertap.com/docs/upload-user-profiles-api) . Upload CSV File [](https://docs.clevertap.com/docs/user-profiles#upload-csv-file) ------------------------------------------------------------------------------------- This feature helps update user profile properties in bulk at once. CSV upload is a manual process that requires the user to upload the data directly from the local system to the CleverTap dashboard in CSV format. To learn more, refer to [CSV Upload](doc:csv-upload) . Import User Profiles via SFTP [](https://docs.clevertap.com/docs/user-profiles#import-user-profiles-via-sftp) ----------------------------------------------------------------------------------------------------------------- With CleverTap's Imports via SFTP feature, you can update user profile properties by importing the file to the SFTP server. SFTP import is an automated process that helps update user profile properties at regular intervals, such as daily or weekly updates, without manual intervention. To learn more, refer to [Imports via SFTP](https://developer.clevertap.com/docs/imports-via-sftp) . Track an Event from SDK [](https://docs.clevertap.com/docs/user-profiles#track-an-event-from-sdk) ----------------------------------------------------------------------------------------------------- With CleverTap events, you can track all individual actions users perform in your app or website. After the event is triggered, the user profile is automatically updated with the latest property value. The CleverTap server receives the event and updates the user profile property. For more information, refer to [Update User Profile](https://developer.clevertap.com/docs/events#custom-events) . Mark a User Profile as a Test Profile [](https://docs.clevertap.com/docs/user-profiles#mark-a-user-profile-as-a-test-profile) ================================================================================================================================= CleverTap provides a test user profile feature to update the user profile to a test profile. This feature helps with the following: * Test messages (including personalized messages) before sending them to the target audience * Test user segmentation To mark a particular user profile as a test profile: 1. Select the required profile from the _Find People_ page. 2. Select _Mark as test profile_ from the _Profile_ page. ![Mark as Test Profile](https://files.readme.io/ede8cf9-Test_Profile.png "Mark a User Profile as a Test Profile") Mark as Test Profile When we mark the user profile as a Test profile, the CleverTap server receives the event and updates the user profile with an additional property, `ct_is_test_user`, with the value `Yes`. The `ct_is_test_user` property is of type String. Exclude Users from the Control Group [](https://docs.clevertap.com/docs/user-profiles#exclude-users-from-the-control-group) ------------------------------------------------------------------------------------------------------------------------------- You can exclude specific users from being placed into a control group by marking them under the **Exclude user from all control groups** setting in their user profile. This setting ensures that the selected users are always included in campaigns and never placed in control groups for A/B tests or split delivery experiments. > 📘 > > ### > > Limit > > [](https://docs.clevertap.com/docs/user-profiles#limit) > > You can exclude up to 20 profiles using this setting. This feature ensures that certain high-priority users or test accounts receive all campaign variations without exclusion. ![Exclude Users from Control Groups](https://files.readme.io/592b966226b6bc53ffcfb96a69570c8b9cd3b51efd3466b287fd474ebaaf8f04-image.png) Exclude Users from Control Groups System User Properties [](https://docs.clevertap.com/docs/user-profiles#system-user-properties) =================================================================================================== System user properties are derived from the user information received from your application after integrating CleverTap SDK. ![1188](https://files.readme.io/722dc07-Test_user_Segments.png "View System User Properties") System User Properties The following are the system user properties available in CleverTap: * Name * Email * Identity * Phone * Gender * DOB * Timezone * MSG-email * MSG-push * MSG-sms * MSG-whatsapp > 📘 > > ### > > Calculating Age > > [](https://docs.clevertap.com/docs/user-profiles#calculating-age) > > If the `birthday` or `DOB`is available as a profile property, CleverTap automatically calculates the age for the user profile. Using _Age_ you can create and target segments, such as all users between 25 to 30 years. ![1934](https://files.readme.io/63927fe-Screenshot_2019-10-22_at_6.26.26_PM.png "Target User Properties and Click View Details") Target User Properties FAQs [](https://docs.clevertap.com/docs/user-profiles#faqs) =============================================================== This section provides answers to some commonly asked questions about User Profiles. ### Q. What is the difference between a User not reachable and a Profile not reachable error? [](https://docs.clevertap.com/docs/user-profiles#q-what-is-the-difference-between-a-user-not-reachable-and-a-profile-not-reachable-error) A. These errors mean the following: **User not reachable**: This error is raised when the qualifying device is unreachable on the selected communication channel. For example, if a user performs a qualifying action on the web for a mobile push live campaign. **Profile not reachable**: This error is raised when the qualifying profile is not reachable on the selected communication channel. For example, a user blocks push notifications on iOS but qualifies for a campaign. This user does not receive the campaign and is marked as a profile not reachable. ### Q. What is a Duplicate Platform ID error? [](https://docs.clevertap.com/docs/user-profiles#q-what-is-a-duplicate-platform-id-error) A. The _Duplicate Platform ID_ error occurs in one of the following scenarios: * When a single token is assigned to multiple profiles, both profiles qualify for the campaign. CleverTap sends the notification to the profile that qualifies first, and the other profile is marked as a _Duplicate Platform ID_. * When the same mobile number is assigned to multiple profiles, they qualify for the campaign. Only one profile receives the notification; the other profiles are marked as a _Duplicate Platform ID_. Updated about 2 months ago * * * Ask AI --- # Events Overview [](https://docs.clevertap.com/docs/events#overview) ================================================================ Events track what individual actions users perform in your app or website. Some examples of events include a user launching an app, viewing a product, listening to a song, sharing a photo, making a purchase, or favoriting an item. By tracking events in your app, you can better understand what users are doing. In CleverTap, you can analyze these events in many different ways, such as getting aggregating metrics of a specific event or measuring how a specific event type trends over time. You can also engage with your users based on these events by creating campaigns in CleverTap that are triggered by them. ![898](https://files.readme.io/40b874a-events1.png "events1.png") Event Categories [](https://docs.clevertap.com/docs/events#event-categories) -------------------------------------------------------------------------------- CleverTap has two categories of events: * System events: Events recorded automatically after you integrate our SDK. * Custom events: Events you define and track with our SDK or API. Event Properties [](https://docs.clevertap.com/docs/events#event-properties) -------------------------------------------------------------------------------- Events have details that describe the action taking place called properties. For example, while recording the _Product viewed_ event, you could also store event properties, such as product name, category, and price. Recording event properties will help you discover insights, such as which product category is more popular, and segment users based on which categories or price points they have viewed. System Events [](https://docs.clevertap.com/docs/events#system-events) ========================================================================== > 📘 > > ### > > Events Changelog > > [](https://docs.clevertap.com/docs/events#events-changelog) > > You can find information about the most recent changes to our existing system events or the introduction of new ones in our [Events Changelog](doc:events-changelog) > . System events are events recorded automatically after you integrate our SDK. | Event Type | Description | How Event is Tracked | | --- | --- | --- | | App Installed | The event is raised when the user launches the app for the first time | The event is raised when the user launches the app for the first time on any mobile device.

There are two cases when this event will be recorded multiple times for a single user. The first case is when a user installs your app, uninstalls it, and then reinstalls it. The second case is when a user clears your app's memory and relaunches it. | | App Launched | This event is recorded every time a user launches your application. | There are two cases when this event will be recorded. The first case is a fresh app launch, which is when an app is launched from a killed state. The second case is when an app is brought to the foreground after 20 minutes of inactivity in the background. | | App Uninstalled | This event is recorded when a user uninstalls your application. | This event is tracked by sending silent push notifications which is a type of notification that is not rendered on a user’s device. We send silent push notifications to your entire install base once every 24 hours to track uninstalls. For more information, refer to [App Uninstall](https://clevertap.com/blog/track-app-uninstalls-effectively/)
. | | Web Session Started | This is a web entry event similar to the App launched event. This event refers to the event triggered when a user starts a session or engages with your website. | This event will be recorded in two cases: when a user opens a webpage and when a user reloads the browser after 20 minutes of inactivity. | | UTM Visited | This event is tracked when a user clicks on a link from a marketing campaign that has a UTM parameter defined on it. This event is also tracked when a CleverTap-integrated attribution platform, such as Branch or Singular, sends this information to CleverTap. | The _UTM Visited_ event is recorded for your marketing campaigns from external sources, such as Google Adwords or AdRoll. | | Notification Sent | This event is tracked when a campaign message is sent to a user. This event is always recorded, even if the user does not open or click on the message. This event is recorded for email, mobile push, SMS, and web push campaigns. The _Notification Sent_ event is available on the _Event_ dashboard but it is not displayed on the _User Profile_. | The event is tracked when the notification is successfully sent from CleverTap to the communication channel you select for your campaign. | | Notification Failed | This event logs campaign errors in CleverTap. | Campaign ID: It helps identify the specific campaign associated with the error.
Campaign Type: It indicates the type of campaign (for example, WhatsApp, SMS, Email, and so on).
Error: It displays the error message for the error observed in the campaign.
Label: It denotes the specific label associated with the campaign.
Variant: It helps identify the errors for a specific campaign variant in the case of A/B, split delivery, or multi-variant campaigns.

For detailed information on WhatsApp errors, refer to [WhatsApp Error Stats](doc:whatsapp-stats)
. | | Notification Viewed | This event is tracked when a user views an email, in-app notification, native display, or a web notification sent from CleverTap. | The CleverTap SDK recognizes when a notification sent via CleverTap is viewed by a user.

_Notification Viewed_ is available for email, web push, in-app, web popup, native display, and app inbox.

Important Properties:
Variant: String value containing an A/B testing campaign's variant name.

**Note**: Native display rendering is handled by the customer. CT will only track the event for native display if the customer raises an event. For more information, refer to [Android Native Display](https://developer.clevertap.com/docs/android-native-display#raise-events-for-tracking)
and [iOS Native Display](https://developer.clevertap.com/docs/native-display-ios)
. | | Notification Clicked | This event is tracked only when a user clicks on a campaign sent via CleverTap. You can track or create a _Notification Clicked_ event for every _UTM Visited_ event that is tracked by CleverTap and not any other provider.

There is no separate event storage required for the _Notification Clicked_ event because it is derived from the _UTM Visited_ event. | Recorded when a user clicks on a mobile push, in-app, email, web popup, or web push message sent via the CleverTap dashboard or through the campaign API.

The Android push notifications containing deep links to third-party apps are not tracked.

Important Properties:
Variant: String value containing an A/B testing campaign's variant name.
wzrk\_c2a: String value containing the action button name of notification clicked events.
button\_id: Visible only when the Notification Clicked event is tracked for button clicks associated with the Image Interstitial template.

The "Notification Clicked" event is triggered only for CleverTap BSP users if Click tracking is enabled when creating WhatsApp campaigns | | Push Impressions | This event is tracked when a push notification sent from CleverTap is delivered on a user’s device. The funnels on the _Push_ campaign statistics page reflects the count for this event. | After the toggle for _Push Impressions_ is turned on/setup from settings, the CleverTap SDK starts recording an event whenever a push notification sent via CleverTap is delivered to the user’s device. | | App Version Changed | This event is raised when a user’s current app version is different from the user’s previous app version. | This event is tracked when the _CT App version_ system property differs from one _App Launched_ event to another. | | Notification Replied | This event is recorded when a user replies to a SMS campaign. | This event is raised when the brand receives a reply from the user.

Properties:
Incoming Message Type: Represents the type of message received (text, image, document, etc.)
Channel: String value that represents the medium of the incoming message.
Incoming text: String value that represents the incoming message. In the case of an SMS campaign, it includes the reply message sent by the SMS recipient. The maximum length of the message is set to 512 characters.
Incoming Media URL: String value that represents the URL of the media included in the message.
Campaign ID: String value that represents the original campaign ID to which the user has replied
Lat: Float value that represents the latitude of the particular location.
Long: Float value that represents the longitude of the particular location. | | Reply Sent | This event is recorded when an agent (CleverTap user) replies to a message from the end user. | This event is raised against the user profile of the end user. | | State Transitioned | This event is recorded for lifecycle optimizer when a user transitions from one stage to another. | This event is raised whenever a user transitions from one state to another or from unmapped to one of the states in the lifecycle optimization framework. It is meant for internal usage at CleverTap and therefore, unavailable for querying. | | Session Concluded | This event is recorded to mark the end of a session. Session tracking must be enabled for the event to be tracked. | This event is raised when there is 20 minutes of inactivity after an event is raised for a user. | | Geocluster Entered | This event is recorded to mark when a device enters a geofence.

The event will only be applicable for customers who have the geofence feature enabled for them. | Properties:
1\. Cluster ID
2\. Cluster name
3\. Geofence ID

The event is tracked whenever a device enters a geofence. | | Geocluster Exited | This event is recorded to mark when a device exits a geofence.

The event will only be applicable for customers who have the geofence feature enabled for them. | Properties:
1\. Cluster ID
2\. Cluster name
3\. Geofence ID

The event is tracked whenever a device exits a geofence. | | Channel Unsubscribed | This event is raised only for Email and Push campaigns. It is raised when end-users unsubscribe from future emails and push notifications. It is also raised when the user resubscribes for the email campaigns | Properties:
1\. Campaign ID: This is the ID of the campaign from which user are updating subscriptions.
2\. Campaign Type: Currently only present for Email Campaigns.
3\. Group: Group name from which the user unsubscribed/resubscribed.
4\. Identity: The user identity/email address.
5\. Variant
6\. Type: Valid values are bounced, dropped, and spam. Email IDs that bounce, drop, or are marked as spam are opted out of future emails.
7\. Subscription Type: Account level and Profile level.
\- Profile Level: The specific profile is opted out for all email campaigns in the future until they opt in again.
\- Account Level: The specific profile and email address are opted out of all email campaigns. Even if other profiles have that email address, they will not be sent emails in the future because that email address has been unsubscribed at the account level.
8\. Resubscribed: The value is true if the user has resubscribed, or else the value will be false.
9\. Reason: Currently, present for email campaigns only. It is the same reason that was given by the email provider for the type of error. For example: "smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces." | | Channel Subscribed | This event is raised when the user subscribes to a push notification channel for devices with Android OS version 13 and above. For devices on Android 13 and above, the event is raised when the user gives permission. For devices on Android 12, the event is raised when the user resubscribes for the push campaigns. | Properties:
Source: Indicates if the event is raised through a device, application, or API.
Channel: Indicates the channel for which the user has subscribed i.e. Push Notification.
App Version: Indicates the app version from which the event is raised.
SDK Version: Indicates the SDK version installed on the device. | | Notification Delivered | This is an event raised only for Email, WhatsApp and SMS campaigns. | In the case of Email campaigns, it is raised when the provider confirms that the email campaign is delivered to the recipient mail server. In most cases, this indicates successful delivery to the end user. For campaigns sent via Generic SMTP, CleverTap should receive a [callback](doc:generic-smtp-v2-payload)
to raise this event.

**Note**: [Notification Delivered](doc:email-campaign-stats-delivered)
is currently released in Private Beta for Infobip (in the case of Advanced Email add-on) and Sendgrid email providers. Contact your Customer Success Manager for access.

In the case of SMS campaigns, it is raised when the notification is delivered to the end user, and CleverTap receives the [callback](doc:generic-sms#sms-callbacks)
. It includes the `Provider` event property, a string value that represents the service through which the campaign is sent. For example, Twilio.

In the case of WhatsApp, it is raised when the provider confirms that the notification has reached the end user (double-tick of WhatsApp). | | App Upgraded | This event is raised when a user’s current app version differs from their previous app version. | This event is tracked when the _CT App version_ system property for an app launch is different from the next app launch. | | AB Test Enter | This event helps analyze the devices that have an A/B Test running on them. It also gives you the specific variant selected for the device. | This event is raised when the device qualifies for an A/B Test as part of a Product Experience (PE). | | AB Test Exit | This event helps analyze the devices that have exited an A/B Test. | This event is raised when the goal of the A/B test is achieved. | | AB Experiment Rendered | This event indicates that the variant has reached the device. | Event is raised when you are using the \_Product A/B Tests \_feature. | | AB Experiment Rolled Out | This event is raised when the winner variant is sent to all devices. | Event is raised when you are using the \_Product A/B Tests \_feature. | | AB Experiment Stopped | This event is raised when experiment was stopped. | Event is raised when you are using the \_Product A/B Tests \_feature. | | AB Experiment Disqualified | This event is raised when the device is disqualified. | Event is raised when you are using the \_Product A/B Tests \_feature. | | Partner Sync | An event raised for each user profile that is part of cohorts imported from partners like Mixpanel. | The Partner Sync event is raised every time CleverTap receives a cohort sync request from partners like Mixpanel. This event is raised for each user in the cohort sync. | | CT Coupon Rewarded | This event is raised when the coupon is issued to a user through a Promo campaign. | The following properties are captured as part of this event to provide additional context about rewarding the coupon:
Coupon Name: Name of the coupon configured for bulk coupon series. Applicable when using bulk coupon codes.
Coupon Code: The unique coupon code issued. Applicable for single-code coupons.
Coupon ID: A unique identifier assigned to the coupon instance.
Campaign ID: Identifier of the campaign that issued the coupon to the user.
Description: Textual description of the coupon as configured in the campaign settings.
Event Timestamp: The exact date and time when this event was recorded in CleverTap.
Terms and Condition: Promotional terms defined for coupon usage.
Coupon Start Date: Date and time when the coupon becomes valid for use. Format: `DD-MM-YYYY HH:MM:SS`
Redemption Activation Date: If an activation delay is configured, this field defines when redemption becomes possible. Format: `DD-MM-YYYY HH:MM:SS` | | CT Coupon Redeemed | This event is raised when the user redeems the coupon through the redemption API. | The following properties are captured as part of this event to provide additional context about the redemption of the coupon:
Redeemed Type: Indicates the type of benefit originally redeemed using the coupon. Values could include: `discount`, `cashback`
Order ID: The ID of the order for which the coupon was applied and subsequently redeemed. Helps map the reversal back to the original transaction.
Event Timestamp: The exact date and time when the redeemed event was logged in CleverTap. Useful for auditing, ordering, and reporting.
Discount Amount: The monetary value of the discount that was redeemed. Applicable if the original reward was a discount coupon.
Coupon Name: Name of the coupon used during redemption. Typically configured at the coupon level.
Coupon ID: Unique identifier for the coupon that is being redeemed.
Coupon Code: Coupon code that was redeemed.
Cashback Points: Points value credited to the user's wallet linked to cashback when users redeem the cashback coupon.
Discount Amount: The amount of discount redeemed by the user. Applicable when the user redeems the discount coupon. | | CT Coupon Reverted | This event is raised when a redeemed coupon is reversed. | The following properties are captured as part of this event to provide additional context about the redemption of the coupon:
Redeemed Type: Indicates the type of benefit originally redeemed using the coupon. Values could include: `discount`, `cashback`
Order ID: The ID of the order for which the coupon was applied and subsequently reverted. Helps map the reversal back to the original transaction.
Event Timestamp: The exact date and time when the reverted event was logged in CleverTap. Useful for auditing, ordering, and reporting.
Discount Amount: The monetary value of the discount that was reverted. Applicable if the original reward was a discount coupon.
Coupon Name: Name of the coupon used during reversal. Typically configured at the coupon level.
Coupon ID: Unique identifier for the coupon that is being reverted.
Coupon Code: Coupon code that was reverted.
Cashback Points: Points value debited to the user's wallet linked to cashback when users revert the cashback coupon.
Discount Amount: The amount of discount reverted by the user. Applicable when the user redeems the discount coupon. | | CT Points Credited | This event is raised when points are added to the loyalty wallet. | The following properties are captured as part of this event to provide additional context about the credited points to the wallet:
Points Expiry: The expiration date/time of the credited points. Defines when the awarded points will no longer be valid. Format: `DD-MM-YYYY HH:MM:SS`
Wallet ID: Unique identifier for the wallet where points are being credited. Used to distinguish between multiple wallet types if applicable.
Transaction ID: Unique ID assigned to the point credit transaction. Useful for audit trails, debugging, and reporting.
Source: Identifies how the credit was initiated. Possible values: `API`, `Campaign`, `Manual`, `Cashback Coupon`
Points Description: Descriptive label for the credit transaction. Configured during campaign or API call to explain why points were awarded.
Points: Number of points credited to the wallet. Numeric value, e.g., 25 or 100.
Event Timestamp: Timestamp representing when the event was logged in CleverTap. Used for tracking, filtering, and campaign attribution.
Campaign ID: The ID of the campaign responsible for the point credit. Applicable only if the source of credit is a campaign.
Coupon Code: Indicates the specific coupon code whose redemption resulted in the crediting of points. Applicable when the source is a cashback coupon.
Coupon ID: Refers to the unique coupon ID associated with the redemption that triggered the points credit. Applicable when the source is a cashback coupon.
Sale Channel: The source channel for the transaction (e.g., Mobile, Web, POS). Applies to credit transactions created via API.
Location ID: Identifier for the transaction location (e.g., store code). Applies to credit transactions created via API.
Sale Amount: Gross order value tied to the transaction. | | CT Points Debited | This event is raised when points are deducted from the loyalty wallet. | The following properties are captured as part of this event to provide additional context about the debited points to the wallet:
Wallet ID: Unique identifier for the wallet from which points are debited. Used to map the transaction to a specific reward wallet.
Transaction ID: Unique ID associated with the debit transaction. Useful for reconciliation and debugging.
Source: Indicates how the debit was triggered. Possible values include: `API`, `Manual`, `Campaign`, etc.
Points Description: Descriptive text or label explaining the context of the points debit. Configured during campaign or API setup.
Points: Number of points debited from the wallet. Numeric value, e.g., 10 or 50.
Event Timestamp: The exact time when the points debit action occurred and was logged in CleverTap. Auto-recorded for chronological tracking.
Campaign ID: ID of the campaign that triggered the debit (if applicable). Helps link the debit to a promotional action.
Sale Channel: The source channel for the transaction (e.g., Mobile, Web, POS). Applies to debit transactions created via API.
Location ID: Identifier for the transaction location (e.g., store code). Applies to debit transactions created via API.
Sale Amount: Gross order value tied to the transaction. | | CT Partner Voucher Rewarded | This event is raised when a user receives a third-party partner voucher. | The following properties are captured as part of this event to provide additional context about the debited points to the wallet:
Voucher List ID: Unique identifier assigned to the partner voucher list. Used to associate the voucher with its originating list.
Voucher Code: The actual voucher code issued to the user. Can be redeemed on a partner platform or used for benefit claims.
Source: The origin through which the voucher was issued. Typical values: `API`, `Campaign`
Partner: Name of the third-party or partner platform that provided the voucher. Used for tracking and analytics of partner-level voucher distribution.
List Tag: Tag or label associated with the voucher list. Useful for categorization, segmentation, or filtering of voucher campaigns.
List Expiry: Expiration date/time for the voucher list or voucher code. Determines the validity period of the voucher. Format: `DD-MM-YYYY HH:MM:SS`
List Description: Description of the voucher list as configured in the system. May include offer details, partner terms, or redemption instructions.
Event Timestamp: The exact date and time when the voucher was rewarded to the user. Captured automatically by CleverTap for logging and analysis.
Campaign ID: ID of the campaign that rewarded the voucher. Links the voucher issuance to the triggering promo campaign. | Debug Events [](https://docs.clevertap.com/docs/events#debug-events) ======================================================================== Debug events are events recorded automatically after you integrate our SDK. These events are raised at certain lifecycle stages in your integration and help you track and manage your integration. These events are available on any profile page and _Find People_ page by adding a parameter to the end of the URL `?showDebugEvents=true`. | Event Name | Description | When is it raised | | --- | --- | --- | | Identity Set | This debug event is raised when a new user is identified on a customer’s app or an identified user pushes another identity. | This event monitors the status and data points that are important for the identification and engagement of users. This event is for monitoring and debugging only. | | Identity Reset | This debug event is raised when a profile is demerged (after demerged, a new profile for every device is created and identities are dropped) either from the dashboard (click on the _Profile_ page to reset identities) or through the _Demerge Profile API_. | It monitors the reset of identities and handles unnecessary merges. This event is used for monitoring and debugging only. | | Identity Error | This debug event is raised when an existing identity is associated incorrectly with another identity. The former identity is now declared as invalid for the latter's profile. | This event is for monitoring and debugging when identity merges are invalid. | | Reachable By | This debug event is raised when a user becomes reachable by a communication channel such as SMS, email, mobile push, or when there are changes to the existing communication channel. | Tracked for a profile when:
\- Push token is added/changed.
\- Email ID is added/changed.
\- Phone number is added/changed. | | Push Unregistered | This event tracks the removal of a mobile push token. It is also raised when FCM returns a 404 Unregistered error for stale tokens from devices that have not connected to FCM for 270 days or for users who uninstall the app. | This event is raised when an existing mobile push token is removed for a profile.

Tracked for a profile when:
\- A user logs out of the device, and another user logs in. Applicable only if the `onUserLogin()` method is implemented.
\- When a push token is removed using the `pushFcmRegisterationId("token",false)` method. Applicable only for Android.
\- FCM returns a [404 Unregistered error](https://firebase.google.com/docs/reference/fcm/rest/v1/ErrorCode)
for stale tokens from devices that have not connected to FCM for 270 days or for users who have uninstalled the app. | Custom Events [](https://docs.clevertap.com/docs/events#custom-events) ========================================================================== Custom events are events you define and track with our SDK or API. For more information, refer to the [Events](https://developer.clevertap.com/docs/events#custom-events) in the developer documentation. Charged Event [](https://docs.clevertap.com/docs/events#charged-event) -------------------------------------------------------------------------- CleverTap also records transactions or purchases using a special event called **Charged**. Clevertap enriches this special event with additional information such as items sold, their categories, transaction amount, transaction ID, and information about your users. Recording a purchase against a user marks them as a customer in CleverTap and enables you to compare your funnel reports between customers and other users. When recording customer purchases, you can also record the following: * Items Sold You must use the Items collection to record a list of items sold. Along with the product name, you can add properties such as size, color, category, etc. * Transaction Amount The transaction total or subscription charge must be recorded in an event property called Amount. For more information about recording a Charged event, refer to [Events](https://developer.clevertap.com/docs/events#recording-customer-purchases) under developer documentation. ### Advantages of the Charged Event [](https://docs.clevertap.com/docs/events#advantages-of-the-charged-event) The following are the advantages of Charged event: * Helps you identify your customers and how they are using your app or website * Run campaigns to reward loyal users or get lost customers back * Measure customer loyalty via running a cohort analysis on repeat purchases * Analyze paid campaign performance by total revenue earned * Get revenue insights like – total revenue, number of transactions, count of paying users, and much more ### Charged Event Personalization [](https://docs.clevertap.com/docs/events#charged-event-personalization) You can personalize the message for customers who purchase multiple items in a single transaction. You can do so by using liquid tags from the CleverTap dashboard, as shown in the following sample codes: * **Using for Loops in Liquid Tags** * **Using Manual Indexing in Liquid Tags** `Event.items` is a custom array property that you can use to store additional information about items associated with an event. It allows you to include item-specific details when tracking events. For example, if an event called "Charged" represents a user making a purchase, you can use the `Charged.Items` array to store information about the specific items purchased within that event. Each item in the array can have its own properties, such as name, price, quantity, and so. You can personalize the message for any number of items in the `Event.items` array. For example, you want to send an email including order details to the customers who bought three books from your e-commerce website. The `Event.items` array, in this case, would include three items, and you can send a personalized message for all three items. ![](https://files.readme.io/aef5e4b-Charged_Event_Personalization.png) Charged Event Personalization In the case of manual indexing, you can ensure that the index is smaller than the size of the Items array using `Event.Items.size`. If the index value exceeds the size of the Items array, the message is NOT dispatched and is marked against errors. > 📘 > > ### > > Charged Event Personalization for App Inbox Campaigns > > [](https://docs.clevertap.com/docs/events#charged-event-personalization-for-app-inbox-campaigns) > > * In the case of App Inbox campaigns, event personalization for `Charged.Items` is not enabled. > * However, if you use event personalization with `Charged.Items`, the default values for the items are displayed in the case of App Inbox campaigns. > * If you use event personalization with `Charged.Items` when creating a combination of Push Notification and App Inbox campaigns, the personalized values for the items are displayed for Push and default values are displayed for App Inbox. Event Data Types [](https://docs.clevertap.com/docs/events#event-data-types) ================================================================================ CleverTap supports the following data types: * String * Integer * Float * Boolean * Mixed You can use an array only with the Charged event. All others will return an incorrect data type if using an array. Event Metadata Recorded Automatically [](https://docs.clevertap.com/docs/events#event-metadata-recorded-automatically) ========================================================================================================================== For every recorded event, CleverTap records the following standard metadata: * Information about the user who performed the event. * Date and time when the event was recorded. * The number of screens viewed by the user before performing the action. * The referring site and the source of the user visit if it was from an external source. In addition, CleverTap keeps the user profiles updated with the latest: * Geographic information like their city, region, country, and latitude/longitude (if available). * Browser, device make, or model used to access the website or app. System Properties [](https://docs.clevertap.com/docs/events#system-properties) ================================================================================== CleverTap tracks the following system properties automatically from the mobile SDK. All the system properties are prefixed by _CT_ indicating that they are provided by CleverTap. The following properties are tracked automatically on all events: | System Property | Description | | --- | --- | | CT App Version | This is the current version of your application installed on the user device. | | CT Latitude | The user location identified by the latitude. | | CT Longitude | The user location identified by the longitude. | | CT Source | The source of the event.

For example, the event may originate from a Mobile SDK or an API.

All possible values:
\- Mobile (Mobile SDK)
\- MobileWeb (Web SDK)
\- Web (Web SDK)
\- API
\- segment
\- appsflyer
\- apsalar
\- branch
\- tune
\- System (for events generated by CleverTap) | The following properties are available on the _App Launched_ event: | System Property | Description | | --- | --- | | CT App Version | This is the current version of your application installed on the user device. | | CT Latitude | The user location identified by the latitude. | | CT Longitude | The user location identified by the longitude. | | CT OS Version | The operating system of the device.
For example, 1.0.0. | | CT SDK Version | The CleverTap SDK version. For example, 30501. | | CT Network Carrier | The network carrier of the device.
For example, AT&T, Vodafone. | | CT Network Type | The network type of the device.
For example, 4G. | | CT Connected To WiFi | Indicates if the device is connected to the Wi-FI. | | CT Bluetooth Version | The Bluetooth version of the device. | | CT Bluetooth Enabled | Indicates if Bluetooth is enabled on the device. | | CT Source | The source of the event.

For example, the event may originate from a Mobile SDK or an API.

All possible values:
\- Mobile (Mobile SDK)
\- MobileWeb (Web SDK)
\- Web (Web SDK)
\- API
\- segment
\- appsflyer
\- apsalar
\- branch
\- tune
\- System (for events generated by CleverTap) | > 📘 > > ### > > Latitude and Longitude > > [](https://docs.clevertap.com/docs/events#latitude-and-longitude) > > The system properties _latitude_ and _longitude_ are captured and sent from the SDK only if the user gives consent on your app. Updated 2 days ago * * * Ask AI --- # Nested Objects Overview [](https://docs.clevertap.com/docs/nested-objects#overview) ======================================================================== Nested Objects allow you to represent rich, structured information about your users, such as subscriptions, insurance policies, or shopping carts, without breaking it into multiple flat properties. Instead of managing dozens of separate fields, you can organize the related details inside a single structured user property. For more information on implementation, including schema definitions and JSON examples, refer to [Ingesting Nested Objects via CleverTap APIs](https://developer.clevertap.com/docs/ingesting-nested-objects-via-clevertap-apis) . > 📘 > > ### > > Public Beta > > [](https://docs.clevertap.com/docs/nested-objects#public-beta) > > This feature is released in Public Beta. For more information about this feature, contact your Customer Success Manager or CleverTap Support. Advantages [](https://docs.clevertap.com/docs/nested-objects#advantages) ---------------------------------------------------------------------------- When you use Nested Objects in CleverTap, you can do the following: * **Model complex entities naturally:** Store structured data as it exists in your business system. For example: Save multiple insurance policies owned by a single user under one parent user property. * **Target users more granularly:** Create segments based on nested attributes. For example: Identify users who have at least one expired subscription plan. * **Reduce engineering effort:** Send structured JSON payloads directly through the API without flattening. For example: Provide order details, such as product name, quantity, and delivery status, as nested JSON objects. Use Cases [](https://docs.clevertap.com/docs/nested-objects#use-cases) -------------------------------------------------------------------------- Businesses across industries use Nested Objects to personalize engagement: * **BFSI** Notify customers when key stakeholders, such as policy beneficiaries or account nominees, lack email addresses. * **E-commerce:** Offer discounts to users with a cart containing at least one product in the _Shoes_ category. * **Telecom:** Remind subscribers about broadband renewals using plan metadata such as plan name, validity, and renewal date. * **Media & Entertainment:** Personalize recommendations based on nested metadata such as show titles, genres, or episode preferences saved in the user property. Manage Nested Objects Across Platforms [](https://docs.clevertap.com/docs/nested-objects#manage-nested-objects-across-platforms) ==================================================================================================================================== You can view and manage Nested Objects anywhere you access profile and event data. * **Profile Page:** View structured objects stored in a user’s profile. Each nested user property is shown as a dot-separated field under the User Properties tab on the profile. * **Segmentation Builder:** Create conditions using nested attributes, such as `Policies.Beneficiaries.Email`. You can combine multiple nested conditions to create granular filters, for example, segmenting users with at least one policy where the premium is overdue or the beneficiary lacks contact information. The Segmentation Builder in the image shows how nested fields appear within profile data and can be used to create filters. ![Nested Objects in Segment Builder](https://files.readme.io/c5aeec5eff621d610e90bf75239fe8ef3369a52cff95bf00997f85291cc005d0-image.png) Nested Objects in Segment Builder > 📘 > > ### > > Dashboard Limitations with Nested Properties Segments > > [](https://docs.clevertap.com/docs/nested-objects#dashboard-limitations-with-nested-properties-segments) > > You may see this message in some areas of the Dashboard: > > "_Nested user property queries aren’t supported yet. Choose a segment without nested properties to proceed._" > > Support for nested user properties has yet to be provided in areas such as Predictions and Bulletins. To continue, use or create a segment with only standard (non-nested) user properties in such Product areas. System Considerations [](https://docs.clevertap.com/docs/nested-objects#system-considerations) -------------------------------------------------------------------------------------------------- CleverTap enforces some system limits to maintain performance and stability. The following table lists the limits applied during nested object ingestion to ensure consistent data handling: | Limit Type | Maximum Value | | --- | --- | | Nesting depth | 3 levels | | Payload size | 128 KB per profile or event | | Object or array keys at root | 5 | | Reserved fields | `identity`, `email`, and `ts` remain flat | CleverTap drops extra elements or raises an error if a payload exceeds these limits. Best Practices [](https://docs.clevertap.com/docs/nested-objects#best-practices) ------------------------------------------------------------------------------------ Follow these practices to maintain data quality: * Use consistent schema definitions across integrations. * Send only valid objects; CleverTap drops null or empty objects automatically. * Monitor object size and array length to stay within system limits. * Start with a test schema before rolling out to production. * Use clear attribute names for easier targeting. FAQs [](https://docs.clevertap.com/docs/nested-objects#faqs) ================================================================ ### Can I use Nested Objects in SDK, CSV, or SFTP uploads? [](https://docs.clevertap.com/docs/nested-objects#can-i-use-nested-objects-in-sdk-csv-or-sftp-uploads) No. Nested Objects are supported only through the REST API. For more information, refer to [Ingesting Nested Objects via CleverTap APIs](https://developer.clevertap.com/docs/ingesting-nested-objects-via-clevertap-apis) . ### Can I query deeply nested fields in segmentation? [](https://docs.clevertap.com/docs/nested-objects#can-i-query-deeply-nested-fields-in-segmentation) Yes, you can query up to three levels in supported segmentation workflows. Some workflows, such as campaign targeting, may not support nested queries. ### What happens if I exceed the payload size or nesting limits? [](https://docs.clevertap.com/docs/nested-objects#what-happens-if-i-exceed-the-payload-size-or-nesting-limits) CleverTap drops extra elements or converts invalid data into strings. Review the error stream for details. ### Are nested objects included in exports? [](https://docs.clevertap.com/docs/nested-objects#are-nested-objects-included-in-exports) No. Nested Objects are not exported through API-based data exports. ### Does this feature affect performance? [](https://docs.clevertap.com/docs/nested-objects#does-this-feature-affect-performance) When used within the defined limits, Nested Objects do not affect overall system performance. However, queries involving large or deeply nested data structures may take slightly longer to process. Updated about 2 months ago * * * Ask AI --- # CleverTap Overview for Users Overview [](https://docs.clevertap.com/docs/getting-started#overview) ========================================================================= CleverTap is a customer engagement and retention platform that provides the functionality to integrate app analytics and marketing. The platform helps customers increase user engagement in three ways: * Tracks actions users are taking and analyze how people use the product. * [Segment](doc:segmentation) users based on their actions and run targeted [campaigns](doc:intro-to-campaigns) to these segments. * [Analyze](doc:intro-to-reports) each campaign to understand their effect on user engagement and business metrics. Platform Features [](https://docs.clevertap.com/docs/getting-started#platform-features) =========================================================================================== The CleverTap platform has five parts: * CleverTap's dashboard provides the functionality to [segment](doc:segmentation) users based on their actions and profile properties, run [targeted campaigns](doc:intro-to-campaigns) to these segments, and [analyze](doc:intro-to-reports) each campaign’s performance. * [SDKs](https://developer.clevertap.com/docs/clevertap-sdks) track users’ actions within mobile apps and websites. CleverTap's SDKs also allow customers to personalize apps by giving them access to user profile data. * [APIs](https://developer.clevertap.com/docs/api-overview) push user profile or event data from any source to CleverTap. Our APIs also export user data from CleverTap for analysis in BI tools and enrich customer information in CRMs. * Integrations with communication platforms such as [SendGrid](doc:sendgrid) , [Twilio](doc:twilio) , attributions provider such as [Branch](doc:branch) , [AppsFlyer](https://developer.clevertap.com/docs/appsflyer) , and remarketing platforms such as [Facebook Audience Network](doc:facebook-audience-network-1) . * [Webhooks](https://developer.clevertap.com/docs/webhooks) trigger workflows in backend systems as soon as qualifying events occur. Core Concepts [](https://docs.clevertap.com/docs/getting-started#core-concepts) =================================================================================== Users, events, segments, campaigns, and reports are central to CleverTap, so it is important to understand each role. * **Users:** After [integrating the CleverTap SDK](https://developer.clevertap.com/docs) , a [user profile](doc:user-profiles) is created for each person who launches the app or visits your website. The CleverTap user profile has a set of default fields, such as device and location. You can also extend the default user profile data model by adding custom fields specific to their business. * **Events:** The CleverTap SDK tracks the actions users perform in your app or website, such as a user viewing a product, listening to a song, or making a purchase. [Events](doc:events) are associated with a user profile. * **Segments:** CleverTap allows users to create segments, which are groups of users whose actions or user profile properties match a set of criteria you have defined. Once a user has created a segment, they can target it with a campaign or create a report to analyze it. * **Campaigns:** CleverTap [campaigns](doc:intro-to-campaigns) communicate with your users at scale. CleverTap offers 13 different messaging channels to reach your users on the optimal channel. * **Reports:** CleverTap provides the ability to build [reports](doc:intro-to-reports) to understand the effect of campaigns on your users. You can use these reports to analyze your user engagement and guide product decisions. Example Use Case [](https://docs.clevertap.com/docs/getting-started#example-use-case) ----------------------------------------------------------------------------------------- The following is an example of how a CleverTap customer in the retail industry is using our platform to increase sales: When a person launches the company’s app for the first time, we automatically create a CleverTap [user profile](doc:user-profiles) for the person with our SDK. As the person navigates through product pages in the app, we log these actions as [events](doc:events) associated with the user’s profile. The user’s interaction with the company extends beyond the app. To complete a purchase, the user contacts the company’s call center, and the company adds this purchase event to the user’s profile with our [server-side API](https://developer.clevertap.com/docs/api-overview) . Now, the marketer at the company wants to reward its most loyal users and incentivize them to buy more. Through CleverTap’s dashboard, the marketer can [create a campaign](doc:intro-to-campaigns) to show an [In-App](doc:in-app) to users who recently made a purchase above a certain price. The next time the user launches the app, they will see a personalized message thanking them for buying that specific product and a discount code for their next purchase. To close this loop, the marketer can create a [report](doc:intro-to-reports) in the CleverTap dashboard to measure the campaign's impact in terms of both user engagement and product sales. Getting Started [](https://docs.clevertap.com/docs/getting-started#getting-started) ======================================================================================= The best place to get started with CleverTap is the [Quick Start Guide](doc:quickstart-guide) which shows how to create a segment, build a campaign, and run a report in ten minutes. Updated about 2 months ago * * * Ask AI --- # Security & Data Governance Overview [](https://docs.clevertap.com/docs/security-overview#overview) =========================================================================== Protecting customer data is always a priority at CleverTap. Our success as a business relies on the security of customer data stored with us. We, as a company, use the CleverTap platform for user analytics and engagement. > 📘 > > ### > > CleverTap Trust Portal > > [](https://docs.clevertap.com/docs/security-overview#clevertap-trust-portal) > > Get access to CleverTap’s security posture, audit reports, policies and controls on our > [Trust Portal](https://security.clevertap.com/) > . This document highlights the security measures taken to ensure the privacy, and confidentiality of customer data. Inflight Incoming Data Security [](https://docs.clevertap.com/docs/security-overview#inflight-incoming-data-security) ========================================================================================================================= All data collection endpoints support TLS 1.2 encryption protocols with SHA256 and the RSA signature algorithm. This allows devices with varied support to access our collection/incoming endpoints while providing the TLS 1.2 to devices that support it. We maintain a small list of known URLs where we respond to HTTPS requests. All requests to unknown URLs or requests that do not match our expected data format are logged and silently dropped. The operation team reviews all dropped requests periodically. Dashboard Data Security [](https://docs.clevertap.com/docs/security-overview#dashboard-data-security) ========================================================================================================= The dashboard and API endpoints support TLS 1.2 encryption protocols with SHA256 and RSA signature algorithm. Outdated SSL protocols are not supported. We allow dashboard access through modern secure browsers. Developers are required to use updated libraries to access our API endpoints. Incoming Request Logging [](https://docs.clevertap.com/docs/security-overview#incoming-request-logging) =========================================================================================================== All incoming requests are logged and stored on persistent storage for analysis and audit. Logs are purged periodically based on industry retention best practices. Customer Data Security [](https://docs.clevertap.com/docs/security-overview#customer-data-security) ======================================================================================================= Customer data is stored in an encoded format optimized for performance rather than stored in a traditional file system or a database. Data is dispersed across a number of physical and logical volumes for redundancy and expedient access, thereby obfuscating it from tampering. Customers own all rights to their data and can choose to download it via an API or delete it from our systems. CleverTap provides role-based app­ level access control to customers to manage access to their own data. CleverTap does not share or sell customer data. Running Systems [](https://docs.clevertap.com/docs/security-overview#running-systems) ========================================================================================= CleverTap uses battle-tested, open-source software to power some parts of its application stack. We subscribe to CVE vulnerability data and patch critical vulnerabilities within 24 hours of publication. In addition, we destroy and rebuild nodes that power public-facing endpoints every few days. This ensures that we don’t have configuration drift in production. Data Center Security [](https://docs.clevertap.com/docs/security-overview#data-center-security) =================================================================================================== Amazon Web Services is our hosting provider. They maintain data­ centers that are fully compliant with a range of certifications that allow finance, healthcare, and government data to be stored in their data­centers. A complete list of compliance and more information along with certification is available at [https://aws.amazon.com/compliance/](https://aws.amazon.com/compliance/) . Shared responsibility with Amazon means we focus on application and data security while they manage physical security. Team [](https://docs.clevertap.com/docs/security-overview#team) =================================================================== At CleverTap, our engineering and IT teams are experienced and have the know-how of industry best practices on security. Before CleverTap, we built and run many heavy-traffic sites both on physical as well as virtual infrastructure. We bring many years of operational experience running secure and scalable services. The security and confidentiality of your data are core to our success as a business and we will continue to be proactive, vigilant, and diligent in ensuring its safety. Important Links [](https://docs.clevertap.com/docs/security-overview#important-links) ========================================================================================= * [App Tracking Transparency (ATT)](https://docs.clevertap.com/docs/att) * [Compliance and Certifications](https://docs.clevertap.com/docs/compliance-certifications) * [General Data Protection Regulation (GDPR)](https://docs.clevertap.com/docs/gdpr) * [Manage Personal Information](https://docs.clevertap.com/docs/manage-personal-information) * [Two-Factor Authentication (2FA)](https://docs.clevertap.com/docs/account-2fa) * [IP Whitelisting](https://docs.clevertap.com/docs/ip-whitelisting) * [Single Sign On (SSO](https://docs.clevertap.com/docs/single-sign-on-sso) ) FAQs [](https://docs.clevertap.com/docs/security-overview#faqs) =================================================================== ### Q. What is TLS version 1.1, and why is it being deprecated? What are the potential implications for my users? [](https://docs.clevertap.com/docs/security-overview#q-what-is-tls-version-11-and-why-is-it-being-deprecated-what-are-the-potential-implications-for-my-users) A. TLS 1.0 and TLS 1.1 are out-of-date protocols that do not support modern cryptographic algorithms and can cause security vulnerabilities that attackers may exploit. From August 31, 2021, CleverTap will only support TLS version 1.2 and above as it provides enhanced security and improves handshake performance. In general, most of the devices and web/application servers have already upgraded to the latest TLS 1.2, and do not support TLS 1.1 and below. As a CleverTap customer, you should have almost no visible impact. Based on our analysis, less than 1% of your users might still be on TLS 1.1, and their incoming data will not be accepted by our servers due to the upgrade. ### Q. What do I need to do at my end to be compliant with this change? [](https://docs.clevertap.com/docs/security-overview#q-what-do-i-need-to-do-at-my-end-to-be-compliant-with-this-change) A. You need to upgrade to TLS version 1.2 or higher if you have not already done it. It takes a few hours to a couple of days to implement these changes. ### Q. Whom can I contact if I have any questions? [](https://docs.clevertap.com/docs/security-overview#q-whom-can-i-contact-if-i-have-any-questions) A. If you notice something unusual in your account, please raise a ticket from the CleverTap dashboard. ### Q. Can I download my Audit Logs? [](https://docs.clevertap.com/docs/security-overview#q-can-i-download-my-audit-logs) A. Yes, an admin can filter and download audit logs based on user emails and actions. To filter or download the audit logs: 1. Navigate to _Settings_ > _Audit Logs_. 2. Click **Download All Logs**. Updated about 2 months ago * * * Did this page help you? Yes No Ask AI --- # Technology Partners Analytics [](https://docs.clevertap.com/docs/technology-partners#analytics) =============================================================================== Integration Grid [![Amplitude](https://files.readme.io/f4f59df2070156a00d549967bcdd67c7fad4157253db4fd1d512a38738a16e98-Amplitude_idlx3byNUU_0.svg)\ \ Amplitude\ \ Analytics](https://docs.clevertap.com/docs/amplitude) [![Mixpanel](https://files.readme.io/cd97b5982cb3408405a2b6999592b7a5ed386a73b807ed53577149ba173cc245-Mixpanel_Symbol_0.svg)\ \ Mixpanel\ \ Analytics](https://docs.clevertap.com/docs/mixpanel) [![PostHog](https://files.readme.io/db2a486044cfc17b42cf7642fac3aadf360ed7e022d8da623086d491eaee5291-posthog_logo.jpeg)\ \ PostHog\ \ Analytics](https://docs.clevertap.com/docs/posthog) Attribution [](https://docs.clevertap.com/docs/technology-partners#attribution) =================================================================================== Integration Grid [![Adjust](https://files.readme.io/487110869d01e0f2e506e9748d03217555ba50b6fc30f24fcd22ceeee65047a4-Adjust_idZed2gUTA_0.svg)\ \ Adjust\ \ Attribution](https://developer.clevertap.com/docs/adjust) [![Airbridge](https://files.readme.io/93bb344627f1bd8a4d187ff5ebc1da06604fb3a7805ea6fdae208089fb6c5b6b-Airbnb_Symbol_0.svg)\ \ Airbridge\ \ Attribution](https://developer.clevertap.com/docs/airbridge) [![AppsFlyer](https://files.readme.io/fe763ec13f8c9d9a6a85e13a0f1ac9b8e352c8dee2887f25025a728f94204499-AppsFlyer_idZaZLy7nj_0.svg)\ \ AppsFlyer\ \ Attribution](https://developer.clevertap.com/docs/appsflyer) [![AppTrove](https://files.readme.io/1d84909a84cbc1303083f451b01b6345f8329ac4a8bc8a0bf675153453cea99c-Apptrove.webp)\ \ AppTrove\ \ Attribution](https://docs.clevertap.com/docs/apptrove) [![Branch](https://files.readme.io/311972c7da6cd9956e8110911d763cb514aa30b6354505c4f6a38aea2f011ef6-Branch_idSRMs7jP1_0.svg)\ \ Branch\ \ Attribution](https://developer.clevertap.com/docs/branch) [![Singular](https://files.readme.io/6865a95b6399b793b628eba0eec9b1a5ee851bea5b0f3eea31acf796042b599b-Singular_id1QD_LCjD_0.svg)\ \ Singular\ \ Attribution](https://developer.clevertap.com/docs/singular-apsalar) Contextual Location [](https://docs.clevertap.com/docs/technology-partners#contextual-location) =================================================================================================== Integration Grid [![AccuWeather](https://files.readme.io/dd51ed2f15933921eda0c2864841cb0761d382c16e9715810a7491edd363768c-accuweather_.jpg)\ \ AccuWeather\ \ Contextual Location](https://docs.clevertap.com/docs/accuweather) [![OpenWeather](https://files.readme.io/63fbf8519497c134c05abb9fdb75b7367cdfe1634c5055db6511772fffceae8f-Unknown.png)\ \ OpenWeather\ \ Contextual Location](https://docs.clevertap.com/docs/open-weather) [![Radar](https://files.readme.io/19d8b16869e0287a1ecda26d4da7b1464c53f72d28e3c43b7d6bbd082e411cbf-radarlabs_logo.jpeg)\ \ Radar\ \ Contextual Location](https://docs.clevertap.com/docs/radar) [![Weather API](https://files.readme.io/2ae1b1dd0ae34c6cea66554dbe3c632d0e2b08c5ff2cce0965133184cdc5d45d-WeatherAPIsmall.thumb.png.a0e7c28dff2a10c21458e22d5a9a4cb7.png)\ \ Weather API\ \ Contextual Location](https://docs.clevertap.com/docs/weather-api) Crash Analytics [](https://docs.clevertap.com/docs/technology-partners#crash-analytics) =========================================================================================== Integration Grid [![Apteligent](https://files.readme.io/70fbc5c82ff59badd58a4faad563c59fd734cfdfda1f55ed55f6916c474c75f8-Apteligent.jpeg)\ \ Apteligent\ \ Crash Analytics](https://docs.clevertap.com/docs/apteligent) Customer Relationship Management [](https://docs.clevertap.com/docs/technology-partners#customer-relationship-management) ============================================================================================================================= Integration Grid [![Formsuite](https://files.readme.io/b852d6ec66c2d59ecb376321311042169c153fcbe140577a8bbf7d5b3a282e57-formsuits.jpeg)\ \ Formsuite\ \ Customer Relationship Management](https://docs.clevertap.com/docs/formsuite) [![FreshSales](https://files.readme.io/f71d2f977d36fc3059891a3cf01ea6d152d791eab6119856ec1daf8e1d1871e9-freshworks_inc_logo.jpeg)\ \ FreshSales\ \ Customer Relationship Management](https://docs.clevertap.com/docs/freshsales) [![HubSpot](https://files.readme.io/45ba67395af4a7d6bed73d2f35e5e99218b9d0500c965f63073886e7f64c431c-id_J1lk9xr_1740630488966_1.png)\ \ HubSpot\ \ Customer Relationship Management](https://docs.clevertap.com/docs/hubspot-via-zapier) [![Iterate](https://files.readme.io/e4ffd2a21dae88c03ff2431e1d9995ec0bc2548e39114d7607838a99318337de-iteratehq_logo.jpeg)\ \ Iterate\ \ Customer Relationship Management](https://docs.clevertap.com/docs/iterate) [![Instapage](https://files.readme.io/0030bcf479f2edb3403a127109064855bbd2e89f137202cb4ede64d7c959ca0a-idbj7tYkMJ_1740630514139.png)\ \ Instapage\ \ Customer Relationship Management](https://docs.clevertap.com/docs/instapage-via-zapier) [![LeadSquared](https://files.readme.io/80aef4bde3273cf4c6b40d5507f8ebf10db31dd73fa242146674aad49d9a48ee-leadsquared_logo.jpeg)\ \ LeadSquared\ \ Customer Relationship Management](https://docs.clevertap.com/docs/leadsquared) [![Pipedrive](https://files.readme.io/a935283a4c39eb9f0f372615f4a9e744f6ff0b7500e3468219ccc5c9a910ec57-pipedrive_logo.jpeg)\ \ Pipedrive\ \ Customer Relationship Management](https://docs.clevertap.com/docs/pipedrive-via-zapier) [![Salesforce CRM](https://files.readme.io/182f0d5e0bd94dfa620de3a37f1796225bf374c8c28e897824595944ecb299e2-salesforce-logo.webp)\ \ Salesforce CRM\ \ Customer Relationship Management](https://docs.clevertap.com/docs/salesforce-via-zapier) [![Swipe Pages](https://files.readme.io/8350ba1a2b9d505475589a006cdaf87dd89758e86e7b0d89f1b811f55109bf80-Swipe_pages_.jpeg)\ \ Swipe Pages\ \ Customer Relationship Management](https://docs.clevertap.com/docs/swipe-pages) [![Zoho Form](https://files.readme.io/f2a740fc65ddfd062d764e81df32348c10f6d2bd6046bdabca1e2ac098b3ba5e-zoho_logo.jpeg)\ \ Zoho Form\ \ Customer Relationship Management](https://docs.clevertap.com/docs/zoho-form-via-zapier) Customer Data Platform [](https://docs.clevertap.com/docs/technology-partners#customer-data-platform) ========================================================================================================= Integration Grid [![Boltic](https://files.readme.io/73eb8e105854e65661befef9bcf2ce62621cb451bb895ca3eee0ee5599a8e7f1-boltic_logo.webp)\ \ Boltic\ \ Customer Data Platform](https://docs.clevertap.com/docs/boltic) [![Census](https://files.readme.io/716b768699d89bfcd39f879b5177c056e37cfd7b44d8c01debd34bd78d6bf736-Census.jpeg)\ \ Census\ \ Customer Data Platform](https://docs.clevertap.com/docs/census) [![Hightouch](https://files.readme.io/0d223308a7381e461315d3e21a6298699ad3cd135b060ae328c9593852fc1154-Hightouch.jpeg)\ \ Hightouch\ \ Customer Data Platform](https://docs.clevertap.com/docs/hightouch) [![mParticle](https://files.readme.io/937f6e9417ec3511d650a487fbb499984e6c162c0b8e3def342dadd343e2e46d-mParticle.png)\ \ mParticle\ \ Customer Data Platform](https://docs.clevertap.com/docs/mparticle-2) [![RudderStack](https://files.readme.io/64575102b5ccac664d6757f23bcae33e7f1eed6d264061fdfa0bbb97528c8e84-RudderStack_Symbol_0.svg)\ \ RudderStack\ \ Customer Data Platform](https://developer.clevertap.com/docs/rudderstack) [![Segment](https://files.readme.io/23acd4b1d664a001eb0d7212381744cb5a959237c6e64c9f25eb7a2c3c6497e2-Segment_Symbol_0.svg)\ \ Segment\ \ Customer Data Platform](https://developer.clevertap.com/docs/segment) [![Treasure Data](https://files.readme.io/ecd32ffc1a6936da60649274cf5dab0cdee6fe58ea6d33334f67e143c4a479e9-Treasure_Data_idr5-pui94_1.png)\ \ Treasure Data\ \ Customer Data Platform](https://docs.clevertap.com/docs/treasuredata-cdp) Data Warehouse [](https://docs.clevertap.com/docs/technology-partners#data-warehouse) ========================================================================================= Integration Grid [![Amazon EventBridge](https://files.readme.io/93783ddfa75cf49849085df73055ed5648715c6e5986cda3a2a1c5713ef79b5d-AWS_S3_Eventbridge.jpeg)\ \ Amazon EventBridge\ \ Data Warehouse](https://docs.clevertap.com/docs/amazon-eventbridge) [![AWS S3 Export](https://files.readme.io/93783ddfa75cf49849085df73055ed5648715c6e5986cda3a2a1c5713ef79b5d-AWS_S3_Eventbridge.jpeg)\ \ AWS S3 Export\ \ Data Warehouse](https://docs.clevertap.com/docs/data-export-to-aws-s3) [![BigQuery](https://files.readme.io/64b5008bd247a0d67e3d8a777a71cc40542c23ff8a2f9baf10a417ff94dad2f7-BigQuery.png)\ \ BigQuery\ \ Data Warehousing](https://docs.clevertap.com/docs/bigquery) [![Google Cloud Platform](https://files.readme.io/5d8f65d75d9cfaa7c388beb52805563d3ac83b071eee9ad0138afd672d275577-Google_Cloud_Platform.webp)\ \ Google Cloud Platform (GCP)\ \ Data Warehouse](https://docs.clevertap.com/docs/data-export-to-gcp) [![Microsoft Azure](https://files.readme.io/8507d14dd44a824a548d802a530aafde484834cb5f7ccaac3fdbae692fccdaa6-Microsoft_Azure_Portal_idc8nWN0hO_0.svg)\ \ Microsoft Azure\ \ Data Warehouse](https://docs.clevertap.com/docs/microsoft-azure) [![Nexla](https://files.readme.io/0f370a30b8470d070aa47d30196b63c70a24a56dfd23c5d8cecd0d2bc367ddcb-nexla_logo_1.jpeg)\ \ Nexla\ \ Data Warehouse](https://docs.clevertap.com/docs/nexla) Direct Mail [](https://docs.clevertap.com/docs/technology-partners#direct-mail) =================================================================================== Integration Grid [![Inkit](https://files.readme.io/dfb2f5e69b57bbb3696d1ba796f4211501cc7a0647b8806542f89fbd7f546c75-inkit_logo.jpeg)\ \ Inkit\ \ Direct Mail](https://docs.clevertap.com/docs/inkit) [![Optilyz](https://files.readme.io/0ebd7107a2d691d9c0986fb1926f56b24734523ce9a3df4d47d779dc095dd9ec-optilyz_logo.jpeg)\ \ Optilyz\ \ Direct Mail](https://docs.clevertap.com/docs/optilyz) [![Poplar](https://files.readme.io/ddb7de4000c3ebfe126dd906ea5a783f1b5fe67ea1a0eca6e2c4a1132e7b7412-Poplar.jpeg)\ \ Poplar\ \ Direct Mail](https://docs.clevertap.com/docs/poplar) Dynamic Content [](https://docs.clevertap.com/docs/technology-partners#dynamic-content) =========================================================================================== Integration Grid [![blayer](https://files.readme.io/f59dbfaee0df1c37839315b78cba238c61e22dac450916e6434f85c33c68a8b2-blayerrr.png)\ \ B.Layer\ \ Dynamic Content](https://docs.clevertap.com/docs/blayer) [![Blitzllama](https://files.readme.io/0725c003f234442a3b12e072bd053a2235c66d38d0a4bcf6e1e41fe5b80a7895-blitz_llama_logo.jpeg)\ \ Blitzllama\ \ Dynamic Content](https://docs.clevertap.com/docs/blitzllama) [![Contentful](https://files.readme.io/ede8e689e31bb2cd9c3572905df1012f4be29d9f1742cd1ea852823a03b2edb8-contentful_logo.jpeg)\ \ Contentful\ \ Dynamic Content](https://docs.clevertap.com/docs/contentful) [![Delighted](https://files.readme.io/1a227765cad4f5f276b85ac7fa197e41a98b3f481a8f4691615a9e8730cea99e-delighted-logo-png_seeklogo-273029.png)\ \ Delighted\ \ Dynamic Content](https://docs.clevertap.com/docs/delighted) [![Jasper AI](https://files.readme.io/81bd765584235c518081a163da731d67f41be31480397e37535d8657d01752e9-Jasper_idA3cdDJZy_1.png)\ \ Jasper AI\ \ Dynamic Content](https://docs.clevertap.com/docs/jasper-ai) [![Litmus](https://files.readme.io/a03b1a6fa2c872846bcec48a5e30ef62efde09806be36154064e6464249c92f1-litmus.png)\ \ Litmus\ \ Dynamic Content](https://docs.clevertap.com/docs/litmus) [![Typeform](https://files.readme.io/c04730d8c62f34e618d9520c6a540cc8f96cd344ebb5e424a57c2537436da1c7-Typeform.png)\ \ Typeform\ \ Dynamic Content](https://docs.clevertap.com/docs/typeform) [![Movable Ink](https://files.readme.io/72127c0fe4129e7befc081c092c166e4534978800e30ae56486c15112a86ec67-movable_ink_logo.jpeg)\ \ Movable Ink\ \ Dynamic Content](https://docs.clevertap.com/docs/movable-ink) [![NiftyImages](https://files.readme.io/4e3ac1309abb5449bbfa59cc44e08d38a2f258ae439217f129f8a6cb41dc3b73-niftimages_logo.jpeg)\ \ NiftyImages\ \ Dynamic Content](https://docs.clevertap.com/docs/niftyimages) [![Playable](https://files.readme.io/5895d2c0a6711ae3ab9f101be28bf9182d82b29d24fe73ec6e94dcb589a3c8de-1631337387371.jpeg)\ \ Playable\ \ Dynamic Content](https://docs.clevertap.com/docs/playable) [![Qualtrics](https://files.readme.io/6944c53ee9595f51c84ea8014ab2988822104b10fccab89c4536c07d32a28dfc-qualtrics_logo.jpeg)\ \ Qualtrics\ \ Dynamic Content](https://docs.clevertap.com/docs/qualtrics) [![Quickads](https://files.readme.io/bd7b312321f8ee5116429ff099f10001113f4350235a5861f8dd16b58dfcb266-Quickads.png.avif)\ \ Quickads\ \ Dynamic Content](https://docs.clevertap.com/docs/quickads) [![Reignite](https://files.readme.io/0b10fdf0e16e488b7654dc3aebc7a4b2951d7a1b3663678924adb2fe188fdd98-Reignite.jpeg)\ \ Reignite\ \ Dynamic Content](https://docs.clevertap.com/docs/reignite) [![rocketium](https://files.readme.io/90a1d2728b8ebe972fc5aaf1be64ef17722234c336bbae843cf801fc919c1da3-Rocketium_Logo_2023.png)\ \ Rocketium\ \ Dynamic Content](https://docs.clevertap.com/docs/rocketium) [![Sendtric](https://files.readme.io/375a1b7c88c379fb82a44b45ad331b21e37c24c15a74fb38efb2fd7304216b85-idxIcP7ufY_logos.jpeg)\ \ Sendtric\ \ Dynamic Content](https://docs.clevertap.com/docs/sendtric) [![SquareSpace](https://files.readme.io/909c405190a2d2403b146595b05d5ecb90b734b244200ce188488cd435736fa6-squarespace_logo.jpeg)\ \ SquareSpace\ \ Dynamic Content](https://docs.clevertap.com/docs/squarespace) [![Storylane](https://files.readme.io/9eb14129191cfd3f3a65ffd2a7e854d487dfdf1b4af88f157c8d1321a23c84aa-Storylane.png)\ \ Storylane\ \ Dynamic Content](https://docs.clevertap.com/docs/storylane) [![Storyly](https://files.readme.io/e03ffe21e4cb257fa8239401afb55a0107b184f71794d4a9f97445a8d133e704-Storyly.jpeg)\ \ Storyly\ \ Dynamic Content](https://docs.clevertap.com/docs/storyly) [![SurveyMonkey](https://files.readme.io/c938d864e846eb62aa7ab50ad8c31c58598ccfd373f7a768a7a296f0b2310e91-unnamed.png)\ \ SurveyMonkey\ \ Dynamic Content](https://docs.clevertap.com/docs/surveymonkey) [![SurveySparrow](https://files.readme.io/0b14518af5a6b7efe174e7717401d23e2e83b89efb91860cfa37c31c94a49b11-surveysparrow_logo.jpeg)\ \ SurveySparrow\ \ Dynamic Content](https://docs.clevertap.com/docs/surveysparrow) [![Wove](https://files.readme.io/48f0b4f943c7a80740bfc408e0595683982ec73a843c028912536514d8b58415-with_wove_logo.jpeg)\ \ Wove\ \ Dynamic Content](https://docs.clevertap.com/docs/wove) E-Commerce [](https://docs.clevertap.com/docs/technology-partners#e-commerce) ================================================================================= Integration Grid [![Shopify](https://files.readme.io/5bed2229829e9411ff820f536a100b9592c2eb0d6136109dba98561115e0fb69-Shopify.com_Symbol_0.svg)\ \ Shopify\ \ E-Commerce](https://docs.clevertap.com/docs/shopify) Email [](https://docs.clevertap.com/docs/technology-partners#email) ======================================================================= Integration Grid [![Amazon Simple Email Service](https://files.readme.io/f7b8c289ace53bf772fc0a8b13ad3a47470e9800bda44e6c1aab9ac9b8e13f1f-Simple_Email_Service.png)\ \ Amazon Simple Email Service\ \ Email](https://docs.clevertap.com/docs/amazon-simple-email-service) [![Mandrill](https://files.readme.io/f025167126f2b07919e65afb6a72c9c0ade83a75c6190384aded79d3343d1654-Mandrill.jpeg)\ \ Mandrill\ \ Email](https://docs.clevertap.com/docs/mandrill) [![Postmark](https://files.readme.io/572f6c80eb6165130396b72959d420323abe3017ab6f3f7a3994f7221de0cb93-Postmark.png)\ \ Postmark\ \ Email](https://docs.clevertap.com/docs/postmark) [![SendGrid](https://files.readme.io/50520ec5a42cc4331d440fd5a33ad0247585ae414c75871f118eb87d0b8ba3bb-SendGrid_Symbol_0.svg)\ \ SendGrid\ \ Email](https://docs.clevertap.com/docs/sendgrid) [![Deeplinking with Branch](https://files.readme.io/311972c7da6cd9956e8110911d763cb514aa30b6354505c4f6a38aea2f011ef6-Branch_idSRMs7jP1_0.svg)\ \ Deeplinking with Branch\ \ Email](https://docs.clevertap.com/docs/deeplinking-with-branch) Email Validator [](https://docs.clevertap.com/docs/technology-partners#email-validator) =========================================================================================== Integration Grid [![Clearout](https://files.readme.io/f53513e04b71ff3c0aa016155ecf437f136140cfd060a87c7af6359df8f4b6eb-Clearout.png)\ \ Clearout\ \ Email Validator](https://docs.clevertap.com/docs/clearout) [![KickBox](https://files.readme.io/fa95947d06d3fbcd09511b0c59fea7546fd26918e45bf5e3c23d14e8c3d1c977-Kickbox.jpeg)\ \ KickBox\ \ Email Validator](https://docs.clevertap.com/docs/kickbox) Email Template [](https://docs.clevertap.com/docs/technology-partners#email-template) ========================================================================================= Integration Grid [![Alpaco](https://files.readme.io/cba5ecc0e9daae8fc9d67eeac84db611c442f677905ad89f7a97870c12074922-contact_3qovrm0f_1.jpg)\ \ Alpaco\ \ Email Template](https://docs.clevertap.com/docs/alpaco) [![Email Love](https://files.readme.io/b4d0bd4826523fb395d8c516d26a8d22ef0f5c95d2f127a31d11a62f02b07e0f-email_love_logo.jpeg)\ \ Email Love\ \ Email Template](https://docs.clevertap.com/docs/email-love) [![stripo](https://files.readme.io/5ff9d0c27b076734f3b800277a4cb104730f07c6d4181265170fe917666a08dd-Stripo.jpeg)\ \ Stripo\ \ Email Template](https://docs.clevertap.com/docs/stripo) [![Taxi for Email](https://files.readme.io/dde396ef5ccd49f3346ade3aaf754d65e751938a12c463bd24b14e9d034a247a-Taxi_for_Email.jpeg)\ \ Taxi for Email\ \ Email Template](https://docs.clevertap.com/docs/taxi-for-email) Localization [](https://docs.clevertap.com/docs/technology-partners#localization) ===================================================================================== Integration Grid [![Crowdin](https://files.readme.io/0b8af82f6aa48ed325357cd7b7ac6106a0a43563407d10dede8abc62d02cba55-Crowdin.jpeg)\ \ Crowdin\ \ Localization](https://docs.clevertap.com/docs/crowdin) [![Lokalise](https://files.readme.io/a80f7428262717774b0bfe20148e67fc42e5e56a1d2e7b0afc9d536249dcb34d-Lokalise_idlLZ8_ln3_0.svg)\ \ Lokalise\ \ Localization](https://docs.clevertap.com/docs/lokalise) Loyalty [](https://docs.clevertap.com/docs/technology-partners#loyalty) =========================================================================== Integration Grid [![Loyalty Lion](https://files.readme.io/4a3ae6b11f703250eb6a26a0e6bc0db8cd7712365185dda30ddd1250e5d91a92-loyaltylion_logo.jpeg)\ \ Loyalty Lion\ \ Loyalty](https://docs.clevertap.com/docs/loyalty-lion) [![Talon.One](https://files.readme.io/0b8dabb5155d5a9d9d9901a1236fc3691cf193f580643f1759fb89142900168a-Talon.One.png)\ \ Talon.One\ \ Loyalty](https://docs.clevertap.com/docs/talonone) [![Voucherify](https://files.readme.io/fd42cbb0b92d6ae2159e0707bdf740f903e1d0bb07215b2ae38d172b0dea7f0d-Voucherify.jpeg)\ \ Voucherify\ \ Loyalty](https://docs.clevertap.com/docs/voucherify) [![Yotpo](https://files.readme.io/f5b3186e92f79896cd7af4d46a4d044791a2a9950fb17cc139f44845bfd313f3-images_2.png)\ \ Yotpo\ \ Loyalty](https://docs.clevertap.com/docs/yotpo) Messenger [](https://docs.clevertap.com/docs/technology-partners#messenger) =============================================================================== Integration Grid [![Discord](https://files.readme.io/c365e9317b6d60c493d0cf7ca6f651fa4d542309f551740056d422d1a8c62631-discord_logo.jpeg)\ \ Discord\ \ Messenger](https://docs.clevertap.com/docs/discord) [![LINE](https://files.readme.io/0ec3dc2ff75c076e12f5969e4f47bd9c193f9914ff8989a29e89cf7dadba1951-line.png)\ \ LINE\ \ Messenger](https://docs.clevertap.com/docs/line-messenger) [![Slack](https://files.readme.io/75472ff3623453c9f15e3a9c9abfca5f9548b7dece4c70f4a5818a55161e79d7-Slack_icon_2019.svg.png)\ \ Slack\ \ Messenger](https://docs.clevertap.com/docs/slack) [![Sendbird](https://files.readme.io/b9304e06560e5b56147bc6ab80e2711386f1dfa56a63a1edd70f248adb931a7b-Sendbird.jpeg)\ \ Sendbird\ \ Messenger](https://docs.clevertap.com/docs/sendbird-business-messaging) [![Telegram Messenger](https://files.readme.io/dd930dccf4b0b105a8c946452a34382d946658d5b4562f0ed3ce3ef90ab15e75-LRDASku7_400x400.jpg)\ \ Telegram Messenger\ \ Messenger](https://docs.clevertap.com/docs/telegram-messenger) Payments [](https://docs.clevertap.com/docs/technology-partners#payments) ============================================================================= Integration Grid [![Purchasely](https://files.readme.io/0ccd4b6dbcdae6d85df14e72b18248f4e8d2147821ea479589657e38f7c19d7b-Purchesly.png)\ \ Purchasely\ \ Payments](https://docs.clevertap.com/docs/purchasely) [![Qonversion](https://files.readme.io/cfd39d9ccadfb9a7045e4807e1fb3658e8174ce8605cfea1ec4a8e73e926d23d-qonversion_logo.jpeg)\ \ Qonversion\ \ Payments](https://docs.clevertap.com/docs/qonversion) [![RevenueCat](https://files.readme.io/0c64232782e0973162f1b629425b5fafee30b3aafc2e5566ff125a2b8e6665e0-RevenueCat.jpeg)\ \ RevenueCat\ \ Payments](https://docs.clevertap.com/docs/revenuecat) Remarketing [](https://docs.clevertap.com/docs/technology-partners#remarketing) =================================================================================== Integration Grid [![Facebook Audience Network](https://files.readme.io/ce9618bf8a67a2eb1cb026cb8603318b81b8218562fa805c333c531403a2a4c9-Facebook_Symbol_0.svg)\ \ Facebook Audience Network\ \ Remarketing](https://docs.clevertap.com/docs/facebook-audience-network-1) [![Facebook Lead Ads](https://files.readme.io/ce9618bf8a67a2eb1cb026cb8603318b81b8218562fa805c333c531403a2a4c9-Facebook_Symbol_0.svg)\ \ Facebook Lead Ads\ \ Remarketing](https://docs.clevertap.com/docs/facebook-lead-ads-via-zapier) [![Google Ads Remarketing](https://files.readme.io/80939fd90693533ee04dc1c06c9fe653386a05712a689ca2aad26fd52b9263ee-Google_Ads.jpeg)\ \ Google Ads\ \ Remarketing](https://docs.clevertap.com/docs/google-adwords-remarketing) [![TikTok Remarketing](https://files.readme.io/14ea9f0f2d1b3edd08dc3ee8df7592acce126e6db2121b7c29e8f72cc5a8b409-TikTok_Logo_Alternative_0.svg)\ \ TikTok Remarketing\ \ Remarketing](https://docs.clevertap.com/docs/tiktok-remarketing-1) SMS [](https://docs.clevertap.com/docs/technology-partners#sms) =================================================================== Integration Grid [![8x8](https://files.readme.io/dc09a5f5d7e04d537513a570343b5037be5c293b103dffb3ae3146c8851e3090-8x8-logo-01.png)\ \ 8x8\ \ SMS](https://docs.clevertap.com/docs/8x8-sms) [![BulkSMS](https://files.readme.io/c75a975ae4ba728b9d8f80ea1fd710f1d69f33bb2e9d0b0b373226c5044c9762-BulkSMS.jpeg)\ \ BulkSMS\ \ SMS](https://docs.clevertap.com/docs/generic-sms) [![Exotel](https://files.readme.io/89a86c79cf4fe27f746a979545dffce12dc4292a2e42cfc3607aba2cf1315b02-Exotel.jpeg)\ \ Exotel\ \ SMS](https://docs.clevertap.com/docs/exotel) [![ICS Mobile](https://files.readme.io/3efc20521ab132c9038b5a687fa7a29edef7d065ef3134f7bdb5ca56852a33ea-ics_logo.webp)\ \ ICS Mobile\ \ SMS](https://docs.clevertap.com/docs/ics-mobile) [![Infobip](https://files.readme.io/8f8fb96c455eedc6728f420f2b1aba195a148bbfc07cc20f4721a4e3fbc1a802-Infobip_id8JKsF2ld_0.svg)\ \ Infobip\ \ SMS](https://docs.clevertap.com/docs/infobip-sms) [![Kaleyra SMS](https://files.readme.io/5c1d4b35de4b78d5cf5e97bd7bea915847e9507f8d24486c377c7ea590b5adaa-Kaleyra.jpeg)\ \ Kaleyra\ \ SMS](https://docs.clevertap.com/docs/kaleyra-sms) [![MSG91](https://files.readme.io/4c7f4dfa7b7e264c616f1ebf7ddbd6da15238eb1585e12287eef47a70070bd94-MSG91.png)\ \ MSG91\ \ SMS](https://docs.clevertap.com/docs/msg91) [![Netcore](https://files.readme.io/17b93b939ba0a468beb925a169a371cd811f55f415aa5a7828f126c03a912dc9-Netcore_Cloud_idB8rkalPb_0.svg)\ \ Netcore\ \ SMS](https://docs.clevertap.com/docs/netcore) [![Nexmo/Vonage](https://files.readme.io/dfed8a138edd91e7da9627c3c45a7c15968897031e15a4125c80457aea0be73d-Nexmo.png)\ \ Nexmo/Vonage\ \ SMS](https://docs.clevertap.com/docs/nexmo) [![Nimbus SMS](https://files.readme.io/f114f9b46a74e7753c5be56aac3c04634e8ce62c8c03731686a6d162cdba5db4-Nimbus_SMS.jpeg)\ \ Nimbus\ \ SMS](https://docs.clevertap.com/docs/generic-sms) [![OneXtel](https://files.readme.io/0c2d7328403509990400bdc186f722f9cf30bcaf481cb29576b6c88defb6f4ce-OneXtel_logo.jpg)\ \ OneXtel\ \ SMS](https://docs.clevertap.com/docs/onextel-sms) [![Plivo](https://files.readme.io/eba88cb6c54c161ff4e417acdd71e75413d9f33eab53bd02add25c1b3e23b944-Plivo.jpeg)\ \ Plivo\ \ SMS](https://docs.clevertap.com/docs/generic-sms) [![Route Mobile](https://files.readme.io/fa59938b06ba7bbb7c9c7cf07d9639da4bfe63b6c0b9b4f27808322a714851f9-images.jpeg)\ \ Route Mobile\ \ SMS](https://docs.clevertap.com/docs/route-mobile-sms) [![Sinch SMS](https://files.readme.io/3cac1aa682ee81cadb4f38660b5af36a8df8328e2ac03e08c8c6cdc4b1d14a13-sinch_logomark_black.svg)\ \ Sinch\ \ SMS](https://docs.clevertap.com/docs/sinch-sms) [![SMSINDIAHUB](https://files.readme.io/c0d1e9a5f1f7f36f807a2c27bf1ed65435730e321e61a33e758a1f93a52fe9a5-SMSINDIAHUB.png)\ \ SMSINDIAHUB\ \ SMS](https://docs.clevertap.com/docs/generic-sms) [![TextLocal](https://files.readme.io/1f2a9cbaa50afb424a71f3a29df3e5ddcbbcd1baf65aac6270622d8b271481f1-TextLocal.jpeg)\ \ TextLocal\ \ SMS](https://docs.clevertap.com/docs/generic-sms) [![Times Mobile](https://files.readme.io/e8484000bcf1c84dbf071c91110c800b9125dee65d53b06a8871465672aa7b2d-TimesMobile.webp)\ \ Times Mobile\ \ SMS](https://docs.clevertap.com/docs/times-mobile) [![Twilio](https://files.readme.io/fff6322c139e023770b83e4c0e7d8660178446edf62c842683f2f86877a74152-Twilio_idseuPD28S_0.svg)\ \ Twilio\ \ SMS](https://docs.clevertap.com/docs/twilio) Support [](https://docs.clevertap.com/docs/technology-partners#support) =========================================================================== Integration Grid [![Zendesk](https://files.readme.io/9222da2a1de0404917acf81a88b05ab8e56881e630ce139976d73eaab562aa7f-Zendesk_Symbol_0.svg)\ \ Zendesk\ \ Support](https://docs.clevertap.com/docs/zendesk) WhatsApp [](https://docs.clevertap.com/docs/technology-partners#whatsapp) ============================================================================= Integration Grid [![8x8](https://files.readme.io/dc09a5f5d7e04d537513a570343b5037be5c293b103dffb3ae3146c8851e3090-8x8-logo-01.png)\ \ 8x8\ \ WhatsApp](https://docs.clevertap.com/docs/8x8-whatsapp) [![AiSensy](https://files.readme.io/2196859b649c96a58cb566b43e81c2f9a8dd0ff02906db88af67aac167b10d23-aisensyofficial_logo.jpeg)\ \ AiSensy\ \ WhatsApp](https://docs.clevertap.com/docs/aisensy) [![Exotel](https://files.readme.io/89a86c79cf4fe27f746a979545dffce12dc4292a2e42cfc3607aba2cf1315b02-Exotel.jpeg)\ \ Exotel\ \ WhatsApp](https://docs.clevertap.com/docs/exotel-whatsapp) [![Gupshup](https://files.readme.io/4139ddd02258c0a239367f32365c632040dd4bdcb0fe0743f9f4eec15fb5d828-Gupshup_copy.jpeg)\ \ Gupshup\ \ WhatsApp](https://docs.clevertap.com/docs/gupshup) [![Haptik](https://files.readme.io/dc37a22c8905842aa0548a7d6d37a0d0b776e9733a642a47ed914d3dc9bf03df-handlogo-1-2.png.webp)\ \ Haptik\ \ WhatsApp](https://docs.clevertap.com/docs/haptik) [![Infobip](https://files.readme.io/8f8fb96c455eedc6728f420f2b1aba195a148bbfc07cc20f4721a4e3fbc1a802-Infobip_id8JKsF2ld_0.svg)\ \ Infobip\ \ WhatsApp](https://docs.clevertap.com/docs/infobip) [![Interakt](https://files.readme.io/54812352e5866d1fbc65d8b3e16c3d3bdb754742e2cb7f537c15ecff9626ffcb-Interakt.png)\ \ Interakt\ \ WhatsApp](https://docs.clevertap.com/docs/interakt) [![Kaleyra](https://files.readme.io/5c1d4b35de4b78d5cf5e97bd7bea915847e9507f8d24486c377c7ea590b5adaa-Kaleyra.jpeg)\ \ Kaleyra\ \ WhatsApp](https://docs.clevertap.com/docs/kaleyra) [![MSG91](https://files.readme.io/4c7f4dfa7b7e264c616f1ebf7ddbd6da15238eb1585e12287eef47a70070bd94-MSG91.png)\ \ MSG91\ \ WhatsApp](https://docs.clevertap.com/docs/msg91-whatsapp) [![Nexmo](https://files.readme.io/dfed8a138edd91e7da9627c3c45a7c15968897031e15a4125c80457aea0be73d-Nexmo.png)\ \ Nexmo\ \ WhatsApp](https://docs.clevertap.com/docs/nexmo-whatsapp) [![OneXtel](https://files.readme.io/0c2d7328403509990400bdc186f722f9cf30bcaf481cb29576b6c88defb6f4ce-OneXtel_logo.jpg)\ \ OneXtel\ \ WhatsApp](https://docs.clevertap.com/docs/onextel-whatsapp) [![Pingbix](https://files.readme.io/e8f75344f0c6bc2a194f11308363a215ffb93456b404e4f5a375cc9021714d20-image_9.png)\ \ Pingbix\ \ WhatsApp](https://docs.clevertap.com/docs/pingbix) [![QuickReply](https://files.readme.io/1f6f55d5ef53dea3a01e715abedab16db017935cf7de4b15731f02e3d0636155-quickreply_ai_logo.jpeg)\ \ QuickReply\ \ WhatsApp](https://docs.clevertap.com/docs/quickreply) [![Route Mobile](https://files.readme.io/fa59938b06ba7bbb7c9c7cf07d9639da4bfe63b6c0b9b4f27808322a714851f9-images.jpeg)\ \ Route Mobile\ \ WhatsApp](https://docs.clevertap.com/docs/route-mobile) [![Sinch India](https://files.readme.io/3cac1aa682ee81cadb4f38660b5af36a8df8328e2ac03e08c8c6cdc4b1d14a13-sinch_logomark_black.svg)\ \ Sinch\ \ WhatsApp](https://docs.clevertap.com/docs/sinch) [](https://docs.clevertap.com/docs/sinch) Workflow Automation [](https://docs.clevertap.com/docs/technology-partners#workflow-automation) =================================================================================================== Integration Grid [![Airtable](https://files.readme.io/188ca5ed90d7628340704344432b9df335b3af85f4d07083f078bbad728286aa-airtable_logo.jpeg)\ \ Airtable\ \ Workflow Automation](https://docs.clevertap.com/docs/airtable) [![Apxor](https://files.readme.io/66b6a87819f6f7077af71083824cb52a15330fc20cfd71a283dd094be0f8c297-Apxor.jpeg)\ \ Apxor\ \ Workflow Automation](https://docs.clevertap.com/docs/apxor) [![DataChannel](https://files.readme.io/b10ff964a41c014c7d6466c815626e09eb30693413cecab4b0b0a3e676392362-mydatachannel_logo.jpeg)\ \ DataChannel\ \ Workflow Automation](https://docs.clevertap.com/docs/datachannel) [![n8n](https://files.readme.io/870f58ee89caf9207bfd447ca51e300d116d6822cde87e06141668ed6a6fc648-n8n-icon-logo-brandlogos.net_fxs0a1ltj.svg)\ \ n8n\ \ Workflow Automation](https://docs.clevertap.com/docs/n8n) [![Pipedream](https://files.readme.io/2461ba9e6b5233e3221e04cdaa86a894857d231d2c6cef10e60f22e09dab1d80-Pipedream.jpeg)\ \ Pipedream\ \ Workflow Automation](https://docs.clevertap.com/docs/pipedream) [![SheetDB](https://files.readme.io/f5fe97a86c27e955081ae67da59024d0282370f2ee7cf6a6f4708e431de6240d-sheetdb.io.png)\ \ SheetDB\ \ Workflow Automation](https://docs.clevertap.com/docs/sheetdb) [![Sheetlabs](https://files.readme.io/c255a4d7e0783e426b1bf01eb7cd5f167d905e3f7d83614db18751ae2a788700-sheetlabs.png)\ \ Sheetlabs\ \ Workflow Automation](https://docs.clevertap.com/docs/sheetlabs) [![Smashpops](https://files.readme.io/cb48640086300861d82b9aa9cca212d5a5522f3ad858b21865b9d750972e63c4-smashpops_logo.png)\ \ Smashpops\ \ Workflow Automation](https://docs.clevertap.com/docs/smashpops) [![Zapier](https://files.readme.io/9986166ddfb29f93a834963deb0c216be7c1c20b896a77e06fc2531d4d038b08-Zapier.jpeg)\ \ Zapier\ \ Workflow Automation](https://docs.clevertap.com/docs/zapier) [](https://docs.clevertap.com/docs/zapier) [Updated 27 days ago](https://docs.clevertap.com/docs/zapier) * * * Ask AI --- # Onboarding Glossary Before getting started with the CleverTap platform, we recommend that you familiarize yourself with the common dashboard terms. A [](https://docs.clevertap.com/docs/glossary-2#a) ------------------------------------------------------ ### Analytics [](https://docs.clevertap.com/docs/glossary-2#analytics) Systematic analysis of user and event data to give you the capability to monitor and gain insight into how your users engage with your app or website. B [](https://docs.clevertap.com/docs/glossary-2#b) ------------------------------------------------------ ### Best Time [](https://docs.clevertap.com/docs/glossary-2#best-time) A feature that recommends the most optimal time to send a message to each user for a batch campaign or a journey. For more information, refer to [Best Time](https://docs.clevertap.com/docs/best-time) . ### Billing [](https://docs.clevertap.com/docs/glossary-2#billing) Billing covers your plan, billing details, card details, and invoices. For more information on our different plans and billing, refer to our [pricing page](https://clevertap.com/pricing/) . ### Boards [](https://docs.clevertap.com/docs/glossary-2#boards) A [collection of cards](https://docs.clevertap.com/docs/simple-reports) containing key metrics. ### Bulletins [](https://docs.clevertap.com/docs/glossary-2#bulletins) [Automated messages](https://docs.clevertap.com/docs/bulletins) that are created for a specific segment for recurring business events in CleverTap. C [](https://docs.clevertap.com/docs/glossary-2#c) ------------------------------------------------------ ### Campaigns [](https://docs.clevertap.com/docs/glossary-2#campaigns) A collection of tactics designed to capture the attention of its targets through different messaging channels. For more information, refer to [Campaign Optimization](https://docs.clevertap.com/docs/intro-to-campaigns) . ### Campaign Limits [](https://docs.clevertap.com/docs/glossary-2#campaign-limits) [Limits](doc:messaging-frequency-caps#throttle) to determine how many messages a user receives per day. ### Channels [](https://docs.clevertap.com/docs/glossary-2#channels) The type of communication to reach your users, including: * [Push Notifications](https://docs.clevertap.com/docs/push) * [In-App](doc:in-app) * [App Inbox](https://docs.clevertap.com/docs/app-inbox) * [Native Display](https://docs.clevertap.com/docs/native-display) * [Web Push](https://docs.clevertap.com/docs/web-push) * [Web Pop-up](https://docs.clevertap.com/docs/web-pop-ups) * [SMS](doc:sms-overview) * [Email](https://docs.clevertap.com/docs/email) * [Google Adwords](https://docs.clevertap.com/docs/google-adwords) * [Facebook Audiences](https://docs.clevertap.com/docs/facebook-audiences) * [WhatsApp](https://docs.clevertap.com/docs/whatsapp) * [Webhooks](https://developer.clevertap.com/docs/webhooks) ### Compliance & Certifications [](https://docs.clevertap.com/docs/glossary-2#compliance--certifications) A list of all [compliances and certifications](https://docs.clevertap.com/docs/compliance-certifications) applicable to CleverTap. ### Composite Events [](https://docs.clevertap.com/docs/glossary-2#composite-events) Combined multiple events together. For more information, refer to [Composite Events](https://docs.clevertap.com/docs/composite-events) . ### Control Groups [](https://docs.clevertap.com/docs/glossary-2#control-groups) In a marketing A/B testing, members of a control group receive a standard treatment. Control groups are a set of users marked to be excluded from all marketing campaigns, so the primary purpose is that marketers can measure the efficacy of a campaign. Note that you can have more than one treatment group, more than one control group, or both. For more information, refer to [Control Groups](https://docs.clevertap.com/docs/control-groups) . ### Conversations [](https://docs.clevertap.com/docs/glossary-2#conversations) A way to communicate between brands and users. For more information, refer to [Conversations](https://docs.clevertap.com/docs/conversations) . E [](https://docs.clevertap.com/docs/glossary-2#e) ------------------------------------------------------ ### Events [](https://docs.clevertap.com/docs/glossary-2#events) Specific, individual actions that users perform in your app or website over a period of time as they progress down the conversion funnel. For more information, refer to [Events](https://docs.clevertap.com/docs/events) . J [](https://docs.clevertap.com/docs/glossary-2#j) ------------------------------------------------------ ### Journeys [](https://docs.clevertap.com/docs/glossary-2#journeys) A visual campaign builder that lets you create omnichannel messaging experiences for your users. For more information, refer to [Journeys](https://docs.clevertap.com/docs/journeys) . L [](https://docs.clevertap.com/docs/glossary-2#l) ------------------------------------------------------ ### Lifecycle Optimizer [](https://docs.clevertap.com/docs/glossary-2#lifecycle-optimizer) A [tool](https://docs.clevertap.com/docs/lifecycle-optimizer) that enables marketers to influence users into progressive lifecycle stages. ### Linked Content [](https://docs.clevertap.com/docs/glossary-2#linked-content) The ability to pull content via an API from a web server, third-party tool, or in-house software for personalization. For more information, refer to [Linked Content](https://docs.clevertap.com/docs/linked-content) . M [](https://docs.clevertap.com/docs/glossary-2#m) ------------------------------------------------------ ### Monthly Active Users (MAUs) [](https://docs.clevertap.com/docs/glossary-2#monthly-active-users-maus) The total number of app users in a month. O [](https://docs.clevertap.com/docs/glossary-2#o) ------------------------------------------------------ ### Organization [](https://docs.clevertap.com/docs/glossary-2#organization) The organization section provides information on your projects, billing, single sign-on, and CleverTap compliances and certifications. P [](https://docs.clevertap.com/docs/glossary-2#p) ------------------------------------------------------ ### Product Experiences [](https://docs.clevertap.com/docs/glossary-2#product-experiences) A product configuration (also known as an A/B test) to modify app behavior and feature flags to add or remove features from your app without performing an app store deployment. For more information, refer to [Product Experiences](https://docs.clevertap.com/docs/product-experiences) . ### Project [](https://docs.clevertap.com/docs/glossary-2#project) A shared workspace for teams to track and manage engagement for a mobile app or website. For more information, refer to [Project Setup](https://docs.clevertap.com/docs/project-setup) . ### Pull Notification [](https://docs.clevertap.com/docs/glossary-2#pull-notification) A feature that enhances the deliverability of push notifications to devices (for example, Xiaomi, Lenovo, Oppo, LeEco, and so on) where the notifications sent via Firebase Cloud Messaging (FCM)/Google Cloud Messaging (GCM) remain undelivered. For more information, refer to [Delivery Optimization](https://docs.clevertap.com/docs/delivery-optimization) . ### Roles [](https://docs.clevertap.com/docs/glossary-2#roles) A specific system role dedicated to each user. CleverTap offers role-based access control (RBAC) for account administrators to enable different levels of access for dashboard users. For more information, refer to [User Roles](https://docs.clevertap.com/docs/role-based-access-control#user-roles) . S [](https://docs.clevertap.com/docs/glossary-2#s) ------------------------------------------------------ ### Schema [](https://docs.clevertap.com/docs/glossary-2#schema) An [organizational structure](https://docs.clevertap.com/docs/schema) of events, event properties, user properties, their values, and data sources. ### Segments [](https://docs.clevertap.com/docs/glossary-2#segments) A group of users whose actions performed, actions not performed, or user profile properties match a set of defined criteria, over a period of time. For more information, refer to [Segments](doc:segmentation) . ### Single Sign-On (SSO) [](https://docs.clevertap.com/docs/glossary-2#single-sign-on-sso) An authentication method that lets users access multiple applications and services with the use of a single set of login credentials. For more information, refer to [Single Sign-On (SSO)](https://docs.clevertap.com/docs/single-sign-on-sso) . U [](https://docs.clevertap.com/docs/glossary-2#u) ------------------------------------------------------ ### User [](https://docs.clevertap.com/docs/glossary-2#user) A [user](https://docs.clevertap.com/docs/user-profiles) is a person who can access an application through a mobile app, web app, or web browser. A user identified in the CleverTap dashboard is a profile comprised of identifiers, properties, and events. ### User Identity [](https://docs.clevertap.com/docs/glossary-2#user-identity) A [set of attributes](https://docs.clevertap.com/docs/user-profiles#user-profile-data-model) that uniquely identify a user (e.g., email, mobile number, custom identifier). ### User Property [](https://docs.clevertap.com/docs/glossary-2#user-property) An attribute that provides additional information about a user. Updated about 2 months ago * * * Ask AI --- # Release Notes Stay updated with CleverTap's latest feature releases, cutting-edge feature enhancements, and performance enhancements to help you optimize your experience. View previous updates in [What's New: 2024](https://docs.clevertap.com/docs/release-notes-2024) . [![Changelog Icon](https://files.readme.io/b2a942b44fb9852a74dd10f4d503100a127e6853ad209936d52bfb6e3ea61bd8-Schema.svg)\ \ Events Changelog\ \ System Event Additions & Updates](https://docs.clevertap.com/docs/events-changelog) [![SDK Changelog Icon](https://files.readme.io/4d7a89d59bce8d11fe6851082a3db311e3f627e572530136edfa89ebb4d334d9-fi_16627473.svg)\ \ SDK Changelog\ \ Platform SDK Changelog](https://developer.clevertap.com/docs/changelog) Release Type Legend [](https://docs.clevertap.com/docs/whats-new#release-type-legend) ========================================================================================= | Release | Description | | --- | --- | | ![Private-beta](https://files.readme.io/dad35e9ed3e63d1b2db25e4e25f7cfb647e873ef25e24ad88cd34579d89498d9-Private_beta.svg) | A limited release rolled out to selected customers as an early preview for use case validation and feedback. | | ![Beta](https://files.readme.io/fab011953c202b27b95fd0f97df19498a076127d4084c899ed53254cea832f06-Beta.svg) | A broader release available to a wider set of customers for comprehensive testing and feedback. | | ![New Feature](https://files.readme.io/b3f72329196a0c4da83fab63005f442ca3b7726685e789289b18d1219e53166a-New_feature.svg) | A new functionality introduced to expand product capabilities or solve new use cases. | | ![Enhancement](https://files.readme.io/fb86539693d5e5f3940d0baf6374d233d55b081d5d49e983550517c5691a6f17-Enhancement.svg) | Improvements to existing product capabilities, focusing on performance, usability, or minor feature additions. | | ![Update](https://files.readme.io/54c82d55b0cebe6f9c1afeec5207d22be67445ccd456fa30ab8c04b25bd87be8-Update.svg) | Bug fixes, performance improvements, and security enhancements to refine the existing product. | \*\*Any new feature, enhancement, or update without a Beta or Private Beta tag is released to all customers as part of our publicly available (GA) feature set. Filter By Feature ================= ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) Security & Project Settings ![Data & Integrations](https://files.readme.io/bf86621cc6be2995b3a9323ccfcaae0e172d6da76b2bfedc7983c5be75eb179d-Partners_Icon_Outlined.svg) Data & Integrations ![Analytics](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) Analytics ![Segments](https://files.readme.io/04fe24c1114cef41af4a4e0224cab88f5be4c31160eca491d67942c689cb79c0-Segmentation.svg) Segments ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) Campaigns ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) Journeys ![Promotions](https://files.readme.io/c65a9fbb8af21c3a8f01c546faa2089d52a3bf54c2efecc740879b1ea681242e-Property_1Selected.svg) Promotions ![Conversations](https://files.readme.io/ae95d26dd8714ac2522e7a2b39166d95ace62433496df35d5dcc4d90414527bd-Conversations.svg) Conversations ![Product Experiences](https://files.readme.io/d7de531a1060998537a4e71a078198cf28076d99e1aed3e3c1bdcb5509e29d95-Product_experiences.svg) Product Experiences ![Content Manager](https://files.readme.io/0ed57ff4730974458d74d2a34ec4cf285aa5e84f59075a6b32550b9d1fd60ae8-Content_Manager.svg) Content Manager 2026 [](https://docs.clevertap.com/docs/whats-new#2026) =========================================================== January [](https://docs.clevertap.com/docs/whats-new#january) ----------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#scim-support-for-automated-user-lifecycle-management) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### SCIM Support for Automated User Lifecycle Management NEW FEATURE You can now automate user provisioning and de-provisioning in CleverTap with SCIM (System for Cross-domain Identity Management). SCIM simplifies onboarding, offboarding, and lifecycle management by ensuring that users always have the right access. CleverTap supports SCIM configuration via both APIs and Identity Providers (IdPs), giving you flexibility based on your IT and security setup. With SCIM, you can: * Provision users automatically into CleverTap as soon as they are added to your identity system. * Revoke access immediately when users leave, critical for BFSI and regulated environments. * Keep user roles, access levels, and statuses always in sync with your corporate directory. * Reduce human error, support audits, and align with enterprise access governance policies. For more information, refer to [SCIM User Provisioning using API](https://developer.clevertap.com/docs/scim-user-provisioning-using-api) and [SCIM User Provisioning using IdP.](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [* * *](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://developer.clevertap.com/docs/scim-user-provisioning-using-idp) [](https://docs.clevertap.com/docs/whats-new#promo-campaign-analytics) ![Promotions](https://files.readme.io/c65a9fbb8af21c3a8f01c546faa2089d52a3bf54c2efecc740879b1ea681242e-Property_1Selected.svg) ### Promo Campaign Analytics ENHANCEMENT BETA Introducing Promo Campaign Analytics, a powerful new way to measure the performance of your Promo Campaigns across rewards, engagement, and errors. This helps you evaluate campaign effectiveness, identify high-performing reward types, and optimize ROI through improved visibility into user engagement and system performance. Promo Analytics provides you with complete visibility into what’s working, what’s failing, and why, enabling you to optimize campaign performance with confidence. With Promo Campaign Analytics, you can: * Track Rewards Distributed, Points/Coupons/Vouchers issued, and Redemptions through clear KPIs. * Visualize time-based trends using interactive charts aggregated by day, week, or month. * View reward-type–specific metrics for Loyalty Points, Coupons (Discount & Cashback), Partner Vouchers, and Custom Rewards. * Identify errors in reward distributions across all reward types. * Understand failures caused by limits, configuration issues, exhausted codes, or system errors. For more information, refer to [Promo Campaign Analytics](https://docs.clevertap.com/docs/promo-campaign-stats) . * * * [](https://docs.clevertap.com/docs/whats-new#cross-project-cloning-for-engagements) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Cross-Project Cloning for Engagements ENHANCEMENT You can now clone campaigns and journeys across CleverTap projects, allowing teams to move faster without rebuilding engagement logic from scratch. Cross-Project Cloning lets you reuse proven campaigns and journeys across test, production, and multiple business-unit projects, directly from the Campaigns or Journeys list page. This enhancement is especially useful during onboarding (you can copy engagement from the test project to production) and for scaling successful engagement workflows across regions or lines of business. For more information, refer to [Copy Engagement Across Projects](https://docs.clevertap.com/docs/copy-engagements-across-projects) . * * * [](https://docs.clevertap.com/docs/whats-new#profile-export-for-cloud-storage) ![data-and-integrations](https://files.readme.io/bf86621cc6be2995b3a9323ccfcaae0e172d6da76b2bfedc7983c5be75eb179d-Partners_Icon_Outlined.svg) ### Profile Export for Cloud Storage ENHANCEMENT Introducing Profile Export for S3, GCP, and Azure, an upgrade that improves how profile data is exported from CleverTap to cloud storage destinations. This enhancement provides you with greater control over the export structure and schema, helping to keep data lakes organized and downstream pipelines stable. With this enhancement, you can: * Keep exports organized and easy to consume with custom subfolders, your own file naming, and Parquet output (with no additional compression), ensuring clean storage and predictable ingestion. * Match exports to your audience and identity strategy with flexible identifier selection (Email, Phone, CleverTap ID, or a custom identity property). You can also include Communication Preferences, with the option to export Subscription Groups alongside other preference flags, reducing downstream remapping and errors. * Protect downstream pipelines from unexpected changes by selecting the exact profile properties you want to export, renaming and ordering them for consistency, and enabling schema locking to prevent newly added properties from disrupting existing flows. * Automate daily delivery with recurring exports (every 24 hours) and choose whether each run is incremental or a full dataset refresh, based on the requirements of your team. For more information, refer to [Profile Exports.](https://docs.clevertap.com/docs/profile-exports) * * * [](https://docs.clevertap.com/docs/whats-new#redesign-of-campaign-listing-page) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Redesign of Campaign Listing Page ENHANCEMENT PRIVATE BETA You can now experience the redesigned Campaign Listing page, built for faster performance and improved usability. This enhancement streamlines campaign management and brings key insights to the forefront. With this enhancement, you can: * Experience faster page load times for a smoother workflow. * Configure columns by adding, removing, or reordering fields to suit your view. * View campaign channels and engagement rate formulas upfront for quick insights. * Filter Bulletin and API campaigns separately for better navigation. * Adjust stats duration easily with advanced filtering options. For more information, refer to [Campaign Overview](https://docs.clevertap.com/docs/enhanced-campaign-list-page) . * * * 2025 [](https://docs.clevertap.com/docs/whats-new#2025) =========================================================== December [](https://docs.clevertap.com/docs/whats-new#december) ------------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#branded-domains-for-email-tracking) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Branded Domains for Email Tracking ENHANCEMENT PRIVATE BETA You can now use your custom domain for email link tracking and open-tracking pixel. This ensures all tracked links reflect your brand instead of a default CleverTap domain. This feature helps with the following: * Improves deliverability by aligning tracking domains with your SPF/DKIM authentication. * Tracks email opens and clicks more reliably using branded links. * Keeps campaigns running with automatic fallback if a custom domain becomes unverified. * Manages branded domains centrally from a single place in your dashboard. For more information, refer to [Branded Domains](https://docs.clevertap.com/docs/branded-domain) . * * * [](https://docs.clevertap.com/docs/whats-new#template-import-for-whatsApp-connect-providers) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Template Import for WhatsApp Connect Providers ENHANCEMENT BETA You can now import WhatsApp message templates directly from your WhatsApp Connect providers into CleverTap, eliminating the need to recreate templates manually. This enhancement helps reduce setup time and prevents configuration errors when managing WhatsApp templates at scale. With this update, you can: * Import templates seamlessly from supported WhatsApp Connect providers during provider setup. Templates are fetched directly from the vendor using their template import API, with all required fields populated automatically. * Ensure consistency and compliance by importing templates that follow Meta’s approved template format, reducing the risk of formatting or field mismatches. * Accelerate onboarding and scaling by leveraging vendor-provided API endpoints, authentication details, import limits, and click-tracking configuration. For more information, refer to[WhatsApp Message Templates.](https://docs.clevertap.com/docs/generic-whatsapp#import-templates) * * * [](https://docs.clevertap.com/docs/whats-new#whatsapp-template-cloning-and-enhanced-editing) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### WhatsApp Template Cloning and Enhanced Editing ENHANCEMENT BETA You can now create and manage WhatsApp Direct message templates faster with new cloning and rich editing options. These enhancements help you maintain consistency across WhatsApp Business Accounts (WABAs) and reduce time spent recreating or reformatting templates. With these enhancements, you can: * Clone templates easily by duplicating any existing template within the same or another WABA configured with WhatsApp Direct. All fields are pre-filled, so you can rename, edit content, and resubmit for approval without rebuilding the template. * Edit templates with rich formatting using bold, italics, strikethrough, and emojis to create clear, expressive messages aligned with WhatsApp formatting rules. For more information, refer to [WhatsApp Message Templates.](https://docs.clevertap.com/docs/whatsapp-message-templates) * * * [](https://docs.clevertap.com/docs/whats-new#pii-tokenization) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### PII Tokenization NEW FEATURE You can now protect sensitive user data by ensuring that Personally Identifiable Information (PII) never enters CleverTap’s environment. Instead of sending identifiers such as email addresses or phone numbers, you send tokens that map securely to your own vault. CleverTap then processes only tokens for Segments, Engagements, and Analytics, keeping all personal data fully within your control. With PII Tokenization, you can: * **Protect Sensitive Data:** Replace PII with tokens to comply with data privacy and residency regulations. * **Choose Your Vault Model:** Use CleverTap Vault or bring your own for flexibility. * **Simplify Integration:** Generate and manage tokens using the Vault API for seamless client-side setup. * **Control Dispatch Models:** Run the Dispatcher On-Prem (no PII leaves your environment) or Off-Prem (secure, token-only resolution at send time). For more information, refer to [PII Tokenization](https://docs.clevertap.com/docs/pii-tokenization) . * * * November [](https://docs.clevertap.com/docs/whats-new#november) ------------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#automated-audit-log-exports-for-siem) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Automated Audit Log Exports for SIEM NEW FEATURE You can now securely export audit logs from CleverTap to your own cloud storage providers, including AWS S3, Google Cloud Storage, or Microsoft Azure Blob Storage. This self-serve feature allows you to easily manage, store, and retain audit data within your own cloud environment. With SIEM Export, you can: * **Automate Secure Delivery:** Receive exports every 4 hours in JSON (UTF-8) format. * **Ensure Continuous Visibility:** Monitor all account activities in real time to strengthen compliance and security posture. * **Maintain Full Data Control:** Store audit logs directly within your organization’s cloud to manage retention and governance. * **Integrate Seamlessly with SIEM Tools:** Combine CleverTap’s audit data with broader operational insights across your systems. For more information, refer to [Automated Audit Log Exports for SIEM](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem) . * * * [](https://docs.clevertap.com/docs/whats-new#whatsapp-flows-for-whatsapp-direct) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### WhatsApp Flows for WhatsApp Direct NEW FEATURE PRIVATE BETA Introducing WhatsApp Flows, a form-based experience that lets your users complete tasks such as booking a ticket or placing an order without leaving WhatsApp. CleverTap handles orchestration, analytics, and automation. Flows are created at the WhatsApp Business Account level and appear as a call-to-action button in your message. Tapping the button opens a guided, structured journey that follows Meta’s Flows specification. With WhatsApp Flows, you can: * **Choose Your Setup**: Use static flows, a CleverTap endpoint with customer relay, or your own endpoint for full control. * **Protect Data End to End**: Keep payloads encrypted on the device and decrypt or re-encrypt according to the selected setup. * **Capture Outcomes in CleverTap**: Record Flow events for reporting and update profile attributes for personalization and segmentation. * **Use Templates Seamlessly**: Attach a Flow to a WhatsApp template, personalize message content, and publish in campaigns. For more information, refer to [WhatsApp Flows.](https://docs.clevertap.com/docs/whatsapp-flows) * * * [](https://docs.clevertap.com/docs/whats-new#preferred-channel-for-engagement) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Preferred Channel for Engagement NEW FEATURE PRIVATE BETA You can now deliver messages through the channel each user is most likely to engage with. Powered by Clever.AI, Preferred Channel analyzes engagement data across Push, Email, SMS, and WhatsApp over the past 90 days to predict and select the best-performing communication channel for every user. With Preferred Channel, you can: * **Leverage AI-Powered Channel Prediction**: Identify the most effective communication channel for each user based on engagement history. * **Integrate Seamlessly Across CleverTap**: Use the new Preferred Channel user property in Segmentation, Campaigns, Journeys, and Analytics. * **Boost Conversions and Reduce Noise**: Focus on the channels that drive real engagement and results. * **Automate Channel Selection**: Let Clever.AI optimize delivery so you can focus on content and strategy. For more information, refer to [Preferred Channel](https://docs.clevertap.com/docs/preferred-channel) . * * * [](https://docs.clevertap.com/docs/whats-new#conditional-split-in-journeys) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Conditional Split in Journeys NEW FEATURE You can now use Conditional Split, a new controller node that enables you to branch users based on user properties, event properties, or both. This helps teams make faster decisions, reduce journey complexity, and drive higher conversions through more targeted, personalized paths. With Conditional Split, you can: * Route users by user or event properties for instant, context-aware decisions. * Use AND/OR operators to create precise, multi-condition logic. * Ensure unmatched users continue through a fallback path. * Chain up to three Nested Splits to design richer, multi-layer workflows. View Path Stats to understand how users are distributed across each branch. For more information, refer to [Conditional Split Node](https://docs.clevertap.com/docs/conditional-split-node) . * * * [](https://docs.clevertap.com/docs/whats-new#field-level-at-rest-encryption-for-user-and-event-properties) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Field-Level at Rest Encryption for User and Event Properties NEW FEATURE CleverTap now supports Field-Level at Rest Encryption, enabling you to encrypt user and event properties for stronger data protection. This capability extends beyond the existing volume-level encryption, providing granular control over how sensitive data, including system and user properties, is secured within the platform. With this capability, you can: * **Protect Sensitive Fields:** Selectively encrypt both user and event properties while keeping the rest of your data accessible for Analytics. * **Choose Your Key Strategy:** Use CleverTap-managed keys or Bring Your Own Keys (BYOK) encryption through AWS KMS. * **Enable Encryption Easily:** Apply encryption to the properties directly from the Schema page. * **Maintain Platform Compatibility:** Ensure that encrypted fields continue to work seamlessly across Segments, Campaigns, and Analytics for authorized users. For more information, refer to [Field-Level at Rest Encryption](https://docs.clevertap.com/docs/field-level-at-rest-encryption) . * * * [](https://docs.clevertap.com/docs/whats-new#bring-your-own-key-byok-for-encryption) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Bring Your Own Key (BYOK) for Encryption NEW FEATURE CleverTap now supports Bring Your Own Key (BYOK), enabling you to use your organization’s own AWS KMS–managed encryption keys for securing data across the platform. With this capability, you can: * **Enforce Customer-Controlled Encryption:** Protect data during file uploads using your keys within AWS KMS. * **Meet Enterprise Compliance Requirements:** Maintain strict governance, auditability, and alignment with regulated industry standards. * **Enable Seamless Key Rotation:** Update CleverTap encryption to align with your KMS rotation callbacks, without impacting ongoing services. * **Ensure Secure Integration:** Retrieve keys securely over HTTPS on TLS 1.2. CleverTap never stores or persists customer keys; only metadata, such as key name and version, is stored. For more information, refer to [BYOK Encryption](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption) . * * * [](https://docs.clevertap.com/docs/whats-new#teams-structured-collaboration-with-enhanced-governance) ![Security & Project Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Teams: Structured Collaboration with Enhanced Governance NEW FEATURE PRIVATE BETA Introducing Teams, a new way to organize and secure collaboration within CleverTap. Teams let you group users and information according to your organization’s structure, ensuring each team accesses only relevant data. This improves visibility, control, and data governance across large operations. With Teams, you can: * View and manage only the campaigns, templates, and data owned by your team. * Define teams, assign users, and configure event-level access aligned with your business hierarchy. * Work within a clean, focused team view and switch between teams seamlessly. * Use API support for Campaign, Custom List Segment, and Email Template APIs. Teams prevent cross-team data overlap, ensuring integrity, security, and operational efficiency across your organization. For more information, refer to [Teams Setup](https://docs.clevertap.com/docs/teams-setup) . * * * [](https://docs.clevertap.com/docs/whats-new#bulk-upload-for-geofences) ![Content Manager](https://files.readme.io/0ed57ff4730974458d74d2a34ec4cf285aa5e84f59075a6b32550b9d1fd60ae8-Content_Manager.svg) ### Bulk Upload for Geofences ENHANCEMENT PRIVATE BETA You can now add multiple geo clusters and fences simultaneously using CSV or JSON files, enabling faster and more efficient setup of large-scale, location-based campaigns. Previously, each cluster and fence had to be added manually — a time-consuming process for campaigns involving hundreds of store locations or regions. With Bulk Upload, you can manage up to 10,000 radius-based geofences effortlessly, streamlining campaign setup for multi-location businesses. Key benefits include: * Faster setup: Upload multiple clusters and fences in a single step. * Operational efficiency: Eliminate repetitive manual entry and reduce errors. * Scalable targeting: Seamlessly manage large-scale, region-based campaigns. For more information, refer to [Bulk Upload](https://docs.clevertap.com/docs/geofencing-campaign-1#bulk-upload) . * * * [](https://docs.clevertap.com/docs/whats-new#rcs-business-messaging-with-generic-provider-support) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### RCS Business Messaging with Generic Provider Support NEW FEATURE PRIVATE BETA You can now connect CleverTap with your preferred RCS provider through a simple configuration, keeping all orchestration, analytics, and automation in one place. With this feature, you can: * Bring your own RCS provider with a generic configuration. * Drive engagement with rich media and two-way interactions that trigger campaigns and journeys. * Maximize reach with automatic SMS fallback and dedicated RCS metrics for delivery, view, and click. For more information, refer to [Generic RCS](https://docs.clevertap.com/docs/generic-rcs) and [Generic RCS API](https://developer.clevertap.com/docs/generic-rcs-api) . * * * [](https://docs.clevertap.com/docs/whats-new#edit-a-journey) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Edit a Journey NEW FEATURE You can now edit a journey even after it is published. You can make any changes, from updating entry criteria and adjusting wait times to tweaking messages or removing nodes. Every edit is tracked through version control. You can view the history of changes, compare performance across versions, and see how each update impacts engagement. This feature gives your team the flexibility to fix errors, test new strategies, and refine targeting in real-time, ensuring a seamless user experience. For more information, refer to [Edit a Journey](https://docs.clevertap.com/docs/edit-a-journey) . * * * [](https://docs.clevertap.com/docs/whats-new#end-to-end-pii-encryption-in-transit-for-sdks) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### End-to-End PII Encryption in Transit for SDKs NEW FEATURE CleverTap now offers enhanced encryption of all PII and sensitive data in transit between SDKs and backend servers. With this enhancement, you can: * **Ensure Secure Data Exchange:** Encrypt all PII data transmitted from SDKs using AES-256 encryption, safeguarding against Man in the Middle attacks. * **Prevent Network-Level Threats:** Protect all SDK communication from man-in-the-middle (MITM) and data interception attempts, maintaining confidentiality throughout transmission. * **Maintain Compliance Readiness:** Meet financial-grade encryption standards and align with industry standards and enterprise security mandates, supporting fintech and other data-sensitive use cases. * **Simplify Implementation:** Manage encryption and decryption within the SDK, ensuring seamless, cross-platform protection across Android, iOS, Web, Cordova, Flutter, and React Native. For more information, refer to [Android](https://developer.clevertap.com/docs/android-advanced-features#encryption-in-transit) , [iOS](https://developer.clevertap.com/docs/advanced-options-ios#encryption-of-pii-data) , [Web](https://developer.clevertap.com/docs/advanced-configurations#encryption-of-pii-data) , [Cordova](https://developer.clevertap.com/docs/cordova-advance-features#encryption-for-pii-data) , [Flutter](https://developer.clevertap.com/docs/flutter-advanced-features#encryption-for-pii-data) , and [React Native](https://developer.clevertap.com/docs/react-native-advanced-features#encryption-for-pii-data) . * * * October [](https://docs.clevertap.com/docs/whats-new#october) ----------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#improved-notification-controls-for-android-push) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Improved Notification Controls for Android Push ENHANCEMENT BETA CleverTap now offers enhanced control over Android push notifications, so you can customize how they appear, persist, and are dismissed. You can now deliver timely, high-priority messages that remain visible and reach users when they matter most. With these Notification controls, you can: * **Define Notification Behavior:** Choose between Regular notifications, which are cleared when users tap “clear all”, and Sticky notifications that remain visible even after a bulk clear. Use Sticky notifications to ensure critical alerts or reminders remain visible to users. * **Customize Notification Dismissal:** Decide whether notifications should be dismissed manually by users or automatically after a set duration (up to 24 hours), ideal for limited-time offers, flash sales, or event reminders with precision. These updates are available from Android version 14 and above, for Android SDK v7.6.0, and Push Templates SDK v2.2.0 and above. For more information, refer to [Notification Behavior](https://docs.clevertap.com/docs/push-editor#notification-behavior) and [Dismiss Notification](https://docs.clevertap.com/docs/push-editor#dismiss-notification) . * * * [](https://docs.clevertap.com/docs/whats-new#nested-objects-in-custom-user-properties) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Nested Objects in Custom User Properties NEW FEATURE Introducing Nested Objects in Custom User Properties, a powerful feature that simplifies how you represent and ingest complex user data in CleverTap. Define rich, structured entities such as insurance policies, subscriptions, or shopping carts using a JSON eliminating the need to flatten data or manage multiple attributes across systems. With Nested Objects, you can: * Model structured user data natively within CleverTap, preserving relationships between entities. * Build granular, condition-based segments using nested attributes (for example, filter users with a policy missing a beneficiary email). * Simplify engineering workflows through direct JSON ingestion without additional data transformation. * Visualize and filter nested data within Segment builder, unlocking deeper insights for marketers and analysts. For more information, refer to [Nested Objects](https://docs.clevertap.com/docs/nested-objects) and [Ingesting Nested Objects via CleverTap APIs](https://developer.clevertap.com/docs/ingesting-nested-objects-via-clevertap-apis) . * * * [](https://docs.clevertap.com/docs/whats-new#secure-file-uploads-through-sftp-encryption) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Secure File Uploads through SFTP Encryption ENHANCEMENT CleverTap now supports encrypted file uploads via SFTP, ensuring that all data ingested through the SFTP pipeline remains secure and compliant with data protection standards. You can safely transfer sensitive customer data using end-to-end PGP encryption and manage encryption keys flexibly. With SFTP Encryption, you can: * Protect all file transfers using PGP encryption. * Choose between CleverTap-managed or customer-managed encryption keys. * Continue using your existing ingestion workflows without disruption. * Strengthen compliance and audit readiness for enterprise-grade security. For more information, refer to [File Upload Encryption](https://docs.clevertap.com/docs/file-upload-encryption) . * * * [](https://docs.clevertap.com/docs/whats-new#role-based-channel-level-access-for-campaigns-and-journeys) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Role-Based Channel-Level Access for Campaigns and Journeys NEW FEATURE Role-Based Channel-Level Access enables admins to precisely control who can view or manage each messaging channel within Campaigns and Journeys. With channel-specific permissions defined by Admins, users can only see and work on the channels they are responsible for, such as Push, Email, SMS, Web Push, or App Inbox, and so on. The following key features are included in this release: * **Granular Permissions**: Assign channel-level read or write access within Campaigns and Journeys. * **Governance at Scale**: Prevent accidental edits by limiting control to authorized users. * **Multi-Team Support**: Allow business units to manage their own channels independently. For more information, refer to [Engagement Permissions](https://docs.clevertap.com/docs/role-based-access-control-advance-governance#engagement-permissions) . * * * [](https://docs.clevertap.com/docs/whats-new#role-based-privileges-for-global-campaign-and-throttle-limits) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Role-Based Privileges for Global Campaign and Throttle Limits NEW FEATURE We have added a new layer of governance to help teams manage communication frequency and scale, with role-based control over **Global Campaign Limits** and **Global Throttle Limits**. Admins can now define who can override Campaign and Throttle Limit settings based on user roles. With this feature, you can prevent over-communication, enable fine-grained control, extend support to Journeys, and retain backward compatibility. For more information, refer to the [Setup Roles](https://docs.clevertap.com/docs/role-based-access-control-advanced-governance-limits) and [Campaign Permissions](https://docs.clevertap.com/docs/campaign-permissions) . * * * [](https://docs.clevertap.com/docs/whats-new#custom-conversion-window) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Custom Conversion Window ENHANCEMENT Introducing Custom Conversion Window, an enhancement to Campaigns and Journeys that gives marketers precise control over conversion tracking. You can now define custom conversion durations, from 1 minute to 5 months, instead of being limited to fixed options like 7 or 14 days. This enhancement brings greater flexibility, accuracy, and consistency, helping marketers align conversion measurement with real user behavior. With Custom Conversion Window, you can: * Track conversions accurately by aligning the window with your business cycle (for example, 10 days for e-commerce purchases, 72 hours for flash sales). * Improve ROI accuracy by removing undercounting or overcounting from preset durations. * Maintain consistency across reports and dashboards with unified data tracking. For more information, refer to [Create Message](https://docs.clevertap.com/docs/create-message-push) and [Stats](https://docs.clevertap.com/docs/push-campaign-stats) . * * * [](https://docs.clevertap.com/docs/whats-new#ai-powered-nps-feedback-analysis) ![Analytics](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) ### AI-Powered NPS Feedback Analysis ENHANCEMENT PRIVATE BETA The NPS Board now offers AI-powered insights that transform raw feedback into actionable sentiment analysis. Beyond numeric scores, you can instantly understand what customers feel and why, helping your teams act faster on key feedback themes. With this enhancement, you can: * Generate instant AI summaries of NPS responses, highlighting key insights. * Identify key themes with positive, negative, or neutral sentiment indicators. * Visualize frequently mentioned terms using an AI-generated word cloud. * Track sentiment trends over time using daily, weekly, or monthly intervals.. For more information, refer to [NPS Board](https://docs.clevertap.com/docs/nps-board-1) . * * * [](https://docs.clevertap.com/docs/whats-new#end-to-end-encryption-for-cpaas-communication) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### End-to-End Encryption for CPaaS Communication NEW FEATURE GA CleverTap now supports end-to-end encryption for all CPaaS communications over Email and SMS via the Generic HTTP API configuration. This feature ensures every payload and callback is encrypted using AES-256, securing PII data such as email addresses and phone numbers. With CPaaS Encryption, you can: * Protect outbound and inbound data with end-to-end encryption. * Meet enterprise security and compliance requirements, and now meet BFSI-grade compliance requirements while maintaining performance and scalability. * Enable encryption with a single toggle in the provider setup under Generic HTTP API configuration, supporting both CleverTap-managed and customer-managed keys (BYOK). * Scale seamlessly across providers via the Generic HTTP API. * Manage key versioning and rotation without service disruption. For more information, refer to [CPaaS Encryption](https://docs.clevertap.com/docs/cpaas-encryptions) . * * * [](https://docs.clevertap.com/docs/whats-new#new-in-promotions-custom-rewards) ![Promotions](https://files.readme.io/c65a9fbb8af21c3a8f01c546faa2089d52a3bf54c2efecc740879b1ea681242e-Property_1Selected.svg) ### New in Promotions: Custom Rewards ENHANCEMENT PRIVATE BETA Introducing Custom Rewards, a significant expansion of CleverTap’s Promo capabilities. You can now create, host, and manage your own rewards within CleverTap promo and distribute it to tailored user segments through Promo campaigns. From physical and digital rewards (branded merchandise or OTT subscriptions) to self-managed wallets hosted on your end (real-money cashback or loyalty credits) you can do a webhook-based fulfillment to your systems. With Custom Rewards, you can: * Orchestrate personalized reward campaigns at scale by offering cashback in your hosted wallet for repeat buyers or issuing gift vouchers to users who achieve a milestone. * Support diverse engagement use cases such as loyalty programs, event-based rewards, or promotional credits, without relying on fixed, built-in reward types. * Simplify reward orchestration with a centralized catalog for all reward types, reducing operational complexity for marketing teams. For more information, refer to [Custom Rewards](https://docs.clevertap.com/docs/custom-rewards) . * * * [](https://docs.clevertap.com/docs/whats-new#in-app-messages-improvements) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### In-App Messages Improvements ENHANCEMENT CleverTap’s enhanced In-App Messages empower marketers to create fully customizable, interactive, and high-converting campaigns without requiring code. These updates simplify campaign creation, lower time-to-market, and deliver delightful In-App experiences that drive engagement and conversions. The following features are now available based on your plan: * **Advanced In-App Builder:** Build visually rich In-App messages using a no-code, drag-and-drop editor with animations, flexible layouts, and layered elements. For more information, refer to [Advanced In-App Builder](https://docs.clevertap.com/docs/advanced-in-app-builder) . * **Gamified Experiences:** Use pre-built “Spin the Wheel” and “Scratch Card” templates in the Custom HTML Builder to create engaging, reward-based campaigns. For more information, refer to [In-App Gamification Templates](https://docs.clevertap.com/docs/advanced-in-app-builder) . * **Custom Code Templates:** Create native In-App templates and define custom actions, such as “granting coins” or “navigating to premium”, that marketers can trigger directly from the dashboard. For more information, refer to the Custom Code Templates for [iOS](https://developer.clevertap.com/docs/ios-custom-code-in-app-templates) , [Android](https://developer.clevertap.com/docs/android-custom-code-in-app-templates) , [React Native](https://developer.clevertap.com/docs/react-native-custom-code-in-app-templates) , [Flutter](https://developer.clevertap.com/docs/flutter-custom-code-in-app-templates) , and [Cordova](https://developer.clevertap.com/docs/cordova-custom-code-in-app-templates) . * **Native Prompt Triggers:** Allows you to display OS-level prompts such as app rating requests or push pre-permissions within In-App campaigns. For more information on how to render native prompts, refer to [Advanced In-App Builder](https://docs.clevertap.com/docs/advanced-in-app-builder) , [Push Primer](https://docs.clevertap.com/docs/register-for-push) , [App Rating Primer](https://docs.clevertap.com/docs/app-rating-primer) , and [App Functions](https://docs.clevertap.com/docs/app-functions#use-app-functions) . * * * September [](https://docs.clevertap.com/docs/whats-new#september) --------------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#restore-discarded-custom-events-event-properties-and-user-properties) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Restore Discarded Custom Events, Event Properties, and User Properties NEW FEATURE GA Admins can now restore discarded Custom Events, Event Properties, and User Properties within 24 hours of deletion. This safeguard prevents accidental removals from impacting analytics, segmentation, and campaign workflows. With this feature, you can: * **Protect Your Data:** Recover deleted Custom Events, Event Properties, and User Properties within 24 hours. * **Ensure Business Continuity:** Restore accidentally removed items to avoid disruptions in campaigns and reporting. * **Maintain Control:** Restrict restore access to Admins to ensure security and accountability. For more information, refer to [Schema](https://docs.clevertap.com/docs/schema) . * * * [](https://docs.clevertap.com/docs/whats-new#updated-audit-logs-coverage-for-authentication-and-authorization) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Updated Audit Logs Coverage for Authentication and Authorization ENHANCEMENT GA We are excited to announce enhanced coverage of Audit Logs, expanding visibility into authentication and authorization events. This update strengthens compliance, audit readiness, and security monitoring across user management activities. The following are the new events captured in Audit Logs: * **User Invited:** A new user was invited. * **User Revoked:** Access was revoked for an existing user. * **User Deleted:** A user was removed from the dashboard. * **User Role Updated:** The role of an active user was updated. * **Role Created:** A new role was created with specific permissions. * **Role Edited:** An existing role was modified. * **Role Deleted:** A role was removed from the account. * **Password Reset:** A user’s password was reset from the profile page. * **Account Locked:** Triggered after 20 consecutive failed login attempts. For more information, refer to [Audit Logs](https://docs.clevertap.com/docs/audit-logs) . * * * [](https://docs.clevertap.com/docs/whats-new#Attachments-in-Email-Campaigns) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Attachments in Email Campaigns PRIVATE BETA NEW FEATURE You can now add attachments directly to your email campaigns, whether created from the dashboard or via API. This feature allows you to securely deliver files to your recipients without depending on external links. With this feature, you can: * Attach up to 10 files (PDF, JPG, PNG, GIF). * Upload via local file picker, HTTPS URLs, or Content Manager. * Preview attachments in the campaign overview. * Send test emails with attachments. * Deliver to CC/BCC recipients. For more information, refer to [Using Attachments in Email](https://docs.clevertap.com/docs/using-attachments-in-email) and [Add Attachments via Campaign API](https://developer.clevertap.com/docs/create-campaign-api-with-email-attachment) . * * * [](https://docs.clevertap.com/docs/whats-new#Improved-Anonymous-to-Identified-Profile-Merge-Behavior) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Improved Anonymous-to-Identified Profile Merge Behavior ENHANCEMENT GA We are excited to announce how CleverTap handles anonymous-to-identified profile merges. From now on, any anonymous events from a second device or later ingested after the feature is enabled seamlessly flow into the corresponding identified profile upon a merge, unlocking richer insights, more accurate segmentation, and complete funnel analytics across all devices. With this enhancement, the following changes are implemented: * **Complete Transfer of Anonymous Events:** All anonymous events created on second, third, or later devices merge directly into the identified profile on login. * **Inclusive Segmentation & Funnels:** Transferred events are fully usable in segmentation, funnels, flows, and engagement targeting, with no more greyed-out or “blacklisted” data points. * **No Initial Event Limits:** For this initial release, the number of post-rollout events that can be transferred is unlimited. (A generous lookback period may be introduced in future iterations.) * **Historical Data Remains Unchanged:** Events generated before the feature rollout remain the same, so customer historical data stays stable and reliable. * * * [](https://docs.clevertap.com/docs/whats-new#automated-expiry-alerts-for-sso-saml-certificate) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Automated Expiry Alerts for SSO SAML Certificate ENHANCEMENT GA SSO now sends automated expiry alerts that notify Admins as SAML certificates near expiry—enabling timely updates, preventing login disruptions, and removing reliance on manual reminders. With this enhancement, you can: * Receive proactive alerts starting 30 days before expiry, sent weekly until updated. * Stay informed via Email and the CleverTap dashboard. * Restrict visibility to Admins for precise actioning. * Stop alerts automatically once the SAML certificate is updated. For more information on updating the SAML certificate, refer to [Single Sign On (SSO)](https://docs.clevertap.com/docs/whats-new) . * * * [](https://docs.clevertap.com/docs/whats-new#email-alerts-for-nearing-fair-usage-policy-fup-limits) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Email Alerts for Nearing Fair Usage Policy (FUP) Limits NEW FEATURE We’re introducing automated email alerts to help Admins proactively manage event consumption and avoid service interruptions. Alerts trigger as usage approaches defined thresholds, enabling timely action and keeping teams informed to maintain business continuity. With this feature, you can: * Receive alerts at 75%, 90%, and 100% of allocated capacity. * Keep stakeholders informed in real time to prevent overages and ensure continuity. * * * [](https://docs.clevertap.com/docs/whats-new#Email-Subscription-Status-in-Get-User-Profile-API) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Email Subscription Status in Get User Profile API ENHANCEMENT PRIVATE BETA The Get User Profile API now returns a user’s email subscription status, providing a unified and real-time consent check for both the overall email channel and individual subscription groups. For more information, refer to [Get User Profiles](https://developer.clevertap.com/docs/email-subscription-details-via-api) . * * * [](https://docs.clevertap.com/docs/whats-new#Improved-Limits-in-Campaigns-and-Journeys) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Improved Limits in Campaigns and Journeys ENHANCEMENT PRIVATE BETA You can now cap the total number of times a user ever receives a specific Campaign or Journey message. This new lifetime limit option is available alongside existing choices to send every time or at intervals. Enhanced Limits help marketers reduce message fatigue, enforce governance, and protect customer experience by preventing over-saturation of onboarding, promotional, or reminder messages. For more information, refer to [Limits for Engagements](https://docs.clevertap.com/docs/notification-delivery-options-1#limits-for-engagements) . * * * [](https://docs.clevertap.com/docs/whats-new#Single-Image-Annotations-for-Gmail-Promotions-Tab) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Single Image Annotations for Gmail Promotions Tab ENHANCEMENT PRIVATE BETA You can now add a single image to your marketing email preview in Gmail’s Promotions tab, making it more visual, discoverable, and engaging. With this enhancement, you can: * Add a standalone image or pair it with deal annotations, such as coupon codes, discounts, expiry dates, and badges. * Stand out in crowded inboxes with a simple setup and flexible options. * Use a single image for brand impact or showcase multiple products through the existing Product Carousel annotations feature. For more information, refer to [Gmail Promotional Annotations](https://docs.clevertap.com/docs/gmail-annotations-promotion-cards) . * * * [](https://docs.clevertap.com/docs/whats-new#Promotions-Add-on-for-CleverTap-Essentials-Plan) ![Promotions](https://files.readme.io/c65a9fbb8af21c3a8f01c546faa2089d52a3bf54c2efecc740879b1ea681242e-Property_1Selected.svg) ### Promotions Add-on for CleverTap Essentials Plan ENHANCEMENT The Promotions Add-on is now available with the CleverTap Essentials Plan. With this add-on, you can use the Promotions feature to deliver loyalty points, discount coupons, and partner vouchers at scale, without needing external systems. To enable the Promotions Add-on from the CleverTap dashboard, purchase the add-on, configure your loyalty wallets, coupons, partner voucher settings, and start running reward-based campaigns across apps, websites, and POS systems. For more information, refer to [Promo Campaigns](https://docs.clevertap.com/docs/promo-campaigns) . ![Promo Add-on](https://files.readme.io/482444a7d4b516a9647b2a4655358166a86e2a826a733d4892eea7300c5906f1-image.png) Promo Add-on * * * [](https://docs.clevertap.com/docs/whats-new#Advanced-Web-Pop-up-Builder) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Advanced Web Pop-up Builder NEW FEATURE PRIVATE BETA The Advanced Web Pop-up Builder lets you design and publish fully custom, on-brand web pop-ups without developer support. This feature includes a drag-and-drop editor, flexible layouts, advanced styling, custom backgrounds, animations, and device-specific designs with live previews. With this update, you can: * Launch campaigns faster with marketer autonomy * Customize beyond standard templates with deeper styling options * Experiment effortlessly through A/B testing * Deliver consistent, responsive experiences across devices ![Advanced Web Pop-up Builder](https://files.readme.io/5b1658e304b13c4612022e8966ead0b127665078c182bbada0c0d9354cf071fc-Advanced.png) Advanced Web Pop-up Builder For more information, refer to [Advanced Web Pop-up Builder](https://docs.clevertap.com/docs/advanced-web-pop-up-builder) . * * * August [](https://docs.clevertap.com/docs/whats-new#august) --------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Gamification-In-App-Templates) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Gamification In-App Templates NEW FEATURE PRIVATE BETA Native Display now includes two pre-built gamification templates, Spin the Wheel and Scratch Card. These visual templates are available inside the Custom HTML Builder. These templates help you launch engaging, reward-based In-App experiences instantly. The templates are designed to boost engagement using proven methods like spin-to-win and scratch-to-reveal, while allowing marketers to customize prizes, CTAs, and visuals to match campaign goals. They also enable quicker experimentation with built-in event tracking and reduce bottlenecks by providing documented, extensible code within a familiar builder flow. For more information, refer to [Gamification Templates](https://docs.clevertap.com/docs/in-app-editor#in-app-gamification-templates) . * * * [](https://docs.clevertap.com/docs/whats-new#Enhanced-Generic-SMTP-Email-Integration-with-Deeper-Analytics) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Enhanced Generic SMTP Email Integration with Deeper Analytics ENHANCEMENT PRIVATE BETA Generic SMTP email integration now provides deeper insights into email campaigns, enabling better decision-making and performance analysis. With this enhancement, you can: * Track successful email delivery across User Profiles, Campaign Stats, Provider Stats, Exports, and Reports. * Gain visibility into errors such as Soft Bounce, Hard Bounce, Spam, and Unsubscribed, with details available in Campaign Stats, Notification Failed Events, Exports, Reports, and Provider Stats. * Analyze email performance and make data-driven decisions with precise performance metrics. For more information, refer to [Generic SMTP](https://docs.clevertap.com/docs/generic-smtp-v2-payload) . * * * [](https://docs.clevertap.com/docs/whats-new#Generic-HTTP-Email-Integration) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Generic HTTP Email Integration NEW FEATURE PRIVATE BETA The new Generic HTTP Email integration makes connecting your email provider with CleverTap easy using just an API URL, key, and request body. It works with any provider that supports HTTP/HTTPS and allows you to add personalization, custom headers, and batch sends. With this integration, you can: * Track delivered, bounced, or unsubscribed events via HTTP callbacks. * View delivery success or failure across campaign stats reports, exports, and user profiles. For more information, refer to [Generic HTTP](https://docs.clevertap.com/docs/generic-http) . * * * [](https://docs.clevertap.com/docs/whats-new#Domain-Whitelisting-for-Data-Ingestion-via-Web-SDK) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Domain Whitelisting for Data Ingestion via Web SDK ENHANCEMENT Domain Whitelisting for the Web SDK allows you to define a list of approved domains, ensuring that only trusted sources can send data into your CleverTap account. The following key capabilities are included in this release: * **Secure Your Data:** Only trusted domains can send data to your CleverTap project * **Protect Campaigns:** Prevent failures caused by unauthorized or malformed data * **Support Compliance:** Meet audit requirements from security and compliance teams For more information, refer to [Domain Whitelisting for Web SDK.](https://docs.clevertap.com/docs/domain-whitelisting) * * * [](https://docs.clevertap.com/docs/whats-new#Improved-Push-Notifications-for-Smarter,-Faster-Campaigns) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Improved Push Notifications for Smarter, Faster Campaigns ENHANCEMENT PRIVATE BETA The Push Notification channel now includes key enhancements that make campaign creation easier and help you deliver higher-quality messages. These key enhancements allow you to: * **Work with Flexible Templates:** Choose from Text over Image (Zero Bezel), Advanced (Basic), Auto Carousel, Timer, and Standard templates and define CTAs. * **Preview and Test your Notifications:** See real-time previews across Android/iOS versions and dark/light modes (collapsed and expanded states). Preview and Test your designs before sending. * **Design with More Control:** Use the redesigned WHAT section with structured left navigation for Content, Android and iOS options, and Post Action Webhook. Fine-tune media rendering with new Image Scaling options. ### SDK Compatibility To access these enhancements, ensure that your app is integrated with the following SDK versions: * Android SDK v7.3.0 and above * CT Push Templates SDK v2.1.0 and above * iOS CTNotificationContent SDK v1.1.0 and above Campaigns with existing templates continue to work seamlessly. For more information, refer to [Push Editor](https://docs.clevertap.com/docs/push-editor) , [Android Push Templates](https://developer.clevertap.com/docs/android-push-templates) , [iOS Rich Push Notifications](https://developer.clevertap.com/docs/ios-rich-push-notifications-v2) . * * * July [](https://docs.clevertap.com/docs/whats-new#july) ----------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Linked-Content-Support-on-Native-Display-Enhancement-Private-Beta) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Linked Content Support on Native Display ENHANCEMENT PRIVATE BETA Native Display now supports Linked Content Personalization, letting you deliver real-time, dynamic content from external services. Create consistent, hyper-personalized experiences across all major channels with a simple, no-code setup. For more information, refer to [Linked Content](https://docs.clevertap.com/docs/linked-content) . * * * [](https://docs.clevertap.com/docs/whats-new#Link-Events-to-User-Properties) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Link Events to User Properties NEW FEATURE The new capability to link events to user properties allows you to trigger campaigns, conversions, and exits when a user property changes. It also supports real-time, personalized messaging based on profile changes, enabling immediate responses to user behavior. For example, a gaming app can link the Game Level Upgraded event to the Game Level user property to automatically trigger a reward campaign when the level increases. The following key capabilities are included in this release: * Link an event to a user property only if the user property is active. * Discard linked events when these events are no longer needed For more information, refer to [Create Linked Events for User Properties](https://docs.clevertap.com/docs/schema#create-linked-event-for-user-property) . * * * [](https://docs.clevertap.com/docs/whats-new#Custom%20Templates%20for%20Advanced%20Web%20Personalization) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Custom Templates for Advanced Web Personalization NEW FEATURE We have introduced two new templates under Advanced Web Personalization to help you deliver richer, more dynamic web campaigns. CleverTap customers can now use the following templates: * **Custom HTML Templates:** Use your HTML/CSS/JS code to design personalized Web Native Display campaigns, directly within a built-in code editor. * **Custom JSON Templates:** Dynamically render web content using JSON passed from your end when users meet campaign criteria. For more information, refer to [Custom Templates](https://docs.clevertap.com/docs/advanced-personalization#custom-templates) . * * * [](https://docs.clevertap.com/docs/whats-new#Hyper-personalized%20Experiences%20With%20Support%20For%20Personalization%20In%20Push%20&%20Email) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Hyper-personalized Experiences With Support For Personalization In Push & Email NEW FEATURE You can now test personalized content for both Push Notifications and Email using test or internal profiles before launching your campaign. With this feature, you gain deeper insights into end-user experience, helping you debug potential errors. It provides seamless support for various personalization features such as @Personalization, Liquid Tags, Linked Content, and Constant Event Properties, so you can check if the peronsalization renders as intended for the end users. For more information, refer to [Send Test Personalization for Push](https://docs.clevertap.com/docs/send-test-personalization-for-push) and [Send Test Personalization for Email](https://docs.clevertap.com/docs/send-test-personalization-for-email) . * * * [](https://docs.clevertap.com/docs/whats-new#Real-Time-Segmentation-on-User-Property-Updates) ![Segments](https://files.readme.io/04fe24c1114cef41af4a4e0224cab88f5be4c31160eca491d67942c689cb79c0-Segmentation.svg) ### Real-Time Segmentation on User Property Updates ENHANCEMENT A change in user property immediately refreshes the segmentation in Product Experiences. This ensures precise personalization from the first app launch. With this update, you can: * Detect property updates sent with `fetchVars` requests in real time. * Deliver the correct variables immediately, without waiting for the previous 20-minute API ingestion window. For more information, refer to [iOS Product Experiences](https://developer.clevertap.com/docs/ios-product-experiences) and [Android Product Experiences](https://developer.clevertap.com/docs/android-product-experiences) . * * * [](https://docs.clevertap.com/docs/whats-new#Trends-Beta-Update) ![Analytics](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) ### Trends Beta Update ENHANCEMENT PRIVATE BETA Analyze one or more events across multiple audience segments in a single view, making it easier to uncover trend patterns and opportunities. With this update, you can: * Measure totals, uniques, or averages. * Summarize event property sums or averages for deeper context. * Visualize trends with line charts, bar charts, or number cards. * Track changes over days, weeks, months, or years with standard compare windows. * Change raw event data into clear, actionable insights, faster than ever. For more information, refer to [Trends Beta](https://docs.clevertap.com/docs/trends-v2) . * * * [](https://docs.clevertap.com/docs/whats-new#Upload-HTML-ZIP-Email-Templates) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Upload HTML (.ZIP) to Create Email Templates PRIVATE BETA ENHANCEMENT You can now upload a ZIP file containing your custom HTML and referenced image assets to create email templates in CleverTap. This enhancement is ideal for teams using external design tools or working with agencies. CleverTap automatically converts the uploaded .ZIP file into a reusable email template and saves all associated assets to the Content Manager. There are two ways to upload custom html .ZIP file: either through the CMS or directly during campaign creation. For more information, refer to the following documents: * [Upload via CMS](https://docs.clevertap.com/docs/content-manager-templates-upload-html#upload-html-templates-using-zip-file) * [Upload through Campaign Creation](https://docs.clevertap.com/docs/email-editor-upload-html-zip#upload-html-templates-using-zip-files) * * * June [](https://docs.clevertap.com/docs/whats-new#june) ----------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Technology-Partner-Integrations) ![Data & Integrations](https://files.readme.io/bf86621cc6be2995b3a9323ccfcaae0e172d6da76b2bfedc7983c5be75eb179d-Partners_Icon_Outlined.svg) ### 100+ Technology Partner Integrations Now Available NEW FEATURE We’re excited to announce a significant expansion of the CleverTap Partner ecosystem, with over **100+ technology integrations**. These integrations are designed to help you personalize at scale, automate with ease, and deliver seamless omnichannel experiences across every stage of the customer journey. #### Integration Summary Here’s a breakdown of key categories + notable partners to help you get started: * **CRM Integrations** → Leverage customer data with **Leadsquared**. * **Localization** → Deliver region/language-based experiences with **Lokalise**, **Crowdin**. * **Dynamic Content** → Auto-personalize creatives using **Movable Ink**, **Litmus**, **Jasper.ai**, **Rocketium**, **SurveyMonkey**. * **Email Templates Management** → Build emails faster with **Stripo**, **Alpaco**. * **Direct Mail** → Run physical + digital campaigns with **Optilyz**, **Inkit**. * **Contextual Location** → Trigger campaigns based on user location with **Radar**, **Accuweather**. * **Payments** → Power subscriptions & In-App purchases via **Purchasely**, **Qonversion**. * **Workflow Automation** → Automate tasks with **Pipedream**, **SheetsDB**, **SheetLabs**. #### Value Proposition * **Expanding Campaign Reach** → Integrate seamlessly with your martech stack. * **Enhancing Personalization** → Dynamically adapt campaigns based on users’ profiles, locations, and preferences. * **Accelerating Time-to-Market** → Leverage ready integrations without dev effort. #### Availability Refer to the [Technology Partners Directory](https://docs.clevertap.com/docs/technology-partners) to integrate these partners. If you cannot find your required partner, submit your request to: [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#3a53544e5f5d485b4e535554497a59565f4c5f484e5b4a14595557) ![Technology Partner Integrations](https://files.readme.io/aceb603a9976fde9cfefd1c014780116fcffb6a351545441e13784d21f2353d8-clevertap_solar_system_1.png) _Technology Partner Integrations_ * * * [](https://docs.clevertap.com/docs/whats-new#Boards-2.0-Smarter-Dashboarding) ![](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) ### Boards 2.0: Smarter Dashboarding PRIVATE BETA ENHANCEMENT Boards 2.0 is now available in Private Beta, offering a faster, more flexible way to create dashboards with visuals from [Trends 2.0](https://staging.docs.user.clevertap.net/docs/trends-v2) and [Funnels 2.0](https://staging.docs.user.clevertap.net/docs/funnels-v2) . This revamped experience makes it easier to analyze, compare, and present insights with minimal friction. Boards 2.0 includes the following enhancements: * Pin updated widgets: Trend Charts, Bar Charts, Number Tiles, and Funnels * Compare data across different time periods * Edit filters directly on individual charts * Resize widgets with more layout flexibility * Improved tooltips for deeper insights For more information, refer to [Boards 2.0](https://docs.clevertap.com/docs/custom-boards-v2) . * * * [](https://docs.clevertap.com/docs/whats-new#Notification-Failed-Event-for-WhatsApp-Analytics) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Notification Failed Event for WhatsApp Analytics NEW FEATURE Announcing a significant enhancement to our WhatsApp Analytics: the **Notification Failed** event that gives you more deeper insights into campaign errors. With this update, CleverTap captures a _Notification Failed_ event, along with the reason for failure, enabling better targeting and resolution. * **Improved Targeting:** Target users through alternate channels when errors occur. For example, if users encounter soft bounce errors, you can re-target them via other channels. * **Error Analysis:** Analyze the root causes of errors to resolve issues and optimize future engagements. For more information, refer to [Notification Failed Event](https://docs.clevertap.com/docs/events#:~:text=Notification%20Failed,in%20the%20campaign) . * * * [](https://docs.clevertap.com/docs/whats-new#App-Functions-for-Push-Primer-and-App-Rating) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### App Functions for Push Primer and App Rating PRIVATE BETA NEW FEATURE CleverTap has introduced **App Functions**, a new capability in In-App Campaigns that lets you trigger native system prompts directly from CleverTap. This release includes the following two System App Functions: * **Request Push Permission**: Prompt users with the native OS dialog. * **Request App Rating**: Ask satisfied users to leave an in-app review. You can use these as standalone campaigns or as button actions in the Advanced In-app Builder. CleverTap automatically handles targeting logic, including cases where users have previously opted out. **Availability:** * Android SDK 7.4.0 and highher * iOS SDK 7.2.0 and higher For more information, refer to [App Functions](https://docs.clevertap.com/docs/app-functions) . * * * [](https://docs.clevertap.com/docs/whats-new#Import-Shopify-Historical-Data-to-CleverTap) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Import Shopify Historical Data to CleverTap NEW FEATURE CleverTap now supports importing historical user and order data from Shopify, making onboarding faster and smarter. Customers integrating via the Shopify Plugin can now upload existing profile and charged event data, eliminating the need to start from scratch. With this update, you can: * Bring past user and order data into CleverTap from day one * Use historical data to segment and engage users instantly * Preserve key events for better analytics and decision-making For more information, refer to [Import Existing Shopify Data into CleverTap.](https://docs.clevertap.com/docs/shopify#import-existing-shopify-data-into-clevertap) * * * [](https://docs.clevertap.com/docs/whats-new#Marketing-Lite-API-for-WhatsApp-Direct) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Marketing Lite API for WhatsApp Direct NEW FEATURE Marketing Lite API is now available to all WhatsApp Direct customers, offering a faster, simpler, and more cost-effective way to launch campaigns—especially in light of the new WhatsApp pricing model effective July 1, which charges per message instead of per conversation. This API requires no development effort, supports instant activation, and lets users control how long Meta retries delivery for both marketing and utility messages. Additionally, it offers advanced performance insights—including message reads, link clicks, and conversions—and has shown up to 9% higher delivery rates in India compared to Meta’s Cloud API for high-engagement campaigns. This improvement is driven by adaptive delivery optimization based on user responsiveness, ensuring faster and more reliable message delivery. For more information, refer to [Marketing Lite API for WhatsApp Direct.](https://docs.clevertap.com/docs/whatsapp-marketing-messages-lite-api) * * * [](https://docs.clevertap.com/docs/whats-new#Cart-Recovery-with-the-Enhanced-Shopify-Plugin) ![Settings](https://files.readme.io/01053ed2e833c5e6bb242a86b84f304b7499ff0b0a26f422c3cc846d70530658-Settings.svg) ### Cart Recovery with the Enhanced Shopify Plugin ENHANCEMENT We have rolled out a powerful update to the Shopify Plugin, making abandoned cart recovery faster and easier to set up. CleverTap now auto-syncs your product catalog and cart data in a structured format using new Catalog Sync and Cart Tracking toggles, requiring no developer work. With this update, you get: * **Automated Catalog Sync**: Keep product data fresh with daily updates. * **Smarter Personalization**: Use [Liquid Tags](https://docs.clevertap.com/docs/liquid-tags) to dynamically insert product information. * **Time Savings**: Eliminate manual setup and integration hassles. * **Higher Conversions**: Launch personalized, multi-product cart recovery campaigns that convert. For more information, refer to [Cart Abandonment Use Case](https://docs.clevertap.com/docs/shopify#cart-abandonment-use-case) . * * * [](https://docs.clevertap.com/docs/whats-new#Reusable-Content-Blocks) ![Content Manager](https://files.readme.io/0ed57ff4730974458d74d2a34ec4cf285aa5e84f59075a6b32550b9d1fd60ae8-Content_Manager.svg) ### Introducing Reusable Content Blocks for Greater Efficiency NEW FEATURE We are excited to introduce Content Blocks in CleverTap’s Content Manager. Content Blocks are reusable snippets for standardized elements, such as footers, logos, or disclaimers. ![Footer Standardization with Content Blocks](https://files.readme.io/686373549b6ac569fd3abb3ab7bafddabdd0b37236d60ce08b551e2a559309e1-image.png) _Footer Standardization with Content Blocks_ These blocks are designed to simplify the reuse of content across email campaigns, saving you valuable time. They help you maintain consistent messaging and standardize your brand communication. For more information, refer to [Content Blocks](https://docs.clevertap.com/docs/content-blocks) and [Content Block APIs](https://developer.clevertap.com/docs/content-blocks-api) . * * * [](https://docs.clevertap.com/docs/whats-new#Banner-Ads-InApps) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Banner Ads Support in In-Apps ENHANCEMENT BETA You can now create no-code **Banner Ads** using the Advanced In-App Builder. This non-intrusive format appears as a header or footer in your app without blocking usage. For more information, refer to [Banners](https://docs.clevertap.com/docs/advanced-in-app-builder#banners) . * * * May [](https://docs.clevertap.com/docs/whats-new#may) --------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Branded-Domain-Support-SMS-WhatsApp) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Branded Domain Support for SMS and WhatsApp Campaigns ENHANCEMENT PRIVATE BETA You can now deliver trustworthy, branded short links with real-time click tracking without any effort. CleverTap’s new link-shortening feature lets you create on-brand short URLs inside SMS and WhatsApp campaigns. With each click tracked in real time, you gain visibility into who clicked, when, and from which campaign message. This release also eliminates TRAI compliance overhead by using only whitelisted domains, ensuring seamless delivery across regulated markets. For more information, refer to [Branded Domain](https://docs.clevertap.com/docs/branded-domain) . * * * [](https://docs.clevertap.com/docs/whats-new#Elevate-Your-Marketing-Strategy-with-TikTok-Remarketing) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Elevate Your Marketing Strategy with TikTok Remarketing NEW FEATURE We are excited to announce that CleverTap now supports TikTok as a remarketing channel. This integration empowers our customers to leverage CleverTap’s powerful segmentation capabilities to upload user data into TikTok Audiences, enabling advanced retargeting campaigns. ![TikTok Remarketing](https://files.readme.io/8989db3a6e9d984763aac232b75f7cee3e0cf1b269109c2653bf85970623f078-image.png) _TikTok Remarketing_ Maximize your reach with targeted TikTok ads by: * **Retargeting Campaigns:** Reach users who have previously engaged with your app or website, increasing conversion rates by connecting with them on TikTok, a frequently used platform. * **Abandoned Cart Recovery:** Remind users who abandoned their carts with personalized TikTok ads, encouraging them to complete their purchases. * **Lapsed User Re-engagement:** Reignite interest among users who have not interacted with your app or service recently, capturing their attention through TikTok ads. * **Cross-platform Campaigns:** Boost user engagement by combining TikTok with other channels like Push or Email to create cohesive multi-channel remarketing strategies. * **Lookalike Audience Expansion:** Identify converted user behaviors to create lookalike audiences, targeting potential new customers with similar characteristics. For more information, refer to [TikTok Remarketing](https://docs.clevertap.com/docs/tiktok-remarketing) . * * * [](https://docs.clevertap.com/docs/whats-new#Smarter-Profile-Merging) ![Analytics](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) ### Smarter Profile Merging for Cross-Device Insights ENHANCEMENT BETA We are excited to introduce enhanced Anonymous-to-Identified Profile Merging. This update ensures that anonymous events from secondary devices are seamlessly merged into identified user profiles—giving you a complete view of customer behavior across devices. Key benefits of this enhancement: * **Full Event Transfer:** Anonymous events from new or secondary devices are merged into the user’s main profile upon login. * **Segmentation & Funnels:** Merged events are instantly available in segmentation, funnels, and campaigns for end-to-end visibility. * **No Event Limits (Limited Time):** No cap on how many anonymous events can be merged for a limited period. * **Historical Accuracy:** Pre-existing data remains unchanged to ensure consistency. * * * April [](https://docs.clevertap.com/docs/whats-new#april) ------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Bookmarks-in-New-Analytics) ![Analytics](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) ### Bookmarks in New Analytics ENHANCEMENT PRIVATE BETA We’re excited to introduce the Bookmarks feature across the all-new Analytics pages, including Trends, Funnels, and Flows. This feature lets you save your analysis views with all filters and settings applied, so you can return to them anytime without setting them up again. With editable bookmarks, you can easily refine your insights as your analysis goals evolve. For more information, refer to [Bookmarks in Flows](https://docs.clevertap.com/docs/flows-v2#bookmark-a-flow-analysis) , [Bookmarks in Funnels](https://docs.clevertap.com/docs/funnels-v2#bookmark-a-funnel-analysis) , and [Bookmarks in Trends](https://docs.clevertap.com/docs/trends-v2#bookmark-a-trend-analysis) * * * [](https://docs.clevertap.com/docs/whats-new#Web-Visual-Editor-Personalization) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Web Visual Editor: More Control, Better Personalization ENHANCEMENT PRIVATE BETA We have rolled out powerful enhancements to the Web Visual Editor, giving marketers greater control to personalize website elements without writing code. Key enhancements include: * **Mobile + Desktop Preview:** Optimize content for any device with responsive previews. * **Inline Editor Selection:** Choose how you want to edit page elements, right on the webpage. * **Insert & Clone Elements:** Easily add or clone sections for more dynamic layouts. * **Event & Profile Property Personalization:** Use event and profile properties to deliver hyper-personalized experience to users. * **Change Logs:** Track, undo, or delete changes with full visibility. For more information, refer to [Advanced Personalization.](https://docs.clevertap.com/docs/advanced-personalization) * * * [](https://docs.clevertap.com/docs/whats-new#Web-Native-Display-Journeys) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Web Native Display in Journeys ENHANCEMENT **Web Native Display** is now integrated into Journeys, empowering marketers to deliver personalized omnichannel experiences. Until now, these campaigns ran standalone. With this release, you can re-engage users who drop off before key actions and achieve use cases such as Abandoned Checkouts or Purchase journey drop-offs, by using Web Native Display channel in journeys. For more information, refer to [Types of Engagement Nodes](https://docs.clevertap.com/docs/journey-concepts#types-of-engagement-nodes) . [](https://docs.clevertap.com/docs/whats-new#Reminders-Timely-Personalized-Nudges) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Reminders – Timely Actions with Personalized Nudges NEW FEATURE Introducing **Reminders**, a powerful feature that helps you boost engagement by sending timely, personalized messages that prompt users to take action before or after important dates. Whether it’s completing a task, meeting a deadline, or returning to the app, Reminders ensure users stay on track, improving productivity, time management, and campaign effectiveness. For more information, refer to [Reminders](https://docs.clevertap.com/docs/reminders) . * * * [](https://docs.clevertap.com/docs/whats-new#Dynamic-Personalization-for-Linked-Content) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Dynamic Personalization for Linked Content ENHANCEMENT PRIVATE BETA We are excited to introduce Dynamic Personalization for Linked Content, which allows you to embed dynamic user data directly within your linked content responses. This removes the need for extra configuration or custom formatting, letting you deliver highly personalized content with minimal effort. * **Inline Personalization:** Personalization attributes are now supported directly in the linked content response, enabling customization at runtime. * **Localization:** Combine with external translation platforms to automatically serve content in the user’s preferred language without needing extra logic. For more information, refer to [Using Personalization in Linked Content Response](https://docs.clevertap.com/docs/linked-content#using-personalization-in-linked-content-response) . * * * [](https://docs.clevertap.com/docs/whats-new#Email-Click-Heatmap) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Email Click Heatmap NEW FEATURE BETA We are excited to introduce **Click Heatmap**, an advanced visual tool that maps user engagement onto your email layout, enabling you to see precisely which links and CTAs receive the most interaction within the actual design. This enhancement helps you instantly identify high-performing CTAs, understand link-level performance with unique and total clicks, and optimize content placement with color-coded insights. The heatmap supports multivariate and AMP/HTML campaigns, allowing you to compare engagement across versions using a simple dropdown. For more information, refer to [Click Heatmap](https://docs.clevertap.com/docs/email-campaign-stats-heatmap#click-map) . * * * [](https://docs.clevertap.com/docs/whats-new#Unique-Email-Engagement-Stats) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Unique Email Engagement Stats ENHANCEMENT BETA We are excited to introduce **Unique Email Engagement Stats**. This enhancement allows you to switch from _Total_ to _Unique_ metrics in your email campaign stats, helping you track campaigns more precisely and accurately. By tracking unique metrics like opens or clicks, marketers can measure how many individual users engaged with an email, eliminating duplicates and providing a clearer view of audience engagement. With this enhancement, you can now track **Unique Sent, Delivered, Views, Clicks, and CTR**, enabling deeper insights and more personalized strategies. For more information, refer to [Email Campaign Stats](https://docs.clevertap.com/docs/email-campaign-stats-uniquestats) and [Campaign Reports](https://docs.clevertap.com/docs/campaign-reports) . * * * [](https://docs.clevertap.com/docs/whats-new#RCS-Business-Messaging-on-CleverTap) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### RCS Business Messaging on CleverTap ENHANCEMENT BETA We are excited to launch **RCS Business Messaging** for customers in India. This feature enables brands to deliver rich, interactive, and two-way messaging experiences directly via the native messaging app on Android. ![RCS Business Messaging on CleverTap](https://files.readme.io/ba3510d2df54555813c3530132e9a966f43c6542351932a24034f60d90f87e81-RCS_Graphic.png) _RCS Business Messaging_ For more information, refer to [RCS](https://docs.clevertap.com/docs/rcs) . * * * [](https://docs.clevertap.com/docs/whats-new#Segment-Prioritization-Drag-Drop) ![Segments](https://files.readme.io/04fe24c1114cef41af4a4e0224cab88f5be4c31160eca491d67942c689cb79c0-Segmentation.svg) ### Segment Prioritization Now Supports Drag-and-Drop ENHANCEMENT BETA You can now **drag and drop segments** to reorder user segments from the CleverTap dashboard and define their priority. This ensures that users always see the most relevant variable value when they qualify for multiple segments. For more details, refer to [Remote Config](https://docs.clevertap.com/docs/remote-config) . * * * [](https://docs.clevertap.com/docs/whats-new#NextGen-Segment-Builder) ![Segments](https://files.readme.io/04fe24c1114cef41af4a4e0224cab88f5be4c31160eca491d67942c689cb79c0-Segmentation.svg) ### NextGen Segment Builder – Smarter, More Flexible Segmentation ENHANCEMENT BETA We are excited to launch the **NextGen Segment Builder**. This powerful update brings unmatched flexibility to segmentation, allowing marketers to craft highly personalized user segments with ease. With this enhancement, you can combine rules and groups of rules with **AND/OR** operators, customize logic across events, behaviors, and properties, use **User Buckets**, add **Multi-Triggers** to Live Segments, and easily **Clone** and **Bulk Delete** segments. For more information, refer to [NextGen Segment Builder](https://docs.clevertap.com/docs/segmentation) . * * * March [](https://docs.clevertap.com/docs/whats-new#march) ------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#iOS-iPadOS-WebPush-Safari) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Reach iOS and iPadOS Users with Web Push on Safari NEW FEATURE Web Push is now fully supported on iOS and iPadOS Safari, powered by VAPID integration. You can now re-engage high-value Apple users with timely, personalized push notifications without needing an app. For more information, refer to [iOS/iPadOS Web Push Configurations](https://developer.clevertap.com/docs/web-push#iosipados-web-push-configurations) . * * * [](https://docs.clevertap.com/docs/whats-new#WebPush-SoftPrompt-BellIcon) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Web Push Soft Prompt Customization and New Bell Icon Prompt NEW FEATURE Introducing two major enhancements to **Web Push Soft Prompts**. You can now customize the web soft prompt to match your brand’s tone and look. You can also add a **Bell Icon** to your website, giving users a persistent, convenient way to subscribe to web push notifications anytime. These updates offer greater flexibility and boost user opt-in rates for push notifications. For more information, refer to [Soft Prompt](https://docs.clevertap.com/docs/setup-web-push#soft-prompt) . * * * [](https://docs.clevertap.com/docs/whats-new#Event-Personalization-24H-Live-Campaigns) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Event Personalization Beyond 24 Hours for Live Behavior Campaigns ENHANCEMENT You can now apply Event Personalization to _Live Action_ and _Date time_ campaigns with a delay of more than 24 hours. You can create highly personalized push campaigns based on event properties to create custom-tailored notifications, driving better targeting and relevance. It also extends the reach of event-triggered communications hours to increase engagement rates and conversions. For example, streaming applications can now engage users with personalized messages, even days after their last session, ensuring continued engagement. For more information, refer to [Create Push Notification](https://docs.clevertap.com/docs/create-message-push) . * * * February [](https://docs.clevertap.com/docs/whats-new#february) ------------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Flows-2.0) ![Analytics](https://files.readme.io/f57aa9f8ef374b2652d21d86c7251de0e10d2f8661a4828202bcced4cb299d5f-Analytics.svg) ### Flows 2.0 ENHANCEMENT PRIVATE BETA We are excited to introduce the new **Flows**. The enhanced Flows experience enables you to visualize all user paths from a selected event, making the analysis faster, more intuitive, and more comprehensive. ![Flows 2.0 UI](https://files.readme.io/233f86e9210bd94d1fb8f3eab939963e27f5cbc3462f3d56c35dc08b84a201b9-Flows_1.gif) _Flows 2.0_ For more information, refer to [Flows 2.0](https://docs.clevertap.com/docs/flows-v2) . * * * [](https://docs.clevertap.com/docs/whats-new#Reminders-Timely-Actions) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Reminders – Timely Actions with Personalized Nudges NEW FEATURE PRIVATE BETA Introducing **Reminders**, a powerful feature that helps you boost engagement by sending timely, personalized messages that prompt users to take action before or after important dates. Whether it’s completing a task, meeting a deadline, or returning to the app, Reminders ensure users stay on track, improving productivity, time management, and campaign effectiveness. For more information, refer to [Reminders](https://docs.clevertap.com/docs/reminders) . * * * [](https://docs.clevertap.com/docs/whats-new#Organize-Content-Manager) ![Content Manager](https://files.readme.io/0ed57ff4730974458d74d2a34ec4cf285aa5e84f59075a6b32550b9d1fd60ae8-Content_Manager.svg) ### Organize Content with Content Manager NEW FEATURE **Content Manager** is now available on the CleverTap dashboard. This powerful new feature enables you to efficiently manage and organize all your digital content, including media files, folders, and email templates, within a single, centralized location. For more information, refer to [Content Manager](https://docs.clevertap.com/docs/content-manager) . * * * [](https://docs.clevertap.com/docs/whats-new#Group-Campaign-Reports-Tags) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Group Campaign Reports by Tags for Deeper Insights ENHANCEMENT CleverTap now provides Tag Group-wise campaign reports. This is available for Push, Web Push, Email, SMS, and WhatsApp campaigns sent via the _Target Users by Identity_ API. With this enhancement, you can: * Get granular insights with reports broken down by tag groups. * Optimize campaign strategies by identifying high-performing tag groups. As a result, you can analyze and refine your messaging strategies effectively. For more information, see [Subscribe to Reports](https://docs.clevertap.com/docs/campaign-reports#subscribe-to-reports) . * * * [](https://docs.clevertap.com/docs/whats-new#Message-Archiving-Multi-Cloud) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Message Archiving with Multi-Cloud Support NEW FEATURE The Message Archiving feature now fully supports **Google Cloud Platform (GCP)**, **Azure Blob**, and **AWS S3 buckets**. Customers can store copies of outgoing messages across various channels in real time. This allows seamless integration with multiple cloud storage platforms, offering flexibility and improved data management. * **Google Cloud Platform (GCP) Bucket:** Archive outgoing messages directly to your GCP bucket in real time. * **Azure Blob:** Effortlessly store message copies in Azure Blob storage. * **AWS S3 Bucket:** Store message archives reliably in your AWS S3 bucket. ![Message Archiving with Multi-Cloud Support](https://files.readme.io/e4b66d18ba25fdd9c90ef6497e34617a6c55a36340d8f5793cd037326bdaaf69-Message_Archiving_with_Multi-Cloud_Support_New_Feature.jpg) _Message Archiving with Multi-Cloud Support_ This feature is available as a paid add-on. For more details, refer to [Message Archiving](https://docs.clevertap.com/docs/message-archiving) . * * * [](https://docs.clevertap.com/docs/whats-new#Email-Delivery-Tracking) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Email Delivery Tracking: Enhanced Campaign Insights ENHANCEMENT PRIVATE BETA CleverTap now offers Email Delivery Tracking, providing deeper visibility into campaign performance beyond just sent emails. With this enhancement, you can now track actual deliveries to users' inboxes, measure delivery rates, analyze engagement based on delivered emails, and gain insights into errors affecting end user delivery. This feature is currently in Private Beta for customers using SendGrid and Infobip (Advanced Email) providers. For more details, refer to [Campaign Stats](https://docs.clevertap.com/docs/email-campaign-stats-delivered) and [Provider Stats](https://docs.clevertap.com/docs/email-provider-operations-delivered#view-provider-stats) . * * * [](https://docs.clevertap.com/docs/whats-new#Emoji-Support-Web-Push) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Emoji Support for Web Push Notification ENHANCEMENT You can now personalize your notifications and make them fun by adding emojis in the improved Web Push Editor. All message customization options, such as Scribe, Personalization, and Emojis, are accessible below the text fields, making it easier to create engaging notifications. ![Emoji-enabled Web Push UI](https://files.readme.io/d6d84e856b1b3fbbb667311ee22af4a6f8cea0fef43525fed5f35a416cee59da-image.png) _Emoji Support for Web Push Notification_ For more information, refer to [Web Push Editor](https://docs.clevertap.com/docs/create-message-web-push#web-push-editor) . * * * [](https://docs.clevertap.com/docs/whats-new#Scribe-Web-Push) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Scribe for Web Push: Emotionally Intelligent Campaigns Made Easy ENHANCEMENT Scribe for CleverTap Web Push is here to transform your campaign messaging. With Scribe, you can easily and quickly create emotionally resonant web push messages. You can also analyze and refine their tone to better connect with your audience and test multiple variations to maximize campaign effectiveness. This feature is now available to all customers with access to Scribe as part of their Billing Plan. For more information, refer to [Scribe](https://docs.clevertap.com/docs/scribe#create-a-web-push-notification-using-scribe) . * * * [](https://docs.clevertap.com/docs/whats-new#Unsaved-Changes-Journey-Canvas) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Prevent Accidental Data Loss with Unsaved Changes Prompt on Journey Canvas ENHANCEMENT We have introduced an **"Unsaved Changes"** prompt to help prevent accidental loss of work on the Journey canvas. This feature ensures that users are alerted before navigating away without saving changes. Also, it reduces the risk of unintentional data loss. ![Save Changes](https://files.readme.io/23aaaad32d048a865e65b4bb6c55e2da4f44f37421f3bc26b26c23123142e809-Unsaved_Changes_Prompt-20250206-131047.gif) _Save Changes_ For more details, refer to [Draft State](https://docs.clevertap.com/docs/journey-states#draft-state) . * * * [](https://docs.clevertap.com/docs/whats-new#Journey-List-Columns) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Addition of New Columns on the Journey List Page ENHANCEMENT We have added new columns to the Journey List page: _Created By_, _Created On_, _Published By_, and _Published On_. These additions provide users with more comprehensive information at a glance. This simplifies tracking and auditing of journeys, allowing for better collaboration and visibility across teams and various roles using the CleverTap dashboard for publishing Journeys. For more details, refer to [Journey List](https://docs.clevertap.com/docs/journeys-list) . * * * [](https://docs.clevertap.com/docs/whats-new#Journey-Description) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Adding Descriptions for Journey ENHANCEMENT PRIVATE BETA We are excited to announce that you can now add a description or summary while publishing a journey. This new feature allows you to provide additional context and insights to your internal users. ![Add Journey Description](https://files.readme.io/ca82e80342401ea4b991fee118fd63bb122ce9f4e03e485833d9520568599b71-Add_Journey_Description-20250206-155958.gif) _Add Journey Description_ You can update this description only when editing the published journey. For more information, refer to [Publish Journeys](https://docs.clevertap.com/docs/add-a-journey-description#publish-journeys) . * * * January [](https://docs.clevertap.com/docs/whats-new#january-1) ------------------------------------------------------------------- [](https://docs.clevertap.com/docs/whats-new#Email-Add-on-Essentials) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Email Add-on for CleverTap Essentials Plan NEW FEATURE The Email Add-on is now available with the CleverTap Essentials Plan. With this add-on, you can use CleverTap as your Email Service Provider (ESP), eliminating the need for third-party integrations. To enable the Email add-on from the CleverTap dashboard, purchase the add-on, set up your email preferences, and warm up your dedicated IP to ensure the best possible deliverability. ![Email Add-on for CleverTap Essentials Plan](https://files.readme.io/fdf055c4de60720e01da16e73a883ac275845e8884b53a8f46ac757370e3da03-image.png) _Email Add-on for CleverTap Essentials Plan_ For more information, refer to [Email Add-on](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan) . * * * [](https://docs.clevertap.com/docs/whats-new#DND-in-Journeys) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### DND in Journeys ENHANCEMENT The updated DND feature sends notifications delayed by DND at their original scheduled time instead of right after the DND period ends. For example, a message was scheduled for 10 AM but was postponed due to a DND setup between Friday at 9 PM and Monday at 9 AM. The message will now be sent on Tuesday at 10 AM and not immediately after DND ends at 9 AM on Monday. This ensures a more controlled and user-friendly notification delivery experience. ![DND in Journeys](https://files.readme.io/6484ade9dd9a326b59d5028ee3e318bccc100934a463a0294fd65492907ba7ea-DND_in_Journeys.png) _DND in Journeys_ For more information, refer to [DND and Timezone](https://docs.clevertap.com/docs/setup-journey#dnd-and-timezone) . * * * [](https://docs.clevertap.com/docs/whats-new#Journey-Throttling) ![Journeys](https://files.readme.io/51dc269788d03bb7bc0482fbc020414bedd96b6c778ac37b71884095493b93c8-Journeys.svg) ### Introducing Throttling in Journeys ENHANCEMENT You can now set throttling limits from the Journey Setup. This allows smoother regulation of message delivery rates during large-scale engagements. ![Set Up Throttle Limits from Journeys](https://files.readme.io/a952feef88184d47da95cbeb1d8d8b7aef29b46eb2886a34a49c59bfba54c0a6-Set_Up_Throttle_Limits_from_Journeys.gif) _Set Up Throttle Limits from Journeys_ With this enhancement, you can: * Control message delivery rates directly within the Journey, ensuring more efficient communication. * Prevent system overload and maintain optimal app and web performance, even during high-volume campaigns. For more information, refer to [Throttling in Journeys](https://docs.clevertap.com/docs/messaging-frequency-caps#throttle) . * * * [](https://docs.clevertap.com/docs/whats-new#Automated-Shopify-Catalog-Sync) ![Campaigns](https://files.readme.io/370216d2a5ec47fd419bc47a95762d51295730db345b40f825b3de7115e6e667-Campaigns.svg) ### Automated Shopify Catalog Sync for Enhanced Personalization NEW FEATURE PRIVATE BETA Introducing the Catalog Sync feature that simplifies product data management. The Catalog Sync toggle automates the synchronization of product data between your users’ Shopify and CleverTap accounts. This ensures daily catalog updates while also eliminating manual effort and errors. For more information, refer to [Catalog Sync](https://docs.clevertap.com/docs/shopify#catalog-sync) . * * * [](https://docs.clevertap.com/docs/whats-new#Create-Variables-Dashboard) ![Product Experiences](https://files.readme.io/d7de531a1060998537a4e71a078198cf28076d99e1aed3e3c1bdcb5509e29d95-Product_experiences.svg) ### Create Variables from the Dashboard ENHANCEMENT You can now create variables to use in Product Experiences directly from the Dashboard, removing the need to sync them from the code. This allows you to integrate Product Experiences and build a proof of concept quickly. You can then share these variables with the developers to add the backend code later. It is a game-changer that saves you time and accelerates your workflow! **Note:** Creating File type variables is currently not supported from the dashboard. For more information, refer to [Create Variables from Dashboard](https://docs.clevertap.com/docs/remote-config#create-variables-from-the-dashboard) . * * * [](https://docs.clevertap.com/docs/whats-new#User-Property-Personalization) ![Product Experiences](https://files.readme.io/d7de531a1060998537a4e71a078198cf28076d99e1aed3e3c1bdcb5509e29d95-Product_experiences.svg) ### Personalize User Properties in Product Experiences ENHANCEMENT All customers using Product Experiences can now personalize their variable values using User Properties. For example, the text content on a product carousel can be personalized based on the user's profile data, such as their name and membership validity. For more information, refer to [User Profile Personalization](https://docs.clevertap.com/docs/remote-config#user-profile-personalization) . * * * Updated 12 days ago * * * Ask AI --- # Set Up Dashboard Overview [](https://docs.clevertap.com/docs/set-up-dashboard#overview) ========================================================================== This section covers how to set up your dashboard and apps. Set Up App [](https://docs.clevertap.com/docs/set-up-dashboard#set-up-app) ============================================================================== You can set up the integration for your app from _Settings_ > _Project_. Alternatively, you can simply select the list from the dashboard top menu, click **Create New Project**. Set Up your Android App [](https://docs.clevertap.com/docs/set-up-dashboard#set-up-your-android-app) -------------------------------------------------------------------------------------------------------- To set up your Android app, perform the following steps: 1. Enter the PlayStore URL for your app. 2. Integrate the CleverTap SDK. For more information, refer to [SDK](https://developer.clevertap.com/docs/android-quickstart-guide#section-step-1-install-sdk) . JSON dependencies { implementation 'com.clevertap.android:clevertap-android-sdk:3.8.0' implementation 'com.google.firebase:firebase-messaging:17.3.3' implementation 'com.google.android.gms:play-services-base:16.0.1' implementation 'com.android.support:support-v4:28.0.0' //Mandatory for CleverTap Android SDK v3.6.4 and above add the following - implementation 'com.android.installreferrer:installreferrer:1.0' } // at the end of the build.gradle file apply plugin: 'com.google.gms.google-services' 3. Implement CleverTap dependencies. Add the following snippet within the tags in the AndroidManifest.xml file. For more information, refer to [Android Manifest XML](https://developer.clevertap.com/docs/android-quickstart-guide#section-step-2-add-your-clever-tap-credentials-in-android-manifest-xml) . XML Add the following snippet to the same manifest file to allow the CleverTap SDK to access the Internet. XML Add the following snippet to the same file to allow the CleverTap SDK to access the Internet. XML CleverTapAPI clevertapDefaultInstance = CleverTapAPI.getDefaultInstance(getApplicationContext()); 4. Set up Firebase Cloud Messaging (FCM) to send push notifications using CleverTap. Register the services inside the tags of the Android manifest file. For more information, refer to [Using FCM version 18.00 and above](https://developer.clevertap.com/docs/using-fcm-version-1800-and-above) . XML 5a. Set up a notification channel. You must set a notification channel to send push notifications for Android version O and above. For more information, refer to [Notification Channel](https://developer.clevertap.com/docs/android#section-push-notifications-for-android-o) . Add the following snippet in the onCreate() method of the application’s MainActivity class to create Android notification channels. Java CleverTapAPI cleverTapAPI = CleverTapAPI.getDefaultInstance(getApplicationContext()); cleverTapAPI.createNotificationChannel(getApplicationContext(),"YourChannelId","Your Channel Name","Your Channel Description",NotificationManager.IMPORTANCE_MAX,true); 5b. Complete the setup. Check that the events and engagement channels are working. To complete the push notification integration and enable advanced settings, navigate to [mobile push channel](https://developer.clevertap.com/docs/android#section-push-notifications) . 6. Test your integration. To start sending custom events to CleverTap using the Android SDK, call the `pushEvent( )` method with the custom event name you want to track. Use the following to test [events](https://developer.clevertap.com/docs/android-quickstart-guide#section-step-7-track-custom-events) and [user profiles](https://developer.clevertap.com/docs/android-quickstart-guide#section-step-6-add-information-to-a-user-profile) : Test eventsTest user profiles cleverTapAPI.pushEvent("Test Event"); // Do not call onUserLogin directly in the onCreate() lifecycle method HashMap profileUpdate = new HashMap(); profileUpdate.put("Name", "Jack Montana"); // String profileUpdate.put("Identity", 61026032); // String or number profileUpdate.put("Email", "[email protected]"); // Email address of the user profileUpdate.put("Phone", "+14155551234"); // Phone (with the country code, starting with +) profileUpdate.put("Gender", "M"); // Can be either M or F profileUpdate.put("DOB", new Date()); // Date of Birth. Set the Date object to the appropriate value first cleverTapAPI.onUserLogin(profileUpdate); Set Up Your iOS App [](https://docs.clevertap.com/docs/set-up-dashboard#set-up-your-ios-app) ------------------------------------------------------------------------------------------------ To set up your iOS app, perform the following steps: 1. Enter the AppStore URL for your app. This step is optional. 2. Install the CleverTap SDK. To start integration, install CocoaPods. To integrate the app manually, refer to the [manual integration](https://developer.clevertap.com/docs/ios-quickstart-guide#section-option-b-manual-install) . Add the following snippet above in the Podfile and run the Pod install command to begin the installation of the CleverTap SDK. Text pod "CleverTap-iOS-SDK" 3. Integrate the SDK. For more information, refer to [SDK Integration](https://developer.clevertap.com/docs/ios-quickstart-guide#section-step-4-sdk-integration) . Import the CleverTap SDK to the AppDelegate.swift file. Now add `[CleverTap autoIntegrate]` within the application: `didFinishLaunchingWithOptions`: method. This allows the CleverTap class used to track app launches, to receive in-app notifications, and to enable deep link tracking. Text func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool { ... CleverTap.autoIntegrate() ... } 4. Set up push notifications. To integrate iOS push notifications and enable advanced settings, navigate to [mobile push channel setup](https://developer.clevertap.com/docs/ios#section-push-notifications) . 5. Test your integration. Paste the snippet in the viewDidLoad class to start testing events and user profiles: Test EventsTest user profiles CleverTap.sharedInstance()?.recordEvent("Product viewed") let profile: Dictionary = [\ //Update pre-defined profile properties\ "Name": "Jack Montana",\ "Email": "[email protected]",\ //Update custom profile properties\ "Plan type": "Silver",\ "Favorite Food": "Pizza"\ ] CleverTap.sharedInstance()?.onUserLogin(profile); Set Up Your Website [](https://docs.clevertap.com/docs/set-up-dashboard#set-up-your-website) ================================================================================================ To set up your website, perform the following steps: 1. Enter the website URL for your project. 2. To integrate the website, paste the snippet in the section of your website. JavaScript 3. Set up push notifications. To integrate and enable web push notifications, go to [Web Push Channel Setup](https://docs.clevertap.com/docs/setup-web-push) . 4. Test integration. Paste the following snippet in your browser’s console to start testing. Test eventsTest user profiles clevertap.event.push(“Event Name”); clevertap.profile.push({ "Site": { "Name": "Jack Montana", // User's name "Email": “[email protected]” } }); Set Up Your API [](https://docs.clevertap.com/docs/set-up-dashboard#set-up-your-api) ======================================================================================== Set up your API to use events and user profiles. For more information, refer to [API Quick Start Guide](https://developer.clevertap.com/docs/api-quickstart-guide) . 1. Upload to the API endpoint: [https://api.clevertap.com/1/upload](https://api.clevertap.com/1/upload) > 📘 > > ### > > URLs for Your Specific Location > > [](https://docs.clevertap.com/docs/set-up-dashboard#urls-for-your-specific-location) > > Use the URL based on your location: > > * India: `in1.api.clevertap.com` > * Singapore: `sg1.api.clevertap.com` > * U.S.: `us1.api.clevertap.com` > * Europe (default region): `api.clevertap.com` > * Indonesia: `aps3.api.clevertap.com` > * Middle East (UAE): `mec1.api.clevertap.com` 2. Use the JSON payload for events and user profiles. Event Sample PayloadUser Profiles Sample Payload { "d": [\ {\ "FBID": "34322423",\ "ts": 1468308340, // time when the event occurred in UNIX epoch value in seconds\ "type": "event",\ "evtName": "Product viewed",\ "evtData": {\ "Product name": "Casio Chronograph Watch",\ "Category": "Mens Watch",\ "Price": 59.99,\ "Currency": "USD"\ }\ },\ {\ "identity": "[email protected]",\ "ts": 1468208340,\ "type": "event",\ "evtName": "Charged",\ "evtData": {\ "Amount": 300,\ "Currency": "USD",\ "Payment mode": "Credit Card",\ "Delivery By": "$D_1468322268",\ "Items": [\ {\ "Category": "books",\ "Book name": "The millionaire next door",\ "Quantity": 1\ },\ {\ "Category": "books",\ "Book name": "Achieving inner zen",\ "Quantity": 4\ }\ ]\ }\ }\ ] } { "d": [\ {\ "identity": "1189549",\ "ts": 1468308340,\ "type": "profile",\ "profileData": {\ "Name": "Jack Montana",\ "Name": {"$delete" : 1}, //this will delete the value of name\ "Email": "[email protected]",\ "Phone": "+14155551234",\ "Gender": "M",\ "Gender": {"$delete" : 1}, //this will delete the value of gender\ "MSG-sms": false,\ "MSG-whatsapp": true,\ "MSG-dndPhone": true,\ "DOB": "$D_1487576752",\ "Customer Type": "Platinum",\ "Custom Multi Value":{"$remove":["shoes","bags"]}, // To remove Multi Value properties\ "Custom Multi Value":{"$add":["shoes","bags"]}, //To add Multi Value properties\ "My Number 1": {"$incr" : 10}, //To increment integer data\ "My Number 2": {"$decr" : 30} //To decrement integer data\ }\ }\ ] } //$delete applicable only to name and gender fields 3. Test the integration. Send an API request with payload to test integration. FAQs [](https://docs.clevertap.com/docs/set-up-dashboard#faqs) ================================================================== Find answers to the following common questions about ̉Setting Up dashboard: ### How to configure the session timer for the dashboard? [](https://docs.clevertap.com/docs/set-up-dashboard#how-to-configure-the-session-timer-for-the-dashboard) Configure a session timeout for your dashboard in case of inactivity. Only admins can configure the session timeout, which is set to 30 minutes by default. To configure the session timeout: 1. Navigate to _Organization_ > _Projects_. 2. Select the relevant time from the dropdown, and click **Save**. ![Set Up Session Timeout](https://files.readme.io/355b2b755fb66df0650e649a550d59ce6118d37bff96802c250318cd4b764ea2-image.png) Set Up Session Timeout ### How do you log out from all active devices at once? [](https://docs.clevertap.com/docs/set-up-dashboard#how-do-you-log-out-from-all-active-devices-at-once) To log out from all active devices at once: 1. Navigate to the _Profile_ page. 2. Click the **Log out of all Sessions** option. 3. Click **Continue**. CleverTap logs out all your active sessions within two minutes. Updated about 2 months ago * * * Ask AI --- # PII Encryption Overview [](https://docs.clevertap.com/docs/pii-encryption#overview) ======================================================================== Encryption secures Personally Identifiable Information (PII) by converting it into unreadable formats that only authorized users can decrypt with valid keys. PII includes sensitive data such as names, email addresses, phone numbers, custom properties, and events. By encrypting this information, CleverTap ensures data remains protected from unauthorized access throughout its lifecycle. The encryption framework uses secure algorithms to protect data while maintaining usability for segmentation, analytics, and campaign delivery. Encryption helps you do the following: * Prevent unauthorized access to PII * Transmit customer data securely across systems * Comply with global and local data protection regulations * Create a detailed audit trail to meet global compliance standards > 📘 > > ### > > Private Beta > > [](https://docs.clevertap.com/docs/pii-encryption#private-beta) > > This feature is currently available in Private Beta for selected customers. To enable PII Encryption, contact your Customer Success Manager or raise a support ticket. Encrypt PII [](https://docs.clevertap.com/docs/pii-encryption#encrypt-pii) ============================================================================== CleverTap encrypts PII using multiple layers of protection, making sensitive values unreadable at different stages: * **In Transit**: Encrypts data transmitted via SDKs and SFTP. * **At Rest**: Encrypts stored data in databases, backups, and persistent storage. This layered protection ensures data confidentiality, integrity, and compliance without compromising usability. ![PII Encryption](https://files.readme.io/20d467a044d271b9071dfb8c94cd6538bbe4661da3a2562f3e0268f706a33dfa-image.png) PII Encryption Default vs. Custom Encryption [](https://docs.clevertap.com/docs/pii-encryption#default-vs-custom-encryption) ----------------------------------------------------------------------------------------------------------------- By default, CleverTap encrypts all incoming user data using AES-256 encryption and securely manages the encryption keys. This default protection applies to all user profiles and event attributes. Custom Encryption provides an additional layer of protection over the default encryption. It allows customers to mark selected fields (such as email, phone, customerType, and so on) for encryption. CleverTap applies AES-256 encryption using customer-defined keys. It protects sensitive data without impacting performance. Security and Compliance [](https://docs.clevertap.com/docs/pii-encryption#security-and-compliance) ------------------------------------------------------------------------------------------------------ PII Encryption helps your organization to do the following: * Protect customer data against unauthorized access * Ensure secure storage and transmission of data * Meet compliance standards such as GDPR, CCPA, HIPAA, and ISO 27001 * Enforce role-based access and audit controls Eligible Data [](https://docs.clevertap.com/docs/pii-encryption#eligible-data) ---------------------------------------------------------------------------------- You can mark any of the following system properties for encryption: **System User Properties** * Email * Phone number * Identity * Name * Gender * DOB (Date of Birth) * Latitude * Longitude * Location **System Event Properties** * Email * Phone number * Identity * For the event **Identity Set**, the PII property `ID` is masked. * For the event **Identity Reset**, the PII property `ID` is masked. * For the event **Identity Error**, the PII property `ID` is masked. For more information about system events and properties, refer to [Events](doc:events#overview) . You can also enable encryption for custom events. Once you allow encryption for a custom event property, CleverTap encrypts new incoming data. CleverTap does not encrypt historical data. > 🚧 > > ### > > Encryption is an irreversible process. > > [](https://docs.clevertap.com/docs/pii-encryption#encryption-is-an-irreversible-process) > > You cannot revert a property to an unencrypted state. Encrypt Data at Rest [](https://docs.clevertap.com/docs/pii-encryption#encrypt-data-at-rest) ------------------------------------------------------------------------------------------------ CleverTap automatically encrypts stored data using industry-standard encryption methods: * Uses AES-256 encryption for all stored data * Manages encryption keys through key management * Implements key rotation and audit logging based on industry-accepted best practices Encrypt Data in Transit [](https://docs.clevertap.com/docs/pii-encryption#encrypt-data-in-transit) ------------------------------------------------------------------------------------------------------ CleverTap secures all data transferred via SDKs ([Android](https://developer.clevertap.com/docs/android-advanced-features#encryption-in-transit) & [iOS](https://developer.clevertap.com/docs/advanced-options-ios#encryption-of-pii-data) ) and [SFTP](https://docs.clevertap.com/docs/file-upload-encryption) : * Uses TLS 1.3 for transport security * Uses AES-256 (SDK) and PGP encryption (SFTP) * Supports mutual TLS (mTLS) for SDK communications * Routes requests to region-specific endpoints for compliance with data residency regulations Encrypt Custom Event Properties [](https://docs.clevertap.com/docs/pii-encryption#encrypt-custom-event-properties) ====================================================================================================================== You can apply encryption to event properties either individually or in bulk. Encrypt a Single Event Property [](https://docs.clevertap.com/docs/pii-encryption#encrypt-a-single-event-property) ---------------------------------------------------------------------------------------------------------------------- To encrypt an individual event property, follow these steps: 1. Go to **Settings > Schema > Events > Custom Events**. 2. Click **Properties** for the required event. 3. Click the ellipsis menu and select **Encrypt**. 4. In the confirmation dialog, click **Encrypt**. ![Encrypt PII Values](https://files.readme.io/243c2b2174e002539b50012bb92c9ddea518580dfc437c609e6f298d9c489d42-2025-07-17_13-47-26_1.gif) Encrypt PII Values The following image shows the encrypted PII properties: ![Encrypted Properties](https://files.readme.io/fd5aeb3c96ab14bada82f33000502147d8d8985f199ef19f2ed13844eacd08f0-image.png) Encrypted Properties Encrypt Multiple Event Properties [](https://docs.clevertap.com/docs/pii-encryption#encrypt-multiple-event-properties) -------------------------------------------------------------------------------------------------------------------------- To encrypt multiple properties, follow these steps: 1. Go to **Settings > Schema > Events > Custom Events**. 2. Click **Properties** for the required event. 3. Select multiple properties. 4. Click the ellipsis menu and select **Encrypt**. 5. In the confirmation dialog, click **Encrypt**. CleverTap queues the selected fields for encryption and displays the encrypted fields as _Encrypted_. ![Bulk Encryption](https://files.readme.io/ec06009cee093f2b52eba568fd2c6ac23d45381460b3f27d300636c188c7cb05-2025-08-14_19-43-21_1.gif) Bulk Encryption > 📘 > > **Viewing Encrypted Values** > > Only Admins and authorized users can view or download encrypted values. > The visibility of encrypted values on the **Segment** and **Analytics** pages depends on your role. For roles without encryption access, these values remain hidden. Roles with encryption permissions can view and use the encrypted values for segmentation and analytics. > 📘 > > **Download Restriction on PII Values** > > CSV downloads follow encrypted PII access permissions. Admins and users with encrypted PII access via custom roles can view the actual values. > > For users without encrypted PII access, certain fields are restricted during export, as follows: > > * **System user properties:** Encrypted fields are unavailable for selection in the CSV download confirmation pop-up. > * **Custom user properties:** Encrypted columns are included in the CSV, but the values appear as blank. Supported Entities [](https://docs.clevertap.com/docs/pii-encryption#supported-entities) ============================================================================================ The following entities support encrypted data retrieval based on user permissions: * [Segments](doc:pii-encryption#segments) * [Engagements](doc:pii-encryption#engagements) * [Analytics](doc:pii-encryption#analytics) Segments [](https://docs.clevertap.com/docs/pii-encryption#segments) ------------------------------------------------------------------------ You can create segments and apply filters to encrypted fields based on your permissions. Segmentation functionality is available in **Create Segment** and **Find People**. ### Create Segment with Encrypted Properties [](https://docs.clevertap.com/docs/pii-encryption#create-segment-with-encrypted-properties) You can use encrypted fields such as Email, Phone, Identity, and other custom properties as filters when creating segments. Follow the steps below to create a Segment using encrypted properties: 1. Go to **Segments** and click **Segment**. 2. Build a segment using past or live events and filters based on encrypted fields. The system applies permission checks to ensure only authorized users can view or segment these properties. Segments created with encrypted fields are usable across analytics and engagement workflows. ![Encrypted Values in Segment Builder](https://files.readme.io/b2295177bba75adbf5e8c668a88a6c56ba136b7d4cc4a9cd05aedf90ea96ef14-image.png) Encrypted Values in Segment Builder ### Find People [](https://docs.clevertap.com/docs/pii-encryption#find-people) If you have permission to access encrypted data, you can search for users using encrypted fields such as Email or Phone. The following image shows how to set up an event filter rule in an analytics or engagement platform. The rule builder offers additional filtering by narrowing down event properties. When users without decryption access query encrypted fields, the list displays **This is an encrypted value** to indicate restricted visibility. ![Query using Encrypted Values](https://files.readme.io/c81c5c53494c9ab72866bace1d2b39fa3bb3ca0931ef1937d37dd2d38d4e1769-image.png) Query using Encrypted Values in Find People For more details on user permissions and access, refer to [Role-Based Access Control: Advanced Governance Limits](https://docs.clevertap.com/docs/role-based-access-control-advanced-governance-limits#engagement-permissions) . Engagements [](https://docs.clevertap.com/docs/pii-encryption#engagements) ------------------------------------------------------------------------------ You can create **Campaigns** and **Journeys** using segments that include encrypted fields. These workflows support targeting, personalization, and analytics without exposing underlying PII. ### Create Campaigns with Encrypted Properties [](https://docs.clevertap.com/docs/pii-encryption#create-campaigns-with-encrypted-properties) Follow the steps below to create a Campaign using encrypted properties: 1. Go to **Campaigns** and click **Campaign**. 2. In the **Who** section, define the segment using an encrypted property. The following image shows the list indicating that the selected event property is encrypted: ![Filter using Encrypted Values in Campaigns](https://files.readme.io/706634a1ed9f9c1c195c3f0b9ac108d8a54a22ad517158349083a8f041319c11-image.png) Filter using Encrypted Values in Campaigns If the campaign user role permits access, you can use personalization fields such as email and phone. Campaign messages sent via email or push will use encrypted data securely. ### Create Journeys with Encrypted Properties [](https://docs.clevertap.com/docs/pii-encryption#create-journeys-with-encrypted-properties) You can create Journeys that use encrypted segments and properties for targeting and decision-making. Follow the steps below to create a Journey with encrypted properties. 1. Go to **Journeys** and click **Journey**. 2. Define triggers and paths using encrypted segments. Use encrypted data fields for decision splits and personalization based on permissions. Analytics [](https://docs.clevertap.com/docs/pii-encryption#analytics) -------------------------------------------------------------------------- Users with appropriate permissions can query events using encrypted values. The list in the following image displays **This is an encrypted value**, ensuring PII remains protected and usable for analytics. ![Query using Encrypted Values in Analytics](https://files.readme.io/3f77c0333db9af68ad1e1a6d62e35339ae3a6c74fa7a92ddcf8b507d78510d9e-image.png) Query using Encrypted Values in Analytics > 📘 > > ### > > Require Permission > > [](https://docs.clevertap.com/docs/pii-encryption#require-permission) > > Only users with appropriate permissions can use encrypted fields in engagement workflows. Unauthorized users see placeholder values or cannot select segments. The following image shows the message displayed when access is restricted: ![Restricted Access](https://files.readme.io/24217dba1ca61abb4006cd5cfa51e6a9553f69ad82f888e5702441cf5bac8be1-image.png) Restricted Access Manage Entities with Encrypted Data [](https://docs.clevertap.com/docs/pii-encryption#manage-entities-with-encrypted-data) ============================================================================================================================== Campaign management involving encrypted data is supported through the Global Campaign List (GCL) and the Global Test List (GTL) with certain limitations: * GCLs and GTLs using encrypted fields are partially supported. * Authorized users can create and manage campaigns that use encrypted fields for segmentation and targeting. * Campaign targeting and delivery remain functional with encrypted data while preserving data confidentiality. * Use filtered segments instead of global lists where direct access is restricted. * Configure audience targeting using segment-based filters. Frequently Asked Questions [](https://docs.clevertap.com/docs/pii-encryption#frequently-asked-questions) ============================================================================================================ The following FAQs address common questions about how PII encryption works, where it applies, and what limitations to expect. ### What encryption algorithm does CleverTap use? [](https://docs.clevertap.com/docs/pii-encryption#what-encryption-algorithm-does-clevertap-use) CleverTap supports encrypting customer data using AES-256 encryption keys. ### Is data encrypted at rest? [](https://docs.clevertap.com/docs/pii-encryption#is-data-encrypted-at-rest) Yes. All stored data is encrypted by default using AES-256 encryption keys, which are managed securely through key management. CleverTap also supports encrypting data using customer-managed encryption keys. ### Can I search or segment on encrypted fields? [](https://docs.clevertap.com/docs/pii-encryption#can-i-search-or-segment-on-encrypted-fields) Yes. You can search and segment on encrypted fields. The usability of encrypted fields depends on your dashboard [access permissions](https://docs.clevertap.com/docs/role-based-access-control-advanced-governance-limits#engagement-permissions) . If you have access to encrypted data, you can use these fields for segmentation and targeting without restrictions. ### Can I disable encryption for a field later? [](https://docs.clevertap.com/docs/pii-encryption#can-i-disable-encryption-for-a-field-later) No. Encryption is irreversible. ### Does encryption impact performance? [](https://docs.clevertap.com/docs/pii-encryption#does-encryption-impact-performance) No. CleverTap handles encryption at the infrastructure level to ensure minimal latency and no noticeable impact on dashboard or campaign performance. ### How does masking interact with encryption? [](https://docs.clevertap.com/docs/pii-encryption#how-does-masking-interact-with-encryption) If a property is both encrypted and masked, encryption always prevails. Encrypted values remain protected even if masking is also applied. For more information, refer to [PII Masking](https://docs.clevertap.com/docs/pii-masking) . ### Who can view encrypted or masked values? [](https://docs.clevertap.com/docs/pii-encryption#who-can-view-encrypted-or-masked-values) Access depends on the user role: * **Admins:** Can view both encrypted and masked values. * **Authorized Users:** Can view masked values, but encrypted values remain hidden. * **Unauthorized Users:** Cannot view encrypted or masked values; the system displays placeholders instead. Queries based on PII fields are blocked. ### Can I build a segment using encrypted fields? [](https://docs.clevertap.com/docs/pii-encryption#can-i-build-a-segment-using-encrypted-fields) Yes. With the right permissions, you can build a segment using encrypted fields. Only authorized users can access decrypted values. ### Can campaigns be created with encrypted data? [](https://docs.clevertap.com/docs/pii-encryption#can-campaigns-be-created-with-encrypted-data) Yes. Campaigns and Journeys can use encrypted fields for personalization and targeting, subject to role-based permissions. Updated 28 days ago * * * Ask AI --- # Field-Level at Rest Encryption Overview [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#overview) ======================================================================================== Field-Level at Rest Encryption protects Personally Identifiable Information (PII) stored in CleverTap by ensuring that the data can only be decrypted using valid keys. PII includes sensitive information such as names, email addresses, phone numbers, custom user and event properties. When field-level data is encrypted at rest, this information stays protected across all stages of storage, including databases, backups, and any persistent storage systems. CleverTap’s encryption framework utilizes strong, industry-standard algorithms such as AES-256 to secure data without limiting teams from using the platform. Users who have the required [Role-Based Access Control (RBAC)](doc:role-based-access-control) permissions can continue to work seamlessly with encrypted fields across Segments, Analytics, and Campaigns, while the underlying PII remains protected from unauthorized access. > 📘 > > ### > > **Add-on Feature** > > [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#add-on-feature) > > This feature is available as a paid add-on. To enable Field-Level at Rest Encryption, contact your sales representative. Field-Level at Rest Encryption helps you perform the following: * Prevent unauthorized access across databases and backups. * Ensure secure long-term data retention. * Comply with global and local data protection regulations. ![PII Encryption](https://files.readme.io/c53d243286ca1a376aa10208d0dcb575bebd6e10edd70fcd3a171e3b793b3119-image.png) PII Encryption > 📘 > > ### > > **Encryption is Irreversible** > > [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#encryption-is-irreversible) > > Encryption is irreversible only for event properties. You cannot revert an event property to an unencrypted state. Encryption Framework [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#encryption-framework) ================================================================================================================ CleverTap utilizes multiple layers of encryption to safeguard stored data without compromising functionality. It applies AES-256 encryption to all stored data and manages encryption keys through secure key management infrastructure. This framework ensures confidentiality, integrity, and compliance while preserving analytics and campaign operations. Default vs. Bring Your Own Key Encryption [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#default-vs-bring-your-own-key-encryption) --------------------------------------------------------------------------------------------------------------------------------------------------------- By default, Clevertap encrypts field-level data at rest using the keys in its key management system. If you require additional security, Bring Your Own Key (BYOK) encryption enables you to use your own keys to encrypt field-level data at rest in CleverTap. For more information, refer to [Bring Your Own Key (BYOK) Encryption](doc:bring-your-own-key-byok-encryption) . Eligible Data [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#eligible-data) -------------------------------------------------------------------------------------------------- You can mark the following properties for encryption. * System user Properties * Phone * Email * Custom user properties * Custom event properties Custom events are also supported for encryption. Once encryption is enabled for a custom property, new incoming data is encrypted automatically, while historical data remains unencrypted. Encrypt Field-Level Data at Rest [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#encrypt-field-level-data-at-rest) ======================================================================================================================================== CleverTap automatically encrypts all stored data using secure, industry-standard methods: * AES-256 encryption for all databases, backups, and persistent storage * Secure key management through a centralized key infrastructure * Automated key rotation and audit logging These controls ensure all PII stored in CleverTap remains protected and compliant with global regulations. Encrypt User or Event Properties [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#encrypt-user-or-event-properties) ---------------------------------------------------------------------------------------------------------------------------------------- You can encrypt user or event properties either individually or in bulk. **Encrypt Single Property** To encrypt an individual event property, follow the steps: 1. Go to _Settings > Schema > Events > Custom Events_. 2. Click **Properties** for the required event. 3. Click the ellipsis menu and select **Encrypt**. 4. In the confirmation dialog, click **Encrypt**. ![Encrypt PII Values](https://files.readme.io/243c2b2174e002539b50012bb92c9ddea518580dfc437c609e6f298d9c489d42-2025-07-17_13-47-26_1.gif) Encrypt PII Values The following image shows the encrypted PII properties: ![Encrypted Properties](https://files.readme.io/fd5aeb3c96ab14bada82f33000502147d8d8985f199ef19f2ed13844eacd08f0-image.png) Encrypted Properties Using Encrypted Data Across Platforms [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#using-encrypted-data-across-platforms) -------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap enforces Role-Based Access Control (RBAC) for all encrypted properties. Access depends on the user's permissions. Only authorized users with RBAC permissions can view and use decrypted values in Segments, Engagements, and Analysis, as these values remain consistent across the platform. Users who do not have decryption permissions see only the encrypted value instead of the underlying PII. When they attempt to query the property, the interface displays the encrypted property as shown in the image, and the user cannot view or filter by the actual decrypted value. ### Segments [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#segments) Users without decryption permissions cannot view or query the encrypted property in the Segment Builder. ![Encrypted Values in Segment Builder](https://files.readme.io/b2295177bba75adbf5e8c668a88a6c56ba136b7d4cc4a9cd05aedf90ea96ef14-image.png) Encrypted Values in Segment Builder ### Engagements [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#engagements) Users without decryption permissions cannot access or use the encrypted properties in Campaigns and Journeys. ![Filter using Encrypted Values in Campaigns](https://files.readme.io/326e6951f04c2924380f2bb76d30cd54dc484f355ee9cc2377abcf3283a66ba0-image.png) Filter using Encrypted Values in Campaigns ### Analytics [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#analytics) Users without decryption permissions cannot view or query the encrypted properties in Analytics or reports. ![Query using Encrypted Values in Analytics](https://files.readme.io/3f77c0333db9af68ad1e1a6d62e35339ae3a6c74fa7a92ddcf8b507d78510d9e-image.png) Query using Encrypted Values in Analytics > 📘 > > ### > > **Viewing Encrypted Values** > > [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#viewing-encrypted-values) > > Only Admins can encrypt field-level data at rest, and only authorized users can view the encrypted values. > > The visibility of encrypted values on the _Segment_ and _Analytics_ pages depends on your role. For roles without encryption access, these values remain hidden. Roles with encryption permissions can view and use the encrypted values for segmentation and analytics. Frequently Asked Questions [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#frequently-asked-questions) ============================================================================================================================ ### What encryption algorithm does CleverTap use? [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#what-encryption-algorithm-does-clevertap-use) CleverTap uses AES-256 encryption keys for field-level data at rest. ### Can I search or segment encrypted fields? [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#can-i-search-or-segment-encrypted-fields) Yes. Authorized users can search and segment encrypted fields without a performance impact. ### Can encryption be disabled later? [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#can-encryption-be-disabled-later) No. Encryption cannot be disabled or paused. Once enabled for an event property, all future incoming data is also encrypted. However, you can decrypt a user property. ### How does masking interact with encryption? [](https://docs.clevertap.com/docs/field-level-at-rest-encryption#how-does-masking-interact-with-encryption) If a property is configured for both masking and encryption, encryption takes precedence. The system encrypts the value first, and masking rules apply only to authorized users who have decryption access. Updated about 2 months ago * * * Ask AI --- # File Upload Encryption Overview [](https://docs.clevertap.com/docs/file-upload-encryption#overview) ================================================================================ File Upload Encryption enables you to securely and automatically bring data from an external server into your system. You can use it to ingest structured files such as user data, events, or configuration files in CSV or JSON format from trusted external sources into your platform. With File Upload Encryption, you can set up scheduled imports or trigger them as required, ensuring timely and secure data input while aligning with your security and compliance standards. The import setup supports authentication through SSH keys File upload Encryption supports Pretty Good Privacy (PGP) encryption, adding an extra layer of protection by ensuring that sensitive data remains encrypted throughout the transfer, safeguarding its confidentiality and integrity until CleverTap successfully processes it. File Upload Encryption is beneficial in the following scenarios: * **Preventing data leaks during transit**: It prevents interception of data files during upload. * **Addressing security concerns**: Offers stronger protection through encryption and complies with data privacy and security regulations. * **Preventing misuse**: Encrypted files remain unreadable to unauthorized users in the unlikely event of a breach. > 📘 > > ### > > Private Beta > > [](https://docs.clevertap.com/docs/file-upload-encryption#private-beta) > > File Upload Encryption is available in Private Beta. To enable this feature, contact your Customer Success Manager or raise a support ticket. Prerequisites [](https://docs.clevertap.com/docs/file-upload-encryption#prerequisites) ========================================================================================== A configured and connected SFTP client to CleverTap's SFTP server is the prerequisite for achieving File Upload Encryption. ![SFTP Export](https://files.readme.io/cc3c3ea314b2e0e72d7caaab4ad21ec03f5ecdd0b6f0364bb77d629e3330a671-image.png) File Upload Encryption Secure File Upload with PGP Encryption [](https://docs.clevertap.com/docs/file-upload-encryption#secure-file-upload-with-pgp-encryption) ============================================================================================================================================ Prepare the data file in plain text format to upload into the CleverTap database. To encrypt and securely upload your data using PGP over SFTP, perform the steps below: 1. [Generate PGP Key Pair](doc:file-upload-encryption#generate-a-pgp-key-pair) 2. [Receive the Key ID](doc:file-upload-encryption#receive-the-key-id) 3. [Create Manifest File](doc:file-upload-encryption#create-the-manifest-file) 4. [Upload Encrypted File and Manifest via SFTP](doc:file-upload-encryption#upload-encrypted-file-and-manifest-via-sftp) Generate a PGP Key Pair [](https://docs.clevertap.com/docs/file-upload-encryption#generate-a-pgp-key-pair) -------------------------------------------------------------------------------------------------------------- CleverTap supports PGP encryption for secure file uploads via SFTP and other supported import methods. Using PGP encryption adds a layer of security, ensuring that sensitive data remains protected throughout the transfer and ingestion process. **Prerequisites** The following are the prerequisites for File Upload Encryption using PGP key generation: * **Public key** - Used by the user to encrypt `.csv` files. * **Private Key** - Used by CleverTap to decrypt uploaded files. * **Passphrase**\- A secure password set by you that allows CleverTap to access the private key. > 📘 > > ### > > Sharing Private Keys > > [](https://docs.clevertap.com/docs/file-upload-encryption#sharing-private-keys) > > The private key must be shared only with authorized individuals, as it provides access to sensitive and confidential data. You can generate a PGP key pair in one of two ways: * [Self-generated](doc:file-upload-encryption#self-generated-keys) . * [CleverTap generated](doc:file-upload-encryption#clevertap-generated-keys) . ### Self-Generated Keys [](https://docs.clevertap.com/docs/file-upload-encryption#self-generated-keys) The following steps describe how to use PGP encryption through GnuPG, a free implementation of the PGP standard. To generate your own PGP key pair using the gpg command-line tool, follow the steps below: Customer-generated Keys --# Step 1: Generate the key gpg --full-generate-key # Step 2: Select key type # (1) RSA and RSA # (2) DSA and Elgamal # (3) DSA (sign only) # (4) RSA (sign only) # (9) ECC (sign and encrypt) *default* # (10) ECC (sign only) # (14) Existing key from card # Choose option 1 (RSA and RSA) # Step 3: Key size # Enter: 3072 (recommended) # Step 4: Key expiration # Enter: 0 (key never expires) # Confirm: y # Step 5: Enter user ID details # Name: Name1 # Email: [email protected] # Comment: (optional) # Confirm selection: O #### Create Passphrase [](https://docs.clevertap.com/docs/file-upload-encryption#create-passphrase) After you create the public key and private key, the system prompts you to set a passphrase. Note this passphrase, as it is required later during decryption. #### Confirm Key Generation [](https://docs.clevertap.com/docs/file-upload-encryption#confirm-key-generation) After successfully creating the key, GPG generates public and private keys and a revocation certificate Key Creation Confirmation # gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/1A7849F996BFD78569533B2CF55DEEE68995217D.rev' # public and secret key created and signed. # pub rsa3072 2024-11-21 [SC] 1A7849F996BFD78569533B2CF55DEEE68995217D # uid Name1 <[email protected]> # sub rsa3072 2024-11-21 [E] #### Export the Private Key Using the Public Key [](https://docs.clevertap.com/docs/file-upload-encryption#export-the-private-key-using-the-public-key) After successfully generating your PGP key pair, you must share the private key with CleverTap, this enables CleverTap to decrypt your encrypted files during import. Use the following command: Export the Private Key gpg --export-secret-key -a "your-key-id" > private.key * `"your-key-id"` – Replace this with your public Key generated earlier. This is the **Public Key** of the public/private key pair you generated using GPG. You can find it in the confirmation message after generating your keys. For example, ASP.NET pub rsa3072 2024-11-21 [SC] 1A7849F996BFD78569533B2CF55DEEE68995217D In this case, `1A7849F996BFD78569533B2CF55DEEE68995217D` is your Public key. * `private.key` – Name of the `.key` file that contains the exported private key. This is the name you provide to the `.key` file when exporting your private key. It contains the key in a readable text format. CleverTap uses this file (along with the passphrase) to decrypt any data you upload in encrypted form. > 🚧 > > ### > > Security Tip > > [](https://docs.clevertap.com/docs/file-upload-encryption#security-tip) > > Store the `private.key` file securely and share it only with authorized personnel or platforms. Anyone with access to this file and the passphrase can decrypt your data. #### Encrypt CSV File using PGP [](https://docs.clevertap.com/docs/file-upload-encryption#encrypt-csv-file-using-pgp) Once you have generated your PGP key pair, the next step is to encrypt the data file (`.csv` format) using your public key. This step ensures the file is secure during transit and can only be decrypted by CleverTap using the associated private key. To encrypt your CSV file, execute the command below: Encrypt CSV File gpg --encrypt --armor -r [email protected] --vv /Users/Desktop/filename.csv > 📘 > > ### > > Best Practice > > [](https://docs.clevertap.com/docs/file-upload-encryption#best-practice) > > Ensure the `.csv` file is final and formatted properly before encryption. Once encrypted, you cannot modify its contents. The encrypted file has a `.asc` file, for example, `users_data.csv.asc`. It is ready for upload along with the corresponding manifest file via SFTP. ### CleverTap-Generated Keys [](https://docs.clevertap.com/docs/file-upload-encryption#clevertap-generated-keys) CleverTap generates a PGP key pair for you and securely shares the public key, private key, and passphrase. It also provides a Key ID, a unique reference to identify the key set. > 📘 > > ### > > Request for Encryption Keys(Public & Private keys) and Key ID > > [](https://docs.clevertap.com/docs/file-upload-encryption#request-for-encryption-keyspublic--private-keys-and-key-id) > > Reach out to your CSM or raise a support ticket to receive the required credentials. #### Key ID [](https://docs.clevertap.com/docs/file-upload-encryption#key-id) CleverTap generates a KeyID, that you must include in your manifest file, after you upload your Encryption keys. This ID is required in your manifest file to allow CleverTap to identify and use the correct encryption key. **Sample IDs:** * Private Key ID: `1A7849F996BFD78569533B2CF55DEEE68995327F` * Key ID: `ec491319-9823-48cd-b6a1-6bb0bc666d75` Receive the Key ID [](https://docs.clevertap.com/docs/file-upload-encryption#receive-the-key-id) ---------------------------------------------------------------------------------------------------- Share your encryption keys (public & private) and passphrase with CleverTap. > 📘 > > ### > > Sharing keys & passphrase with CleverTap > > [](https://docs.clevertap.com/docs/file-upload-encryption#sharing-keys--passphrase-with-clevertap) > > Reach out to your CSM or raise a support ticket with the encryption keys & passphrase to receive the Key ID. Create the Manifest File [](https://docs.clevertap.com/docs/file-upload-encryption#create-the-manifest-file) ---------------------------------------------------------------------------------------------------------------- The manifest file contains metadata about your encrypted file, which conveys to CleverTap how to interpret the uploaded file. Ensure the `fileName` field uses the `.asc` extension. Create the manifest file in JSON/YAML format. The manifest file is critical for proper ingestion and mapping and holds the following information: * Reference to the encrypted .asc file path * The Key ID (provided by CleverTap) to indicate which key to use for decryption * Field mappings (for example, email → identity, timestamp → TS) * Data type (for example, profile or event) The following is the sample manifest file: JSON { "fileName": "parastest31.csv.asc", "type": "event", "columns": { "event_name": { "ctName": "evtName", "dataType": "String" }, "time_stamp": {"ctName": "ts", "dataType": "Integer"}, "identity": {"ctName": "identity", "dataType": "String"}, "item_name": { "ctName": "Name", "dataType": "String" }, "item_price": {"dataType": "Integer"}, "item_delivery_date": { "ctName": "DeliveryDate", "dataType": "String" } }, "clientEmail": "[[email protected]](mailto:[email protected])", "keyId": "ec491319-9823-48cd-b6a1-6bb0bc666d75"// Mention the KeyID here } Upload Encrypted File and Manifest via SFTP [](https://docs.clevertap.com/docs/file-upload-encryption#upload-encrypted-file-and-manifest-via-sftp) ------------------------------------------------------------------------------------------------------------------------------------------------------ Encrypt the .csv file using the public key before uploading vSFTP. The result is a ._asc_ file (for example, `users_data.csv.asc`) in PGP-encrypted format. This encrypted file is not readable without the private key. Connect to CleverTap's SFTP server using your private key: `sftp -i ~/.ssh/id_rsa username@serverURL` `put filename.csv.asc` `put file.manifest` > 🚧 > > ### > > File Size Limit > > [](https://docs.clevertap.com/docs/file-upload-encryption#file-size-limit) > > Ensure the encrypted file is less than 1 GB. Split larger files into smaller parts. Decryption and Ingestion by CleverTap [](https://docs.clevertap.com/docs/file-upload-encryption#decryption-and-ingestion-by-clevertap) ========================================================================================================================================== CleverTap processes the uploaded data securely and integrates it into the platform. CleverTap uses the provided Key ID to look up the following: * Private key * Passphrase The _.asc_ file is decrypted securely within CleverTap's environment. Once decrypted, the data is parsed using manifest mappings and ingested into user profiles or event streams. Email Notifications [](https://docs.clevertap.com/docs/file-upload-encryption#email-notifications) ====================================================================================================== You receive email notifications at the following stages of the File Upload Encryption process: * **File Pickup:** The system successfully picks up your file for processing. * **Successful Import:** The system uploads and processes your file successfully. * **Import Failure:** The system sends an email with error details, including the specific column affected and a clear description. Additional Resources [](https://docs.clevertap.com/docs/file-upload-encryption#additional-resources) ======================================================================================================== * For more information on File Upload Encryption, refer to the [Import via SFTP](https://developer.clevertap.com/docs/imports-via-sftp) . FAQs [](https://docs.clevertap.com/docs/file-upload-encryption#faqs) ======================================================================== ### What types of data can I import via SFTP? [](https://docs.clevertap.com/docs/file-upload-encryption#what-types-of-data-can-i-import-via-sftp) You can import **user data** and **event data** in CSV or JSON formats. ### What are the file size limits for File Upload Encryption? [](https://docs.clevertap.com/docs/file-upload-encryption#what-are-the-file-size-limits-for-file-upload-encryption) The encrypted file must be below 1 GB. Split larger files before uploading. ### Who generates the `key_id`? [](https://docs.clevertap.com/docs/file-upload-encryption#who-generates-the-key_id) CleverTap generates and shares the `key_id` after storing your keys. ### What is a manifest file, and why is it needed? [](https://docs.clevertap.com/docs/file-upload-encryption#what-is-a-manifest-file-and-why-is-it-needed) A manifest file is a JSON file that describes your uploaded data file. It includes the file name, data type, column mappings, and Key ID. ### Can I schedule recurring encrypted file uploads? [](https://docs.clevertap.com/docs/file-upload-encryption#can-i-schedule-recurring-encrypted-file-uploads) Yes, you can schedule recurring encrypted file uploads. CleverTap ingests the file each time it is uploaded. ### How long does data import take? [](https://docs.clevertap.com/docs/file-upload-encryption#how-long-does-data-import-take) Data import typically completes within a few minutes; however, the exact time may vary depending on the file size and system load. Once processing is complete, you will receive an email notification. ### Can I import multiple files at once? [](https://docs.clevertap.com/docs/file-upload-encryption#can-i-import-multiple-files-at-once) Yes, but each file must be accompanied by its manifest file. ### How many encryption keys can I store or use? [](https://docs.clevertap.com/docs/file-upload-encryption#how-many-encryption-keys-can-i-store-or-use) You can store and manage up to 20 keys per account. Updated about 2 months ago * * * Ask AI --- # CPaaS Encryption Overview [](https://docs.clevertap.com/docs/cpaas-encryption#overview) ========================================================================== CleverTap supports full payload encryption for outbound engagement messages and inbound callbacks exchanged with Communication Platform as a Service (CPaaS) providers. This feature ensures that sensitive customer data, such as email addresses, phone numbers, and message content, remains protected and compliant with enterprise security standards. With CPaaS encryption enabled, CleverTap encrypts all engagement payloads before sending them to the CPaaS provider, and the CPaaS provider encrypts all callbacks before sending them back to CleverTap. CPaaS encryption is currently supported for the following communication channels: * [Email](doc:cpaas-encryption#email-encryption-setup) * [SMS](doc:cpaas-encryption#sms-encryption-setup) CleverTap’s universal CPaaS encryption framework supports any HTTP-based CPaaS integration configured through the Generic HTTP API. Encryption Workflow [](https://docs.clevertap.com/docs/cpaas-encryption#encryption-workflow) ------------------------------------------------------------------------------------------------ CleverTap secures communication between its platform and CPaaS providers by encrypting outbound message payloads and decrypting inbound callbacks. This workflow ensures complete end-to-end encryption for all supported channels, _Email_ and _SMS_, throughout message delivery and reporting. The process includes the following steps: 1. **Encryption Keys** CleverTap generates AES-256 encryption keys and securely shares them with CPaaS providers through a controlled key exchange process. Each key is versioned to ensure secure rotation and backward compatibility. 2. **Outbound Encryption (CleverTap → CPaaS)** CleverTap encrypts the entire outbound message payload before transmitting it to the CPaaS provider through the Generic HTTP API. Each encrypted payload includes the following: | Field | Description | Data Type | | --- | --- | --- | | `ciphertext` | Encrypted email content | String | | `X-AES-IV` | Initialization vector, sent as a request header | String | | `X-AES-KEY-VERSION` | Identifier for the key version used to encrypt
the payload, sent as a request header | String | 3. **Callback Encryption (CPaaS → CleverTap)** The CPaaS provider encrypts callback payloads (such as delivery reports, bounce events, or engagement data) before sending them back to CleverTap. CleverTap decrypts these payloads using the key version and IV specified in the callback headers. 4. **Decryption and Processing** CleverTap decrypts the callback data received, validates its integrity, and updates message delivery, engagement metrics, or status reports in real time. This unified workflow defines how encrypted data is exchanged in both directions, ensuring that all sensitive user and message information remains protected from transmission to reporting. Configuration and Key Management [](https://docs.clevertap.com/docs/cpaas-encryption#configuration-and-key-management) ========================================================================================================================== To enable CPaaS encryption, you must configure the encryption keys that secure data exchange between CleverTap and your CPaaS provider. This section explains how to obtain and manage these keys to maintain a secure and reliable encryption framework. Follow these steps to complete the setup: 1. [Obtain Encryption Keys](doc:cpaas-encryption#obtain-encryption-keys) 2. [Manage Keys](doc:cpaas-encryption#manage-keys) Obtain Encryption Keys [](https://docs.clevertap.com/docs/cpaas-encryption#obtain-encryption-keys) ------------------------------------------------------------------------------------------------------ Before you enable CPaaS encryption, you must obtain encryption keys that secure all data exchanged between CleverTap and the CPaaS provider. These keys form the foundation of the encryption framework and ensure that each payload, including outbound messages and inbound callbacks, is encrypted and decrypted correctly. CleverTap manages this process by the following: * Generating and maintaining AES-256 encryption keys internally. * Assigning each key a unique UUID-based version identifier. * Sharing the keys securely with the CPaaS provider through an approved exchange process. * Ensuring CleverTap and the provider securely store the keys within their environments. Manage Keys [](https://docs.clevertap.com/docs/cpaas-encryption#manage-keys) -------------------------------------------------------------------------------- CleverTap manages the complete encryption key lifecycle to maintain continuous data protection and compliance with enterprise-grade security standards. The following are the essential key management practices: * Keys are stored using CleverTap’s enterprise-grade secret management systems. * Keys are securely shared with each CPaaS provider during setup. * Each encrypted payload includes a version identifier that allows CleverTap to fetch the correct key for decryption. ### Key Rotation [](https://docs.clevertap.com/docs/cpaas-encryption#key-rotation) CleverTap periodically rotates encryption keys to maintain a high level of security without disrupting service. Each payload’s key version ensures backward compatibility, allowing CleverTap to decrypt messages encrypted with older keys until all in-flight payloads are processed. Key rotation intervals are managed internally by CleverTap to ensure seamless continuity and security compliance. Channel-Specific Setup [](https://docs.clevertap.com/docs/cpaas-encryption#channel-specific-setup) ====================================================================================================== The Channel-Specific Setup section provides detailed instructions for enabling encryption on each communication channel. It explains configuration fields, authentication options, and example payloads that ensure secure data exchange between CleverTap and CPaaS providers. Once encryption is enabled, it applies automatically to outbound requests and inbound callbacks, ensuring end-to-end data security. The setup section of each channel outlines the configuration steps, encryption behavior, and testing procedures required to enable CPaaS encryption. Email Encryption Setup [](https://docs.clevertap.com/docs/cpaas-encryption#email-encryption-setup) ------------------------------------------------------------------------------------------------------ The Email Channel Setup page helps administrators configure authentication and encryption settings for email campaigns. Users can access it under _Settings > Channels > Email > Setup_, where they can define sender details, authentication type, and enable encryption for outbound email payloads. ### Authentication Configuration [](https://docs.clevertap.com/docs/cpaas-encryption#authentication-configuration) Use this section to define sender details and enable encryption for outbound emails. | Field | Description | Required/Optional | | --- | --- | --- | | Authentication Type | Choose between _No Authentication_ or _Basic Authentication_, depending on the provider. | Required | | Default From Name | Display name visible to recipients. | Optional | | Default From Email Address | Sender’s email address (for example, `[[email protected]](https://docs.clevertap.com/cdn-cgi/l/email-protection) `). | Required | | Default Reply-to Email Address | Address for replies (for example, `[[email protected]](https://docs.clevertap.com/cdn-cgi/l/email-protection) `). | Optional | | Email Preference Center | Select a preference center (for example, _CleverTap Preference Center_). | Optional | | Add custom key–value pairs in campaigns | Include metadata or personalization fields. | Optional | | Enable encryption | Encrypts all outbound email payloads when selected. | Required | > 📘 > > ### > > Enabling Encryption for Email > > [](https://docs.clevertap.com/docs/cpaas-encryption#enabling-encryption-for-email) > > To ensure all outbound email payloads are securely encrypted, make sure to select the **Enable encryption** before saving your settings. The following image shows the _Email Setup_ page in the CleverTap dashboard, where users can enable encryption and define authentication settings for their email channel. ![Enable Encryption in Email Setup](https://files.readme.io/161f3cae1299cf36dc14d95a24c662ba0b854a5f62f338b1cc0fdcff2ef39810-image.png) Enable Encryption in Email Setup When encryption is enabled, CleverTap encrypts all outbound email payloads using AES-256 before sending them to the CPaaS provider. This ensures message and user data confidentiality. ### Payload Encryption [](https://docs.clevertap.com/docs/cpaas-encryption#payload-encryption) CleverTap encrypts both outbound email payloads and inbound callbacks using AES-256 symmetric encryption. **Outbound Request Example (CleverTap → CPaaS)** When CleverTap sends an encrypted email payload, it follows this process: 1. CleverTap retrieves the active encryption key and generates a random initialization vector (IV). 2. CleverTap encrypts the email content and metadata using AES-256 encryption. 3. CleverTap includes the ciphertext, IV, and key version in the request payload. 4. CleverTap transmits the encrypted payload securely to the CPaaS provider through the Generic HTTP API. **Encrypted Callback Example (CPaaS → CleverTap)** When the CPaaS provider sends an encrypted callback to CleverTap: 1. CleverTap identifies the correct key using the `X-AES-KEY-VERSION`. 2. CleverTap decrypts the payload using AES-256 and the provided initialization vector (IV). 3. CleverTap parses message delivery, open, or bounce data and updates campaign analytics accordingly. SMS Encryption Setup [](https://docs.clevertap.com/docs/cpaas-encryption#sms-encryption-setup) -------------------------------------------------------------------------------------------------- The SMS Channel Setup enables administrators to configure authentication and encryption for SMS campaigns. Users can access this under _Settings > Channels > SMS > Setup_ where they define provider details, authentication type, and encryption preferences for outbound and callback payloads. ### Provider Configuration [](https://docs.clevertap.com/docs/cpaas-encryption#provider-configuration) The following table lists the various fields while configuring the provider: | Field | Description | | --- | --- | | Provider | Select _Other (Generic)_. | | Nickname | Enter a name for this configuration (for example, _encrypt_). | | Delivery Report Callback URL | Endpoint for delivery status updates. | | Inbound Message Callback URL | Endpoint for inbound SMS messages (if applicable). | | Request Type | Select _POST_. | | HTTP Endpoint | Enter the CPaaS provider’s endpoint for outbound requests. | ### Authentication Configuration [](https://docs.clevertap.com/docs/cpaas-encryption#authentication-configuration-1) Under the _Authentication_ tab, perform the steps below: 1. Choose the authentication type — _No Authentication_, _Basic Authentication_, or _OAuth 2.0._ 2. (Optional) Select _Custom Key–Value pairs in campaigns_ to include additional fields. 3. Select the **Enable encryption** to activate AES-256 for outbound requests and accept encrypted callbacks. > 📘 > > ### > > Enabling Encryption for SMS > > [](https://docs.clevertap.com/docs/cpaas-encryption#enabling-encryption-for-sms) > > To ensure all outbound SMS payloads are securely encrypted, make sure to select the **Enable encryption** before saving your settings. The following image shows the _SMS Setup_ page in the CleverTap dashboard, where administrators can configure authentication and enable encryption for SMS campaigns. ![Enable Encryption in SMS Setup](https://files.readme.io/92e990e2854c12f76f0141c2822e032840f9fdb4c206fc33fd2f496dcb4bc9ef-image.png) Enable Encryption in SMS Setup ### Payload Encryption [](https://docs.clevertap.com/docs/cpaas-encryption#payload-encryption-1) CleverTap encrypts both outbound SMS payloads and inbound callbacks using AES-256 symmetric encryption. **Outbound Request Example (CleverTap → CPaaS)** When CleverTap sends an SMS request to the CPaaS provider, Clevertap follows a secure encryption process to protect message data during transmission: 1. CleverTap retrieves the active encryption key and generates a random initialization vector (IV). 2. CleverTap encrypts the message payload using AES-256 encryption. 3. CleverTap includes the ciphertext, IV, and key version in the HTTP request payload. 4. CleverTap transmits the encrypted payload securely to the CPaaS provider. **Encrypted Callback Example (CPaaS → CleverTap)** When the CPaaS provider sends an encrypted callback to CleverTap: 1. CleverTap identifies the correct key using the `X-AES-KEY-VERSION`. 2. CleverTap decrypts the payload using AES-256 and the provided initialization vector (IV). 3. CleverTap parses and records delivery or inbound message details in the platform. ### Testing and Validation [](https://docs.clevertap.com/docs/cpaas-encryption#testing-and-validation) After configuration, validate encryption to ensure successful setup and accurate callback processing. Follow the steps below to test and validate the encryption: 1. Send a test SMS from CleverTap. 2. Verify that the CPaaS provider receives an encrypted ciphertext instead of plain text. 3. Confirm that callback payloads from the provider are also encrypted. 4. Ensure that delivery and engagement metrics display accurately after decryption. FAQs [](https://docs.clevertap.com/docs/cpaas-encryption#faqs) ================================================================== ### Who manages encryption keys? [](https://docs.clevertap.com/docs/cpaas-encryption#who-manages-encryption-keys) CleverTap generates, manages, and securely shares all encryption keys with CPaaS providers. ### Does CleverTap encrypt the full payload? [](https://docs.clevertap.com/docs/cpaas-encryption#does-clevertap-encrypt-the-full-payload) Yes. The entire outbound and inbound payload is encrypted using AES-256 symmetric encryption. ### Which encryption standard is used? [](https://docs.clevertap.com/docs/cpaas-encryption#which-encryption-standard-is-used) CleverTap uses AES-256-CBC encryption with a random initialization vector (IV). ### How does key rotation work? [](https://docs.clevertap.com/docs/cpaas-encryption#how-does-key-rotation-work) Each payload includes a key version. CleverTap retrieves the corresponding key and decrypts the payload seamlessly, ensuring no service disruption. ### Can other channels use CPaaS encryption? [](https://docs.clevertap.com/docs/cpaas-encryption#can-other-channels-use-cpaas-encryption) Encryption is currently available for _Email_ and _SMS._ ### Is there a UI to manage keys? [](https://docs.clevertap.com/docs/cpaas-encryption#is-there-a-ui-to-manage-keys) No. Key management is handled internally by CleverTap. Updated about 2 months ago * * * Ask AI --- # Audit Logs Overview [](https://docs.clevertap.com/docs/audit-logs#overview) ==================================================================== Audit Logs in CleverTap record a detailed trail of all security-relevant actions in your account. These logs show who performed an action, what changes occurred, and when the activity happened. You can use Audit Logs to monitor access, investigate incidents, and comply with security and regulatory requirements. You can view these logs directly on the dashboard or export them as a CSV file for offline review. Accessing Audit Logs [](https://docs.clevertap.com/docs/audit-logs#accessing-audit-logs) ============================================================================================ You can access and review Audit Logs from the CleverTap dashboard. To view the logs, do the following: 1. Log in to your CleverTap account. 2. Navigate to **Settings > Audit Logs**. 3. Apply the date range to filter and view the logs for a specific period. 4. Use **Download All Logs** to export logs in CSV format. ![Audit Logs in CleverTap](https://files.readme.io/b7b52012580073a2eda9b79f2782a4b035a9e8e03f53454e6a5d55c9ef4a7974-image.png) Audit Logs at CleverTap The Audit Logs dashboard displays a structured table of activities. The logs show which user performed an action, what resource the action affected, and where the action originated. Log Fields [](https://docs.clevertap.com/docs/audit-logs#log-fields) ------------------------------------------------------------------------ Each log entry includes the following fields: | Field | Description | | --- | --- | | **Date** | Timestamp of the action, shown in your account's time zone. | | **Email** | The email address of the user who performed the action. | | **Action** | The type of action performed, such as Login, Campaign, or Export. | | **Action ID** | The unique identifier of the impacted resource, such as a Campaign ID. | | **Description** | A descriptive message about the action, such as _Saved Campaign_. | | **IP Address** | The IP address where the action originated. | The following are examples of recorded activity: * A user logging in from a specific IP address. * A campaign created, saved, or stopped with its campaign ID. * A data export initiated by a user. Events Captured [](https://docs.clevertap.com/docs/audit-logs#events-captured) ---------------------------------------------------------------------------------- Audit Logs record activities across multiple categories to provide complete visibility into account actions. The following are the Audit logs recorded in CleverTap: * [Authentication Logs](doc:audit-logs#authentication-logs) * [Role and Permission Changes](doc:audit-logs#role-and-permission-changes) * [Privileged and Sensitive Activities](doc:audit-logs#privileged-and-sensitive-activities) * [System and Integration Events](doc:audit-logs#system-and-integration-events) ### Authentication Logs [](https://docs.clevertap.com/docs/audit-logs#authentication-logs) These logs capture user login and access activity. * User login (success) * User logout * Session expired * Password reset * User account locked > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/audit-logs#note) > > Auth0 maintains Authentication failures, MFA attempts, and unusual login patterns, which are not included in CleverTap Audit Logs. ### Role and Permission Changes [](https://docs.clevertap.com/docs/audit-logs#role-and-permission-changes) These logs capture changes that affect user roles and access. * User invited to a project * User removed from a project * Roles created or deleted * Role assignments or removals * Role permissions details * Administrative privilege escalations ### Privileged and Sensitive Activities [](https://docs.clevertap.com/docs/audit-logs#privileged-and-sensitive-activities) These logs capture high-impact actions that affect configurations, security, or data. * Data export or download initiated * Project configuration changed * API key or token created or revoked * Audit Log accessed ### System and Integration Events [](https://docs.clevertap.com/docs/audit-logs#system-and-integration-events) These logs capture system-driven activities and integration-level changes. * Campaign created, updated, or deleted * Journey created, updated, or deleted * Segment created, updated, or deleted * Integration connected or disconnected * API access logs Exporting Audit Logs in CSV [](https://docs.clevertap.com/docs/audit-logs#exporting-audit-logs-in-csv) ---------------------------------------------------------------------------------------------------------- You can export Audit Logs from the dashboard to preserve records or perform offline analysis. To export audit logs in CSV, perform the steps below: 1. Click **Download All Logs** to export the complete set of logs in CSV format. 2. Exported CSV files include the same fields as the dashboard view. 3. Export logs periodically if you require long-term retention or external analysis. Export Audit Logs into S3/GCP/Azure [](https://docs.clevertap.com/docs/audit-logs#export-audit-logs-into-s3gcpazure) ------------------------------------------------------------------------------------------------------------------------ CleverTap allows you to automatically export Audit Logs to AWS S3, Google Cloud Storage, or Microsoft Azure Blob Storage, with logs delivered once every 24 hours at midnight (account time zone), enabling long-term retention, compliance, and integration with SIEM tools. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/audit-logs#note-1) > > To enable the Audit Logs into S3/GCP/Azure, reach out to your Customer Support Manager. FAQs [](https://docs.clevertap.com/docs/audit-logs#faqs) ============================================================ ### Do Audit Logs include failed login attempts? [](https://docs.clevertap.com/docs/audit-logs#do-audit-logs-include-failed-login-attempts) No. Auth0 manages authentication failures. Contact CleverTap Support for these records. ### Can I stream Audit Logs to my SIEM system? [](https://docs.clevertap.com/docs/audit-logs#can-i-stream-audit-logs-to-my-siem-system) Yes. You can configure automated exports to AWS S3, Google Cloud, or Microsoft Azure and connect them to your SIEM tools for monitoring. ### Who can access Audit Logs? [](https://docs.clevertap.com/docs/audit-logs#who-can-access-audit-logs) Only account admins can view, download, and configure exports for Audit Logs. Updated about 2 months ago * * * Ask AI --- # PII Tokenization Overview [](https://docs.clevertap.com/docs/pii-tokenization#overview) ========================================================================== CleverTap’s PII Tokenization feature addresses a core enterprise challenge of how to utilize personal data for engagement without storing or processing PII within CleverTap’s infrastructure. Tokenization solves this by replacing PII with tokens, such as tokenized email addresses or phone numbers. CleverTap processes only these tokens, while the PII remains securely stored in the customer’s environment. Access to PII is controlled through a secure vault and is used only during message delivery through approved, secure CPaaS integrations. This ensures that PII is accessed only at the time of sending, for delivery purposes, and only through compliant pipelines. Significance of Tokenization [](https://docs.clevertap.com/docs/pii-tokenization#significance-of-tokenization) ================================================================================================================== Tokenization enables enterprises to utilize CleverTap for personalization, segmentation, and engagement without transferring or storing PII within CleverTap systems. * _Compliance with Regulations_: Many countries enforce strict rules regarding the storage and transfer of PII. With Tokenization, CleverTap never stores PII. * _Enterprise Security_: Sensitive data remains within your controlled systems, significantly reducing the risk of exposure. * _Continued Engagement_: You can still personalize campaigns and journeys using tokens. For example, CleverTap can segment by _tokenized email domain_ or _tokenized phone region_ without requiring PII. * _Layered Protection_: Tokenization can be used in conjunction with encryption to add a layer of security. Tokenization Framework [](https://docs.clevertap.com/docs/pii-tokenization#tokenization-framework) ====================================================================================================== The Tokenization framework includes the following components: * _Vault_: A secure token–PII mapping store (CT Vault or customer-managed), containing a protected token mapping table. * _Dispatcher_: A service that is either CleverTap-hosted or customer-hosted, resolves tokens into PII only at send time for message delivery. This removes the need for customers to build token resolution logic. Tokenization occurs only once, when the vault first receives PII and returns the corresponding tokens. Token resolution occurs only at message dispatch. Tokenization introduces additional latency as it requires network communication and vault lookups. The following image illustrates the PII tokenization workflow: ![PII Tokenization Workflow](https://files.readme.io/2cfea272c169283a176554e63e275f50e14437079ef974c0685f5288fc33193d-image.png) PII Tokenization Workflow Sample Tokenization Workflow [](https://docs.clevertap.com/docs/pii-tokenization#sample-tokenization-workflow) ------------------------------------------------------------------------------------------------------------------ An email address such as [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#add8dec8dfedc8d5ccc0ddc1c883cec2c0) can be tokenized into a surrogate value such as [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#375245434e77505b56584e4343194d4f54) . At send time, either CleverTap's Off-Prem Dispatch Server or the customer’s On-Prem Dispatch Server makes a [Get Value API](https://developer.clevertap.com/docs/get-value-api) request to the customer’s token vault. The vault returns the corresponding PII value, which is then used in the final payload sent to the CPaaS provider for delivery. Supported Data for Tokenization [](https://docs.clevertap.com/docs/pii-tokenization#supported-data-for-tokenization) ======================================================================================================================== You can tokenize the following data: * _Personally Identifiable Information (PII)_: Personal information such as email addresses and phone numbers. * _Protected Health Information (PHI)_: If operating in regulated healthcare industries. * _Other sensitive attributes_: Any information that must remain in your systems. Non-sensitive user or event attributes, such as city, device type, or engagement preferences, can still be stored directly in CleverTap for segmentation and reporting. Deployment Models [](https://docs.clevertap.com/docs/pii-tokenization#deployment-models) ============================================================================================ The tokenization workflow can be implemented using different deployment models, depending on where message dispatch and token resolution occur. The following are the two dispatch models supported: * _On-Prem Dispatch_: Dispatcher runs within the customer’s infrastructure. PII never leaves the customer environment. * _Off-Prem Dispatch_: Dispatcher runs within CleverTap. PII is resolved securely at the time of sending; however, CleverTap does not store it. Customer data undergoes a single tokenization process; the dispatch model only changes where token resolution occurs. Off-Prem Message Dispatch [](https://docs.clevertap.com/docs/pii-tokenization#off-prem-message-dispatch) ============================================================================================================ In the Off-Prem model, CleverTap manages message dispatch while the customer retains complete control of PII. The following steps describe how tokenized data is processed and resolved during campaign execution. 1. Customer app sends PII to the token vault. 2. Vault API returns tokens. 3. Tokens are sent to CleverTap. 4. During message execution, CleverTap’s message dispatch server requests PII from the token vault using the [Get Value](https://developer.clevertap.com/docs/get-value-api) API. 5. CleverTap sends the final payload with resolved PII to the CPaaS provider for message delivery. > 📘 > > ### > > **Note** > > [](https://docs.clevertap.com/docs/pii-tokenization#note) > > PII flows only transiently in memory during dispatch and is not stored, even during delays or retries. On-Prem Message Dispatch [](https://docs.clevertap.com/docs/pii-tokenization#on-prem-message-dispatch) ========================================================================================================== The following sequence summarizes how tokenized customer data is transferred from the customer environment to CleverTap and then to the customer’s On-Prem dispatch server. 1. Customer app sends PII to the token vault. 2. Vault returns tokens. 3. Tokens are sent to CleverTap. 4. During dispatch, CleverTap triggers the customer-hosted On-Prem Dispatch Server using a secure HTTPS request. The On-Prem dispatch server resolves tokens via the token vault and delivers the final payload to the CPaaS provider. This approach enables customers to achieve the following goals: * Maintain compliance with enterprise data policies. * Continue using CleverTap for Segments, Personalization, Campaigns, Journeys, and Reporting. * Ensure sensitive data is safeguarded within the customer’s environment. > 📘 > > ### > > **Note** > > [](https://docs.clevertap.com/docs/pii-tokenization#note-1) > > PII never leaves the customer’s infrastructure. Tokenization Components [](https://docs.clevertap.com/docs/pii-tokenization#tokenization-components) ======================================================================================================== The following table shows the various components involved in Tokenization: | **Component** | **Description** | | --- | --- | | Token Vault Database | Secures token–PII mapping store controlled by the customer. | | Get Token API | Converts PII to tokens before ingestion into CleverTap. | | Resolve Token API | Returns PII from tokens during message dispatch. | | Message Dispatcher | Resolves tokens at send time; may run Off-Prem or On-Prem. | Setup [](https://docs.clevertap.com/docs/pii-tokenization#setup) ==================================================================== The [setup](doc:pii-tokenization#enable-tokenization) steps guide you through implementation. Before enabling Tokenization, ensure that you follow the prerequisites. Prerequisites [](https://docs.clevertap.com/docs/pii-tokenization#prerequisites) ------------------------------------------------------------------------------------ To implement PII Tokenization successfully, check the following requirements: * **Token Vault Database** * A secure vault deployed in your environment (Oracle, GCP, or equivalent). * HTTPS (SSL, port 443) enabled; self-signed certificates are not supported. * **API Readiness** * REST APIs must support at least 50 concurrent connections. * Each API call must be able to resolve batches of up to 500 tokens per request. * API responses must complete within 60 seconds. * Support for retries with exponential backoff in case of transient failures. * **Authentication & Security** * Vault APIs must use secure authentication (Keycloak). * Subscriber key (or customer ID) must exist for each user profile. * All logging must exclude raw PII and store only tokens or metadata. * **Operational Readiness** * Infrastructure must be monitored for uptime and performance. * STOP/Unsubscribe handling must work via tokens. * Production connectivity must be tested with CleverTap dispatch servers (Off-Prem) or customer-managed On-Prem Dispatch Server. Enable Tokenization [](https://docs.clevertap.com/docs/pii-tokenization#enable-tokenization) ------------------------------------------------------------------------------------------------ The following steps outline the setup required to enable secure Tokenization with CleverTap, from preparing your token vault to integrating the SDK, configuring message dispatch, and validating the whole workflow before production rollout: 1. [Prepare the Token Vault](doc:pii-tokenization#prepare-the-token-vault) 2. [Configure Message Dispatch](doc:pii-tokenization#configure-message-dispatch) 3. [Test the Integration](doc:pii-tokenization#test-the-integration) 4. [Rollout and Monitor](doc:pii-tokenization#rollout-and-monitor) ### Prepare the Token Vault [](https://docs.clevertap.com/docs/pii-tokenization#prepare-the-token-vault) Set up a secure foundation to store, manage, and audit all tokenized PII in your environment. * Deploy a secure Vault DB in your environment and enable logging and monitoring for token transactions. * Ensure logging and monitoring are enabled for all token transactions. ### Configure Message Dispatch [](https://docs.clevertap.com/docs/pii-tokenization#configure-message-dispatch) Enable the dispatch layer to resolve tokens into PII during message delivery securely. * **Off-Prem Dispatch** * Allow CleverTap’s dispatch server to securely call the [Get Value API](https://developer.clevertap.com/docs/get-value-api) during message delivery. * Ensure network allowlisting is configured for CleverTap’s IP ranges. * **On-Prem Dispatch** * Deploy and configure the On-Prem Dispatch Server to resolve tokens and deliver payloads to CPaaS providers. * Check that it can access the Token Vault and resolve tokens into PII for CPaaS delivery. #### Callback Process [](https://docs.clevertap.com/docs/pii-tokenization#callback-process) When messages are dispatched via CPaaS, the token vault or dispatch server must send asynchronous callbacks to CleverTap with delivery status updates. * Callbacks must contain message IDs, not PII. * Requests must be authenticated (API key or mTLS). * Failed callbacks must use retry logic with exponential backoff. ### Test the Integration [](https://docs.clevertap.com/docs/pii-tokenization#test-the-integration) Run end-to-end tests covering the following: * Token creation * Token resolution * Campaign or journey execution * STOP/unsubscribe workflows Verify that CleverTap stores only tokens and non-PII attributes. ### Rollout and Monitor [](https://docs.clevertap.com/docs/pii-tokenization#rollout-and-monitor) Move to production with safeguards in place and continuous monitoring of token operations. * Enable Tokenization for production traffic. * Monitor the following continuously: * Vault API latency and error rates * Token creation/expiry/rotation logs * Dispatch SLAs (delivery times, retries) * Establish incident handling processes for token resolution failures. PII-Based Engagement Workflow [](https://docs.clevertap.com/docs/pii-tokenization#pii-based-engagement-workflow) -------------------------------------------------------------------------------------------------------------------- The following workflow steps provide the data flow when sending a Campaign or Journey with PII Tokenization enabled. 1. [Triggers the Campaign](doc:pii-tokenization#triggers-the-campaign) 2. [Retrieves Tokenized User Data](doc:pii-tokenization#retrieves-tokenized-user-data) 3. [Prepares the Message for Dispatch](doc:pii-tokenization#prepares-the-message-for-dispatch) 4. [Delivers the Dispatch Request to CPaaS](doc:pii-tokenization#delivers-the-dispatch-request-to-cpaas) 5. [Deletes Resolved PII Immediately](doc:pii-tokenization#deletes-resolved-pii-immediately) 6. [Delivers the Message through CPaaS](doc:pii-tokenization#delivers-the-message-through-cpaas) 7. [Receives Delivery Reports from CPaaS](doc:pii-tokenization#receives-delivery-reports-from-cpaas) 8. [Updates Campaign Analytics](doc:pii-tokenization#updates-campaign-analytics) #### Triggers the Campaign [](https://docs.clevertap.com/docs/pii-tokenization#triggers-the-campaign) A campaign or journey is triggered in CleverTap based on segmentation, user activity, or event rules. #### Retrieves Tokenized User Data [](https://docs.clevertap.com/docs/pii-tokenization#retrieves-tokenized-user-data) CleverTap uses tokens and non-PII attributes stored on its platform to identify qualified users for the campaign. #### Prepares the Message for Dispatch [](https://docs.clevertap.com/docs/pii-tokenization#prepares-the-message-for-dispatch) Depending on your deployment model: * _Off-Prem_: CleverTap’s Message Dispatch Server requests PII values from your token vault using the [Get Value API](https://developer.clevertap.com/docs/get-value-api) . * _On-Prem_: Your On-Prem Dispatch Server retrieves PII values directly from the token vault. #### Delivers the Dispatch Request to CPaaS [](https://docs.clevertap.com/docs/pii-tokenization#delivers-the-dispatch-request-to-cpaas) * The resolved PII (for example, email address or mobile number) is combined with campaign content. * The complete payload is sent to your configured CPaaS provider (for example, SMS, Email, WhatsApp, Push). #### Deletes Resolved PII Immediately [](https://docs.clevertap.com/docs/pii-tokenization#deletes-resolved-pii-immediately) * If Off-Prem dispatch is used, CleverTap processes the resolved PII only in-memory during message delivery and does not store it. * In the On-Prem model, CleverTap never accesses the resolved PII. #### Delivers the Message through CPaaS [](https://docs.clevertap.com/docs/pii-tokenization#delivers-the-message-through-cpaas) The CPaaS provider delivers the message to the end customer. #### Receives Delivery Reports from CPaaS [](https://docs.clevertap.com/docs/pii-tokenization#receives-delivery-reports-from-cpaas) * The CPaaS provider returns delivery and engagement status data (for example, delivered, failed, read). * CleverTap maps this data back to the campaign using unique message IDs. * Any PII present in provider receipts is discarded; only anonymized delivery insights are stored in CleverTap. #### Updates Campaign Analytics [](https://docs.clevertap.com/docs/pii-tokenization#updates-campaign-analytics) CleverTap updates campaign dashboards and reports with delivery metrics, conversions, and engagement insights, all without referencing raw PII. Roles and Responsibilities [](https://docs.clevertap.com/docs/pii-tokenization#roles-and-responsibilities) -------------------------------------------------------------------------------------------------------------- To successfully implement Tokenization, both the customer and CleverTap have specific roles. The table below summarizes the division of responsibilities: | **Party** | **Responsibilities** | | --- | --- | | Customer | Tokenize all historic PII records.
\- Call Get Token API before sending new PII into CleverTap.
\- Provide and maintain infrastructure (Vault DB, On-Prem server if required, and network).
\- Handle unsubscribe and STOP requests using tokens.
\- Log request and response payloads for auditing and compliance. | | CleverTap | Provide the Vault API for token exchange.
\- Provide and support the On-Prem Dispatcher (if applicable).
\- Ensure CleverTap processes and stores only tokens and non-PII data. | FAQs [](https://docs.clevertap.com/docs/pii-tokenization#faqs) ================================================================== ### Does CleverTap store PII? [](https://docs.clevertap.com/docs/pii-tokenization#does-clevertap-store-pii) No. CleverTap stores only tokens and non-PII data. ### Can Tokenization be combined with Encryption? [](https://docs.clevertap.com/docs/pii-tokenization#can-tokenization-be-combined-with-encryption) Yes. For example, some enterprises encrypt both the Vault DB and API calls while also using Tokenization. Updated about 2 months ago * * * Ask AI --- # Bring Your Own Key (BYOK) Encryption Overview [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#overview) ============================================================================================ CleverTap’s Bring Your Own Key (BYOK) encryption allows customers to manage their own encryption keys for securing personally identifiable information (PII) stored in CleverTap. This feature handles all key lifecycle operations, including generation, storage, rotation, and versioning, by integrating directly with the customer’s Key Management Service (KMS). This approach ensures customers retain control of their encryption keys, meet data governance and privacy requirements, and benefit from automated key rotation and version management that align with enterprise security standards. Prerequisites [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#prerequisites) ====================================================================================================== Before configuring BYOK, check that the following conditions are met: * The PII Encryption feature is enabled, as this is a paid add-on. * Customer KMS credentials and permissions for key generation and retrieval are available. BYOK Architecture [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#byok-architecture) ============================================================================================================== CleverTap’s BYOK encryption relies on a dedicated key management system that manages keys generated in customer vaults. Core Functions [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#core-functions) -------------------------------------------------------------------------------------------------------- The key management system performs the following functions in the BYOK workflow: * **Key Generation:** Generates encryption keys in the customer KMS. Each key has a name, version reference, and rotation frequency. * **Key Storage:** Optionally stores encrypted keys locally for a configurable Time-To-Live (TTL) period to reduce KMS request costs. The stored record includes the encrypted key. * **Key Rotation:** Supports both scheduled and manual rotations. Rotation frequency can be configured (for example, 365 days by default). Force rotation can be triggered on demand. * **Key Versioning:** Maintains key versions locally. * **Key Validation:** Validates the latest key version through various checks before making it available to internal services. Setup [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#setup) ====================================================================================== The BYOK setup involves several steps to ensure CleverTap has access to the keys managed by the customer's KMS. 1. Customer shares their AWS KMS ARN credentials. 2. Customer provisions an IAM policy to grant CleverTap servers access to their KMS. 3. CleverTap generates the encryption key in the customer KMS. 4. CleverTap fetches the key from the customer KMS to encrypt data. FAQs [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#faqs) ==================================================================================== Find answers to common questions about integrating and managing BYOK in CleverTap’s backend systems. ### How does key versioning work? [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#how-does-key-versioning-work) Each time a key rotates, a new encrypted key record is generated and stored locally with an incremented version number. Older versions remain stored for audit purposes. ### What is stored locally for each key? [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#what-is-stored-locally-for-each-key) Each record contains the encrypted key body (the actual secret in encrypted form), the initialization vector (IV, a random value used in encryption), version number, and rotation metadata (information about when and how the key was changed). ### Can rotation be scheduled for shorter intervals? [](https://docs.clevertap.com/docs/bring-your-own-key-byok-encryption#can-rotation-be-scheduled-for-shorter-intervals) Yes. The rotation frequency can be configured in the customer KMS during key creation or modified later. Updated about 2 months ago * * * Ask AI --- # Automated Audit Log Exports for SIEM Overview [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#overview) ============================================================================================== A Security Information and Event Management (SIEM) system enables organizations to collect, analyze, and correlate security data from multiple sources in real-time. It allows centralized visibility into potential threats, supports faster incident response, and simplifies compliance reporting. CleverTap Audit Logs capture every security-relevant action in your account, including user access, configuration changes, and data exports. With the SIEM Integration for Audit Logs, you can automatically export these records to your preferred storage and analytics systems (AWS S3, Google Cloud Storage, or Microsoft Azure Blob Storage). Once Audit Logs are exported on a set schedule, they can be integrated with SIEM tools such as Splunk, IBM QRadar, or Azure Sentinel on your end for unified monitoring, threat detection, and compliance reporting. Audit Log exports are delivered once every 4 hours (based on your account's time zone). > 📘 > > ### > > **Add-on Feature** > > [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#add-on-feature) > > This feature is available as a paid add-on. To enable Automated Audit Log Exports for SIEM, contact your sales representative. Advantages [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#advantages) -------------------------------------------------------------------------------------------------- The SIEM integration for Audit Logs offers several key advantages that enhance security visibility, compliance, and operational efficiency. * **Continuous Security Monitoring**: Feed logs directly to SIEM tools for anomaly detection and incident investigation. * **Regulatory Compliance**: Retain detailed records to meet audit and governance requirements. * **Custom Retention Policies**: Maintain logs in your own bucket for the duration your organization requires. * **Centralized Insights**: Correlate user activity with infrastructure and application events. Prerequisites [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#prerequisites) -------------------------------------------------------------------------------------------------------- Before setting up the export, check the following: * You have Admin access to your CleverTap account. * You have an existing cloud storage bucket in AWS S3, Google Cloud Storage, or Azure Blob Storage. * You can generate and provide access credentials (for example, AWS Access Key ID, Secret Access Key, GCP Service Account JSON, or Azure Connection String). * The destination bucket allows write permissions from CleverTap's export service. > 📘 > > ### > > **Secure Log Delivery for Compliance Tracking** > > [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#secure-log-delivery-for-compliance-tracking) > > Customers in BFSI or regulated sectors often require SIEM integrations for continuous compliance tracking. CleverTap's export mechanism ensures secure and traceable delivery of log files to your environment. Set Up SIEM Export [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#set-up-siem-export) ================================================================================================================== To configure automatic Audit Log exports, perform the following steps: 1. Log in to your CleverTap dashboard. 2. Go to _Settings > Partners_. 3. Select _Export Center_. 4. Click **Create Export**. 5. Choose _Audit Logs_ as the export type. 6. Select your destination platform: * AWS S3 * Google Cloud Storage * Microsoft Azure Blob Storage 7. Select an available bucket from the drop-down or add a new bucket using _Add_. 8. Click **Save** to activate the export. Exports will automatically begin within 24 hours. The following image shows the SIEM export for the Audit Logs: ![](https://files.readme.io/04275d38d7769d1d0b70296b58d4564cc5fa1f73497ebf21189c193c6518d0d6-2025-11-19_17-27-50_1.gif) SIEM Export for Audit Logs > 📘 > > ### > > **Support** > > [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#support) > > If you encounter issues with export delivery or access permissions, contact your Customer Success Manager or submit a support ticket through the CleverTap Support Portal. Data Delivery and Format [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#data-delivery-and-format) ------------------------------------------------------------------------------------------------------------------------------ CleverTap delivers Audit Logs with the following schedule and file structure. * **Delivery Frequency**: Once every 4 hours (starting from midnight as per account time zone). * **Delivery Mode**: Incremental batch files delivered securely to your configured bucket. * **File Format**: JSON (UTF-8 encoded). * **File Naming Convention**: `audit/{account-encoded}/audit_{account-encoded}_{timestamp}.zip` Each exported file includes the same fields visible in the Audit Logs dashboard: | Field | Description | | --- | --- | | Date | Timestamp of the action. | | Email | Email address of the user who performed the action. | | Action | The type of activity (Login, Export, Campaign Save). | | Action ID | Unique identifier of the resource impacted. | | Description | Summary of the activity. | | IP Address | Originating IP address of the request. | Security and Permissions [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#security-and-permissions) ------------------------------------------------------------------------------------------------------------------------------ The following security measures ensure your Audit Log exports remain protected throughout the export process: * All exports are HTTPS-encrypted during transit. * Credentials (access keys or tokens) are stored securely and used only for writing to your bucket. * Bucket permissions can be revoked at any time without affecting dashboard-level access. > 👍 > > ### > > **Security Tip** > > [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#security-tip) > > Always rotate access credentials periodically and restrict write access to a dedicated folder or prefix within your bucket. Verify Export Delivery [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#verify-export-delivery) -------------------------------------------------------------------------------------------------------------------------- Once configured, perform the following: 1. Wait for the next scheduled export window (midnight). 2. Check your destination bucket for a new file with the prefix `audit`. 3. Validate file content and timestamps. If you cannot view the files after 4 hours, verify the following: * Bucket permissions (write access). * Region configuration. * Access credentials. FAQs [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#faqs) ====================================================================================== The following are some frequently asked questions to help you set up and manage your SIEM integration effectively: ### How often are logs exported? [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#how-often-are-logs-exported) Audit Logs are exported once every 4 hours starting from midnight (as per the account time zone). ### Can I export to multiple destinations? [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#can-i-export-to-multiple-destinations) Currently, you can configure only one destination per project. ### How to stop a running export? [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#how-to-stop-a-running-export) You can stop a running export by reaching out to your Customer Support SPOC or it automatically stops if your paid add-on has expired. ### Can I manually trigger exports? [](https://docs.clevertap.com/docs/automated-audit-log-exports-for-siem#can-i-manually-trigger-exports) No. Exports run automatically every 4 hours. Updated about 2 months ago * * * Ask AI --- # IP Whitelisting Overview [](https://docs.clevertap.com/docs/ip-whitelisting#overview) ========================================================================= CleverTap's _IP Whitelisting_ feature makes the IP restriction process more intuitive and self-serve for the customers. The CleverTap dashboard showcases business-sensitive information such as revenue, application installs, conversions, etc. Therefore, organizations might need to restrict dashboard access to certain administrative users after integrating CleverTap SDK for different business reasons. Whitelist IP Addresses [](https://docs.clevertap.com/docs/ip-whitelisting#whitelist-ip-addresses) ----------------------------------------------------------------------------------------------------- To whitelist an IP address, the admin needs to perform the following steps: 1. Navigate to _Settings_ > _Security_ > _IP Whitelisting_ . Ensure that the _Use IP whitelisting to restrict access_ toggle is turned on. 2. From the _IP Whitelisting_ page, click **+IP Address** to add a new IP address. > 🚧 > > ### > > IP Whitelisting Toggle > > [](https://docs.clevertap.com/docs/ip-whitelisting#ip-whitelisting-toggle) > > Only admins can turn on/off the _Use IP whitelisting to restrict access_ toggle on the IP whitelisting page. ![Click +IP Address to add addresses to Whitelist](https://files.readme.io/299f6ad-Ip_whitelisting_dashboard.png "Ip whitelisting dashboard") IP Whitelisting 3. Enter the IP address you wish to whitelist in the _IP Address_ field. CleverTap supports both IPV4 and IPV6 addresses. You can add up to 20 IP addresses at once. If you are adding multiple IP addresses, use commas to separate them. After you enter all the IPs, click _Whitelist IP Address_. ![Add the IP addresses to Whitelist](https://files.readme.io/65f6cea-Whitelist_IP_addresses.png "Whitelist IP addresses") Whitelist IP Address View > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/ip-whitelisting#note) > > If you are whitelisting IPs for the first time, you need to ensure that you whitelist your own IP, as it avoids locking your own account. Remove Whitelisted IP Addresses [](https://docs.clevertap.com/docs/ip-whitelisting#remove-whitelisted-ip-addresses) ----------------------------------------------------------------------------------------------------------------------- To remove a particular IP address: 1. Click the ![Delete icon](https://files.readme.io/27fabff-delete_icon.png)icon adjacent to the particular IP from the _IP Whitelisting_ page. 2. Click **Remove**. To delete multiple IP addresses together, select all the IP addresses from the whitelisted list and click the delete ![Delete icon](https://files.readme.io/27fabff-delete_icon.png) icon, as highlighted below: ![Select multiple IPs you want to delete from the list of IPs](https://files.readme.io/e07d32f-Delete_multiple_IP_addresses.png "Delete multiple IP addresses.") Delete Multiple IP Addresses > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/ip-whitelisting#note-1) > > Turn off the _Use IP whitelisting to restrict access_ toggle button to pause the IP whitelisting configuration. Updated about 2 months ago * * * Ask AI --- # Domain Whitelisting for Web SDK Overview [](https://docs.clevertap.com/docs/domain-whitelisting#overview) ============================================================================= Domain Whitelisting is a security feature by CleverTap that ensures only approved domains can send data to your CleverTap account. This helps prevent unauthorized data ingestion, protects against data pollution, and safeguards campaign execution. > 🚧 > > ### > > SDK Compatibility > > [](https://docs.clevertap.com/docs/domain-whitelisting#sdk-compatibility) > > Domain Whitelisting for Web is compatible with SDK version 1.17.0 and above. To check your Web SDK version, use the `clevertap.getSDKVersion` method. By default, the Web SDK accepts events from all domains. When domain whitelisting is enabled, CleverTap checks the source of each Web SDK request. If the domain matches one of the entries in your allowlist, the data is accepted; otherwise, it is rejected. When the feature is disabled (the default setting), data is accepted from all domains without restriction. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/domain-whitelisting#note) > > * You can add up to 20 domains per account. > * Only admins can make changes to domain whitelisting. This permission cannot be assigned to custom roles. Set Up Domain Whitelisting [](https://docs.clevertap.com/docs/domain-whitelisting#set-up-domain-whitelisting) ================================================================================================================= To set up Domain Whitelisting: 1. Click **Settings**, then go to _Security > Domain Whitelisting_. 2. Click **Whitelist Domain**. ![Domain Whitelisting](https://files.readme.io/90f87a74bc28dbc20ae1268c38b8f148f5ea66ac917c6438d909a5d89b9f8871-Domain_Whitelisting_New.png) Domain Whitelisting 3. Enter a domain name and a name for identification. 4. Click **Whitelist** to add the domain to your allowlist. ![Enter Details](https://files.readme.io/5b27bd56432747994603ea3d2655939ce18f9369947c8c129f93a85382c8d2e8-Whitelist_Popup.png) Enter Details 5. Use the toggle switch in the dashboard to enable or disable domain whitelisting. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/domain-whitelisting#note-1) > > * Whitelisting only takes effect after at least one domain is added and the toggle is switched on. > * When domain whitelisting is enabled or disabled, an email is sent to the account admin to notify the change. ![Enable Whitelist](https://files.readme.io/d8993351541eaa3f07113005bb7f0c62a9a3c6f85791fc39c593720826a7a148-Domain_Whitelisting_new_image.png) Enable Whitelist 7. You can edit and delete domains from the list at any time. Domain Name Guidelines [](https://docs.clevertap.com/docs/domain-whitelisting#domain-name-guidelines) ========================================================================================================= Adhere to the following domain name guidelines when adding domains to your allowlist. The following are valid domain name formats: * `www.example.com` * `example.com` The following are invalid domain name formats and can not be saved: * `https://example.com` or `example.com/path` - Do not include protocols `(https://)` or paths. Use only the root domain, such as `example.com`. * Duplicate or conflicting domains are not allowed. For example, `www.example.com` and `example.com`. Updated about 2 months ago * * * Ask AI --- # LINE Messenger Overview [](https://docs.clevertap.com/docs/line-messenger#overview) ======================================================================== [LINE](https://line.me/en/) , one of the world's most popular instant messaging platforms, is used by millions of highly-engaged users. Through LINE, brands can engage with their customers effectively by providing a rich messaging experience. CleverTap and LINE integration allows you to leverage advanced segmentation, predictive capabilities, personalization, and triggering features. You can message your LINE users the Line messaging API. > 📘 > > ### > > Availability > > [](https://docs.clevertap.com/docs/line-messenger#availability) > > This feature is available only for verified or premium LINE accounts. For more information about account types, refer to Account Types of [LINE Official Account](https://www.linebiz.com/jp-en/service/line-official-account/account-type/) > . Integrate CleverTap with LINE Messenger [](https://docs.clevertap.com/docs/line-messenger#integrate-clevertap-with-line-messenger) ====================================================================================================================================== The following are the major steps to perform this integration: 1. [Collect customer LINE IDs](doc:line-messenger#collect-customer-line-ids) . 2. [Save the user's LINE ID on CleverTap](doc:line-messenger#save-users-line-id-on-clevertap) . 3. [Save the LINE push message API as a Webhook endpoint in Clevertap](doc:line-messenger#save-line-push-message-api-as-a-webhook-endpoint-in-clevertap) . 4. [Create a Campaign to Reach your LINE Followers](doc:line-messenger#create-a-campaign-to-reach-your-line-followers) . Collect Customer LINE IDs [](https://docs.clevertap.com/docs/line-messenger#collect-customer-line-ids) ---------------------------------------------------------------------------------------------------------- To send messages in LINE, you need the users' LINE IDs to identify the user and interact with them consistently. LINE IDs are not the same as the user’s LINE usernames. LINE IDs are generated by LINE and can be used when interacting with LINE APIs. LINE IDs can be obtained using the LINE [User ID API](https://developers.line.biz/en/reference/messaging-api/#get-follower-ids) . This endpoint returns a list of all the LINE IDs for your contacts on the LINE official account or contacts that have sent you a message and have not blocked you. When sending a GET request to the [https://api.line.me/v2/bot/followers/ids](https://api.line.me/v2/bot/followers/ids) endpoint, you get the LINE IDs of users following your account. Save User's LINE ID on CleverTap [](https://docs.clevertap.com/docs/line-messenger#save-users-line-id-on-clevertap) ----------------------------------------------------------------------------------------------------------------------- After obtaining the list of LINE IDs, you can send it to Clevertap as a custom user property as `lineID` to each user's profile. You can upload `LineID` to a user's profile by using [APIs](doc:upload-user-profiles-api) or [uploading them as CSVs](doc:csv-upload) . Save LINE Push Message API as a Webhook Endpoint in CleverTap [](https://docs.clevertap.com/docs/line-messenger#save-line-push-message-api-as-a-webhook-endpoint-in-clevertap) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- To save LINE Push Message API as a webhook endpoint in CleverTap: 1. Navigate to _Settings_ > _Channels_ > _Webhooks_ from the CleverTap dashboard. 2. Click **+Add Webhook**. The _Create webhook template_ popup opens. ![1012](https://files.readme.io/f71335d-Create_webhook_template_popup.png "Create Webhook campaign") Create Webhook Template 3. Enter the following details: | Field | Description | | --- | --- | | Name | Enter the name for your webhook endpoint. | | HTTP Method | Select POST from the dropdown list. | | Destination URL | Enter the following URL in this field:
[https://api.line.me/v2/bot/message/push](https://api.line.me/v2/bot/message/push) | 4. Toggle ON the _Header parameters_ to add the following Request Headers to the payload: | Key | Value | | --- | --- | | Content-Type | application/json | | Authorization | Bearer <{channel access token}> | For more about getting channel access tokens from LINE, refer to [Types of Channel access tokens](https://developers.line.biz/en/docs/messaging-api/channel-access-tokens/#types-of-channel-access-tokens) . ![2236](https://files.readme.io/59fe9d7-Header_parameters.png "Add request headers to Webhook payload") Add Request Headers to Payload 5. Click **Create** to save the webhook endpoint. Create a Campaign to Reach your LINE Followers [](https://docs.clevertap.com/docs/line-messenger#create-a-campaign-to-reach-your-line-followers) ---------------------------------------------------------------------------------------------------------------------------------------------------- To create a campaign for your LINE users: 1. From the CleverTap dashboard, select _Campaigns_. 2. Click **\+ Campaign**. 3. From the Messaging Channels list, select _Webhooks_. ![5652](https://files.readme.io/e8cd8a4-Create_Campaign_Webhook_.png "Select Webhooks from channels list") Select Webhooks from Channels List 4. Enter the required details for _Start here_ section and select the target segment under _Who_ section. 5. Select _JSON_ from the _Webhook format_ dropdown and select the _Custom body_ option to create a custom body for the request. 6. Add the body to the request for different types of messages as follows: * **Simple Text Message** JSON { "to": "@Profile - LineID | default: " N.A" ", "messages":[ { "type":"text", "text":"Hello, world1" } ] } ![3114](https://files.readme.io/f25ac49-Simple_Text_Message.png "Sample JSON Body Request for Simple Text Messages") Sample JSON Body Request for Simple Text Messages * **Image Message** JSON { "to": "@Profile - LineID | default: " N.A" ", "messages":[ { "type": "image", "originalContentUrl": "https://example.com/original.jpg", "previewImageUrl": "https://example.com/preview.jpg" } ]} ![3112](https://files.readme.io/4bb2e21-Image_Message.png "Sample JSON Body Request for Image Message") Sample JSON Body Request for Image Message * **Video Message** JSON { "to": "@Profile - LineID | default: " N.A" ", "messages":[ { "type": "video", "originalContentUrl": "https://example.com/original.mp4", "previewImageUrl": "https://example.com/preview.jpg" } ]} ![3136](https://files.readme.io/454bd5c-Video_Message.png "Sample JSON Body Request for Video Message") Sample JSON Body Request for Video Message > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/line-messenger#note) > > @Profile - LineID | default: "N.A" personalization fetches the `LineID` from the user's profile. > For the “to” key, enter '@' under the _value_ field. Select LineID and provide a default value for the profiles that do not have a LineID (assuming LineID is the user property Key against which you have uploaded user Line ID using API or CSV upload). ![3200](https://files.readme.io/6104dac-Set_up_default_value_for_LineID.png "Fetching User's Profile") Fetching User's Profile 7. Define the schedule for your webhook campaign and publish the campaign. For more information about webhook campaigns, refer to the [Create Webhook Campaigns](doc:create-message-webhook) section. Updated about 2 months ago * * * Ask AI --- # FreshSales Overview [](https://docs.clevertap.com/docs/freshsales#overview) ==================================================================== [Freshsales](https://www.freshworks.com/crm/sales/) is a widely used Customer Relationship Management (CRM) platform that supports sales, marketing, and support teams by leveraging cloud technology to connect more efficiently with customers, partners, and prospects. Integrating CleverTap with Freshsales helps you sync CRM data into CleverTap for personalized, event-driven engagement. With this integration, you can: * Onboard new leads with product tour messages. * Re-engage lost deals with targeted feature updates. * Move leads down the funnel with timely nudges. * Convert high-intent leads with automated follow-ups. Prerequisites for Integration [](https://docs.clevertap.com/docs/freshsales#prerequisites-for-integration) ============================================================================================================== The following are the prerequisites for this integration: * A valid Freshsales account. * A CleverTap account with a valid **Account ID** and **Passcode**. Integrate Freshsales with CleverTap [](https://docs.clevertap.com/docs/freshsales#integrate-freshsales-with-clevertap) ========================================================================================================================== To sync data from a Freshsales module (such as Contacts, Accounts, or Deals) to CleverTap, perform the following three major steps: 1. [Create Workflow in Freshsales](doc:freshsales#create-workflow-in-freshsales) . 2. [Set Up Webhook with CleverTap APIs](doc:freshsales#set-up-webhook-with-clevertap-apis) . 3. [Test and Activate Workflow](doc:freshsales#test-and-activate-workflow) . Create Workflow in Freshsales [](https://docs.clevertap.com/docs/freshsales#create-workflow-in-freshsales) -------------------------------------------------------------------------------------------------------------- Consider a use case where a SaaS business wants to send automated product tour campaigns to new leads created in Freshsales. When a lead is created or updated in Freshsales, the information should be synced to CleverTap, triggering a welcome campaign. To create a new Freshsales workflow, define which data should be synced as follows: 1. Log in to your Freshsales CRM account. 2. Go to _Admin Settings_ > _Term & Territories_ and select _Workflows_. ![Create a new workflow in Admin Settings.](https://files.readme.io/1d8bc7a7d630f9b5cf3f84edd7cbfa3b4e9c47a4fb547beba77a77979df93514-Screen_Recording_2025-06-23_at_3.39.17_PM_1.gif) Create a new workflow in Admin Settings 3. Click **Create Workflow** and select the required Freshsales module (in this example, Contacts) to be synced with CleverTap. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/freshsales#note) > > Freshsales supports one module per workflow. Create individual workflows for each additional module. 4. Select the **Contacts** module to track new or updated leads. ![Select the Contacts module to sync leads.](https://files.readme.io/72f98253919987e987cf447a270d3490e9675928036aa007ce69c5f4ee88388e-image.png) Select Contacts Module to Sync Leads. 5. Under _When to trigger this workflow?_, define the trigger conditions when the workflow should run: 1. Define the _Trigger_ when Contact is created or updated. 2. Define the intervals when the workflow should **Run**. 6. (Optional) Add a filter to sync only relevant records (for example, _Lead Status_ is New ). This ensures the sync only occurs for relevant leads. 7. Under _What actions should be executed?_, select _Trigger Webhook_. This action will send contact data to CleverTap when the trigger conditions are met. In the next step, you will configure this webhook to call CleverTap’s API with the right authentication and payload. Set Up Webhook with CleverTap APIs [](https://docs.clevertap.com/docs/freshsales#set-up-webhook-with-clevertap-apis) ------------------------------------------------------------------------------------------------------------------------ Use CleverTap’s API to configure the webhook to push data from Freshsales to CleverTap. In the Freshsales dashboard. To do so, perform the following steps: 1. In _Trigger Webhook_, select the _Advanced_ option. 2. Enter the CleverTap's API endpoint used for uploading data to CleverTap. For more information, refer to [Upload User Profiles API](https://developer.clevertap.com/docs/upload-user-profiles-api) or [Upload Events API](https://developer.clevertap.com/docs/upload-events-api) . https://.api.clevertap.com/1/upload 3. Set method to `POST` and the encoding format to `JSON`. 4. In the _Custom Headers_ section, add the following: | Key | Value | | --- | --- | | `X-CleverTap-Account-Id` | Your CleverTap Account ID | | `X-CleverTap-Passcode` | Your CleverTap Passcode | | `Content-Type` | `application/json` | 6. Using _Insert Placeholder_ , map Freshsales fields (such as first name, email, and phone number) to the payload. 7. After you map the fields, define the payload using the [Example payload](doc:freshsales#example-payload) or [Advanced Example Payload (User Preferences & Subscriptions)](doc:freshsales#advanced-example-payload) . After mapping and pasting the payload, you can test this webhook (optional but strongly recommended). ### Example Payload [](https://docs.clevertap.com/docs/freshsales#example-payload) Use this basic payload structure to upload a user profile from Freshsales to CleverTap. Using dynamic placeholders, it maps common fields such as name, email, and phone. JSON { "d": [\ {\ "objectId": "{{email}}",\ "type": "profile",\ "profileData": {\ "Name": "{{first_name}}",\ "Email": "{{email}}",\ "Phone": "{{phone_number}}",\ "Lead Source": "{{lead_source}}"\ }\ }\ ] } ### Advanced Example Payload [](https://docs.clevertap.com/docs/freshsales#advanced-example-payload) This extended payload includes user messaging preferences (DND flags), subscription categories, and a dynamic date of birth field. Use this format if you are managing advanced profile attributes in CleverTap. JSON { "d": [\ {\ "objectId": "{{email}}",\ "type": "profile",\ "profileData": {\ "MSG-dndPhone": true,\ "MSG-dndEmail": true,\ "category-unsubscribe": {\ "email": ["Newsletters", "Promotions"]\ },\ "category-resubscribe": {\ "email": ["Football", "Movies"]\ },\ "DOB": "{{dob_timestamp}}"\ }\ }\ ] } ![Configure Webhook](https://files.readme.io/db66ad7430d9f46a76eff295f083acae2994c43484b734a1689ba2f60ed48023-image.png) Configure Webhook Test and Activate Workflow [](https://docs.clevertap.com/docs/freshsales#test-and-activate-workflow) -------------------------------------------------------------------------------------------------------- Verify that the webhook is correctly set up and that CleverTap receives the data as expected. 1. In the Freshsales dashboard, click **Test this Webhook**. 2. In the CleverTap dashboard, verify that a new user profile has been created. 3. Once testing is complete, click **Save** in Freshsales to activate the workflow. ![Verify Data in CleverTap](https://files.readme.io/50d331e68921316ecf5fa49d275220cdd0dd912a1129f25a4c383a9e27698aa5-image.png) Verify Data in CleverTap Once activated, the configured Freshsales workflow sends lead and contact data to CleverTap whenever the trigger conditions are met. This data can be used to trigger campaigns, update user profiles, and power targeted engagement. Updated about 2 months ago * * * Ask AI --- # PostHog Overview [](https://docs.clevertap.com/docs/posthog#overview) ================================================================= [PostHog](https://posthog.com/) offers a comprehensive suite of product analytics tools, including funnels, heat maps, session recording, and more, all in a single platform. It enables product and growth teams to track user behavior, measure feature adoption, and optimize product experiences. With the CleverTap and PostHog integration, you can: * Send _Events_ from CleverTap to your PostHog dashboard for detailed product analytics. * Send _User Profiles_ from CleverTap to PostHog to enrich analytics with behavioral and attribute data. This integration combines CleverTap’s engagement intelligence with PostHog’s behavioral analytics, giving you a holistic view of the user journey. Prerequisites for Integration [](https://docs.clevertap.com/docs/posthog#prerequisites-for-integration) =========================================================================================================== Before setting up this integration, ensure you have: * A valid [PostHog project API key](https://posthog.com/docs/api) . * A CleverTap account with Webhook Campaigns enabled. Integrating PostHog with CleverTap [](https://docs.clevertap.com/docs/posthog#integrating-posthog-with-clevertap) ===================================================================================================================== You can integrate PostHog with CleverTap in the following two ways: * [Send Events from CleverTap to PostHog](doc:posthog#send-events-from-clevertap-to-posthog) OR * [Send Users from CleverTap to PostHog](doc:posthog#send-users-from-clevertap-to-posthog) > 🚧 > > ### > > PostHog Webhooks > > [](https://docs.clevertap.com/docs/posthog#posthog-webhooks) > > Use CleverTap's Webhook Campaigns to forward user events to PostHog when users perform actions on your app or website. > > To set this up, you'll need to configure a webhook on CleverTap using the `POST` HTTP method. This webhook must be configured by the CleverTap team. > > * Contact [CleverTap Support](https://help.clevertap.com/hc/en-us) > to enable this webhook for PostHog integration. Send Events from CleverTap to PostHog [](https://docs.clevertap.com/docs/posthog#send-events-from-clevertap-to-posthog) --------------------------------------------------------------------------------------------------------------------------- Events tracked in CleverTap, such as purchases, logins, or custom actions, can be sent to PostHog using Webhook Campaigns so that you can measure funnels, analyze drop-offs, and understand user behavior patterns. To do so, perform the following steps: 1. Go to the _Campaigns_ page, click **\+ Campaign**, and select _Webhook_ from the list of messaging channels. 2. Configure campaign details as required and proceed to the _What_ section. 3. In the _Webhook Content_ section, select Content Format as `JSON` and select _Custom Body_. 4. Add the payload for the event you want to upload (example for a purchase event): JSON { "event": "Purchase", "api_key": "", "distinct_id": "{{ Profile.Email | default: "[email protected]" }}", "properties": { "item_names": "{{ Profile.MyStuff | default: "Shampoo" }}", "value": "{{ Profile.wallet_balance | default: "100" }}" } } Use `{{ }}` or the personalization button in CleverTap to dynamically insert profile properties. For details on accepted parameters, refer to the [PostHog API documentation](https://posthog.com/docs/api) . ![Webhook Content](https://files.readme.io/a21c4b5db73de25ae294727d150fd42b9d258737774e972318f15f3799471f3f-image.png) Webhook Content 5. Click **Preview & Test** to verify that the event data is being sent. ![Preview & Test](https://files.readme.io/99d4dcd20baa52ca50d3c814ec50e2d236eb6ae98dc8e1fceda91bd6f39682b9-image.png) Preview & Test 6. Once configured correctly, you can see the events reflected in the PostHog dashboard. ![PostHog dashboard](https://files.readme.io/1a77104e8689cb3837faee92e6a218e9d012424193714cc22ff50b6ed8c7de2e-image.png) PostHog dashboard Send Users from CleverTap to PostHog [](https://docs.clevertap.com/docs/posthog#send-users-from-clevertap-to-posthog) ------------------------------------------------------------------------------------------------------------------------- User profile data, such as email, location, or preferences, can also be sent from CleverTap to PostHog, allowing you to combine profile attributes with behavioral events for deeper analytics. This is done through the PostHog _Identify API_ using a Webhook Campaign. To do so, perform the following steps: 1. Go to the _Campaigns_ page, click **\+ Campaign**, and select _Webhook_. 2. Configure campaign details as required and proceed to the _What_ section. 3. In the _Webhook Content_ section, select Content Format as `JSON` and select _Custom Body_. 4. Add the following _Identify API_ Payload: JSON { "api_key": "", "event": "$identify", "distinct_id": "user distinct id", "properties": { "$set": { "is_cool": "true" } }, "timestamp": "2020-08-16T09:03:11.913767" } Replace `user distinct id` with a CleverTap profile property, such as: JSON "user distinct_id": "{{ Profile.Email | default: "[email protected]" }}" 5. In CleverTap, click **Preview & Test** to send a test payload to PostHog. 6. Verify that the user profile is successfully created or updated in your PostHog dashboard. ![PostHog dashboard](https://files.readme.io/ea47c31a1e77215570776ebe86f260c0e950e97e967642eea420a06faee80c92-image.png) PostHog dashboard Verify Integration [](https://docs.clevertap.com/docs/posthog#verify-integration) ===================================================================================== Once configured: * _Events_ triggered in CleverTap (such as app purchases or sign-ups) flow into PostHog for funnel and session analysis. * _User profiles_ from CleverTap enrich PostHog with attributes that can be used in segmentation and retention analysis. * Changes made to campaigns or payloads in CleverTap are automatically reflected in PostHog data ingestion. This integration creates a seamless connection between CleverTap engagement and PostHog analytics, enabling product teams to measure, iterate, and optimize experiences faster. Updated about 2 months ago * * * Ask AI --- # Crowdin Overview [](https://docs.clevertap.com/docs/crowdin#overview) ================================================================= [Crowdin](https://crowdin.com/) is a platform that streamlines the translation and localization of digital content for multilingual support. Integrating CleverTap with Crowdin helps automate the translation of email templates. You can export templates from CleverTap to Crowdin for translation and then import them back. In this way, you can deliver personalized campaigns in your users' preferred languages, enhancing engagement and simplifying your localization process. > 📘 > > ### > > Integration Availability > > [](https://docs.clevertap.com/docs/crowdin#integration-availability) > > Currently, this feature is released in Public Beta. For more information about this integration or if you face any issue, contact [Crowdin Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#becdcbceced1cccafeddccd1c9dad7d090ddd1d3) > . This integration is exclusive to traditional email campaigns on CleverTap and currently, does not support AMP emails. Prerequisites [](https://docs.clevertap.com/docs/crowdin#prerequisites) =========================================================================== Ensure that you have the following: * Crowdin account * CleverTap account Integrate CleverTap with Crowdin [](https://docs.clevertap.com/docs/crowdin#integrate-clevertap-with-crowdin) ================================================================================================================= To set up the CleverTap integration with your Crowdin account: 1. [Configure CleverTap on Crowdin Dashboard](doc:crowdin#configure-clevertap-on-crowdin-dashboard) 2. [Export, Translate, and Upload Email Templates to CleverTap](doc:crowdin#export-translate-and-upload-template-to-clevertap) Configure CleverTap on Crowdin Dashboard [](https://docs.clevertap.com/docs/crowdin#configure-clevertap-on-crowdin-dashboard) --------------------------------------------------------------------------------------------------------------------------------- Follow the steps to integrate CleverTap with Crowdin: 1. Select the **Integrations** tab and click **Add Integration**. ![Install CleverTap 1](https://files.readme.io/f4ce2003d2f4d30077ce8bd158c919bb4bf8ab64ac5ef1c5ec6eab45f6a16893-crowdin_14.png) Add Integration on Crowdin 2. Search for CleverTap and click !![](https://docs.clevertap.com/docs/crowdin) icon to install it. ![Install CleverTap 2](https://files.readme.io/1fcb1de464bf433afbdfb7bd1f512c44d1782f545cc341074fdf1fd18abd5a09-Crowdin_13.png) Install CleverTap 3. Select the users that will be allowed to access the project * **All Project Members**: Select **All Project Members** to grant access to all users who are part of the project. * **Custom Access**: Select **Custom Access** and click **Select Users** to specify which users or roles can access the project 4. Select the projects for which the users will have access and click **Install**. ![Install CleverTap](https://files.readme.io/dde1b0731275794809d44d8a88a686ff0484e317ac589179e62aad3a8130a22e-crwodin_14.png) Install CleverTap Once installed, you will be redirected to the **Integrations** tab. 3. Add the following details: * **Region**: Navigate to _Settings > Project_ from the CleverTap dashboard to select the appropriate API endpoint for your region. To identify your account’s region, refer to the table below: | Region | CleverTap Dashboard URL | | --- | --- | | Indonesia | [https://aps3.dashbaord.clevertap.com/login.html](https://aps3.dashbaord.clevertap.com/login.html) | | Europe (default) | [https://eu1.dashboard.clevertap.com/login.html](https://eu1.dashboard.clevertap.com/login.html) | | India | [https://in1.dashboard.clevertap.com/login.html](https://in1.dashboard.clevertap.com/login.html) | | Middle East (UAE) | [https://mec1.dashboard.clevertap.com/login.html](https://mec1.dashboard.clevertap.com/login.html) | | Singapore | [https://sg1.dashboard.clevertap.com/login.html](https://sg1.dashboard.clevertap.com/login.html) | | United States (U.S) | [https://us1.dashboard.clevertap.com/login.html](https://us1.dashboard.clevertap.com/login.html) | * **Account ID** : Locate the Project ID under _Settings_ > _Project_ from the CleverTap dashboard. * **Passcode**: Locate Passcode under _Settings_ > _Project_ from the CleverTap dashboard. To know more, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . ![Integrate CleverTap](https://files.readme.io/3e47a55df28b7406305274ab6614439a90e0be53554811675a25da32b86e6ac0-crowdin_9.png) Integrate CleverTap Export, Translate, and Upload Template to CleverTap [](https://docs.clevertap.com/docs/crowdin#export-translate-and-upload-template-to-clevertap) ===================================================================================================================================================== Follow these steps to export, translate, and upload your templates to CleverTap: 1. Click **Sync to Crowdin** from the _Integrations_ tab to export the templates from CleverTap to Crowdin. ![Sync Template](https://files.readme.io/081c5f3c20a75e2ddb31a4ce74dea56ca6b8174c66487e28a15697059d2f79ca-crowdin_2.png) Sync Template Once the templates are synced, they appear on the left side. ![Synced Template](https://files.readme.io/70358d21e9b8007f9df4b2aa0b41e2024bf0f1e80dd586245ca5763289b3c00a-crowdin_24.png) Synced Template 2. Select the _Dashboard_ tab, select the target language, and click **Go to Editor** and [translate the selected template](https://support.crowdin.com/ordering-professional-translations) . 3. Select the _Integrations_ tab once the template is translated, select the template from the left side, and click **Sync files to CleverTap**. ![Sync Translated Template to CleverTap](https://files.readme.io/cced595be9d754c5623127ad9f57a91ad24979aad5465210cea5e43c1037382f-crowdin_8.png) Sync Translated Template to CleverTap For users with a Content Manager subscription to CleverTap, the exported translated templates from Crowdin will be found under _Content Manager > Templates > Email_. Each language will have its own separate template. ![Translated Templated - CMS](https://files.readme.io/c6ce9e6831bfb8a390500e7865add71c3828482e929d91bbbb191ba6d2af7148-crowdin_23.png) Translated Templated - CMS For users without a Content Manager subscription, the exported translated templates will appear under _Campaigns > + Campaigns > Emails > What Section > Saved Templates_. ![Translated Template - Saved Template in Campaign](https://files.readme.io/a077cb11ef98433bc9fda0a5d8bc0c88ddf8f0eb271d7202977854584f31fae2-crowdin_10.png) Translated Template - Saved Template in Campaign FAQs [](https://docs.clevertap.com/docs/crowdin#faqs) ========================================================= Here are some frequently asked questions to help you with the integration process: ### Why are only base templates fetched from CleverTap to Crowdin? [](https://docs.clevertap.com/docs/crowdin#why-are-only-base-templates-fetched-from-clevertap-to-crowdin) Currently, only base templates are integrated, which limits the availability of translated templates. ### Why are translated templates not matching the Email with drag-and-drop base email templates? [](https://docs.clevertap.com/docs/crowdin#why-are-translated-templates-not-matching-the-email-with-drag-and-drop-base-email-templates) Translating JSON to match the drag-and-drop template format presents challenges, leading CleverTap to store translated templates in HTML format instead. ### Why do translated templates include the locale present in the base template? [](https://docs.clevertap.com/docs/crowdin#why-do-translated-templates-include-the-locale-present-in-the-base-template) * The locale for the base template is not currently set, making it difficult to differentiate between the base locale and the translated locale. * To streamline this, translated templates are created as "Base Template name\_{Locale}." These are considered child templates. * When base templates are fetched and translated templates are pushed back, CleverTap updates child templates with the specified locale. For instance, a base template named _Welcome to the App_ with the locale _en_ will result in three templates upon translating to _fr_ and _es_: _Welcome to the App\_en_, _Welcome to the App\_fr_, and _Welcome to the App\_es_. ### How can translated templates be used for sending email campaigns from CleverTap? [](https://docs.clevertap.com/docs/crowdin#how-can-translated-templates-be-used-for-sending-email-campaigns-from-clevertap) When creating an email campaign, the [By User Property](https://docs.clevertap.com/docs/create-message-email#by-user-property) option can be utilized to set the property to match the locale of the translated campaign. ### What happens if a translated email template currently in use is updated? [](https://docs.clevertap.com/docs/crowdin#what-happens-if-a-translated-email-template-currently-in-use-is-updated) * When an email template from CleverTap CMS or saved templates is used in a campaign, separate instances are created for each send. This ensures personalization and localization are tailored to each email. * Edits made to an existing template do not impact campaigns created with earlier versions of that template. * Changes to the main email template in the CMS or saved templates do not retroactively apply to previously created or sent campaigns. * New campaigns will utilize the updated template, while campaigns in draft or scheduled status require manual updates with the new version. Updated about 2 months ago * * * Ask AI --- # Sinch Overview [](https://docs.clevertap.com/docs/sinch-sms#overview) =================================================================== [Sinch](https://www.sinch.com/) is a global cloud communications provider that helps businesses to deliver SMS, voice, and other communication services across global markets. By integrating Sinch with CleverTap, you can send transactional and promotional SMS messages through CleverTap’s unified engagement dashboard. This integration supports message delivery, tracking via DLR (Delivery Receipt), and DLT compliance for enterprises in India. Here’s how businesses use Sinch with CleverTap: * _Send OTPs and Alerts_: Deliver real-time authentication and transaction confirmations. * _Promote Offers and Sales_: Target user segments with promotional SMS blasts. * _Re-engage Drop-Offs_: Remind users to complete transactions or renew subscriptions. Integrate CleverTap’s segmentation and campaign engine with Sinch’s SMS delivery pipeline for high-engagement, context-driven messaging. Prerequisites for Integration [](https://docs.clevertap.com/docs/sinch-sms#prerequisites-for-integration) ============================================================================================================= To integrate Sinch with CleverTap, ensure the following: * You must have an active SMS account with Sinch (including username, password, and endpoint), provided by [Sinch India support](https://docs.clevertap.com/cdn-cgi/l/email-protection#553b34387814161915263c3b363d7b363a38) . * You must have a CleverTap account with SMS setup enabled. * If your account is registered in India, ensure all templates and headers are DLT-approved. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/sinch-sms#support-for-integration) > > This integration is managed and continuously improved by Sinch India. The CleverTap and Sinch India integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Sinch India](https://docs.clevertap.com/cdn-cgi/l/email-protection#a6d5d3d6d6c9d4d288c5cbe6d5cfc8c5ce88c5c9cb) > for support and resolution. Integrate Sinch with CleverTap [](https://docs.clevertap.com/docs/sinch-sms#integrate-sinch-with-clevertap) =============================================================================================================== To integrate Sinch SMS with CleverTap, follow these three steps: 1. [Sinch API for Integration](doc:sinch-sms#sinch-api-for-integration) 2. [Set Up CleverTap Dashboard](doc:sinch-sms#set-up-clevertap-dashboard) 3. [Send a Test SMS](doc:sinch-sms#send-a-test-sms) Sinch API for Integration [](https://docs.clevertap.com/docs/sinch-sms#sinch-api-for-integration) ----------------------------------------------------------------------------------------------------- CleverTap sends HTTPS POST requests to the Sinch API to initiate SMS delivery. The payload must follow the format below to ensure successful delivery and DLT compliance. * _API Endpoint_: `https://ap.awsigateway.com/v1/enterprises/messages.json` * _Sample Request Payload_: JSON { "appid": "clvrtap", "userId": "clvrtap", "pass": "clvrtap_18", "contenttype": "1", "from": "ACLALT", "to": "$$To", "selfid": "false", "msgid": "$$MessageID", "intflag": "false", "alert": "1", "text": "$$Body", "dpi": "1701158123540939524", "dtm": "$$TemplateID" } This payload includes the recipient details, message content, and DLT information. CleverTap dynamically replaces variables like `$$To`, `$$Body`, and `$$TemplateID` at runtime. Set Up CleverTap Dashboard [](https://docs.clevertap.com/docs/sinch-sms#set-up-clevertap-dashboard) ------------------------------------------------------------------------------------------------------- Set up the CleverTap dashboard to connect and authenticate your Sinch SMS provider. To configure the CleverTap dashboard: 1. Go to _Settings_ > _Engage_ > _Channels_ > _SMS_ in the CleverTap dashboard. 2. Click **\+ Add Provider**. The Add SMS provider page opens. ![Add Provider](https://files.readme.io/8ca98feff96deb7a4d4b6c4a0576f0b108f3d696f98dfbaa9b61faca58641cf2-image.png) Add Provider 3. Under **Provider**, select _Other (Generic)_ and enter the following details: | Field | Description | | --- | --- | | Nickname | Enter the nickname of the SMS provider to identify it uniquely. For example:`Sinch_India`. | | Callback URL | Enter this URL in the Sinch platform to receive delivery status updates for your SMS messages. Refer to [Set Up SMS Callbacks](doc:sinch-sms#set-up-sms-callbacks)
. | | Request Type | Select `POST`, then specify the Sinch API endpoint: `https://ap.awsigateway.com/v1/enterprises/messages.json`. Refer to [Sample Payload Structure (JSON)](doc:sinch-sms#sample-payload-structure-json)
. | | HTTP Endpoint | Paste the URL received from Sinch India NAM team.
Ensure that the URL is in HTTPS format, that is, your URL must begin with `https://`. | | Authentication | Under Authentication, select one of the following options:

* No Authentication.
* Basic Authentication: Enter the username and password. | | Headers | Select Headers to include in the HTTP request sent to the API endpoint. These headers allow you to pass additional information, such as authentication tokens or content type. | #### Sample Payload Structure (JSON): [](https://docs.clevertap.com/docs/sinch-sms#sample-payload-structure-json) Use the following sample JSON payload when configuring the Sinch provider in CleverTap. The payload represents the structure used to send an SMS message via Sinch. Replace placeholder variables with system dynamic replacements like `$$To` and `$$Body`. JSON { "appid": "clvrtap", "userId": "clvrtap", "pass": "secure_password", "contenttype": "1", "from": "ACLALT", "to": "$$To", "selfid": "false", "msgid": "$$MessageID", "intflag": "false", "alert": "1", "text": "$$Body", "dpi": "1701158123540939524", "dtm": "$$TemplateID" } This structure ensures that message-specific data, such as recipient, sender, content, and a unique message ID is correctly passed to the Sinch API. ![Provider Configuration](https://files.readme.io/1721da1676d07d0f2e1066248cfb9ac194781f9c7c01d42de93bd6e9469865dc-image.png) Provider Configuration #### System Dynamic Replacements [](https://docs.clevertap.com/docs/sinch-sms#system-dynamic-replacements) CleverTap replaces the following variables dynamically when sending SMS requests to the provider. These placeholders must be used in the payload or headers, depending on your Sinch configuration: | Parameter | Description | **Required** | | --- | --- | --- | | `appid` | Application ID assigned by Sinch. | Yes | | `userId` | Username provided by Sinch India. | Yes | | `pass` | Password for the above user ID. | Yes | | `from` | Sender ID (six characters). Use alphanumeric for service messages, numeric for promotional. | Yes | | `to` | Recipient’s mobile number. Use commas to send to multiple numbers. | Yes | | `text` | Message body. Use `$$Body` as a placeholder. | Yes | | `msgid` | Unique CleverTap message ID. Must be returned by Sinch in the callback. | Yes | | `dtm` | DLT Template ID. Use `$$TemplateID`. | Optional | | `dpi` | DLT Principal Entity ID. | Optional | | `alert` | Indicates message type: `1` for transactional, `0` for promotional (default). | Yes | | `contenttype` | Always set to `1` for text messages. | Yes | | `selfid` | Set to `true` to enable message ID mapping. | Yes | | `intflag` | Set to `false` for domestic and `true` for international messages. | Yes | | `s` | Enables URL shortening: `0` = disable, `1` = enable. | Optional | > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/sinch-sms#note) > > `$$MessageID` is required for accurate DLR (Delivery Report) tracking. Sinch must return the same ID in the delivery callback. 4. Select the Batch option to upload multiple SMS records in one go. Enter the required details for each record. > 📘 > > ### > > Single Batch Limit > > [](https://docs.clevertap.com/docs/sinch-sms#single-batch-limit) > > A single batch can have a maximum of 1,000 records. 5. Click on **Save**. A pop-up box will appear, prompting you to [Send Test SMS](doc:sinch-sms#send-a-test-sms) . Send a Test SMS [](https://docs.clevertap.com/docs/sinch-sms#send-a-test-sms) --------------------------------------------------------------------------------- Sending a test SMS helps confirm that your Sinch integration is working before launching a live campaign. This ensures the API endpoint is correctly configured, authentication is valid, and messages can be delivered. To validate your configuration: 1. Click the **Send Test SMS** hyperlink before creating SMS campaigns and journeys. 2. Enter the following details: * _Country Code and Mobile Number_: Enter the country code and mobile number to which you want to send the message. * _Message_: Enter sample text, such as _This is a test message powered by Sinch_. ![Send a Test SMS](https://files.readme.io/440d338366857bc07cb488cff8ce0b667c10fe20e57ca880cb2b9e4689cdff65-image.png) Send a Test SMS 3. Click **Send Test**. If the configuration is correct, the test message will be delivered, and Sinch will return a DLR update. If there is an error (for example, incorrect credentials or endpoint), CleverTap will display a failure notification. ### Set Up SMS Callbacks [](https://docs.clevertap.com/docs/sinch-sms#set-up-sms-callbacks) To track SMS requests, copy the Delivery report callback URL from the CleverTap dashboard and share it with the Sinch support team. 1. You can find the Delivery report callback URL on the CleverTap dashboard under the Provider Setup page _Settings_ > _Channels_ > _SMS_ > _Provider Nickname_. 2. Share this URL with [Sinch India support](https://docs.clevertap.com/cdn-cgi/l/email-protection#35464045455a47411b565875465c5b565d1b565a58) . ![Set Up SMS Callbacks](https://files.readme.io/6a0d89d8e39ddbb0e19894dd105695dd3605ef8ea3bb96670f0434de1c018573-image.png) Set Up SMS Callbacks ### Verifying Successful Integration [](https://docs.clevertap.com/docs/sinch-sms#verifying-successful-integration) Your integration is considered successful when the following criteria are met: * The test SMS is delivered to the intended mobile number. * You receive a DLR (Delivery Report) callback from Sinch at the configured CleverTap callback URL, indicating delivery, failure, or queue status. * CleverTap logs show no errors related to authentication, payload structure, or message transmission. Once these conditions are met, you can proceed to build and launch [SMS campaigns](doc:create-message-sms) or set up [Journeys](doc:journeys) using Sinch Mobile as your SMS provider. Updated about 2 months ago * * * Ask AI --- # Messenger Partners Overview [](https://docs.clevertap.com/docs/messenger-partners#overview) ============================================================================ CleverTap integrates with popular messaging platforms to help you engage users through real-time, personalized communication. Send targeted messages across the channels your users prefer, whether for alerts, onboarding, or promotions. CleverTap currently supports the following partner platforms: * [Discord](doc:discord) * [LINE Messenger](doc:line-messenger) * [Sendbird Business Messaging](doc:sendbird-business-messaging) * [Slack](doc:slack) * [Telegram Messenger](doc:telegram-messenger) Updated about 2 months ago * * * Ask AI --- # Slack [Slack](https://slack.com/) is a powerful messaging and collaboration platform that enables real-time communication and engagement. By integrating Slack with CleverTap, businesses can send targeted messages, deliver real-time campaign updates, and engage users directly within Slack channels. You can integrate Slack with CleverTap using two methods: 1. [Slack via Zapier](doc:slack-via-zapier) – Automate workflows effortlessly by connecting Slack and CleverTap through Zapier, requiring no coding. 2. [Slack - Alerts](doc:slack-webhook-integration) – Use webhooks to send real-time data from CleverTap to Slack for instant updates and workflow automation. Updated about 2 months ago * * * Ask AI --- # Email Love Overview [](https://docs.clevertap.com/docs/email-love#overview) ==================================================================== [Email Love](https://emaillove.com/) is a Figma plugin that allows you to design and export responsive, accessible HTML emails directly from Figma. With this integration, you can: * Convert Figma email designs into HTML. * Embed your HTML directly into CleverTap campaigns. * Enhance campaigns with personalization and automation using CleverTap’s tools. This document explains integrating Email Love with CleverTap and using exported HTML in CleverTap campaigns. Prerequisites for Integration [](https://docs.clevertap.com/docs/email-love#prerequisites-for-integration) ============================================================================================================== The following are the prerequisites for this integration: * An active Email Love account. * A CleverTap account with a valid Account ID and Passcode. Integrate Email Love with CleverTap [](https://docs.clevertap.com/docs/email-love#integrate-email-love-with-clevertap) ========================================================================================================================== The integration process involves the following two major steps: 1. [Design Email in Email Love and Export HTML](doc:email-love#design-email-in-email-love-and-export-html) . 2. [Configure Email Campaign](doc:email-love#configure-email-campaign) Design Email in Email Love and Export HTML [](https://docs.clevertap.com/docs/email-love#design-email-in-email-love-and-export-html) ---------------------------------------------------------------------------------------------------------------------------------------- Consider an example where a marketing team wants to send a visually rich onboarding email designed in Figma to newly registered users. Start by creating your email with the Email Love plugin in Figma, then export it as HTML into the CleverTap dashboard. To do so, perform the following steps: 1. Open your Figma file, go to the Plugins menu, search for Email Love, and launch the plugin. ![Email love plugin](https://files.readme.io/75c117e179239c12cbd3ee1a7f2743c0bb952df99fda42b648264a2984351594-image.png) Email Love plugin 2. Create your email from scratch or use a pre-designed template. 3. Click **Export HTML file** to download the code, or click **Copy HTML code** to copy it directly. ![Copy HTML Code](https://files.readme.io/ed791445a9531f78392fefded251ddee6b15bb8305e40e8aba56f9613bea3590-image.png) Copy HTML Code Once exported, your HTML code can be embedded directly into a CleverTap email campaign for further personalization and delivery. Configure Email Campaign [](https://docs.clevertap.com/docs/email-love#configure-email-campaign) ---------------------------------------------------------------------------------------------------- Set up and personalize your email campaign in CleverTap using the exported HTML template from Email Love. To do so, perform the following steps: 1. Go to the _Campaigns_ page, click **\+ Campaign**, and select _Email_ from the list of messaging channels. 2. Under the _What_ section, click **Go to Editor** and perform the following steps: 1. Select a _Blank Template_. 2. Switch to **Source** mode in the email editor. 3. Paste the copied HTML code from _step 3_ of [Design Email in Email Love and Export HTML](doc:email-love#design-email-in-email-love-and-export-html) into the source editor. 3. (Optional) Edit the HTML as needed. You can also add [Liquid tags](doc:personalize-message-all#liquid-tags) for personalization. ![Configure Email Campaign](https://files.readme.io/d751750363fa06ae8c4de1a5b59e6595624312571cc65baa6cdb67d9c0a2680b-2025-07-28_14-50-14_1.gif) Configure Email Campaign 4. Click **Preview & Test** to verify personalization and formatting. > 📘 > > ### > > Preview Campaign > > [](https://docs.clevertap.com/docs/email-love#preview-campaign) > > The preview in CleverTap may render colors differently than what you designed in Figma. The final email renders correctly to recipients. 5. Once confirmed, click **Publish**. Your personalized email, designed in Figma and exported from Email Love, is now ready to send. You can also save your HTML design as a template for future reuse within CleverTap campaigns. For more information about this, refer to [Content Manager Templates](doc:content-manager-templates) . Updated about 2 months ago * * * Ask AI --- # Become a Technical Partner Overview [](https://docs.clevertap.com/docs/become-a-partner#overview) ========================================================================== CleverTap Marketplace gives our customers an option to integrate with different partners. This document helps you understand how to make the most of our adaptable, accommodating platform. Read on to learn how you can become a CleverTap Certified Technical Partner. Key Concepts [](https://docs.clevertap.com/docs/become-a-partner#key-concepts) ================================================================================== * **Users** CleverTap creates the user profile for each user who launches the application, opens the website, or whose data is pushed directly to CleverTap from third-party systems. For more information, refer to [User Profiles](doc:user-profiles) . * **Events** Events track user actions on your app or website. Some examples of events include a user launching an app, viewing a product, listening to a song, sharing a photo, making a purchase, or favoriting an item. For more information, refer to [Events](doc:events) . * **Segments** A segment in CleverTap is a group of users who perform specific actions, users who did not perform certain actions, or whose user profile properties match a set of defined criteria. For example, a segment can be users who launched the app for the first time in the past 30 days. For more information, refer to [Segments](doc:segmentation) . * **Engagement Channels** CleverTap offers different messaging channels to create engagement strategies to reach your users with a personalized message at the right time. This includes Push, In-app, App Inbox, Native Display, SMS, Email, Whatsapp, and Webhook. For more information, refer to [Messaging Channels](doc:push) . * **Region - Data Center** CleverTap allows their customer to store data in different centers. For more information about configuring different regions for CleverTap, refer to [Configuration Steps to Enable CleverTap Region](https://developer.clevertap.com/docs/idc#enable-clevertap-region) . Generic Integration Guide [](https://docs.clevertap.com/docs/become-a-partner#generic-integration-guide) ============================================================================================================ To set up the integration with CleverTap, refer to the following sections: * [API](doc:become-a-partner#api) * [Attribution](doc:become-a-partner#attribution) * [Email](doc:become-a-partner#email) * [SMS](doc:become-a-partner#sms) * [WhatsApp](doc:become-a-partner#whatsapp) * [Webhook](doc:become-a-partner#webhook) * [Linked Content](doc:become-a-partner#linked-content) API [](https://docs.clevertap.com/docs/become-a-partner#api) ---------------------------------------------------------------- * **Authentication** If you are a CleverTap customer trying to connect your partner dashboard to the CleverTap dashboard, you must use the `connect` API. This API enables partners to verify customer account credentials. For more information, refer to [Authorize Partners](https://developer.clevertap.com/docs/authentication#authorize-partners) . * **Importing User** This API helps you upload user information to CleverTap. For more details, refer to [Upload User API](https://developer.clevertap.com/docs/upload-user-profiles-api) . * **Importing Events** This API helps you upload user actions to CleverTap. For more details, refer to [Upload Events API](https://developer.clevertap.com/docs/upload-events-api) . * **Getting User's Information** This API will help you to get the User's information based on the required segments. For example, provide the list of all the users who have performed the App Launched event in the last 30 days. For more details, refer to [Get User Profile API](https://developer.clevertap.com/docs/get-user-profiles-api) . Attribution [](https://docs.clevertap.com/docs/become-a-partner#attribution) -------------------------------------------------------------------------------- CleverTap partners with different attribution providers that help customers to know where their users are coming from and engage with them effectively. If your attribution provider is not listed under our partner list, our customers can still connect by following the steps listed under [Generic Attribution Partner](doc:generic-attribution-partner) . Email [](https://docs.clevertap.com/docs/become-a-partner#email) -------------------------------------------------------------------- CleverTap supports Email service providers via an HTTP integration. The Email provider must support receiving emails via the HTTP protocol. For more information, refer to [Generic SMTP](doc:generic-smtp) . SMS [](https://docs.clevertap.com/docs/become-a-partner#sms) ---------------------------------------------------------------- CleverTap supports SMS providers via an HTTP integration. The SMS provider must support receiving messages via the HTTP protocol. For more information, refer to [Generic SMS](doc:generic-sms) . WhatsApp [](https://docs.clevertap.com/docs/become-a-partner#whatsapp) -------------------------------------------------------------------------- CleverTap has a WhatsApp API and standard callback formats public to global communities of WhatsApp service providers. BSPs and customers need not depend on CleverTap to build the native WhatsApp integration. Instead, BSPs or customers can use these APIs directly and build the integration independently. For more information, refer to [Generic WhatsApp](doc:generic-whatsapp) . Webhook [](https://docs.clevertap.com/docs/become-a-partner#webhook) ------------------------------------------------------------------------ CleverTap webhooks enable customers to pass user information basis-specific business workflows to any third-party endpoint. For more information, refer to [Webhooks](doc:webhooks-overview) . Linked Content [](https://docs.clevertap.com/docs/become-a-partner#linked-content) -------------------------------------------------------------------------------------- Linked content allows customers to personalize their messages with rich and contextual data available outside of the CleverTap platform. For more information, refer to [Linked Content](doc:linked-content) . Additional Information [](https://docs.clevertap.com/docs/become-a-partner#additional-information) ====================================================================================================== To properly understand API usage and provide you with resources as part of our Technology Partner Program, you must first define your _Partner ID_. Pass _Partner ID_ along when calling CleverTap's APIs to send event data. Your Partner ID must be a string representing your company's or solution's name. If CleverTap were a developer, our Partner ID would be "CleverTap." For event data, you must include your `Partner ID` as the `$source` property value. The following is an example of passing a `Partner ID`: JSON { "d": [\ {\ "identity": "john_124",\ "type": "event",\ "$source": "CleverTap",\ "evtName": "Product CleverTap 1",\ "evtData": {\ "Product name": "Casio Chronograph Watch"\ }\ }\ ] } Steps to Become A Partner [](https://docs.clevertap.com/docs/become-a-partner#steps-to-become-a-partner) ============================================================================================================ To become a Technical Partner: 1. Perform the integration at your end and test the integration. 2. Write to us at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#4e27203a2b293c2f3a2721203d0e2d222b382b3c3a2f3e602d2123) for the following: * Sharing the name of customers interested in the integration * Getting your Partner ID whitelisted on the CleverTap dashboard. * Defining the scope and its value proposition. We recommend you map integration features to the scope, so the mutual customers understand why you need each one. Describe your integration accurately and do not deliberately mislead or confuse customers – provide clear text, screenshots, and videos to clarify your integration's value. * Provide the contact details of the dedicated support and product team so that CleverTap can reach out to them in case of any issues. 3. Create integration documentation and share it with us in a .md format. Refer to the _[Partner Document Template](https://docs.google.com/document/d/1FNLq4Wxf9kTwT3A_My4IveonnCiG0y5LWMUX8RklFZg/edit?usp=sharing) _. After the CleverTap team tests your integration, we list you as our Technical partner on our Marketplace. What's next [](https://docs.clevertap.com/docs/become-a-partner#whats-next) =============================================================================== Once you are listed as a CleverTap Technical partner, this unlocks revenue-driving partnership opportunities. Updated about 2 months ago * * * Ask AI --- # Error Stream Overview [](https://docs.clevertap.com/docs/error-stream#overview) ====================================================================== All errors are displayed on the _Error Stream_ page by count, type, sources, and occurrence times. View Errors [](https://docs.clevertap.com/docs/error-stream#view-errors) ============================================================================ To view errors: 1. Click **Errors** from the main menu, then the _Error Stream_ page displays. 2. Use the scroll down to select the time period for the errors from the number of days list. ![1365](https://files.readme.io/30b435b-Error_stream_main.png "View Error Stream.png") Error Stream 3. Click any of the errors to view the error detail. ![1365](https://files.readme.io/fdf15f8-Error_stream_detail.png "View Error Details.png") Error Details 4. Click the **+** sign next to an error to see the error trend. ![1339](https://files.readme.io/296e2c1-Error_stream_trend.png "View Error Trend.png") Error Trend List of Errors [](https://docs.clevertap.com/docs/error-stream#list-of-errors) ================================================================================== The list of errors consists of: | Error | Description | Possible Action | | --- | --- | --- | | Mandatory event property not passed; violation handler dropped event | Event property was declared as mandatory for the said event in the schema. Incoming data did not have the mandatory event property, hence, the event was dropped. | 1. Fix the incoming data from SDK/API to ensure the said. event property is always passed
2. Remove the validation for the said event from the schema. | | Undefined event found and dropped | When schema was published,

_Undefined Data Handling_

was set to drop the event. When an event came in for the account which was not defined in the schema, it was dropped. | 1. If the event is valid, define the said event in the schema along with its properties; data will start flowing in. | | Undefined event found and accepted | When schema was published,

_Undefined Data Handling_

was set to allow event. When an event came in for the account which was not defined in the schema, it was accepted leading to polluted data. | 1. If the event is not valid, discard the said event in the schema.
2. Set data handling to drop undefined events to ensure data sanity. | | Undefined event property found and event dropped | When schema was published,

_Undefined Data Handling_

was set to drop event when an undefined event property is identified. When an event property came in for the account which was not defined in the schema, the entire event was dropped. | 1. If the event property is valid, define the said property in the schema. Event along with the property will start flowing in. | | Undefined event property found and event property dropped | When schema was published,

_Undefined Data Handling_

was set to drop the said event property when an undefined event property is identified. When an event property came in for the account which was not defined in the schema, the event property was dropped. | 1. If the event property is valid, define the said property in the schema. Event property will start flowing in. | | Undefined event property found and event property accepted | When schema was published,

_Undefined Data Handling_

was set to accept the said event property when an undefined event property is identified. When an event property came in for the account which was not defined in the schema, the event property was accepted, leading to polluted data. | 1. If the event property is not valid, discard the said event property in the schema.
2. Set data handling to drop undefined event properties to ensure data sanity. | | Mismatched event property data type found and event dropped | In the schema, the data type for event property was defined. The incoming data did not follow the defined data type. The data type fallback definition was to drop the event. | 1. Update the data type fallback definition to allow the event.
2. Update the data coming from API/SDK to the correct data type. | | Mismatched event property data type found and event property dropped | In the schema, the data type for event property was defined. The incoming data did not follow the defined data type. The data type fallback definition was to drop the event property. | 1. Update the data type fallback definition to allow the event property.
2. Update the data coming from API/SDK to the correct data type. | | Mismatched event property data type found and event accepted | In the schema, the data type for event property was defined. The incoming data did not follow the defined data type. The data type fallback definition was to allow the event. | 1. Update the data coming from API/SDK to the correct data type. | | Maximum event properties for event exceeded | Event property limit of 256 for the event exceeded. Properties outside the limit dropped. | 1. Remove unwanted properties from the event. | | Maximum event limit exceeded due to undefined events | Event limit for the project exceeded. Events outside the limit dropped. | 1. Remove unwanted events from the project. | | Event property defined but not used in the last three months | No instance of a defined event property in the schema found in a 90-day period. | 1. Validate incoming data from SDK/API to ensure event is configured correctly. | | Unaccepted characters found in event property values | Illegal characters found in the event property value. | 1. Remove the illegal characters from API/SDK configuration. | | Unaccepted characters found in event property keys for undefined events | Illegal characters found in the event property key. | 1. Remove the illegal characters from API/SDK configuration. | | No event found in last three months | No instance of a defined event in the schema found in a 90-day period. | 1. Validate incoming data from SDK/API to ensure event is configured correctly. | | Undefined user property found and dropped | When schema was published,

_Undefined Data Handling_

was set to drop user property when undefined. When a user property came in for the account which was not defined in the schema, the same was dropped. | 1. If the user property is not valid, discard the said event in the schema.
2. Set data handling to drop undefined user properties to ensure data sanity. | | Undefined user property found and accepted | When schema was published,

_Undefined Data Handling_

was set to allow user property when undefined. When a user property came in for the account which was not defined in the schema, the same was accepted. | 1. If the user property is not valid, discard the said user property in the schema.
2. Set data handling to drop undefined user properties to ensure data sanity. | | Mismatched and user property data type found and dropped | In the schema, the data type for user property was defined. The incoming data did not follow the defined data type. The data type fallback definition was to drop the user property. | 1. Update the data type fallback definition to allow the user property.
2. Update the data coming from API/SDK to the correct data type. | | Mismatched user property data type found and accepted | In the schema, the data type for user property was defined. The incoming data did not follow the defined data type. The data type fallback definition was to accept the user property. | 1. Update the data coming from API/SDK to the correct data type. | | Unaccepted characters found for user property values | Illegal characters found in the user property value. | 1. Remove the illegal characters from API/SDK configuration. | | Unaccepted characters in user profile property key | Illegal characters found in the user property key. | 1. Remove the illegal characters from API/SDK configuration. | | Maximum characters exceeded for user property value | User property limit for the project exceeded. User Properties outside the limit dropped. | 1. Remove unwanted user properties from the project. | Updated about 2 months ago * * * Ask AI --- # Clearout Overview [](https://docs.clevertap.com/docs/clearout#overview) ================================================================== [Clearout](https://clearout.io/) , an Email Verification and Email Finder tool, helps expand your reach, lower hard bounces, and improve deliverability rates. It is created to enhance sales and marketing efforts by simplifying how to discover and reach ideal prospects via email. This integration helps you solve the bounce rate issue and maintain the domain's reputation. To learn more about the Clearout and Clearout results file, refer to [Clearout documentation](https://clearout.io/help/) . For any issues with this integration, contact [Clearout Support team](https://docs.clevertap.com/cdn-cgi/l/email-protection#01747241626d6460736e74752f686e) . Prerequisites for Integration [](https://docs.clevertap.com/docs/clearout#prerequisites-for-integration) ============================================================================================================ The following are the prerequisites for this integration: * You must have an account with Clearout. * You must have an account with CleverTap. Integrate Clearout with CleverTap [](https://docs.clevertap.com/docs/clearout#integrate-clearout-with-clevertap) ==================================================================================================================== This process involves the following four major steps: 1. [Connect CleverTap account](doc:clearout#connect-clevertap-account) . 2. [Add the Email Lists](doc:clearout#add-email-list) . 3. [Verify the Email Address List](doc:clearout#verify-email-list) . 4. [Export the Verified Results](doc:clearout#export-verified-list) . Connect CleverTap Account [](https://docs.clevertap.com/docs/clearout#connect-clevertap-account) ---------------------------------------------------------------------------------------------------- To connect CleverTap account: 1. After logging in to the Clearout account, click the ![Menu](https://files.readme.io/298e857-menu_icon.png) icon and then select _Integrations_ from the list. ![1156](https://files.readme.io/04e27d1-Clearout_dashboard.png "Navigating to Integrations page from Clearout dashboard") Navigating to Integrations Page 2. Scroll down and select _CleverTap_ from the _Integrations_ page and then click **Connect to CleverTap**. ![276](https://files.readme.io/8826dbd-Select_CleverTap.png "Select CleverTap from Integrations page and then click Connect to CleverTap") Click Connect to CleverTap 3. Enter the following project details to authorize the connection: * **Account ID**: Enter your CleverTap Project ID. * **Account Passcode**: Enter your CleverTap passcode. * **Region**: Select the region of your CleverTap account. * **Account Name**: Enter the nickname to identify the account uniquely. The above details can be obtained by navigating to the _Settings_ > _Project_ page on the CleverTap dashboard. To identify the region of your account, check the URL of your CleverTap account. ![CleverTap Project Details](https://files.readme.io/4ca0240-Project_Details.png) CleverTap Project Details To identify the region for your account, refer to the following table: | Dashboard URL | Region | | --- | --- | | [https://eu1.dashboard.clevertap.com/login.html#/](https://eu1.dashboard.clevertap.com/login.html#/) | EU1 | | [https://in1.dashboard.clevertap.com/login.html#/](https://in1.dashboard.clevertap.com/login.html#/) | India | | [https://us1.dashboard.clevertap.com/login.html#/](https://us1.dashboard.clevertap.com/login.html#/) | U.S | | [https://sg1.dashboard.clevertap.com/login.html#/](https://sg1.dashboard.clevertap.com/login.html#/) | Singapore | | [https://aps3.dashboard.clevertap.com/login.html](https://aps3.dashboard.clevertap.com/login.html#/) | Indonesia | | [https://mec1.dashboard.clevertap.com/login.html](https://mec1.dashboard.clevertap.com/login.html#/) | Middle East (UAE) | Add Email List [](https://docs.clevertap.com/docs/clearout#add-email-list) ------------------------------------------------------------------------------ After the successful login, add the email list as follows: 1. Navigate to the _Email Verifier_ tab from the Clearout dashboard. ![940](https://files.readme.io/12f6262-Select_Email_Verifier_tab.png "Navigating to Email Verifier tab to add email list for validation") Navigating to Email Verifier Tab 2. Select the email list from the existing CleverTap audience list for validation, and then click **Add to My List**. ![3200](https://files.readme.io/200afc3-Add_to_My_lIst.png "Select the email list and click Add to My List") Selecting the CleverTap Audience List for Validation Verify Email List [](https://docs.clevertap.com/docs/clearout#verify-email-list) ------------------------------------------------------------------------------------ To verify the email list, click **Verify** to start validating the added CleverTap list. ![3200](https://files.readme.io/70f4586-Click_Verify.png "Validate Audience list by clicking Verify from the Email Verifier page") Click Verify to Validate Audience List Export Verified List [](https://docs.clevertap.com/docs/clearout#export-verified-list) ------------------------------------------------------------------------------------------ After the email validation is completed, the user can choose how to export the verified list to the CleverTap account. The user can export the result by choosing to unsubscribe or append or by selecting both. * **Unsubscribe**: The user can unsubscribe the invalid/non-deliverable email addresses on the CleverTap list automatically, which removes all the non-deliverables from the mailing list. * **Append**: The user can export the result and append the Clearout columns with the original file in the CleverTap account. ![3200](https://files.readme.io/01eaec1-Export_Verified_List.png "Export the Verified Email list to CleverTap by clicking Export from the popup") Click Export FAQs [](https://docs.clevertap.com/docs/clearout#faqs) ========================================================== **Q. How can I check whether the undeliverable user email addresses are handled in my CleverTap account?** Ans: CleverTap changes communication preferences to "Unsubscribed" for the users whose email addresses are marked as undeliverable by Clearout. You can check the same by going through the user profile under CleverTap and checking the communication preferences. ![2250](https://files.readme.io/fdd84f2-Communication_preferences.png "Verify user Communication Preferences from the CleverTap dashboard") Verify Communication Preferences from CleverTap Dashboard **Q. How many lists can I validate at a time?** Ans: Three files can be validated simultaneously at a time. **Q. Can I purchase credits from CleverTap?** Ans: No, you must purchase credits from [Clearout](https://app.clearout.io/dashboard/account/pricing) to validate your list. Updated about 2 months ago * * * Ask AI --- # Dynamic Content Partners Dynamic content refers to any text, audio, or video that updates based on user behavior and preferences. It allows brands to personalize messaging across platforms, enhancing user engagement and delivering tailored experiences. Below are the key tools and integrations that help create dynamic content: * [B.Layer](doc:blayer) * [Blitzllama](doc:blitzllama) * [Contentful](doc:contentful) * [Delighted](doc:delighted) * [Jasper AI](doc:jasper-ai) * [Litmus](doc:litmus) * [Typeform](doc:typeform) * [Movable Ink](doc:movable-ink) * [NiftyImages](doc:niftyimages) * [Playable](doc:playable) * [Qualtrics](doc:qualtrics) * [Quickads](doc:quickads) * [Reignite](doc:reignite) * [Rocketium](doc:rocketium) * [Sendtric](doc:sendtric) * [SquareSpace](doc:squarespace) * [Storylane](doc:storylane) * [Storyly](doc:storyly) * [SurveyMonkey](doc:surveymonkey) * [SurveySparrow](doc:surveysparrow) * [Wove](doc:wove) Updated about 2 months ago * * * Ask AI --- # Partner Vouchers Overview [](https://docs.clevertap.com/docs/partner-vouchers#overview) ========================================================================== Businesses often collaborate with brand partners to offer incentives, such as discounts or exclusive offers, to drive user engagement, increase retention, and boost conversions. The Partner Vouchers reward module allows you to upload, manage, and distribute vouchers received from your partners to your app or website users. Vouchers can be uploaded for a partner along with their metadata, such as code name, description, and expiry date. The uploaded vouchers can then be mapped to a Promo Campaign to distribute a unique voucher to your users based on the intended actions defined in the Campaign. When a user receives a voucher, the Promo engine triggers an event called _CT Partner Voucher Rewarded_ with its event metadata. Based on this event, you can create a live-action engagement campaign, and the event metadata can be used as Liquid Tags to send a communication message to the user upon receiving the reward. Features [](https://docs.clevertap.com/docs/partner-vouchers#features) ========================================================================== The following are the features of Partner Vouchers: * **Voucher List Management**: Upload, manage, and distribute voucher codes. * **Status Tracking**: Track the current state of voucher lists (Active, Expired, Paused, Archived). * **Campaign Mapping**: Map voucher lists to one or multiple Promo Campaigns. Each campaign can define specific conditions for voucher distribution. You can also track which campaigns are linked to a voucher list directly from the voucher list page. * **Voucher Utilization Tracking**: Track the number of codes issued against the total number of codes uploaded for each voucher list. * **Top-up Codes**: Top up the voucher list with a new set of codes when used codes exceed a threshold limit. Voucher Distribution Workflow [](https://docs.clevertap.com/docs/partner-vouchers#voucher-distribution-workflow) ==================================================================================================================== A business using CleverTap partners with various brands to offer discount vouchers as part of its promotional campaigns. The business receives vouchers from these partnered brands, uploads them to the CleverTap platform, and then distributes them to eligible users based on predefined campaign conditions. Customers who meet the campaign criteria receive a unique voucher code and redeem it on the partnered brand platform. Alternatively, if the business has an internal coupon engine to manage voucher redemption directly, it can upload internally generated vouchers to CleverTap for distribution. In this case, customers redeem the vouchers on the business's platform instead of an external partner's. This setup ensures seamless voucher management, whether sourced externally from partners or internally from the business's systems. Voucher Distribution: Key Participants [](https://docs.clevertap.com/docs/partner-vouchers#voucher-distribution-key-participants) ===================================================================================================================================== Voucher distribution and redemption involve multiple participants, each playing a crucial role. The following table outlines each participant and their role in the voucher distribution and redemption workflow: | Participants | Responsibility | | --- | --- | | **Business (CleverTap Customer)** | Defines campaign eligibility criteria and distributes voucher codes through CleverTap. If partnering with brands, the business receives voucher codes from them. If using an internal coupon engine, it manages voucher redemption internally. | | **Brand Partners** | Supplies voucher codes to a business for distribution, if applicable. Customers redeem these vouchers on the brand platform. | | **CleverTap** | Enables businesses to upload, manage, and distribute vouchers through the Partner Vouchers feature. It ensures vouchers are assigned to eligible users based on campaign conditions and tracks their usage. | | **Customer (End User)** | Performs the required campaign actions to earn a voucher, then redeems it either on the partnered brand’s platform (if applicable) or the business’s platform if it manages redemptions internally. | Resources [](https://docs.clevertap.com/docs/partner-vouchers#resources) ============================================================================ Refer to the following documents to explore how Partner Vouchers can transform your voucher distribution strategy and elevate your engagement efforts to new levels: * [Create and Manage Voucher Lists](https://docs.clevertap.com/docs/create-and-manage-voucher-lists) * [Handle Duplicate Voucher Codes](https://docs.clevertap.com/docs/handle-duplicate-voucher-codes) * [Use Partner Vouchers in Campaigns](https://docs.clevertap.com/docs/use-partner-vouchers-in-campaigns) * [Troubleshooting & FAQs](https://docs.clevertap.com/docs/troubleshooting-faqs) Updated about 2 months ago * * * Ask AI --- # Optilyz Overview [](https://docs.clevertap.com/docs/optilyz#overview) ================================================================= [Optilyz](https://www.optilyz.com/) is a direct Email automation platform that helps you create personalized, sustainable, and efficient direct email campaigns, including letters, postcards, and self-mailers. Integrating CleverTap with Optilyz allows you to run hyper-targeted direct mail campaigns as part of your customer journeys. This integration bridges digital and physical channels, enhancing campaign ROI and customer experience. With this integration, you can: * Send personalized postcards or letters based on In-App or online user behavior. * Automate A/B testing of print creatives using campaign variations. * Include direct mail in omnichannel customer journeys for better conversion and engagement. Prerequisites for Integration [](https://docs.clevertap.com/docs/optilyz#prerequisites-for-integration) =========================================================================================================== Ensure the following before starting the integration: * Ensure you have access to your CleverTap account. * Ensure you have access to your Optilyz account. * Ensure that you have your Optilyz API key. Your Optilyz customer success manager will provide you with your Optilyz API key. * Ensure that you have your Optilyz Automation ID. The ID can be found in a box on the page header. Navigate to the automation (you want to send data into) on your Optilyz dashboard. The automation must be activated for your account first. ![Automation ID](https://files.readme.io/fe4f1a826389ac743c03895201bbeda1d08f1db094b728bc6792ab6ebdc74d5c-image.png) Automation ID Integrate CleverTap with Optilyz [](https://docs.clevertap.com/docs/optilyz#integrate-clevertap-with-optilyz) ================================================================================================================= To integrate Optilyz with CleverTap, perform the following two major steps: 1. [Set Up Webhook in CleverTap](doc:optilyz#set-up-webhook-in-clevertap) 2. [Create Webhook Campaign in CleverTap](doc:optilyz#create-webhook-campaign-in-clevertap) These steps allow you to automate the delivery of personalized direct mail, such as letters and postcards, triggered by user activity tracked in CleverTap. > ⚠️ > > ### > > Enable Webhooks > > [](https://docs.clevertap.com/docs/optilyz#enable-webhooks) > > If Webhooks are not enabled for your account, contact [CleverTap Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#4c3f393c3c233e380c2f20293a293e382d3c622f2321) > . Set Up Webhook in CleverTap [](https://docs.clevertap.com/docs/optilyz#set-up-webhook-in-clevertap) ------------------------------------------------------------------------------------------------------- Configure the webhook in your CleverTap dashboard to initiate direct mail triggers using the Optilyz endpoint. To do so, perform the following steps: 1. Go to _Settings_ > _Channels_ > _Webhooks_ from the CleverTap dashboard. 2. Click **\+ Add Webhook** and provide a meaningful name for the webhook. 3. Set the _HTTP Method_ to `POST` and enter the following _Endpoint URL_. For more information, refer to [Optilyz API](https://www.optilyz.com/doc/api/) . JSON https://www.optilyz.com/api/v2/automations//recipient 4. Add the following key-value pair under _Headers_: | Key | Value | | --- | --- | | Authorization | `Bearer ApiKey` | | Content-Type | `application/json` | 5. Select _Basic Authentication_ for Authentication and enter the following: * Username: Your Optilyz _Private API Key_ * Password: Use a hyphen (`-`) ![Create Webhook](https://files.readme.io/c9824d65ed8b74c5a8f112e584a85021592581ff2be239a7339755817cd9b4c0-image.png) Create Webhook 6. Click **Save** to create the webhook. After saving the webhook, CleverTap will be ready to send user profile data directly to Optilyz. Create Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/optilyz#create-webhook-campaign-in-clevertap) ------------------------------------------------------------------------------------------------------------------------- Launch a Webhook campaign to deliver personalized direct mail from CleverTap to Optilyz users. To do so, perform the following steps: 1. Go to _Campaigns_ on the CleverTap dashboard, click **\+ Campaign** and select _Webhook_ from the list of messaging channels. 2. Configure the following campaign settings: target audience, schedule, and other basic settings. 3. Perform the following steps under the _What_ section: 1. Select the webhook created in [Set Up Webhook in CleverTap](doc:optilyz#set-up-webhook-in-clevertap) . 2. Set Content Format to `JSON`. 3. Select _Custom Body_. ![Webhook Content](https://files.readme.io/8b0fc07b06e7eb830724731b27111799d57f1fa3fd1ce267189bdaf18888e668-image.png) Webhook Content 4. Enter the payload under the _Custom Body_ section using [Liquid Tags](doc:personalize-message-all#liquid-tags) : JSON { "address": { "title": "{{ Profile.title | default: "-" }}", "firstName": "{{ Profile.first_name | default: "-" }}", "lastName": "{{ Profile.last_name | default: "-" }}", "street": "{{ Profile.street | default: "-" }}", "houseNumber": "{{ Profile.address | default: "-" }}", "zipCode": "{{ Profile.zipcode | default: "-" }}", "city": "{{ Profile.city | default: "-" }}", "country": "{{ Profile.country | default: "-" }}" }, "variation": 1 } // Note: The `variation` field is optional and controls which design variation will be used in Optilyz. If omitted, a variation will be selected randomly. Click the variable selector (`@`, `{`, or `{{`) in the editor to personalize the campaign. You can dynamically reference user profile properties using [Liquid Tags](doc:personalize-message-all#liquid-tags) . > 📘 > > ### > > Personalization > > [](https://docs.clevertap.com/docs/optilyz#personalization) > > You can use any available personalization attributes and structure your request body according to the [Optilyz API documentation](https://www.optilyz.com/doc/api/) > . 5. Click **Preview & Test** to validate the webhook request. ![Preview and Test](https://files.readme.io/8b742e0eedd4aef31484a49717a237f5136489e06971a38baa3a216533ad8ea8-image.png) Preview and Test Campaign 6. Click **Publish** to launch the campaign. Verify in the Optilyz dashboard if everything works as intended. ![Verify in the Optilyz dashboard](https://files.readme.io/24692cbe1e05095d58fea2d47b1e39392831bdfb0dd07683ddbe680851963380-image.png) Optilyz dashboard Once published, your campaign will trigger real-world mailers based on live user behavior. Updated about 2 months ago * * * Ask AI --- # Direct Mail Partners Overview [](https://docs.clevertap.com/docs/direct-mail-partners#overview) ============================================================================== Enables automated offline engagement through personalized mailers like postcards and brochures. Trigger direct mail campaigns from CleverTap based on user actions or segment criteria. CleverTap currently supports the following partner platforms: * [Inkit](doc:inkit) * [Optilyz](doc:optilyz) * [Poplar](doc:poplar) Updated about 2 months ago * * * Ask AI --- # API Overview [](https://docs.clevertap.com/docs/export-via-api#overview) ======================================================================== The API section introduces the programmatic methods for retrieving data from CleverTap. This document provides an overview of the available data retrieval APIs, allowing you to select the correct endpoints for accessing events, profiles, and message delivery results. These API resources help you access CleverTap data programmatically and integrate events, profiles, and message insights into your analytics and operational workflows. [Get Events](https://developer.clevertap.com/docs/get-events-api) [Get User Profiles](https://developer.clevertap.com/docs/get-user-profiles-api) Updated 24 days ago * * * Ask AI --- # Coupons Overview [](https://docs.clevertap.com/docs/coupons#overview) ================================================================= A coupon is a type of promotional reward that provides either an upfront discount or credits cashback points upon redemption. Coupons can be issued to all users or targeted to specific segments as part of a campaign. CleverTap’s Coupons feature enables teams to create, configure, distribute, and track coupon-based promotions across web and mobile platforms. By leveraging this feature, businesses can encourage repeat purchases, boost customer loyalty, and optimize their promotional strategies. Coupons follow a structured lifecycle, including coupon creation, activation, redemption, and expiration. Coupons can be assigned to users in the following two ways: * **All Users Coupons**: Available to all customers without any specific rules and redeemed based on predefined criteria. * **Campaign Users Coupons**: Distributed to specific users via promo campaigns based on segmentation or behavior. Coupon Configuration [](https://docs.clevertap.com/docs/coupons#coupon-configuration) ========================================================================================= The Coupon module allows you to configure how coupons are distributed, activated, shown, and redeemed. These settings help you tailor promotional strategies based on user behavior and business goals. The following options are available to customize the coupon lifecycle: * **Activation Settings**: Define when a coupon becomes active using one of the following options: * **Time-based**: Activation starts from a specific date and time. * **Event-based**: Activation is triggered by user actions. For example, app install, purchase, or any custom event. * **Expiration Settings**: Define when a coupon expires using one of the following options: * **Fixed Expiry**: Valid until a specific date/time. * **Relative Expiry**: Valid for a defined period after activation. For example, 7 days from the date of assignment. * **Coupon Distribution**: Define how coupons are issued to users. For more information, refer to [Select Coupon Type](doc:create-coupons#select-coupon-type) . * **Redemption Rules**: Define how coupons can be utilized using any one of the following options: * **Per-User Limit**: Maximum number of times a user can redeem the coupon. * **Global Limit**: Total number of redemptions allowed across all users. * **Redemption Window**: Optional start/end date within which redemption is allowed. * **Visibility Options**: Configure coupon visibility in the user’s coupon tray. * **Visible**: Displayed to users for easy discovery and usage. * **Hidden**: Not shown in the tray but still redeemable by entering the code. Use Cases [](https://docs.clevertap.com/docs/coupons#use-cases) =================================================================== The following are real-world examples that illustrate how businesses across industries use coupons: * **E-commerce**: First-time purchase discounts, festive offers, cart abandonment recovery. * **Food Delivery**: Time-bound coupons for free delivery or cashback during off-peak hours. * **Travel and Hospitality**:Early-bird or last-minute booking discounts and loyalty rewards for repeat bookings. * **Fintech/Wallet Apps**:UPI or wallet top-up incentives tied to specific payment methods. * **Gaming**: In-App redemption coupons for limited-time promotions. Features [](https://docs.clevertap.com/docs/coupons#features) ================================================================= The Coupon module supports the following features: * **Flexible Coupon Types**: Supports single static codes, bulk unique codes, and event-triggered coupon distribution. * **Custom Discount Rules**: Apply discounts on the entire order, selected products, or custom order properties such as platform fees or shipping charges. * **Qualifying Rules**: Configure based on user properties, product attributes, or cart conditions. * **Advanced Redemption Controls**: Set per-user and global redemption limits, including daily, weekly, or monthly caps. * **Scheduling**: Define start/end times or set recurring availability, such as weekends, happy hours, and so on. * **Personalization Coupon Distribution**: Target all users or segments through promo campaigns. * **User Property-Based Targeting**: Create coupons that apply only to specific user segments based on attributes such as location, language, user type, and so on. * **Tracking and Analytics**: Monitor coupon performance in real-time with usage data and redemption insights. * **Bulk Code Management**: Seamlessly upload, manage, and track large sets of unique coupon codes via CSV. Resources [](https://docs.clevertap.com/docs/coupons#resources) =================================================================== Refer to the following documents to understand CleverTap's Coupons feature: * [View Coupons](https://docs.clevertap.com/docs/view-coupons) * [Coupon Operations](https://docs.clevertap.com/docs/coupon-operations) * [Create Coupons](https://docs.clevertap.com/docs/create-coupons) * [Coupon Stats](https://docs.clevertap.com/docs/coupon-stats) Updated about 2 months ago * * * Ask AI --- # LeadSquared Overview [](https://docs.clevertap.com/docs/leadsquared#overview) ===================================================================== [LeadSquared](https://www.leadsquared.com/) is a sales execution and marketing automation platform that helps businesses manage leads and drive sales efficiently. Integrating CleverTap with LeadSquared enables real-time, two-way lead syncing. You can capture leads from CleverTap into LeadSquared and transfer enriched lead profiles back to CleverTap, helping automate campaigns and personalize user engagement. By integrating LeadSquared with CleverTap, you can: * Sync lead activity from CleverTap to LeadSquared to automate sales workflows. * Push qualified leads from LeadSquared to CleverTap to trigger personalized journeys. * Maintain consistent lead data across both platforms to power real-time engagement. Prerequisites for Integration [](https://docs.clevertap.com/docs/leadsquared#prerequisites-for-integration) =============================================================================================================== The following are the prerequisites for LeadSquared and CleverTap integration: * Ensure you have a CleverTap account with administrative access * Ensure you have access to your active [LeadSquared account](https://www.leadsquared.com/signup/) . > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/leadsquared#support-for-integration) > > This integration is managed and continuously improved by LeadSquared. The CleverTap and LeadSquared integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [LeadSquared](https://docs.clevertap.com/cdn-cgi/l/email-protection#cbb8bebbbba4b9bf8ba7aeaaafb8babeaab9aeafe5a8a4a6) > for support and resolution. Integrate CleverTap with LeadSquared [](https://docs.clevertap.com/docs/leadsquared#integrate-clevertap-with-leadsquared) ============================================================================================================================= The integration supports two lead data flows: * [Export Lead Data from CleverTap to LeadSquared](doc:leadsquared-export) : Send leads from CleverTap to LeadSquared. * [Import Lead Data from LeadSquared to CleverTap](doc:leadsquared-import) : Automatically push leads from LeadSquared to CleverTap. Updated about 2 months ago * * * Ask AI --- # Contextual Location Partners Overview [](https://docs.clevertap.com/docs/contextual-location-partners#overview) ====================================================================================== CleverTap’s location integrations allow you to deliver hyper-personalized experiences based on where your users are or where they’ve been. By combining real-time location data with user behavior, you can trigger relevant campaigns, enhance engagement, and drive higher conversions. CleverTap currently supports the following partner platforms: * [AccuWeather](doc:accuweather) * [OpenWeather](doc:open-weather) * [Radar](doc:radar) * [Weather API](doc:weather-api) Updated about 2 months ago * * * Ask AI --- # Radar Overview [](https://docs.clevertap.com/docs/radar#overview) =============================================================== [Radar](https://radar.io/) is a comprehensive location platform offering geofencing, geocoding, and mapping services to empower location-based experiences across millions of devices. With the CleverTap and Radar integration, you can enhance your marketing campaigns with location-based intelligence as follows: * Triggering promotional campaigns when users are near a physical store. * Showing nearby service centers via In-App messages. * Engage with users based on geolocation history. Prerequisites for Integration [](https://docs.clevertap.com/docs/radar#prerequisites-for-integration) ========================================================================================================= To integrate Radar with CleverTap, ensure the following prerequisites are met: * You have a Radar account with access to the [Publishable API Key](https://radar.com/dashboard/settings) . * You have an active CleverTap account. * Latitude and longitude values are stored in CleverTap user profiles, preferably as custom user properties. Integrating Radar with CleverTap [](https://docs.clevertap.com/docs/radar#integrating-radar-with-clevertap) =============================================================================================================== The integration process involves the following three major steps: 1. [Locate Radar API Key](doc:radar#locate-radar-api-key) 2. [Configure Linked Content API](doc:radar#configure-linked-content-api) 3. [Create Personalized Campaign](doc:radar#create-personalized-campaign) Locate Radar API Key [](https://docs.clevertap.com/docs/radar#locate-radar-api-key) --------------------------------------------------------------------------------------- To complete the integration process, you will need your Radar API key. After logging into your Radar account, go to _Home_ section to find the key. ![Radar API Key](https://files.readme.io/dd86462bb504e8463c2dbdf3b4e85fc9236cd295948a72d913ec2e6a05e9bc59-image.png) Radar API Key Configure Linked Content API [](https://docs.clevertap.com/docs/radar#configure-linked-content-api) ------------------------------------------------------------------------------------------------------- To integrate Radar's Search Places API with CleverTap, configure the Linked Content API. To do so, perform the following steps: 1. Go to _Settings_ > _Setup_ > _Linked Content_ from the CleverTap dashboard. 2. Click **\+ Linked Content** and enter the following: | Field | Value | | --- | --- | | Name | Provide a name for the Linked Content. For example: `Radar` | | Request Type | Select `GET` method. | | Endpoint URL | Enter the following endpoint URL:`https://api.radar.io/v1/search/places?near={{Latitude}},{{Longitude}}&chains={{place}}&limit=5` | This endpoint uses the following three parameters: * `Latitude` and `Longitude` pulled from user profile (custom properties) * `place`: chain name to search near the user (for example, `starbucks`) ![Configure the Linked Content API](https://files.readme.io/7c8b4bac5ead7ca4be970a4d5a511180526ee546e75d9374ead587d33e5e4dfa-image.png) Configure Linked Content API 3. Under _Headers_, add the following: * Authorization: `` ![Key value pair](https://files.readme.io/af0983589c0a48b7f821f042e6250164b9c2a28194abc3f66b57d82060904c8d-image.png) Key Value Pair 4. Click **Test the Linked Content** using sample values. The following is a sample response: JSON { "meta": { "code": 200 }, "places": [\ {\ "_id": "61dda2c10bb02c4952d5005e",\ "name": "Starbucks",\ "location": {\ "type": "Point",\ "coordinates": [72.83543684530189, 19.172690329535484]\ },\ "categories": ["food-beverage", "cafe"],\ "chain": {\ "slug": "starbucks",\ "name": "Starbucks",\ "domain": "starbucks.com"\ }\ }\ ] } 5. Click **Auto-Fill Objects with Response** to automatically handle responses and populate objects. 6. Click **Test and save changes** to complete the setup. ![Test And Save](https://files.readme.io/8030a9a04bd63c0f4f466c005c6801db77703cf1e2e4df9ef7e3edb93568a2a3-image.png) Test And Save > 🚧 > > ### > > Caution > > [](https://docs.clevertap.com/docs/radar#caution) > > Radar's Search Places API has a default rate limit of 100 requests/min. Plan campaign traffic accordingly. Create Personalized Campaign [](https://docs.clevertap.com/docs/radar#create-personalized-campaign) ------------------------------------------------------------------------------------------------------- You can use the Linked Content API integration with Radar to power location-based personalization in your CleverTap messaging campaigns. To integrate a Radar into your CleverTap Push campaign, perform the following steps: 1. Go to the _Campaigns_ page, click **\+ Campaign**, and select _Push Notification_ from the list of messaging channels. 2. Click **Go to Editor** under the _What_ section. 1. Click **Personalization**. 2. Select the Linked Content configured under [Configure Linked Content API](doc:radar#configure-linked-content-api) and click **Apply**. ![Personalization](https://files.readme.io/08ea6f76636a194fcad355b6b2a9c6237a42d997e83a4f99c57e58a84961fb36-2025-06-18_15-50-28_1.gif) Create a Personalized Email Campaign 3. Map the required API parameters to personalize the message: * **Latitude** → `{{ Profile.lat }}` * **Longitude** → `{{ Profile.long }}` * **Place** → chain slug (for example, `starbucks`) ![Set API Parameters](https://files.readme.io/31bd864ca0da27e2db1309db3663ee64fb1af3a9e080762ecc0c99a89458b046-image.png) Set API Parameters 4. Use [Liquid tags](doc:personalize-message-all#liquid-tags) to personalize the message with nearby place data from the Linked Content API. The dynamic fields in the API response let you insert real-time location details directly into the message. For example: **Example 1: Display the First Nearby Place** Welcome to {{ Linked["Nearby Radar Places"].places[0].name | default: "our store" }} **Example 2: List Up to 5 Nearby Places** Explore nearby spots: {% for place in Linked["Nearby Radar Places"].places limit:5 %} - {{ place.name | default: "store" }} {% endfor %} **Example 3: Show Places Only If Available** Use a conditional check to ensure the campaign is only sent if at least one nearby place is detected. {% if Linked["Nearby Radar Places"].places and Linked["Nearby Radar Places"].places.size > 0 %} Check these places near you: {% for place in Linked["Nearby Radar Places"].places limit:5 %} {{ place.name | default: "store" }} {% endfor %} {% endif %} 5. Click **Preview and Publish** to test and launch the campaign. ![Push notification](https://files.readme.io/3b8615108fd083c573b857a474a5373d0ef120686a4c19ea9a0bf6a43fb0353b-image.png) Push Notification By combining Radar’s location intelligence with CleverTap’s personalization engine, you can deliver hyperlocal, context-aware campaigns that drive real-world engagement and customer delight. Updated about 2 months ago * * * Ask AI --- # LeadSquared Export Overview [](https://docs.clevertap.com/docs/leadsquared-export#overview) ============================================================================ [LeadSquared](https://www.leadsquared.com/) allows you to receive lead data from CleverTap, enabling automated lead capture and CRM updates in real time. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/leadsquared-export#support-for-integration) > > This integration is managed and continuously improved by LeadSquared. The CleverTap and LeadSquared integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [LeadSquared](https://docs.clevertap.com/cdn-cgi/l/email-protection#5c2f292c2c332e281c30393d382f2d293d2e3938723f3331) > for support and resolution. Export Lead Data from CleverTap to LeadSquared [](https://docs.clevertap.com/docs/leadsquared-export#export-lead-data-from-clevertap-to-leadsquared) ======================================================================================================================================================== To push lead data from CleverTap to LeadSquared using webhooks. To do so, follow these steps: 1. [Install the CleverTap Connector in LeadSquared](doc:leadsquared-export#install-the-clevertap-connector-in-leadsquared) 2. [Generate a Webhook URL in LeadSquared](doc:leadsquared-export#generate-a-webhook-url-in-leadsquared) 3. [Configure Webhook in CleverTap](doc:leadsquared-export#configure-webhook-in-clevertap) 4. [Create Webhook Campaign](doc:leadsquared-export#create-webhook-campaign) Install the CleverTap Connector in LeadSquared [](https://docs.clevertap.com/docs/leadsquared-export#install-the-clevertap-connector-in-leadsquared) -------------------------------------------------------------------------------------------------------------------------------------------------------- Install the CleverTap connector to start capturing leads from CleverTap into LeadSquared. To do so, follow these steps: 1. Go to _Apps_ > _Apps Marketplace_ in LeadSquared. 2. Search for _CleverTap_ and click **Install**. 3. After installation, click **Configure**. ![Install the CleverTap Connector in LeadSquared](https://files.readme.io/33343dd088913851a3134410a5324cded17641062df21da260f920755f288ea4-clevertap-install-20250108-104125.gif) Install the CleverTap Connector in LeadSquared 4. Grant connector access by role or user-level settings: * _Based on Role_: Choose roles from the _Specify Roles_ dropdown. * _Advanced (User Level)_: Select a user boolean field that controls access. ![User-level settings](https://files.readme.io/d7b4ab2fb5138724c7d27cb304404de3c9d88de4b294fdbcb0be461894a70c57-24a530cd-0416-482b-8302-20e0579ec61c.gif) User-level settings 5. Click **Save Details** to apply settings. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/leadsquared-export#note) > > All Admin users have access to the connector by default. Generate a Webhook URL in LeadSquared [](https://docs.clevertap.com/docs/leadsquared-export#generate-a-webhook-url-in-leadsquared) -------------------------------------------------------------------------------------------------------------------------------------- Generate a webhook URL in LeadSquared to push lead data into CleverTap. To do so, follow these steps: in LeadSquared that can be used to automate the data push into CleverTap. 1. Go to _Apps_ > _CleverTap_. 2. Enter the following details: | Property | Description | | --- | --- | | Lead Source | Define the lead source (for example, CleverTap). | | Default Country Code | Adds country code if missing in leads. | | Select Time Zone | Aligns with your CleverTap account time zone. | | Lead Capture Search By Criteria | Primary lead identifier (for example, email or mobile). | | Lead Capture Secondary Search By Criteria | Fallback identifier if the primary fails. | | Select User to Notify on Failure | Select the user who receives sync failure alerts. | | Enable Notification | Toggle to send failure alerts via email. | ![](https://files.readme.io/d385c2f0ad10c867d563e76efccbd4c67cad433cb958ff394266ff65d289a963-image.png) 3. Configure _Entity Options_ to define sync behavior: * _Capture (Create and Update existing)_ * _Create only new record_ * _Update only existing record_ ![Configure Entity Options](https://files.readme.io/f2598854231f75bad51cb0cba8cf3b8b2ac61b61195306fc2346aa0f5419672a-image.png) Configure Entity Options 4. On the _Mapping_ screen: * Review auto-mapped CleverTap to LeadSquared fields. * To set default values, click the **edit** icon, enter value, and save. * Disable any fields not needed. * Use the search key icon to mark a unique identifier. * Add custom fields if required and map them accordingly. ![Mapping](https://files.readme.io/86da639eb053e49f656ae4b39eb8c3537041f2da30b8a4160b7ee79dca26547d-clevertap-lead-mapping-20250108-112803.gif) Mapping 5. Click **Save & Next** to generate the webhook URL. 6. Copy the webhook URL for use in CleverTap. 7. Go to _More Actions_ > _Enable Sync Job_ to activate data flow. ![Copy Webhook URL](https://files.readme.io/bc6f02cbccd70fd6dd4ad81fb92cda36ba03a48ca3c54c632bcd3c4578981ecf-e9ea505e-234f-4074-ace8-ec8d1da41648.gif) Copy Webhook URL > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/leadsquared-export#note-1) > > To view job history, Go to _More Actions_ > _View Logs_. Configure Webhook in CleverTap [](https://docs.clevertap.com/docs/leadsquared-export#configure-webhook-in-clevertap) ------------------------------------------------------------------------------------------------------------------------ To enable real-time lead capture, create and configure the CleverTap webhook using the URL generated in LeadSquared. To do so, follow these steps: 1. Go to _Settings_ > _Channels_ > _Webhook_ in the CleverTap dashboard. 2. Click **\+ Add Webhook**. 3. Enter the following configuration: | Field | Value | | --- | --- | | Name | Enter a unique nickname for your webhook (for example, LeadSquared) | | HTTP Method | `POST` | | Endpoint URL | Paste the URL copied in _step 6_ of [Generate a Webhook URL in LeadSquared](doc:leadsquared-export#generate-a-webhook-url-in-leadsquared)
. | | Authentication | Select `No Authentication`. | | Headers | Add a Key/Value pair to the events that trigger this webhook. | ![Configure Webhook in CleverTap](https://files.readme.io/d778ff148e399a594bd0660309ca2510d5b7597019cec978391ba4a78a255042-image.png) Configure Webhook in CleverTap 4. Click **Save** to validate the configuration. Once saved and tested successfully, the webhook can export lead data from CleverTap to LeadSquared. Create Webhook Campaign [](https://docs.clevertap.com/docs/leadsquared-export#create-webhook-campaign) ---------------------------------------------------------------------------------------------------------- After configuring your webhook in CleverTap, you must create a campaign that triggers the webhook and sends data to LeadSquared. To do so, follow these steps: 1. Go to the _Campaigns_ page, click **\+ Campaign**, and select _Webhook_ from the list of messaging channels. 2. Under the _What_ section, select the Webhook created in the [Configure Webhook in CleverTap](doc:leadsquared-export#configure-webhook-in-clevertap) section. * Select **JSON** as the content format. * Select **Custom Body**. ![Webhook Content](https://files.readme.io/ecb2568f744869aad55de0a83e8464e50ff5a3440212253f0e2b01b582af2bdd-image.png) Webhook Content 3. In the **Webhook Content**, paste the following sample payload: JSON { "RelatedProspectId": "{{ Profile.Identity | default: 'NULL' }}", "ActivityEvent": 201, "ActivityNote": "Lead has read the email at {{ Profile.data | default: '0' }} tracked via CleverTap", "ActivityDateTime": "{{ Profile.purchase_date | default: '0' }}", "Fields": [\ {\ "SchemaName": "Platform",\ "Value": "Email"\ },\ {\ "SchemaName": "mx_Custom_2",\ "Value": "{{ Profile.QualtricID | default: 'N/A' }}"\ },\ {\ "SchemaName": "mx_Custom_3",\ "Value": "custom_value"\ }\ ] } You can dynamically personalize values using [Liquid tags](doc:personalize-message-all#liquid-tags) (`{{ }}`). For example, `{{ Profile.Identity }}` picks the LeadSquared prospect ID of the user, and `{{ Profile.purchase_date }}` dynamically fills in the user’s last purchase date. 4. Click **Preview and Test** to validate the payload and campaign behavior. 5. If everything works as expected, click **Publish**. Once launched, CleverTap will trigger the webhook to LeadSquared when the specified event and audience conditions are met, ensuring real-time data sync. Updated about 2 months ago * * * Ask AI --- # BigQuery Export Overview [](https://docs.clevertap.com/docs/bigquery-export#overview) ========================================================================= [BigQuery](https://cloud.google.com/bigquery) is Google's cloud-based data warehousing and analytics platform. It enables users to store and analyze large amounts of data quickly and in a cost-effective manner. BigQuery integrates with several other Google Cloud Services (GCS). It supports various data sources, including CSV, JSON, Avro, Parquet, and ORC. CleverTap integration with BigQuery through GCS allows you to export your CleverTap data to BigQuery for further analysis and reporting. This document describes how to integrate and analyze your CleverTap data in BigQuery. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/bigquery-export#note) > > For any issues or questions related to the integration, you can reach out to the CleverTap Support Team for assistance. Key Benefits [](https://docs.clevertap.com/docs/bigquery-export#key-benefits) ================================================================================= Integrating BigQuery with CleverTap empowers businesses to unlock the full potential of their customer data, enabling advanced analytics, improved decision-making, personalized engagements, and scalable data processing. Here are some of the key benefits of this integration: * **Data Centralization:** You can centralize your customer data in one location. This allows for comprehensive analysis and reporting, as well as the ability to combine data from various sources for a holistic view of customer interactions. * **Enhanced Data Insights:** By combining CleverTap's user engagement data with BigQuery's robust analytics capabilities, you gain deeper insights into user behavior, preferences, and interactions. This enables you to understand your customers better and make informed decisions based on comprehensive data. * **Real-time Data Access:** Allows you to access real-time user data in BigQuery's data warehouse. This instant data availability empowers you to perform dynamic and up-to-the-minute analysis. It drives faster reactions to changing customer trends. * **Scalability and Performance:** Integrating with CleverTap allows you to process and analyze vast amounts of customer data rapidly, ensuring high performance and scalability as your data volume grows. BigQuery's ability to handle large datasets without compromising performance ensures you can keep up with increasing user demands. * **Scheduled Data Streaming:** You can schedule regular data exports from CleverTap to BigQuery and eliminate the need for manual data exports. This allows you to automate the CleverTap data transfer to BigQuery at recurring intervals, typically every 4 hours. While real-time streaming is not possible due to the minimum 4-hour delay between exports, this approach still provides a timely and efficient way to synchronize your CleverTap data with BigQuery. Scheduled data streaming ensures access to up-to-date customer data for analysis and decision-making. * **Enhanced Segmentation and Targeting:** You can perform advanced segmentation and targeting of your CleverTap audience with this integration. This enables you to create highly personalized and targeted campaigns based on CleverTap's behavioral and demographic data. This precision targeting enhances the effectiveness of your marketing campaigns. * **Predictive Analytics:** By leveraging CleverTap's behavioral analytics with BigQuery's data processing capabilities, you can implement predictive models to anticipate customer behavior. This empowers you to take proactive measures and optimize user experiences. * **Customized Reporting and Visualization:** With CleverTap and BigQuery working together, by integrating CleverTap with BigQuery, you can create custom reports and visualizations using the data visualization tools of your choice. This allows for tailored reporting and visualization based on your specific business requirements and provides flexibility in data presentation. * **Data Security and Reliability:** CleverTap and BigQuery are designed with security and reliability in mind. The integration ensures that your data is protected and readily available whenever needed, giving you peace of mind about data management. Prerequisites for Integration [](https://docs.clevertap.com/docs/bigquery-export#prerequisites-for-integration) =================================================================================================================== Before you begin the integration, ensure that you have the following: * A CleverTap account with the required access to create an export from CleverTap. * A GCS project with a Service Account and the necessary permissions to access BigQuery, Cloud Storage, and Cloud Functions. * Integrated Google Cloud with CleverTap. For more information, refer to [Integrated Google Cloud with CleverTap](doc:data-export-to-gcp#integrate-gcp-with-clevertap) . * An [IAM user](https://cloud.google.com/storage/docs/access-control/iam-roles) with the necessary permissions to access BigQuery and Cloud Storage. Export from CleverTap to BigQuery [](https://docs.clevertap.com/docs/bigquery-export#export-from-clevertap-to-bigquery) =========================================================================================================================== To perform the export from CleverTap to BigQuery: 1. [Set Up CleverTap Export](doc:bigquery#set-up-clevertap-export) 2. [Store the Data in BigQuery](doc:bigquery#store-the-data-in-bigquery) 3. [Verify the Incoming Data](doc:bigquery#verify-the-incoming-data) 4. [Set Up a Recurring Data Transfer Service](doc:bigquery#set-up-a-recurring-data-transfer-service) Set Up CleverTap Export [](https://docs.clevertap.com/docs/bigquery-export#set-up-clevertap-export) ------------------------------------------------------------------------------------------------------- Create a CleverTap export file that exports your data to a Google Cloud Storage (GCS) bucket in a specified format such as JSON, XML, CSV, or Parquet. Configure the export profile to run at a specific interval, for example, every 4 hours. The below image shows the _Notification Sent_ event export. ![Export the Notification Sent Data to Google Cloud](https://files.readme.io/ec2fbcb-image.png) Export the Notification Sent Data to Google Cloud > 📘 > > ### > > Establish Connection > > [](https://docs.clevertap.com/docs/bigquery-export#establish-connection) > > Ensure that the CleverTap export file is configured to a designated GCS bucket. This is required to establish a connection between CleverTap and GCS. After the export is completed, it appears on the _Exports_ page. ![View Exported Data on the CleverTap Dashboard](https://files.readme.io/bedb618612a0258fe59958d195d557fe7b6cc6b7b1702a99e25db6385726f183-image.png) View Exported Data on the CleverTap Dashboard ### View Exported Data in GCS Bucket [](https://docs.clevertap.com/docs/bigquery-export#view-exported-data-in-gcs-bucket) To view the exported data in the GCS bucket, enter the Export ID in the filter option as shown below: ![View Exported Data in GCS Bucket](https://files.readme.io/95a4c4d-Notification_Sent.png) View Exported Data in GCS Bucket To find the Export ID, check the _Export details_ column on the _Export_ page. Store the Data in BigQuery [](https://docs.clevertap.com/docs/bigquery-export#store-the-data-in-bigquery) ------------------------------------------------------------------------------------------------------------- Suppose you have an e-commerce website, and you want to store and analyze your CleverTap data of _Notification Sent_ events using BigQuery. To achieve this use case, you need to create the following: * [Datasets](doc:bigquery#datasets) * [Tables](doc:bigquery#tables) ### Datasets [](https://docs.clevertap.com/docs/bigquery-export#datasets) To store the data in BigQuery, you must first create a [dataset](https://cloud.google.com/bigquery/docs/datasets-intro) . Consider a dataset as a folder containing tables, views, and other BigQuery objects. For our use case, let's create a dataset called _CleverTap\_Data_. This dataset will act as a container to organize and manage all the tables and information related to CleverTap data. To create a dataset in BigQuery: 1. Open the Google Cloud Console at [console.cloud.google.com](https://console.cloud.google.com/) . 2. Select your project or create a new project if required. 3. From the navigation menu on the left, click **BigQuery** to access the BigQuery Console. 4. Choose a Project. If you have multiple projects, ensure you select the correct project where you want to create the dataset. 5. Click the![](https://files.readme.io/b927780-Ellipsis_Bigquery_1.png) icon from your project name and click **Create dataset** from the context menu. 6. In the _Create Dataset_ dialog box, enter a unique name for your dataset. Choose a name that conveys the purpose or content of the data you will store within it. 7. Select the location for your dataset. It determines the geographical region where the data will be physically stored. Choose a location that aligns with your data residency requirements. 8. Click **Create dataset**. ![Create a Dataset](https://files.readme.io/800803e-Create_Dataset_CleverTap_Data.gif) Create a Dataset For more information, refer to [Create Datasets](https://cloud.google.com/bigquery/docs/datasets) . ### Tables [](https://docs.clevertap.com/docs/bigquery-export#tables) Let us consider [tables](https://cloud.google.com/bigquery/docs/tables-intro) as spreadsheets within the _CleverTap\_Data_ dataset. Each table consists of columns (similar to columns in a spreadsheet) that define the specific data fields you want to capture. For example, the _user\_id_, _event\_name_, _campaign\_name_ and _campaign\_id_. Once you have created a dataset in BigQuery, you can create tables within that dataset to store your data. Creating tables in BigQuery enables you to structure and store your data for efficient analysis and querying. By defining the table schema and optionally loading data, you can effectively organize your datasets and leverage the power of BigQuery for data analytics and exploration. By creating these tables within the _CleverTap\_Data_ dataset, you can easily organize and analyze your customer data. You can run queries to extract insights, perform calculations, and generate reports based on the information stored in these tables. To create a table in BigQuery: 1. Locate and click the dataset name where you want to create the table in the BigQuery console. The dataset will expand to display its contents. 2. Click the **Create table** button or the ellipsis icon![](https://files.readme.io/d7ba75b-Ellipsis_Bigquery_1.png)on dataset name and click **Create table** from the context menu. This will open the table creation form. 3. Configure the below Table Settings: 1. From _Source_, select **Google Cloud Service** in the _Create table form_ field. 2. Browse your GCS bucket and choose the _Notification Sent_ file to transfer its data. 3. Select **CSV** in the _File format_ option. 4. From _Destination_, select the _Project_ and _Dataset_ where you want to transfer the data. 5. Provide a unique name for your table in the _Table_ field. We recommend you choose a descriptive name that reflects the purpose or content of the table. This helps you to identify the event data that you will transfer to the table. For this example, enter the table name as **Notification Sent**, which means that every event export file with the name _Notification Sent_ will append to this table. 6. Select the _Table type_ as **Native table** to store data from your Google Cloud Storage bucket. 4. Click **Create table**. ![Create a Table](https://files.readme.io/8a0de62-Create_Table.gif) Create a Table Once the table is created, you can view and manage it within the dataset. The table will be listed along with any other existing tables in the dataset. From the table view, you can perform operations such as running queries, modifying the table schema, setting access controls, and managing table properties. You can also configure table-specific settings, such as expiration policies, which automatically delete the table or its partitions after a specific time period. For more information, refer to [Create Tables](https://cloud.google.com/bigquery/docs/tables) . > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/bigquery-export#note-1) > > In the above use case, the dataset _CleverTap\_Data_ acts as a container or folder, while the table _Notification Sent_ acts as individual tables, each storing specific types of information related to customer data. Verify the Incoming Data [](https://docs.clevertap.com/docs/bigquery-export#verify-the-incoming-data) --------------------------------------------------------------------------------------------------------- Before you configure the Data Transfer, you need to verify if your data has been correctly loaded and that the schema is in place. To verify the incoming data: 1. Navigate to the _Explorer_ dashboard. 2. Click the table in the sidebar. The _SCHEMA_ page opens: ![View Schema](https://files.readme.io/3a15bfa-Schema.png) View Schema 3. Click the **PREVIEW** tab to verify the incoming data. ![Preview the Incoming Data](https://files.readme.io/396ef38-Preview.png) Preview the Incoming Data Set Up a Recurring Data Transfer Service [](https://docs.clevertap.com/docs/bigquery-export#set-up-a-recurring-data-transfer-service) ----------------------------------------------------------------------------------------------------------------------------------------- Finally, set up a recurring data transfer service to move the exported data from GCS to BigQuery. The Data Transfer setup transfers the data from GCS to BigQuery. Create a [Cloud Storage Transfer](https://cloud.google.com/bigquery/docs/cloud-storage-transfer) from BigQuery that triggers a data transfer pipeline at the same interval as the export file. For example, every 4 hours). To set up a recurring data transfer service: 1. Navigate to _BigQuery_ > _Data Transfer_ from the Google Cloud console. 2. Click **Create Transfer**. 3. On the _Create Transfer_ page: * In the _Source type_ section, from _Source_ drop-down, select _Google Cloud Storage_. ![Source Type](https://files.readme.io/588d34e-Source_Type_Bigquery.png) Source Type * In the _Transfer config name_ field, from the _Display name_, enter a name for the transfer, such as _Notification\_Sent\_Data_. The transfer name can be any value that allows you to easily identify the transfer if you need to modify it later. ![Transfer Config Name](https://files.readme.io/a2626c1-Transfer_config_name.png) Transfer Config Name * In the _Schedule options_ section, set the _Repeat frequencies_ for the schedule. You may either choose the default value as **Start now** to schedule the export immediately or click **Start at a set time** to schedule the export at a later time. ![Schedule Options](https://files.readme.io/62a5084-Schedule_Options.png) Schedule Options * In the _Destination settings_ section, from the _Destination dataset_ drop-down, choose the dataset you created to store your data. ![Destination Settings](https://files.readme.io/1da5024-Dataset_Name.png) Destination Settings * In the _Data source details_ section: * In the _Destination table_ field, enter the table name you created to store the data in BigQuery. * In the _Cloud Storage URI_ field, browse the _Notification\_Sent_ event from the bucket. > 📘 > > ### > > Naming Convention > > [](https://docs.clevertap.com/docs/bigquery-export#naming-convention) > > When using the Cloud Storage URI to browse for event data, include an asterisk (\*) before and after the event name as shown in the image below. This allows the event export table to continuously update with fresh event data. * From the _Write preference_ drop-down, select _APPEND_, to append new data to your existing destination table. The default value for _Write preference_ is _APPEND_. * Check the _Delete source files after transfer_ option to delete the source files from the GCS bucket after they are transferred to the BigQuery table. This helps to optimize the cloud storage cost. * From the _File format_ drop-down, select the data format you selected while exporting the data from the CleverTap dashboard. We recommend you select the file format as CSV. ![Data Source Details](https://files.readme.io/2084205-Data_Source_Details.png) Data Source Details * In the _Header rows to skip_ field, we suggest entering at least one row corresponding to the table titles. This ensures that the space for table titles is preserved when transferring the data to the table. ![Header Rows to Skip](https://files.readme.io/ad59ab4-Header_Rows_to_Skip.png) Header Rows to Skip 4. Click **Save**. Analyze CleverTap Data in BigQuery [](https://docs.clevertap.com/docs/bigquery-export#analyze-clevertap-data-in-bigquery) ============================================================================================================================= Once the data is exported to BigQuery, you can use SQL queries to analyze your CleverTap data in the BigQuery console or through other BigQuery-compatible tools. For example, you can: * Count the number of user events or actions within a specific time period. * Identify user segments based on their activity patterns. * Calculate user engagement metrics such as retention rates, churn rates, or conversion rates. * Perform cohort analysis to understand user behavior over time. * Combine CleverTap data with other datasets in BigQuery for deeper analysis and correlation. By exporting and analyzing your CleverTap data in BigQuery, you can unlock powerful analytics capabilities and gain valuable insights into your user engagement and retention strategies. Updated 6 days ago * * * Ask AI --- # Attribution Partners Overview [](https://docs.clevertap.com/docs/attribution#overview) ===================================================================== For marketers, it is very important to understand where their customers are coming from and how they can engage with them effectively. This is when attribution plays a very important role. CleverTap partners with different attribution providers and tracks app installations, measure attribution with third-party sources, and view reports in the CleverTap Dashboard. CleverTap supports integrations with the following third-party attribution providers: * [Adjust](https://developer.clevertap.com/docs/adjust) * [Airbridge](https://developer.clevertap.com/docs/airbridge) * [AppsFlyer](https://developer.clevertap.com/docs/appsflyer) * [Branch](https://developer.clevertap.com/docs/branch) * [Singular](https://developer.clevertap.com/docs/singular-apsalar) * [AppTrove by Trackier](https://docs.clevertap.com/docs/apptrove) Types of Data [](https://docs.clevertap.com/docs/attribution#types-of-data) =============================================================================== CleverTap receives the following event data from the specified attribution partner and then processes and saves it: * **Inorganic Install Events** - These install events are attributed to some media source, for example, paid advertisements running on some third-party applications. It implies that the application is installed as a result of engaging with any advertisement. * **Organic Install Events** - These install events are attributed to the website or app store or referrals. It implies that the application is installed either from the website, app store or via referrals and not by engaging with any kind of advertisements. * **Custom Events** - These events can be any events (other than install events) that are provided by the attribution partner and tracked in the app. The following table lists the default CleverTap dashboard settings to track the events: | Attribution Partner | Inorganic Install Events | Organic Install Events | Custom Events | | --- | --- | --- | --- | | CleverTap | Not applicable | Always selected | Not applicable | | Adjust | Always selected | Not selected | Not selected | | Airbridge | Always selected | Not selected | Not selected | | AppsFlyer | Always selected | Not selected | Not selected | | Branch | Always selected | Not available | Not selected | | Singular | Always selected | Not selected | Not selected | Depending on the requirement, you can choose to track event data from the _Settings_ > _Partners_ page of the CleverTap dashboard. > 📘 > > ### > > Access Permissions > > [](https://docs.clevertap.com/docs/attribution#access-permissions) > > To update the settings of this page, the user must have admin access or the required access rights. For more information about enabling attribution settings for supported providers, refer to the following documents: * [Adjust](https://developer.clevertap.com/docs/adjust) * [Airbridge](https://developer.clevertap.com/docs/airbridge) * [Appsflyer](https://developer.clevertap.com/docs/appsflyer) * [Branch](https://developer.clevertap.com/docs/branch) * [Singular (formerly known as Apsalar)](https://developer.clevertap.com/docs/singular-apsalar) Updated about 2 months ago * * * Ask AI --- # Remote Config Introduction [](https://docs.clevertap.com/docs/remote-config#introduction) =============================================================================== CleverTap's Remote Config feature enables you to modify your application's functionality and appearance without mandating users to download an updated version of your application using variables. Variables are the building blocks of the Remote Config feature. Any element or functionality within your app (such as a CTA text, a new welcome page layout, game difficulty level, and so on) can be defined as a variable that can be controlled remotely via the CleverTap dashboard. Key Capabilities of Remote Config [](https://docs.clevertap.com/docs/remote-config#key-capabilities-of-remote-config) ========================================================================================================================= Remote Config allows you to: * **Deliver customized in-app experiences** for specific segments of your user base. For example, highlight the registration section on your application's home screen for new users. * **Change elements of your app in real-time** without requiring an update to be pushed to the app stores. For example, switch on a special discount offer and specify the discount percentage for non-paying users (users who have not yet converted). * **Streamline your messaging campaigns with the in-app user experience** for maximum engagement. For example, switch on a special event in your game via Remote Config for a selected segment and notify the segment about the event via a push and an in-app campaign. * **Test & release new features securely** with the option to revert back in case of any issues. Create Remote Config Variables [](https://docs.clevertap.com/docs/remote-config#create-remote-config-variables) =================================================================================================================== **CleverTap Remote Config** offers two ways to set up your variables: * Create them manually from the Dashboard * Define them in the code and sync them to the Dashboard Create Variables from the Dashboard [](https://docs.clevertap.com/docs/remote-config#create-variables-from-the-dashboard) ----------------------------------------------------------------------------------------------------------------------------- Variables can be created from the **Add button** in the Remote Config page. Each variable requires the following information: * Name (required) * Description (optional) * Value (required) Variables created through the interface do not have a _default value_ similar to the variables synced from code. This means that the value you set in the Dashboard is immediately applied to all users. To create a Remote Config Variable, go to _Product Experiences > Remote Config_. Click **Add** to add a variable. ![Add Remote Config Variable](https://files.readme.io/4961653705d0f4bfcfb71a83afe577cfd204303492bc8412be4ccc728db2cc3b-Screenshot_2025-01-08_at_15.02.22.png) Add Remote Config Variable ![Create Remote Config Variable](https://files.readme.io/3f5fcfbacffe8059d79809bf2dded48468a810579d8f9abb0113caaaaf553faa-Screenshot_2025-01-08_at_15.03.09.png) Create Remote Config Variable > 📘 > > ### > > Creating File Type Variables. > > [](https://docs.clevertap.com/docs/remote-config#creating-file-type-variables) > > Creating File type Variables are currently not supported to be created from the Dashboard. They must be synced from the code. Define and Sync Variables from Code [](https://docs.clevertap.com/docs/remote-config#define-and-sync-variables-from-code) ----------------------------------------------------------------------------------------------------------------------------- To define which elements of your app you want to control, you need to integrate CleverTap SDK and follow the respective developer guide for [Android](https://developer.clevertap.com/docs/android-remote-config) and [iOS](https://developer.clevertap.com/docs/ios-remote-config) to sync your variables to the dashboard. After doing so, you can start adding override values for your variables from the CleverTap dashboard for all app users or specific segments of your user base. CleverTap supports creating the following variable data types: * Number * String * Boolean * File type > 📘 > > ### > > Prerequisite > > [](https://docs.clevertap.com/docs/remote-config#prerequisite) > > To get a complete view of your application’s variables, you must integrate the requried CleverTap’s SDK and sync your defined variables with the CleverTap dashboard. After the sync, you must publish the newly-created variables from the _Remote Config page_ of the CleverTap dashboard. In your app's code, any functionality defined as a variable has a default value or state. For instance, every time you add a new feature, it is initially always hidden with a visibility value of `false`. After syncing the variables to CleverTap, you can view these default values on the _Remote Config_ page. After the initial publish, you can decide whether to override the default values for an existing one or create a new segment and define a new variable value. The following sections provide information about defining and updating a variable value for a particular segment Override Variable Value for New Segment [](https://docs.clevertap.com/docs/remote-config#override-variable-value-for-new-segment) ===================================================================================================================================== To override a variable value for a new segment: 1. Search for the required variable from the search bar or select the required variable from the variable list displayed under the Remote Config page. 2. Click **Override** dropdown and scroll down to the end of the list. ![](https://files.readme.io/b46483b-small-New_segment_in_Remote_Config.png) 3. Select _New Segment_ from the dropdown. The _Create New Segment_ popup opens. ![Segment Builder](https://files.readme.io/484e98b-small-Create_new_segment.png) Segment Builder 4. Enter the criteria for your target audience. Consider the example where your target audience would be users who reside in India and have performed the _Added to cart_ event but did not charge (see figure below). ![Enter Segment Criteria](https://files.readme.io/af45e0a-small-Segment_with_Rules.png) Enter Segment Criteria 5. Toggle ON _Save As_ if you want to save the segment for future use. Keeping the toggle off does not save the segment. 6. Click **Apply** to save the segment. The newly-created segment is now visible under the list of segments on the right side of the screen. > 🚧 > > ### > > Remote Config Segments > > [](https://docs.clevertap.com/docs/remote-config#remote-config-segments) > > The segments that are created and saved on the Remote Config page can only be seen and reused within that particular page. These segments will not be visible in other areas of the dashboard such as _Segments_ or _Campaigns_. Similarly, any user segments created in the _Segments_ section will not be visible in Remote Config. However, this is only a temporary limitation that will be removed in the future 7. Edit the variable value for the selected segment in the right-side panel and click **Publish**. After you click **Publish**, the variable update is displayed under the _Live_ tab, as shown in the following figure: ![Variables in Published State](https://files.readme.io/5f9a7a1-small-Published.png) Variables in Published State All the changes you make to the _Remote Config page_ are, by default, saved as a draft and are highlighted in light yellow color in the table, as shown in the following figure. If you want to discard the current draft, click the **Discard** button. ![Draft Mode in Remote Config.](https://files.readme.io/eea0fc0-small-Draft_mode_in_remte_config.png) Draft Mode in Remote Config. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/remote-config#note) > > The draft in the Remote Config page is shared with all the dashboard users within your app account for everyone to contribute. The changes you make are visible to the rest of the dashboard users. > > To avoid overriding or discarding someone else’s changes, verify who made the latest changes to an existing draft from the top right corner of the _Remote Config_ page. Override Variable Value for an Existing Segment [](https://docs.clevertap.com/docs/remote-config#override-variable-value-for-an-existing-segment) ===================================================================================================================================================== To define the variable behavior for an existing segment: 1. Search for the required variable from the search bar or select the required variable from the variable list displayed under the _Remote Config_ page. 2. Select an existing segment from the Override dropdown (for example, a segment of German users) and update the variable value to modify the behavior as required. ![](https://files.readme.io/a6dd6a3-small-Users_in_Germany.png) 3. Click **Publish** to make these changes live on your application. You can also test your application's variable behavior in the draft version using the _Preview & Test_ feature. For more information, refer to [Preview and Test Remote Config](https://docs.clevertap.com/docs/remote-config#preview-and-test-variables) . > 📘 > > ### > > Key Points to Remember > > [](https://docs.clevertap.com/docs/remote-config#key-points-to-remember) > > * The change in variable behavior reflects in the live application only after the draft is published. > * During application startup, CleverTap verifies the user's eligibility for different segments and retrieve the corresponding variables. Later on during the session, it may be necessary to retrieve values if there are any signification milestones in the application where users are expected to transition between segments. For example, if there is a value override for certain variables for the _Paying users_ segment, it would be good to fetch them again at the time of purchase within the app. User Profile Personalization [](https://docs.clevertap.com/docs/remote-config#user-profile-personalization) =============================================================================================================== User Profile Personalization is available only for variables of type **String**. Value personalization is based on **User Properties** and is supported for **String** Variables. This allows you to personalize the Variable Value that will be returned and used by your application based on your users' unique properties. ![Step 1](https://files.readme.io/a73244ac51a0d5dd34beb666d4c790f740326da085d6f9e178a83c0b4d6cefa9-Screenshot_2025-01-08_at_14.27.02.png) Select Personalized Value ![Step 2](https://files.readme.io/9c065baa43b5df8bc8e56cdd7bcb1c72a37b580cc72f7d6f38c73d067c14af73-Screenshot_2025-01-08_at_14.27.52.png) Set the value from User Profile Property Segment Prioritization [](https://docs.clevertap.com/docs/remote-config#segment-prioritization) =================================================================================================== When there are multiple segments, and a user meets the criteria for more than one segment, the default segment (All users) is assigned the lowest priority, and the segment that appears at the top of the list is given the highest priority. Let us consider an example. If a user qualifies for two segments - _Paying Users_ and _All Users_, in this case, the user sees the variable value defined for the _New Users_ segment as shown below. ![Multiple Segments](https://files.readme.io/43fb92befa991813c02c9ca366c43496ef5f3dea7cf37b8fb7743be881e466b3-image.png) Multiple Segments To change the priority, click **Prioritize** and drag and drop the segment to change the priority. ![Change Segment Prioritization](https://files.readme.io/51068366f3db442bc351b5a4c63968569727cb346535272d6668724e0ac9f363-image.png) Change Segment Priority Remote Config Version History [](https://docs.clevertap.com/docs/remote-config#remote-config-version-history) ================================================================================================================= After a Remote Config draft version is published, all the previous live versions are stored along with the following corresponding metadata: created by and the timestamp when the version was published. Each version can be restored when needed. To view the version history and restore a specific version: 1. Navigate to _Published versions_. 2. From the Published version history, select the version of your choice. 3. Click **RESTORE** (see figure below). ![](https://files.readme.io/976c144-Version_history_in_remote_config.gif) Preview and Test Variables [](https://docs.clevertap.com/docs/remote-config#preview-and-test-variables) =========================================================================================================== For all the variable updates made in the draft mode, you can test their behavior on a device using the _Preview & Test_ feature. By clicking _Preview & Test_, you enable the variable values from your unpublished draft for all profiles marked as test profiles for your app and the associated devices. > 🚧 > > ### > > Mark Test Profiles > > [](https://docs.clevertap.com/docs/remote-config#mark-test-profiles) > > For testing the behavior of variables in draft mode, it is a prerequisite to [mark certain profiles as Test profile](doc:concepts-user-profiles#mark-a-user-profile-as-a-test-profile) > . It is also imperative for the test profiles to qualify for the specific segment to be able to view the variable changes. > > Let us consider the following example to understand this better: > > If you make changes to a variable value for a segment of Indian users and want to preview them on your test device, you need to log in to your app on your device with an Indian user profile that is marked as a test profile to qualify for the segment and view the specific changes. Logging in as a user in the US, for instance, will not allow you to see the changes you made. Updated about 2 months ago * * * Ask AI --- # AccuWeather Overview [](https://docs.clevertap.com/docs/accuweather#overview) ===================================================================== [AccuWeather](https://www.accuweather.com/) offers global weather forecasting services through APIs that provide accurate, location-based data. With the CleverTap and AccuWeather integration, marketers can enhance campaign relevance by tailoring messages based on local weather conditions. With this integration, you can: * Recommend products based on local forecasts (for example, sunscreen during sunny weather) * Send alerts when severe weather is predicted in a user's area * Personalize content dynamically using user location and current conditions Prerequisites for Integration [](https://docs.clevertap.com/docs/accuweather#prerequisites-for-integration) =============================================================================================================== Ensure the following before starting the integration: * Ensure you have access to your CleverTap account. * Ensure you have access to your AccuWeather account. * Obtain your _AccuWeather API key_ from the AccuWeather account manager. Read more on the AccuWeather API [here](https://apidev.accuweather.com/developers/) . Integrate CleverTap with AccuWeather [](https://docs.clevertap.com/docs/accuweather#integrate-clevertap-with-accuweather) ============================================================================================================================= To integrate AccuWeather with CleverTap, perform the following two major steps: 1. [Set Up AccuWeather APIs in CleverTap](doc:accuweather#set-up-accuweather-apis-in-clevertap) 2. [Create Personalized Campaign Using Linked Content](doc:accuweather#create-personalized-campaign-using-linked-content) Set Up AccuWeather APIs in CleverTap [](https://docs.clevertap.com/docs/accuweather#set-up-accuweather-apis-in-clevertap) ----------------------------------------------------------------------------------------------------------------------------- Use [Linked Content](doc:linked-content) in CleverTap to connect to AccuWeather APIs and personalize campaign content dynamically. Configure the following APIs: 1. [Get Location Key](doc:accuweather#get-location-key-from-accuweather) : Retrieves a location key based on the user’s city or postal code. 2. [Get Weather Conditions](doc:accuweather#get-weather-conditions-using-location-key) : Returns current weather data for the specified location key. For a complete list of available APIs and capabilities, refer to the [AccuWeather API](https://apidev.accuweather.com/developers/partner-code) . ### Get Location Key from AccuWeather [](https://docs.clevertap.com/docs/accuweather#get-location-key-from-accuweather) Map a user’s city or postal code to an AccuWeather location key. This key is required to fetch weather data in [Create Personalized Campaign Using Linked Content](doc:accuweather#create-personalized-campaign-using-linked-content) . To configure this API in CleverTap, perform the following steps: 1. Go to _Settings_ > _Setup_ > _Linked Content_ in CleverTap. 2. Click **\+ Add Linked Content**. 3. Set the method to `GET` and enter the following endpoint URL: REST API https://dataservice.accuweather.com/locations/v1/cities/search?apikey=&q={{city/pincode}}&top=0 4. Replace `{{city/pincode}}` with a custom parameter:`{{ Profile.city | default: "-" }}`. 5. Click Test Linked Content. You should get the following response: JSON [{\ "Version": 1,\ "Key": "204847",\ "Type": "City",\ "Rank": 25,\ ...\ }] ![Add Linked Content](https://files.readme.io/4970afad28b8459a3ee917028a2f4dfe4d946fc48e7018861f726e60c1eee824-image.png) Add Linked Content 6. Click **Test and Save Changes**. ### Get Weather Conditions Using Location Key [](https://docs.clevertap.com/docs/accuweather#get-weather-conditions-using-location-key) Use this API to fetch the current weather condition for the user’s location based on the AccuWeather location key. To configure this API in CleverTap, perform the following steps: 1. Go to _Settings_ > _Setup_ > _Linked Content_ in CleverTap. 2. Click + Add Linked Content. 3. Set the method to `GET` and enter the following endpoint URL: REST API https://datxaservice.accuweather.com/currentconditions/v1/{{key}}?apikey= 4. Replace `{{key}}` with a custom parameter: `{{ Linked["Get Location Key"].json[0].Key | default: "-" }}` 5. Click Test Linked Content. You should get the following response: JSON [\ {\ "LocalObservationDateTime": "2025-03-06T11:22:00+05:30",\ "EpochTime": 1741240320,\ "WeatherText": "Sunny",\ ...\ ] ![Add Linked Content](https://files.readme.io/94f91fb578a84c72b4b6e1d163d85a13447260e4d9e94dc54e80beea4877f941-image.png) Add Linked Content 6. Click **Test and Save Changes**. Create Personalized Campaign Using Linked Content [](https://docs.clevertap.com/docs/accuweather#create-personalized-campaign-using-linked-content) ------------------------------------------------------------------------------------------------------------------------------------------------------- With AccuWeather connected to CleverTap via Linked Content, you can now add weather-based personalization to your campaigns. For this example, let us create a short, personalized push notification. To do so, perform the following steps: 1. Go to _Campaigns_ from the CleverTap dashboard and click **\+ Campaign**. 2. Select _Push Notification_ from the _Messaging Channels_ list. 3. Configure your campaign settings and navigate to the _What_ section. 4. Click **Personalization**, then select both Linked Content entries: * Set the `city/pincode` parameter for [Get Location Key API](doc:accuweather#get-location-key-from-accuweather) to Custom and enter:`{{ Profile.city | default: "-" }}` * Set the `key` parameter for [Get Weather API](doc:accuweather#get-weather-conditions-using-location-key) to Custom and enter:`{{ Linked["Get Location Key"].json[0].Key | default: "-" }}` ![Personalization](https://files.readme.io/a3426893d073d48cd3fb0935e0fe137ba36b271e9abc1fc75f0b4903a698c5d7-image.png) Personalization 5. Type `{`, `{{`, or `@` to view available personalization options. For more information about how to personalize a message using Linked Content, refer to [CleverTap Liquid tag](doc:personalize-message-all) . ![Create Personalized Message Using Linked Content](https://files.readme.io/9d790140ea02efe54438005c76a9d51f2a87e09fd24ff4ddcc3d262ee54503f3-image.png) Create Personalized Message Using Linked Content For this example, we will use the [Linked Content Liquid tag](doc:personalize-message-all) below to iterate through the Get Weather API’s JSON response to get the Weather Text. JSON {{ Linked["Get Weather"].json[0].WeatherText | default: "NULL" }} We will also use conditional tags, like `assign` and `if-else`, to personalize the response according to the weather conditions. Here is a simple example we will be using. Refer to [CleverTap Liquid tag](doc:personalize-message-all) . JSON It's {{ Linked["Get Weather"].json[0].WeatherText | default: "NULL" }} {% assign weather = Linked["Get Weather"].json[0].WeatherText %} {% if weather == "Sunny" %} Get 15% off on Sunscreen {% else %} Get 10% off on Umbrella {% endif %} ![Preview and Test](https://files.readme.io/848bbe83b0452f35d4c23fa25ef33ce053f0f75b35c4eb3b16bc75a0ef70724d-image.png) Preview and Test 6. Click **Preview and Test** to confirm that fallback and weather-specific values render correctly. ![Push notification](https://files.readme.io/e24b5a7ae27d918710bc0504e7a26a000235a11afea5414c74a9e3d7cefda101-image.png) Push notification 7. Click **Publish** to send the campaign. Once live, users will receive highly contextual push notifications tailored to their local weather conditions. By integrating AccuWeather with CleverTap, you can automate hyper-contextual marketing experiences across campaigns like [Push Notifications](doc:create-message-push) , [Email](doc:create-message-email) , [In-App Messages](doc:create-message-in-app) , or [Web Pop-ups](doc:create-message-web-popup) . Updated about 2 months ago * * * Ask AI --- # Troubleshooting & FAQs Troubleshooting [](https://docs.clevertap.com/docs/troubleshooting-faqs#troubleshooting) ============================================================================================ You may encounter issues with voucher lists. In case you do, the following are some common problems and their solutions: | Issue | Resolution | | --- | --- | | Unable to Activate Voucher List | Check if the expiration date is in the future. You cannot reactivate an expired voucher list without extending its validity. | | Error Uploading Codes | * Ensure the file format is .CSV.
* Verify that all voucher codes are correctly formatted and do not contain invalid characters.
* The file should contain only one column with voucher codes—no comma-separated values. | | Missing Campaign Linkage | If a voucher list is not linked to a campaign, review the campaign settings to ensure proper mapping. | FAQs [](https://docs.clevertap.com/docs/troubleshooting-faqs#faqs) ====================================================================== Find answers to the following common questions about managing partner vouchers: ### How many voucher codes can I upload per voucher list?? [](https://docs.clevertap.com/docs/troubleshooting-faqs#how-many-voucher-codes-can-i-upload-per-voucher-list) You can upload up to one million codes per voucher list. ### Can I edit a voucher list after it is created? [](https://docs.clevertap.com/docs/troubleshooting-faqs#can-i-edit-a-voucher-list-after-it-is-created) Yes, you can update the List Name, List Description, and List Expiry. ### What happens if a voucher list expires? [](https://docs.clevertap.com/docs/troubleshooting-faqs#what-happens-if-a-voucher-list-expires) No, expired voucher lists cannot be used in campaigns. However, you can extend the expiry date to make it active again. ### Where can I see the number of issued voucher codes? [](https://docs.clevertap.com/docs/troubleshooting-faqs#where-can-i-see-the-number-of-issued-voucher-codes) Check the _Codes Issued_ column for real-time data on distributed voucher codes. ### Can I delete a voucher list linked to an active campaign? [](https://docs.clevertap.com/docs/troubleshooting-faqs#can-i-delete-a-voucher-list-linked-to-an-active-campaign) No, you must unlink the voucher list from all campaigns before deleting it. Updated about 2 months ago * * * Ask AI --- # Data Warehouse Overview [](https://docs.clevertap.com/docs/data-warehouse#overview) ======================================================================== CleverTap’s data warehouse integration enables you to seamlessly import data into CleverTap for customer engagement and export engagement data from CleverTap to data warehouses for analytics and reporting. This helps you unify customer data, activate advanced insights, and connect marketing performance with business outcomes. By integrating CleverTap with your data warehouse, you can use the data warehouse as the system of record for analytics and governance while leveraging CleverTap to deliver personalized, cross-channel customer experiences that improve engagement, retention, and revenue. Import Data into CleverTap [](https://docs.clevertap.com/docs/data-warehouse#import-data-into-clevertap) ============================================================================================================ Importing data from your data warehouse into CleverTap helps you activate centralized, analytics-ready customer data for segmentation, personalization, and campaign orchestration. Use this when insights (for example, customer tiers or predictive scores) are generated in BI or data science workflows and need to drive engagement. Key Benefits [](https://docs.clevertap.com/docs/data-warehouse#key-benefits) -------------------------------------------------------------------------------- The following sections are the benefits of integrating CleverTap with a data warehouse partner for both importing and exporting data. These capabilities help you maintain a centralized data strategy while enabling targeted engagement and comprehensive analytics. * **Warehouse as Single Source of Truth** Use your data warehouse as the primary source of customer and business data, and import only engagement-ready data into CleverTap. This ensures consistent definitions across analytics, reporting, and marketing execution while reducing data duplication. * **Unified Customer Profiles** Enrich CleverTap user profiles with attributes, transactional history, and analytical outputs stored in your data warehouse to maintain a consistent customer view across systems. * **Advanced Segmentation Using Warehouse Data** Create audience segments in CleverTap using historical, aggregated, or model-driven data from the warehouse to enable more precise targeting. * **Activation of Business and Analytical Insights** Use BI and Machine Learning Insights by importing data, such as customer tiers, propensity scores, or lifecycle states generated in the warehouse as inputs for campaigns and journeys in CleverTap. Supported Warehouse Imports [](https://docs.clevertap.com/docs/data-warehouse#supported-warehouse-imports) -------------------------------------------------------------------------------------------------------------- CleverTap supports importing data from the following data warehouses. Use the linked documentation to configure warehouse connections, create import jobs, and manage data ingestion into CleverTap. Each supported warehouse enables you to import user attributes, events, and analytical data according to your integration and data model requirements. [BigQuery](https://docs.clevertap.com/docs/bigquery) [Snowflake](https://docs.clevertap.com/docs/snowflake) ### Quick Start Guide for Imports [](https://docs.clevertap.com/docs/data-warehouse#quick-start-guide-for-imports) The following steps provide a high-level flow for importing data from a data warehouse into CleverTap. Each step links to detailed documentation to help you configure the import, map data correctly, schedule runs, and monitor import activity. [Set Up Import](https://docs.clevertap.com/docs/create-import) [Map Data](https://docs.clevertap.com/docs/map-data-for-import) [Schedule Import](https://docs.clevertap.com/docs/schedule-import) [Import Listing and Stats](https://docs.clevertap.com/docs/import-listing-and-stats) Export Data from CleverTap [](https://docs.clevertap.com/docs/data-warehouse#export-data-from-clevertap) ============================================================================================================ Exporting CleverTap data to a data warehouse enables deeper analysis of engagement, behavioral, and campaign performance alongside business metrics such as revenue, retention, and support outcomes. Use this for long-term reporting, attribution, and cross-team analytics access. Key Benefits [](https://docs.clevertap.com/docs/data-warehouse#key-benefits-1) ---------------------------------------------------------------------------------- * **Centralized Engagement and Campaign Data** Export CleverTap user events, profile updates, and campaign interactions into your data warehouse to unify engagement data with CRM, revenue, and support datasets for holistic analysis. * **Deeper Analysis and Reporting** Combine CleverTap campaign and engagement data with downstream business outcomes stored in your data warehouse to measure lifecycle impact and improve attribution and ROI accuracy. * **Consistent and Warehouse-Ready Structured Data** Export data in a consistent, predictable structure optimized for ingestion, transformation, and scalable analytics workflows in your data warehouse. * **Cross-Team Data Accessibility** Make CleverTap engagement data available to analytics, data science, and reporting teams directly from the data warehouse, without requiring access to the CleverTap dashboard. Supported Warehouse Exports [](https://docs.clevertap.com/docs/data-warehouse#supported-warehouse-exports) -------------------------------------------------------------------------------------------------------------- CleverTap supports exporting data to the following data warehouses. Use the linked documentation to configure export connections, create export jobs, and manage how data is sent from CleverTap. Each supported warehouse enables you to export engagement, campaign, and system event data tailored to your reporting and analytics requirements. [BigQuery](https://docs.clevertap.com/docs/bigquery-export) [Snowflake](https://docs.clevertap.com/docs/snowflake-export) Updated 2 days ago * * * Ask AI --- # Profile and Events (Legacy) Overview [](https://docs.clevertap.com/docs/profile-and-events-legacy#overview) =================================================================================== CleverTap supports exporting raw event and profile data to cloud storage platforms such as Amazon S3, Google Cloud Storage, and Microsoft Azure. These exports allow you to: * Move platform data into your existing data lakes, warehouses, or Business Intelligence (BI) tools. * Maintain independent backups for compliance and audits. * Help personalize engagements using raw user and event data. Exports can be scheduled or triggered as one-time deliveries and are available in standard file formats, including JSON, CSV, XML, and Parquet, to support a wide range of downstream systems. Create export [](https://docs.clevertap.com/docs/profile-and-events-legacy#create-export) ============================================================================================= To begin, you first create a new export from the CleverTap dashboard. This step connects your CleverTap account with a partner destination and sets the context for the following configuration. 1. Go to _Settings_ > _Partners_ and click **Create Export**. ![Create Export](https://files.readme.io/6d308e01cc3dc940760f1c76ee5cecffda32a57b8db946c62d3e125af9c15d75-export_center_profile_1.png) Create Export 2. Under _Data type_, select **Events** or **Profiles**. Click **Next**. ![Data Type - Profiles](https://files.readme.io/5c7972185b625c21e9b8e3dd538630e7c917584f95c90cccca70fb876021f7fa-data_type_profiles_.png) Data Type 3. Under _Partner_, select where you want to send the export and click **Start**. Selecting a partner affects the first field you’ll see in **Storage & file details**: it appears as **Storage bucket** for Amazon S3 and Google Cloud, and as **Storage blob** for Microsoft Azure. * **Amazon S3** * **Google Cloud** * **Microsoft Azure** ![Select Partner](https://files.readme.io/353438c2d86d5c956db69fb1e54c319b25ace89c7951fe05772d9768e3692f2c-partner_export_profile.png) Select Partner The partner export window displays. If you are exporting user profiles and using enhanced export flow, refer to [Profile Exports](doc:profile-exports) . ![1008](https://files.readme.io/13a408d-CreateAmazonS3Export.jpg "Enter export details and click Export") Enter Export Details 4. Configure the following _Export details_: * **Partner Bucket name**: Name of the partner bucket. Choose the required partner bucket from the drop-down list. * **DATA TYPE & IDENTIFIER PRIORITY**: Select the data to export. * **Events**: **All events** or **Select events**. * **Profiles**: **All user profiles**. * **Fallback priority order for identifiers**: Set priorities 1, 2, and 3 for **Identity**, **Email**, and **Phone Number**. (Applies to **All events** and **All user profiles**.) * **FREQUENCY**: * **One time**: A single export for the selected export type. You can export data up to the last **60 days**. You can create an export for a specific day, date range, previous month, current month, and more. * **Recurring**: Set up a recurring export that exports all the new events or user profiles captured in the last window. You can export data as frequently as every **4 hours** and up to once every **24 hours**. * **Dates to export data**: The export starts at **12:00 a.m.** on the specified date by default. * **FORMAT**: **JSON**, **XML**, **CSV**, and **Parquet**. * **Export Data**: If you choose **As string**, the data is sent as a string. If you do not select the box, data is sent in its original format. > 🚧 > > ### > > **Profiles one-time export** > > [](https://docs.clevertap.com/docs/profile-and-events-legacy#profiles-one-time-export) > > Before running a one-time profile export, stop any scheduled recurring profile export. 5. Click **Export**. A confirmation message displays at the top of the _Exports_ page. The status for each export is displayed as **PENDING** as soon as the export is created, changes to **RUNNING** after processing starts, and to **DONE** when the export is complete. > 📘 > > ### > > **Stop Export** > > [](https://docs.clevertap.com/docs/profile-and-events-legacy#stop-export) > > You can also stop the export that you have created. Click the ![](https://files.readme.io/203208a-StopExport.jpg) icon for the export request you want to stop, and then click **Stop** to confirm. You can verify if the export is created on your cloud platform using **Request ID** as follows: * **Amazon S3** a. Log in to your AWS account and navigate to the _S3_ console. b. Search your _Bucket_ from the _Buckets_ page and then click the bucket name. c. Copy the _Request ID_ from the activity log and search with that ID. You should see your respective file there. ![2842](https://files.readme.io/217fe0e-Search_for_export_files.png "Search for new Amazon S3 export on Amazon S3 Dashboard") New Amazon S3 Export Displays on Amazon S3 Dashboard * **Google Cloud** Select _Storage_ from the left panel of Google Cloud. Navigate to the _Bucket details_ page and search with the `requestid`. All the exported files are displayed. ![2862](https://files.readme.io/2dd4777-Screenshot_2020-04-06_at_8.23.50_PM.png "New Google Cloud export displays on Export page") New Google Export Displays on Google Cloud * **Microsoft Azure** Log in to your Microsoft Azure account and select the _Storage account_ under _Resources_. Click the _Blob service_ link under the _Properties_ tab and select the _Container_ where you exported the data. (Optional) Click **Switch to Access Key** if you encounter any authorization error after selecting the _Container_. ![New Export Displays on Microsoft Azure Dashboard](https://files.readme.io/7c9e1a4-New_Export_Displays_on_Microsoft_Azure_Dashboard.gif) New Export Displays on Microsoft Azure Dashboard Export Format [](https://docs.clevertap.com/docs/profile-and-events-legacy#export-format) ============================================================================================= This section provides information about the file format and naming conventions for the files exported to your storage destination. File Name Format [](https://docs.clevertap.com/docs/profile-and-events-legacy#file-name-format) --------------------------------------------------------------------------------------------------- * **File Name Format for Event Export** The example below shows the file name format for event export: -----.json * _Export request ID_, _Timestamp of the export run_, _Event name_, _File index_ (files are chunked to ~100 MB), _Database ID_, and file format. * **File Name Format for User Profile Export** The example below shows the file name format for user profile export: ----.gz * _Account ID_ (CleverTap project ID), _Request ID_, _Timestamp of the export run_, _Database ID_, and file format. File Data Format [](https://docs.clevertap.com/docs/profile-and-events-legacy#file-data-format) --------------------------------------------------------------------------------------------------- Files are split by event names for event exports, and each file will have all event data for the given period for the event. ### JSON [](https://docs.clevertap.com/docs/profile-and-events-legacy#json) The first line of the file contains the event name. After the first line, each line is JSON describing the timestamp, object id, and event properties. JSON { "profile": { "identity": "dqsndckfk234" }, "ts": 20171109000015, "eventProps": { "ct_connected_to_wifi": "false", "ct_bluetooth_version": "ble", "ct_bluetooth_enabled": "false", "ct_sdk_version": 30107, "ct_latitude": -6.1975594, "ct_longitude": 106.52913, "ct_os_version": "5.1.1", "ct_app_version": "2.30.1", "ct_network_carrier": "3", "ct_network_type": "4G" } } ### CSV [](https://docs.clevertap.com/docs/profile-and-events-legacy#csv) CSV files are comma-delimited and have each event in separate rows. ![2032](https://files.readme.io/aa71f9f-Screenshot_2020-02-28_at_12.53.22_PM.png "Sample CSV File") Sample CSV File ### XML [](https://docs.clevertap.com/docs/profile-and-events-legacy#xml) XML has the timeStamp, eventName, followed by eventProperties. XML 20200220130735 Export Custom Event [email protected] Web [email protected] Others CT Source API Category Mens Watch Product name Casio Chronograph Watch Price 59.99 Currency USD ### Parquet [](https://docs.clevertap.com/docs/profile-and-events-legacy#parquet) Parquet has a timestamp, eventName, and eventProperties for each event. > 📘 > > ### > > **Parquet File Format** > > [](https://docs.clevertap.com/docs/profile-and-events-legacy#parquet-file-format) > > Parquet is an open-source file format for Hadoop. Parquet stores nested data structures in a flat columnar format. Currently, exports in Parquet format are compressed as **.parquet.gzip**. Contact the Customer Support Team if you wish to get the file as **.parquet**, i.e., without any additional compression. Prioritize User Identity for Exports [](https://docs.clevertap.com/docs/profile-and-events-legacy#prioritize-user-identity-for-exports) =========================================================================================================================================== The export file includes an identity column with the user's Identity, Phone Number, or Email values. These values are set based on the identities configured in the CleverTap dashboard under the _Settings_ > _User Identity_ page. This feature lets you prioritize the identifier you want to export in the identity column. Let us understand how the prioritization works based on the identities selected in the _User Identity_ page: * If you select only _Identity_, export includes the identity value. The export file's identity column is empty if it is unavailable. ![](https://files.readme.io/aad1f81-image.png) * If you select multiple identifiers, you must set the priorities on the _Export_ page. For instance, you set Priority 1 to _Identity_ and Priority 2 to _Email ID_. When exporting data, the export prioritizes the Identity value for the identity column. If it is absent, the Email ID is exported under the identity column of the export file. If both are missing, the column remains empty. ![](https://files.readme.io/52ae818-UserIdentity.jpg) > 📘 > > ### > > Key Points to Remember > > [](https://docs.clevertap.com/docs/profile-and-events-legacy#key-points-to-remember) > > * If you change the identity later, the export works according to the set priority. To prioritize the modified identities, edit your export. > * This feature applies only to the following export types: _All events_ and _All user profiles_. > * For the old running export, this configuration or prirotization is not applicable. You can add the prioritization by editing the running exports. To prioritize user identity for exports: 1. Go to **Partners** > **Exports**. 2. Hover over the required AWS S3 export. Click the **Edit** button. 3. Under **Fallback priority order for identifiers**, set up the priority 1, 2, and 3 for the required identities from the drop-down list. ![1008](https://files.readme.io/47d17d5-AWS3Priority.jpg "Enter export details and click Export") Edit Export Priority FAQs [](https://docs.clevertap.com/docs/profile-and-events-legacy#faqs) =========================================================================== This section consolidates FAQs that apply to the legacy creation flow. ### Do CleverTap data exports allow special characters? [](https://docs.clevertap.com/docs/profile-and-events-legacy#do-clevertap-data-exports-allow-special-characters) Yes, CleverTap data exports allow the following special characters: * Supports Unicode (UTF-8) character encoding. * Replaces Whitespace, Tab, Slash, and null (\\0) with a hyphen. * Replaces control characters with `?`. * Supports emoji characters; some emojis (UTF-16) may not render properly. ### How does recurring export work? [](https://docs.clevertap.com/docs/profile-and-events-legacy#how-does-recurring-export-work) On day one, the entire user profile data is sent. From day two onwards, only updates or additions are exported (for example, new profiles or updates to user properties/communication preferences). You can export data as frequently as every 4 hours and up to once every 24 hours. ### Can I run a one-time Profiles export if a recurring Profiles export is active? [](https://docs.clevertap.com/docs/profile-and-events-legacy#can-i-run-a-one-time-profiles-export-if-a-recurring-profiles-export-is-active) Before running a one-time profile export, stop any scheduled recurring profile export. ### What formats are supported? [](https://docs.clevertap.com/docs/profile-and-events-legacy#what-formats-are-supported) JSON, XML, CSV, and Parquet. Parquet is compressed as **.parquet.gzip** in the legacy flow. ### How are large exports chunked? [](https://docs.clevertap.com/docs/profile-and-events-legacy#how-are-large-exports-chunked) We chunk the data across multiple files for larger exports. File sizes are limited to ~100 MB to make them more consumable. The file index indicates the file number in the series. ### What other ways can I export data from CleverTap? [](https://docs.clevertap.com/docs/profile-and-events-legacy#what-other-ways-can-i-export-data-from-clevertap) * **Export via API** (see API Overview). * **Find People**: Download the profile data directly from the CleverTap dashboard through _Segments_ → _Find People_ → **View Details** → download under **Total users**. * **Data Exports** to your storage destination (this legacy flow). Updated 24 days ago * * * Ask AI --- # Cloud Storage Overview [](https://docs.clevertap.com/docs/cloud-storage#overview) ======================================================================= This section introduces the export methods that deliver CleverTap data directly to your cloud storage locations. This page provides an overview of the supported storage partners and export types so you can choose the correct approach for receiving profile or event data in your preferred cloud environment. This section outlines the storage platforms supported for file-based exports. [Amazon S3](https://docs.clevertap.com/docs/data-export-to-aws-s3) [BigQuery](https://docs.clevertap.com/docs/bigquery) [Google Cloud Platform (GCP)](https://docs.clevertap.com/docs/data-export-to-gcp) [Microsoft Azure](https://docs.clevertap.com/docs/microsoft-azure) > 📘 > > ### > > Profile and User Exports (Legacy) vs. Profile Exports > > [](https://docs.clevertap.com/docs/cloud-storage#profile-and-user-exports-legacy-vs-profile-exports) > > CleverTap supports two distinct export flows, depending on your data requirements and integration needs: > > * [**Profile and User Exports (Legacy)**](doc:profile-and-events-legacy) > : Supports exporting both events and user profiles. > * [**Profile Exports**](doc:profile-exports) > : The newer, enhanced export flow that supports exporting user profiles only with improved flexibility and structure. Updated 23 days ago * * * Ask AI --- # AppTrove by Trackier Overview [](https://docs.clevertap.com/docs/apptrove#overview) ================================================================== AppTrove, by Trackier, is a comprehensive mobile marketing platform designed to monitor your app's expansion while facilitating seamless integration with various partners. By leveraging AppTrove, you can access a unified environment to collaborate with different partner networks and analyze their collective performance. This document provides essential details on integrating CleverTap and AppTrove. With this integration, you can track the following and also determine where a user was acquired from: * **Install events**: These events can be organic install events and inorganic install events. * **Custom events**: These can include any events (other than install events) that are provided by the attribution partner and tracked in the app. To learn more about these events and their default attribution settings in the CleverTap dashboard, refer to [Types of Data](https://docs.clevertap.com/docs/attribution#types-of-data) . If you have any issues with this integration, write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#ddaea8adadb2afa9f0b0b0ad9da9afbcbeb6b4b8aff3beb2b0) Integrate AppTrove [](https://docs.clevertap.com/docs/apptrove#integrate-apptrove) ====================================================================================== To integrate AppTrove with CleverTap: 1. [Add CleverTap Credentials to AppTrove Dashboard](doc:https://docs.clevertap.com/docs/apptrove#add-clevertap-credentials-to-apptrove-dashboard) . 2. [Map CleverTap ID with AppTrove](doc:apptrove#map-clevertap-id-with-apptrove) 3. [Configure In-App Event Postback](doc:apptrove#configure-in-app-event-postback) 4. [Setup for Organic Install and Custom Events](doc:apptrove#setup-for-organic-install-and-custom-events) Add CleverTap Credentials to AppTrove Dashboard [](https://docs.clevertap.com/docs/apptrove#add-clevertap-credentials-to-apptrove-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------ You must set up the AppTrove dashboard by adding CleverTap account details as follows: 1. Navigate to _Partner Integration_ and search for _CleverTap_ under the _Not Integrated Partners_ section. ![Integrate AppTrove with CleverTap](https://files.readme.io/6e9f359-Integrate_CleverTap_with_AppTrove.png) Integrate AppTrove with CleverTap 2. Add the following CleverTap account details: ![](https://files.readme.io/1d8b53d-Enter_CleverTap_Account_Details.png) To get these details, navigate to _Settings_ > _Project_ from the CleverTap dashboard as follows: * **Account ID** : Access the CleverTap dashboard and locate the Project ID under _Settings > Project_. * **Account Token**: Access the CleverTap dashboard and locate the Project Token under _Settings > Project_. * **Account Passcode**: Access the CleverTap dashboard and locate Passcode under _Settings > Project_. To know more refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . * **Region**: Access the CleverTap dashboard and locate Region for the API endpoint you want to select under _Settings > Project_. To find the API endpoint for your region, refer to [API endpoints based on your data center region](https://developer.clevertap.com/docs/idc#api) . ![CleverTap Account Details](https://files.readme.io/e2008a6-Screenshot_2024-08-06_at_3.32.51_PM.png) CleverTap Account Details 3. Click **Save**. Map CleverTap ID with AppTrove [](https://docs.clevertap.com/docs/apptrove#map-clevertap-id-with-apptrove) -------------------------------------------------------------------------------------------------------------- AppTrove SDK implementation requires CleverTap ID configured as Trackier `userId` or `UserAdditionaldetails`. The steps to do so vary for Android and iOS. The steps for both are listed in the sections to follow. ### For Android App [](https://docs.clevertap.com/docs/apptrove#for-android-app) To track attribution and event data in your Android app, follow the steps listed in the [AppTrove Android SDK Integration Guide](https://github.com/trackier/android_sdk) . For pushing the CleverTap ID to AppTrove, add the following code. #### **Set the User ID** [](https://docs.clevertap.com/docs/apptrove#set-the-user-id) Use the `getCleverTapID` method to get the CleverTap ID on the `OnInitCleverTapIDListener` to set the `UserId` method of AppTrove. JavaKotlin TrackierSDKConfig sdkConfig = new TrackierSDKConfig(this, "8282-382382-73239823-729382", "development"); clevertapDefaultInstance.getCleverTapID(new OnInitCleverTapIDListener() { @Override public void onInitCleverTapID(final String CTID) { TrackierSDK.setUserId(CTID); } }); TrackierSDK.initialize(sdkConfig); // Fetch CleverTapID from CleverTap SDK cleverTapInstance?.getCleverTapID { // Set device alias into Airbridge SDK TrackierSDK.setUserId(cleverTapID); } } #### **Set Additional User Data** [](https://docs.clevertap.com/docs/apptrove#set-additional-user-data) Let's say you are already using `setUserId` to send the identity of the user to AppTrove. You can use the `setAdditionaldata` method instead of `setUserId`to push CleverTap ID. JavaKotlin TrackierSDKConfig sdkConfig = new TrackierSDKConfig(this, "8282-382382-73239823-729382", "development"); clevertapDefaultInstance.getCleverTapID(new OnInitCleverTapIDListener() { @Override public void onInitCleverTapID(final String CTID) { HashMap hashMap1 = new HashMap(); hashMap1.put("clevertap_uid", CTID); TrackierSDK.setUserAdditionalDetails(hashMap1); } }); TrackierSDK.initialize(sdkConfig); TrackierSDK.setUserAdditionalDetails("clevertap_uid", CTID); > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/apptrove#note) > > The `setAdditionaldata` method always takes priority over `setUserId`. ### For iOS App [](https://docs.clevertap.com/docs/apptrove#for-ios-app) To track attribution and event data in your iOS app, perform the steps listed in [AppTrove iOS SDK Integration Guide.](https://github.com/trackier/ios-sdk) Set the CleverTap ID value as the AppTrove Global Property. Add the below code to your iOS app code. Swift let config = TrackierSDKConfig(appToken: "b551b474-xxxx-xxxx-xxxx-971e5b954169", env: TrackierSDKConfig.ENV_DEVELOPMENT) CleverTap.autoIntegrate() if let attributionId = CleverTap.sharedInstance()?.profileGetID() { TrackierSDK.setUserAdditionalDetails(userAdditionalDetails: ["clevertap_uid":attributionId]) } TrackierSDK.initialize(config: config) Configure In-App Event Postback [](https://docs.clevertap.com/docs/apptrove#configure-in-app-event-postback) ---------------------------------------------------------------------------------------------------------------- To send all events, select _Send all In-App event postback to partner_, And in case you want to send only selected events, select _Send only selected In-App Events postback to partner (At least one mapping is required)_ and choose _Event Name_ and _Event Identifier_, respectively. ![In-App Event Postback](https://files.readme.io/449035a-image-1400x900.jpg) In-App Event Postback Setup for Organic Install and Custom Events [](https://docs.clevertap.com/docs/apptrove#setup-for-organic-install-and-custom-events) ---------------------------------------------------------------------------------------------------------------------------------------- After successful integration, AppTrove starts pushing inorganic install events data to CleverTap. To receive in-app events (custom events) in CleverTap from AppTrove, proceed as follows: 1. Navigate to _Settings_ > _Partners_ and scroll down to the _Attribution partners_ section. ![CeleverTap Attribution Partners](https://files.readme.io/0ffe914-screencapture-sk1-dashboard-staging-6-dashboard-clevertap-W6W-797-865Z-account-setup-exports-partner-list-2024-08-05-14_48_11.png) CeleverTap Attribution Partners 2. Click on the _AppTrove_ partner. On clicking, the _Attribution partner - AppTrove_ popup appears on the right side of the screen. ![AppTrove Partner Integration](https://files.readme.io/c4395e2-Screenshot_2024-08-06_at_3.34.59_PM.png) AppTrove Partner Integration 2. Select the required option from the options below. Selecting any of these options indicates that the CleverTap accepts event data when shared by the partner. * Custom events * Organic install events > 🚧 > > ### > > Duplication of Events > > [](https://docs.clevertap.com/docs/apptrove#duplication-of-events) > > If you select _Organic install events_ for more than one attribution partner, a warning for duplication of events displays, as shown in the following figure. We strongly recommend tracking the organic install events from only one attribution partner. ![Duplication of Events](https://files.readme.io/ae820b8-screencapture-sk1-dashboard-staging-6-dashboard-clevertap-W6W-797-865Z-account-setup-exports-partner-list-2024-08-05-14_50_05.png) Duplication of Events 4. Click **Save**. On clicking, the following message displays at the top of the screen: _Changes saved. Admins are notified of this via email_. Viewing Data on Dashboard [](https://docs.clevertap.com/docs/apptrove#viewing-data-on-dashboard) ==================================================================================================== You can now view the event data on the CleverTap dashboard. To do so, proceed as follows: 1. From the CleverTap dashboard, go to _Analytics > Events_. 2. Apply the required filters for the selected event. The filters vary depending on the type of event. * **For Install Events**: All the install events are tracked under the _UTM Visited_ event. ![Install Events Filter](https://files.readme.io/fbf5eb7-Screenshot_2024-08-06_at_3.38.46_PM.png) Install Events Filter * **For Custom Events**: In-app revenue events received from AppTrove are prefixed with **AT** in CleverTap. Updated about 2 months ago * * * Ask AI --- # Status Alerts for Exports Overview [](https://docs.clevertap.com/docs/status-alerts-for-exports#overview) =================================================================================== CleverTap allows you to export data to third-party partners, such as Amazon Web Services (AWS), Google Cloud Platform (GCP), etc. You have the flexibility to choose between one-time data exports and recurring exports. Keeping track of export status is crucial, especially for recurring exports, as they are scheduled to run at regular intervals. This feature allows you to monitor the status of your data exports via Webhook on your preferred systems. It provides alerts when an export is initiated or completed successfully. Status tracking allows for keeping track of your recurring exports and taking necessary decisions whenever required. > 📘 > > ### > > Supported Partners for Export Status > > [](https://docs.clevertap.com/docs/status-alerts-for-exports#supported-partners-for-export-status) > > Currently, we provide events export status for Amazon S3 and Google Cloud Platform (GCP) partners only. This document further explains the prerequisites, how to enable and disable export status alerts, and track and monitor them. Prerequisite [](https://docs.clevertap.com/docs/status-alerts-for-exports#prerequisite) =========================================================================================== Ensure you integrate with the preferred technology partners: * [Amazon S3](https://docs.clevertap.com/docs/aws-s3-export) * [Google Cloud Platform (GCP)](https://docs.clevertap.com/docs/data-export-to-gcp) * [Microsoft Azure](doc:microsoft-azure) Setup [](https://docs.clevertap.com/docs/status-alerts-for-exports#setup) ============================================================================= This procedure involves the following major steps: 1. [Set up a Webhook](https://docs.clevertap.com/docs/setup-webhooks) 2. [Enable Status Alerts for Exports on CleverTap Dashboard](doc:status-alerts-for-exports#enable-status-alerts-for-exports) OR 3. [Add or Modify the Webhook](doc:status-alerts-for-exports#add-or-modify-the-webhook) Enable Status Alerts for Exports [](https://docs.clevertap.com/docs/status-alerts-for-exports#enable-status-alerts-for-exports) ----------------------------------------------------------------------------------------------------------------------------------- To enable status alerts for exports: 1. On the CleverTap dashboard, go to _Settings_ > _Partners_ > _Exports center_. ![Exports center](https://files.readme.io/fa86e8d47bcd6a79e7e231bf6fd4833202cc60b759573e456f07a8aa63ba557b-image.png) Exports center 2. Click the **Manage Status Alerts** button in the top right corner. The **Manage Status Alerts** window appears. ![](https://files.readme.io/8037095-image.png) 2. Toggle on the **Enable the status to get notified about exports** switch to enable the status alerts. 3. Click **Save**. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/status-alerts-for-exports#note) > > Once enabled, the export status tracking is applied to both existing and new export creations. Disable Status Alerts for Exports [](https://docs.clevertap.com/docs/status-alerts-for-exports#disable-status-alerts-for-exports) ------------------------------------------------------------------------------------------------------------------------------------- To disable status alerts for exports: 1. Toggle off the **Enable the status to get notified about exports** switch. 2. Click **Save**. Add or Modify the Webhook [](https://docs.clevertap.com/docs/status-alerts-for-exports#add-or-modify-the-webhook) --------------------------------------------------------------------------------------------------------------------- If required, edit the Webhook as follows: 1. On the **Exports** page, Click the **Manage Status Alerts** button in the top right corner. The **Manage Status Alerts** window appears. 2. On the **Enable export status alerts** pane, you can either create a new URL or use the existing one. * To use an existing Webhook URL, select one of the preferred Webhook URLs from the **Webhook name** drop-down list. * If required, to create a new Webhook URL, click the **Add webhook** link. For more information about creating Webhook URLs, refer to the [Webhooks](https://docs.clevertap.com/docs/setup-webhooks) documentation. Once you create a new Webhook, click the **Refresh** icon for the new Webhook to appear here. 3. Click **Save**. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/status-alerts-for-exports#note-1) > > We only support a POST Webhook. Sample Payload for Export Status [](https://docs.clevertap.com/docs/status-alerts-for-exports#sample-payload-for-export-status) ----------------------------------------------------------------------------------------------------------------------------------- The JSON payload configured on the Webhook URL will be pushed to the user once the export begins or ends. The following is a sample JSON payload showing the export status received via the Webhook URL. Sample Payload { "Export Request Id": 1690283492, "Partner": "Google Cloud Storage", "Type": "Events", "Status": "Completed", "Frequency": "One Time", "Date and Time": "25/07/2023 4:50:52 PM" } The JSON payload contains the following parameters: | Parameters | Description | | --- | --- | | `Export Request Id` | Unique identifier of the export request. For example, 1690283492. | | `Partner` | Name of the export partner. An example is Google Cloud Platform (GCP). | | `Type` | Type of export. For example, events. | | `Status` | Status of the export process. For example, Initiated or Completed.

* **One-time**: a one-time export is initiated and completed just once.
* **Recurring**: a recurring export is initiated and completed repeatedly at set intervals or schedules. | | `Frequency` | Interval at which the export operation occurs. For example, these intervals can be every 4, 8, 12, or 24 hours. | | `Date and Time` | Date and time when the export operation is initiated or completed. | Updated 8 days ago * * * Ask AI --- # Iterate Overview [](https://docs.clevertap.com/docs/iterate#overview) ================================================================= [Iterate](https://iteratehq.com/) is a survey platform that helps businesses collect user feedback across channels. The CleverTap Iterate integration enables you to send surveys via CleverTap’s messaging channels, such as Email, Web Pop-Ups, and In-App Messages, and sync each response as a User Property or custom event. Responses are automatically linked to the user’s CleverTap Profile Identity. You can collect personal details, feedback scores, preferences, or behavioral data to enrich user profiles, create intelligent segments, and deliver personalized engagement. Prerequisites for Integration [](https://docs.clevertap.com/docs/iterate#prerequisites-for-integration) =========================================================================================================== Ensure you have the following before setting up the integration: * An active Iterate account with survey creation access * An active CleverTap account with **Project ID** and **Project Passcode** * (Optional) Access to CleverTap email, In-app, or web pop-up campaigns > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/iterate#support-for-integration) > > This integration is managed and continuously improved by Iterate. The CleverTap and Iterate integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Iterate](https://docs.clevertap.com/cdn-cgi/l/email-protection#41323431312e3335012835243320352429306f222e2c) > for support and resolution. Integrate Iterate with CleverTap [](https://docs.clevertap.com/docs/iterate#integrate-iterate-with-clevertap) ================================================================================================================= To deliver personalized surveys through CleverTap and capture user responses seamlessly, you must complete the following three integration steps. 1. [Connect Iterate with CleverTap](doc:iterate#connect-iterate-with-clevertap) . 2. [Create Survey in Iterate](doc:iterate#create-survey-in-iterate) . 3. [Add Survey to CleverTap Campaign](doc:iterate#add-survey-to-clevertap-email-campaign) . Connect Iterate with CleverTap [](https://docs.clevertap.com/docs/iterate#connect-iterate-with-clevertap) ------------------------------------------------------------------------------------------------------------- Link your Iterate account to CleverTap to enable automatic response syncing. To do so, perform the following steps: 1. In the CleverTap dashboard, go to _Settings_ > _Project_ > _Overview_ and copy your **Project ID** and **Passcode** 2. In Iterate, go to _Company Settings_ > _Integrations_. 3. Under CleverTap, enter your CleverTap **Project ID**, account **Region**, and **Passcode**. ![Connect Iterate with CleverTap](https://files.readme.io/6804bb90c3b0e98a6a17ca2fcac9fe561d8412ade9bf3880e585cce26e7b631e-image.png) Connect Iterate with CleverTap > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/iterate#note) > > If using CleverTap In-App or Web Pop-up messaging channel, contact Iterate Support via In-App chat to enable Monthly Active User (MAU) data sync. Create Survey in Iterate [](https://docs.clevertap.com/docs/iterate#create-survey-in-iterate) ------------------------------------------------------------------------------------------------- Build your survey in Iterate before embedding it in a CleverTap campaign. For example, we will be sending surveys via CleverTap email campaigns. 1. Go to the _Send Survey_ tab and select _Integrations_ > _CleverTap_ in the Iterate dashboard. 2. Toggle on the _Send responses to CleverTap_ option to update customer profiles in CleverTap with the responses. ![CleverTap integration toggle](https://files.readme.io/4f97ba4ba2554d081541ab80fd8a50e3bca6206ac96f82277362eea8f2ea6f9e-image.png) CleverTap Integration Toggle 3. Copy the parameter `user_email={{ Profile.Identity | default: 'null' }}`, CleverTap replaces this with the `user_email` to associate responses. Add Survey to CleverTap Email Campaign [](https://docs.clevertap.com/docs/iterate#add-survey-to-clevertap-email-campaign) ----------------------------------------------------------------------------------------------------------------------------- After creating the survey in Iterate, you can embed it into a CleverTap email campaign to collect responses directly from recipients. You can do so by using one of the following two options: * [(Recommended) Embed First Question in Email Campaign](doc:iterate#recommended-embed-first-question-in-email-template) * [Link to Full Survey](doc:iterate#link-to-full-survey) You can send Iterate surveys through CleverTap using: * [Email campaigns](doc:create-message-email) * [In-App Messages](doc:create-message-in-app) * [Web Pop-Ups](doc:create-message-web-popup) For detailed steps on sending surveys via CleverTap, refer to the [Iterate documentation](https://help.iteratehq.com/en/articles/11930835-delivering-surveys-via-clevertap-mobile-in-app-message-and-web-pop-up) . ### (Recommended) Embed First Question in Email Template [](https://docs.clevertap.com/docs/iterate#recommended-embed-first-question-in-email-template) 1. In Iterate, go to _Send Survey_ > _Integrations_ > _CleverTap_. 2. Copy the Email Embed Code from the CleverTap integration section. 3. In CleverTap’s Email Campaign Editor, paste the embed code into the HTML of your email template at the location where you want the first survey question to appear. ![Email Embed Code](https://files.readme.io/1346e3d471feca3b51b5b4bd8ebf7bd1a0428c61ed561f9646aff5227276a3cb-image.png) Email Embed Code ### Link to Full Survey [](https://docs.clevertap.com/docs/iterate#link-to-full-survey) 1. In Iterate, go to the _Send Survey_ > _Integrations_ > _CleverTap_. 2. Copy the Survey Link from the CleverTap integration section. 3. In CleverTap’s Email Campaign Editor, add the survey link to a button or hyperlink in the email body. When recipients click the link, they are directed to the full survey, starting from the first question. Publish Campaign [](https://docs.clevertap.com/docs/iterate#publish-campaign) --------------------------------------------------------------------------------- Before publishing the campaign, ensure your survey works correctly using the **Preview & Test** option. Once verified, publish the campaign. The user receives the survey as they qualify for the campaign (refer to the following image). ![Preview of an email containing the first question of an Iterate survey](https://files.readme.io/7663e47c951353b1d04227bf9fbfe088279e06a3fd2bc6a2a8e0daeebb0ea270-image.png) Preview of Email Campaign with First Question from Iterate Survey Log Custom Events in CleverTap [](https://docs.clevertap.com/docs/iterate#log-custom-events-in-clevertap) ============================================================================================================= Once users respond, you can verify the following in the CleverTap dashboard: * User Properties are updated with survey responses. * The custom event `survey-question-response` is logged for each question answered. ![CleverTap dashboard showing updated User Properties and logged survey events.](https://files.readme.io/b1e76686be2e34ac73fe486ca8009b821f05bccc296eddbe58b8938910de8480-image.png) CleverTap dashboard showing updated User Properties and logged survey events Iterate sends a `survey_question_response` event to CleverTap for each completed question. The event includes the following fields: | Field Name | Description | | --- | --- | | question | Survey question text | | label | Custom property name (if defined) | | response | Readable version of the answer | | response\_int | Numeric responses (for example, NPS) | | response\_string | Open-ended or single-select answers | | response\_array | Multi-select answers | For triggering flows or campaigns based on these events in CleverTap, refer to [Custom Events](https://developer.clevertap.com/docs/events#custom-events) . Pass CleverTap Properties to Iterate [](https://docs.clevertap.com/docs/iterate#pass-clevertap-properties-to-iterate) ========================================================================================================================= You can send additional user profile properties from CleverTap to Iterate to filter responses and personalize surveys. By default, Iterate only receives the user’s CleverTap Identity ID and Email. You can pass more attributes, such as user type or preferences, for richer segmentation. To understand this better, consider an example where the e-commerce marketplace may pass a property identifying a user as a `buyer` or `seller`. In Iterate, this allows filtering survey responses by role and tailoring survey content accordingly. To do so, perform the following steps: 1. In the _Send Survey_ tab in Iterate, click **Customize user properties** above the HTML code. 2. Enter the property name as you want it to appear in Iterate. 3. Enter the corresponding CleverTap template tag that will populate the value (for example, `@Profile - User Type`). 4. Select whether the property is a _User property_ (persistent across sessions) or a _Response property_ (specific to the current survey or session). > 🚧 > > ### > > Important > > [](https://docs.clevertap.com/docs/iterate#important) > > Once created, the property type (for example, string, number) cannot be changed. To use a different type, create a new key (for example, `user_id_string`) or contact [Iterate Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#05767075756a7771456c7160776471606d742b666a68) > . For more details, refer to the [Iterate documentation](https://help.iteratehq.com/en/articles/11930835-delivering-surveys-via-clevertap-mobile-in-app-message-and-web-pop-up) > . ![Customize User Properties in Iterate](https://files.readme.io/512f76dc02c261ce6bdb2f375baafa984d8563905b5bb49ce2fb4a5c228fa876-image.png) Customize User Properties in Iterate Once configured, these properties are passed along with survey responses, enabling richer segmentation and more personalized experiences in both Iterate and CleverTap. Updated about 2 months ago * * * Ask AI --- # Slack (via Zapier) Overview [](https://docs.clevertap.com/docs/slack-via-zapier#overview) ========================================================================== [Slack](https://slack.com/) is a messaging platform that enables teams to communicate and collaborate in real time. By integrating Slack with CleverTap via Zapier, businesses can automate workflows, track user interactions, update user profiles, and trigger personalized campaigns based on Slack activities. The following are some of the use cases that the CleverTap Slack integration can address: * **Track Key Engagement Activities**: Capture Slack interactions such as message posts, reactions, or mentions and log them as events in CleverTap. * **Automate Internal Notifications**: Send automated notifications to a Slack channel when key events are raised in CleverTap. * **Update or Create User Profiles**: Automatically [update user profiles](doc:slack-via-zapier#createupdate-user-profiles) in CleverTap based on Slack interactions, ensuring accurate and real-time data synchronization. Prerequisites for Integration [](https://docs.clevertap.com/docs/slack-via-zapier#prerequisites-for-integration) ==================================================================================================================== The following are the prerequisites for Slack integration: * Ensure you have access to your Slack workspace with admin permissions. * Ensure you have an active Zapier account to create the CleverTap integration. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. Integrate Slack with CleverTap using Zapier [](https://docs.clevertap.com/docs/slack-via-zapier#integrate-slack-with-clevertap-using-zapier) ================================================================================================================================================ The integration process involves the following two major steps: 1. [Create a Passcode on the CleverTap Dashboard](https://docs.clevertap.com/docs/slack-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 2. [Create/Update User Profiles](doc:slack-via-zapier#createupdate-user-profiles) .OR [Upload Event](doc:slack-via-zapier#upload-event) . Create a Passcode on the CleverTap Dashboard [](https://docs.clevertap.com/docs/slack-via-zapier#create-a-passcode-on-the-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate API requests. Every CleverTap API call must include Account ID and Passcode as request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Profiles [](https://docs.clevertap.com/docs/slack-via-zapier#createupdate-user-profiles) --------------------------------------------------------------------------------------------------------------- To ensure real-time updates and maintain accurate user data in CleverTap, you can automatically update or create user profiles based on Slack interactions. Perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. ![Create a Zap on Zapier Dashboard](https://files.readme.io/4d40f28468176d9ecfb6604f0bfe71dd6508f502d2d288acc7396da4c9f2b212-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _Slack_ from the _App_ section. This starts the Zap when a trigger occurs on Slack. 2. Select _Trigger Event_ from the dropdown list and then select _New Message Posted_ or _New Reaction Added_ for this use case. 3. Select _Account_ and sign in using your Slack account credentials. Authorize Zapier to access your Slack workspace. You can also connect a new account if your account does not appear in the dropdown 4. Click **Continue**. ![Set up a Trigger](https://files.readme.io/fa6d7f84db141947e09669e3ed4e2627073e1189f557658efd16e85f1078573a-rework_sla_1.gif) Set up a Trigger 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. After testing the trigger, you will see details of pulled records similar to the image below. ![Selected Record](https://files.readme.io/a5b273e7b7a2043b6c365372c022069da325e3a523ccfbe877841f0e3028ec89-image.png) Selected Record 5. Select any one record, and click **Continue with selected record**. 6. **Select the Action** that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the App dropdown. 2. Select _Create/Update User Profile_ from the _Action event_ dropdown. This will create or update user details such as email, role, and activity based on Slack interactions. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained during the [Create a Passcode on CleverTap Dashboard](doc:slack-via-zapier#create-a-passcode-on-the-clevertap-dashboard) step. 4. Click **Continue** after successfully connecting your account. ![Select the Action](https://files.readme.io/a3efb6339fc4acab6933a7203d732258e4ad77518bda86e639335e644d1584e4-2025-02-05_23-30-09_1.gif) Select the Action 7. **Configure the Action**. Map Slack data fields to CleverTap fields as follows: | **CleverTap Profile Field** | **Slack Field** | | --- | --- | | **Identity** | Slack user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Date of the user’s creation in Slack. | | **Profile Properties** | Include user properties in JSON format (such as name, email, role, and other custom properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/slack-via-zapier#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/8642dd6ee1bd3f81cee31aebbc2873981a81ec75b3688a87b729a343d44de8b0-image.png) Configure the Action 8. Click **Continue** and click **Test Step** to test the zap after mapping the files. 9. Click **Publish**. After publishing this, Zap will automatically create or update user profiles in CleverTap whenever relevant Slack interactions occur. This ensures user data remains up-to-date and helps in deliver personalized engagement. You can verify this by checking your CleverTap dashboard to confirm the user profile has been created or updated. ![Verify user in CleverTap](https://files.readme.io/ce1ae4eb36ce0cdf6fcbcd767bb14a3ccd498e085e0422f0fc0d9acc899b6d5a-image.png) Verify user in CleverTap Upload Event [](https://docs.clevertap.com/docs/slack-via-zapier#upload-event) ---------------------------------------------------------------------------------- Consider an example where you want to track user engagement activities in Slack and log them as events in CleverTap. This allows you to analyze interactions and personalize engagement strategies. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _Slack_ from the _App_ section. This starts the Zap when a trigger occurs on Slack. 2. Select _Trigger Event_ from the dropdown list and then select _New Message Posted_ or _New Reaction Added_ for this use case. 3. Select _Account_ and sign in using your Slack account credentials. Authorize Zapier to access your Slack workspace. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue** after successfully connecting your account. ![Set up a Trigger](https://files.readme.io/fa6d7f84db141947e09669e3ed4e2627073e1189f557658efd16e85f1078573a-rework_sla_1.gif) Set up a Trigger 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. After testing the trigger, you will see details of pulled records similar to the image under step 4 of [Create/Update User Profiles](doc:slack-via-zapier#createupdate-user-profiles) . Select any one record, and click **Continue with selected record**. 5. **Select the Action** the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the App dropdown. 2. Select _Upload Event_ from the _Action event_ dropdown. This will log interactions (messages, reactions) as events for analytics and automation. 3. Select _Account_ to connect the CleverTap account. For more information about how to do this, refer to step 6 (iii) under [Create/Update User Profiles](doc:slack-via-zapier#createupdate-user-profiles) . 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/47b61eac0acbcdf21d2d5de2c569c136ed358b6f9d4f2e354bcb48d6ec1c3f5c-image.png) Select Action for Zap 6. **Configure the Action**. Map Slack data fields to CleverTap fields as follows: | **CleverTap Field** | **Slack Field** | | --- | --- | | **User ID** | Slack user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Event creation date. | | **Event Name** | Select a predefined event or create a custom event. You can also map the event name using the Slack data fields. | | **Event Properties** | Include metadata in JSON format (for example, event type, priority, event properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/slack-via-zapier#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/d138d08ece87cad5edbe25444ea319b9a6c32b901a1063fca2c8b01d8d419d35-image.png) Configure the Action 7. Click **Continue**Click **Test Step** to test the zap after mapping the files. 8. Click **Publish** to activate the Zap. After publishing this, Zap will log Slack events as CleverTap events, providing actionable insights into user engagement. This data can be leveraged for analytics and triggering automated campaigns. You can verify this by checking your CleverTap dashboard to confirm if the event has been logged. ![Verify Events in CleverTap](https://files.readme.io/b025e3e336babe3ab6761036891af08b6ec988cce876885d2fcd87ed507a7526-image.png) Verify Events in CleverTap FAQs [](https://docs.clevertap.com/docs/slack-via-zapier#faqs) ------------------------------------------------------------------ ### What happens if I do not map the required fields? [](https://docs.clevertap.com/docs/slack-via-zapier#what-happens-if-i-do-not-map-the-required-fields) Not mapping required fields may result in incomplete data transfer or failure to trigger events and campaigns correctly. Updated about 2 months ago * * * Ask AI --- # Customer Relationship Management Overview [](https://docs.clevertap.com/docs/crm#overview) ============================================================= CleverTap integrates with popular CRM platforms, allowing businesses to automate customer data syncing, track sales activities, and trigger personalized engagement campaigns. This integration ensures a seamless data flow between sales and marketing teams, improving customer interactions and retention. CleverTap currently supports the following partner platforms: * [Formsuite](doc:formsuite) * [FreshSales](doc:freshsales) * [HubSpot](doc:hubspot-via-zapier) * [Iterate](doc:iterate) * [Instapage](docs:instapage-via-zapier) * [LeadSquared](doc:leadsquared) * [Pipedrive](doc:pipedrive-via-zapier) * [Salesforce CRM](doc:salesforce-via-zapier) * [Swipe Pages](doc:swipe-pages) * [Zoho Form](doc:zoho-form-via-zapier) Updated about 1 month ago * * * Ask AI --- # Conditional Split Node Overview [](https://docs.clevertap.com/docs/conditional-split-node#overview) ================================================================================ The Conditional Split node in CleverTap Journeys empowers marketers to route users dynamically based on real-time behavior and profile attributes. The node evaluates the most recent user data at the exact moment a user reaches the node. Based on conditions configured using event properties or user profile attributes, CleverTap instantly determines which path the user should follow. This enables real-time segmentation within a journey, eliminating the need for static, pre-defined segments and unlocking adaptive, data-driven engagement flows. For example, a music streaming app wants to split users based on the `plan_type` user property as soon as the user signs up. The Conditional Split node acts as a decision point within a journey. When a user completes sign-up and reaches this node, CleverTap evaluates the defined conditions using the most recent user data and instantly routes the user to the matching path. Here, the triggering event is `Sign Up Completed`: * `plan_type` = Premium → Sends a thank-you email with loyalty rewards. * `plan_type` = Free → Sends an upgrade prompt. * `Others` → Sends a generic thank-you message. ![Split Based on User Property `plan_type`](https://files.readme.io/64367ad6e2f692ab51d8f218186c5703760e04ff2fa7c609457c92eaaeba3e20-CS_Introduction.png) Split Based on Conditions Key Features [](https://docs.clevertap.com/docs/conditional-split-node#key-features) ======================================================================================== The following are the key features of the Conditional Split node: * **Real-Time Evaluation**: Distribution happens in real time when the previous node is a live trigger or delay node. This ensures users are routed instantly based on their latest property or behavior data. For example, a journey starts when a user launches the app. The Conditional Split node immediately checks the user’s most current `Subscription status`: ![Real-time Evaluation of Subscription Status ](https://files.readme.io/ec27578ca595efb4a1974d85ff6840b8507f3f64c297197bfc7df641066b3517-CS_Evaluation_of_Subscription_Status.png) Real-time Evaluation of Subscription Status This ensures that if a user upgraded their subscription before launching the app, the journey reflects that in real time. * **Dynamic Targeting Based on User Property**: Users are routed based on real-time user profile attributes. For example, you are running a regional promotion. You can use the Conditional Split node to check the user property `location`. This helps you personalize messages geographically without needing separate journeys or static segments. ![Dynamic Targeting Based on User Location](https://files.readme.io/f5bfc0669909ecdf48075c9ad901546dc4d2f2082bea2b88737a22d4e716388e-User_Property_CS.png) Dynamic Targeting Based on User Location * **Contextual Event Property-Based Routing**: Trigger routing decisions based on live user actions, such as purchases, searches, or job applications, using event properties directly from the triggering event. This allows real-time branching of users into relevant paths the moment they perform an action, enabling instant, context-aware engagement. For example, a job portal app wants to tailor onboarding based on the type of job the user is looking for when they sign up. Now, with Conditional Split, the journey triggered by the Sign Up Completed event (Action node) can immediately route users based on the `preferred_job_type` event property submitted during signup: ![Event Property-Based Targeting](https://files.readme.io/156a9199d5cd32d6419fdd53e3e911e68831b0fc2effeeb79d7cc8aa80f65c96-CS_Real-time_evaluation_of_Event_Porperties.webp) Event Property-Based Targeting * **Combined Logic with Flexible AND/OR Operators**: Combine user and event properties, making split logic highly granular. For example, you are running a luxury promotion and want to tailor offers based on both `Loyalty Tier` tier and `Product Interest`. ![Combined Logic with Flexible AND/OR Operators](https://files.readme.io/f20ee96cf21653357948cef275bd8cc3e5fb37115f7bfabd9b63fd9305741607-CS_Luxury_Promotion.png) Combined Logic with Flexible AND/OR Operators * **Sequential Splitting**: Supports chaining up to three Conditional Split nodes within a journey. This allows you to evaluate multiple criteria step by step, creating layered, decision-based flows that adapt as more context becomes available. Each split adds more nuance based on what you know about the user, leading to hyper-relevant engagement without overwhelming a single decision point. For example, you are running a journey to promote tailored travel packages to users based on their travel intent and destination interest. * Split 1: Check Travel Intent * If Intent = Leisure, go to Split 2 * If Intent = Business, send corporate travel offers * Others → Send a survey to understand user preferences * Split 2: Travel Destination Interest * If Interest = Beach, show tropical getaway packages * If Interest = Mountains, highlight hiking and cabin stays * Others → Recommend trending travel spots * **Fallback Path**: Always includes an _Others_ path to handle users who do not qualify for any of the paths. For example, if a Conditional Split is configured with conditions for `plan_type` = Premium and `plan_type` = Free, any user with a different or missing `plan_type` value is routed to the _Others_ path and can be sent a generic message or a prompt to complete their profile. Resources [](https://docs.clevertap.com/docs/conditional-split-node#resources) ================================================================================== [Conditional Split by User Property](https://docs.clevertap.com/docs/conditional-split-by-user-property) [Conditional Split by Event Property](https://docs.clevertap.com/docs/conditional-split-by-event-property) [Conditional Split with Advanced Conditions](https://docs.clevertap.com/docs/conditional-split-with-advanced-conditions) [Create Conditional Split Journey](https://docs.clevertap.com/docs/create-conditional-split-journey) [Conditional Split Stats](https://docs.clevertap.com/docs/conditional-split-stats) Updated about 2 months ago * * * Ask AI --- # mParticle Import (Audience) Overview [](https://docs.clevertap.com/docs/mparticle-import-audience#overview) =================================================================================== [mParticle](https://www.mparticle.com/) , a customer data platform that helps make informed decisions for targeting users. This integration allows you to import audience (segment) from mParticle into CleverTap and provides different benefits described in the below section. Key Benefits [](https://docs.clevertap.com/docs/mparticle-import-audience#key-benefits) =========================================================================================== Here are some of the key benefits of this integration: * **Enhanced Audience Management**: Leverage mParticle's product analytics to create a targeted audience (segments) in CleverTap for personalized messaging and engagement campaigns based on user behaviors and preferences captured in mParticle. * **Comprehensive Event Tracking**: Capture and analyze user interactions within CleverTap, such as app installs, uninstallations, push notifications, and In-App messages, in mParticle for a holistic view of user engagement across both platforms. * **Data-Driven Decision Making**: Make informed decisions and optimize your customer engagement strategies by leveraging the combined insights from CleverTap and mParticle's powerful analytics engines. * **Personalized and Relevant Campaigns**: Deliver contextual and personalized messaging to your users based on their behaviors and preferences captured in mParticle, leading to higher engagement and conversion rates. * **Streamlined Workflow**: Seamlessly push audience (segments) and system events between CleverTap and mParticle with a simple and intuitive setup, saving you time and effort in managing your marketing campaigns. Prerequisites to Integration [](https://docs.clevertap.com/docs/mparticle-import-audience#prerequisites-to-integration) =========================================================================================================================== Before you begin the integration, ensure that you have the following: * The required permission to create an audience (segments) in the mParticle account. * The mParticle Audience (segments) mapped correctly to CleverTap Segments. Setup [](https://docs.clevertap.com/docs/mparticle-import-audience#setup) ============================================================================= This procedure involves the following three major steps: 1. [Find CleverTap Project Details](doc:mparticle-import-audience#find-clevertap-project-details) 2. [Configure CleverTap as an Audience Output in mParticle](doc:mparticle-import-audience#configure-clevertap-as-an-audience-output-in-mparticle) 3. [Import Audience from mParticle](doc:mparticle-import-audience#import-audience-from-mparticle) 4. [Map User Identities of mParticle Audience to CleverTap Segments](doc:map-user-identities-of-mparticle-audience-to-cleverTap-segments) Find CleverTap Project Details [](https://docs.clevertap.com/docs/mparticle-import-audience#find-clevertap-project-details) ------------------------------------------------------------------------------------------------------------------------------- Find the following project details to authorize the CleverTap integration on the mParticle dashboard: * Project ID * Passcode * Project Token * Region > 📘 > > ### > > Passcode > > [](https://docs.clevertap.com/docs/mparticle-import-audience#passcode) > > When generating an account passcode, we recommend you set the expiry date for the passcode as _Forever_. To find the passcode for your mParticle Import project, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#account-level-passcode) > . You can obtain the remaining project details by navigating to the _Settings_ > _Project_ page of the CleverTap dashboard (see figure below): ![CleverTap Project Details](https://files.readme.io/4ca0240-Project_Details.png) CleverTap Project Details > 📘 > > ### > > Project Details > > [](https://docs.clevertap.com/docs/mparticle-import-audience#project-details) > > CleverTap suggests keeping the above details handy, as you will need them to configure the mParticle dashboard. To identify the region for your account, refer to the following table: | Region | CleverTap Dashboard URL | | --- | --- | | eu1 | [https://eu1.dashboard.clevertap.com/login.html](https://eu1.dashboard.clevertap.com/login.html) | | in1 | [https://in1.dashboard.clevertap.com/login.html](https://in1.dashboard.clevertap.com/login.html) | | aps3 | [https://aps3.dashbaord.clevertap.com/login.html](https://aps3.dashbaord.clevertap.com/login.html) | | mec1 | [https://mec1.dashboard.clevertap.com/login.html](https://mec1.dashboard.clevertap.com/login.html) | | sg1 | [https://sg1.dashboard.clevertap.com/login.html](https://sg1.dashboard.clevertap.com/login.html) | | us1 | [https://us1.dashboard.clevertap.com/login.html](https://us1.dashboard.clevertap.com/login.html) | Configure CleverTap as an Audience Output in mParticle [](https://docs.clevertap.com/docs/mparticle-import-audience#configure-clevertap-as-an-audience-output-in-mparticle) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- To configure CleverTap on the mParticle dashboard: 1. Navigate to _Setup_ > _Output_ from the mParticle dashboard. 2. Select the _Audience_ tab, click **Add Audience Output**, and select _CleverTap_ from the dropdown. ![Select CleverTap for Audience Output on mParticle Dashboard](https://files.readme.io/c980230-Audience_Output_mParticle_Import.png) Select CleverTap for Audience Output on mParticle Dashboard The _Audience Configuration_ popup opens. ![Add Audience Configuration Details](https://files.readme.io/ba04304-Audience_Configuration_Form_mParticle.png) Add Audience Configuration Details 3. Enter the following details and click **Save** to save the details: | Field | Description | | --- | --- | | Configuration Name | Enter the name to identify your configuration uniquely. | | Account ID | Enter the [Project ID](doc:mparticle-import-audience#find-clevertap-project-details)
of your CleverTap account. | | Passcode | Enter the [Passcode](doc:mparticle-import-audience#find-clevertap-project-details)
of your CleverTap account. | | Account Token | Enter the [Project Token](doc:mparticle-import-audience#find-clevertap-project-details)
of your CleverTap account. | | Region | Enter the [Region](doc:mparticle-import-audience#find-clevertap-project-details)
of your CleverTap account. | After configuring the output, it displays under the _CleverTap Default_ of the _Outputs_ page. ![Add CleverTap Event on mParticle Dashboard](https://files.readme.io/7d97571-CleverTap_mParticle_Audience_Output.png) Add CleverTap Event on mParticle Dashboard Import Audience from mParticle [](https://docs.clevertap.com/docs/mparticle-import-audience#import-audience-from-mparticle) ------------------------------------------------------------------------------------------------------------------------------- To import Audience from mParticle to CleverTap output destination: 1. Navigate to _Audience_ from the mParticle dashboard and open the audience you want to connect to the output. ![mParticle Audience Page](https://files.readme.io/f43d25f-Connect_Audience_Output.png) mParticle Audience Page 2. From the _Connect_ tab, click **Connect Output**. ![Connect mParticle Audience](https://files.readme.io/4b101e9-Connect_Audience_mParticle.png) Connect mParticle Audience 3. Select the configuration you want to set as an _Output_. ![Connect Output Destination](https://files.readme.io/1929b8a-Connect_Output_Configuration.png) Connect Output Destination 4. Select the _User ID_ that you want to set up for mapping the mParticle audience on the CleverTap dashboard. For more information, refer to [User Identity Management](doc:mparticle-import-audience#user-identity-management) . ![Select Output and Add the Connection](https://files.readme.io/d4ee1e0-Connect_Output_Gif.gif) Select Output and Add the Connection > 📘 > > ### > > Verify User Identifications > > [](https://docs.clevertap.com/docs/mparticle-import-audience#verify-user-identifications) > > To ensure that the user profiles imported from mParticle are correctly identified in CleverTap, we recommend importing a smaller audience (segment) before proceeding with larger audiences. Map User Identities of mParticle Audience to CleverTap Segments [](https://docs.clevertap.com/docs/mparticle-import-audience#map-user-identities-of-mparticle-audience-to-clevertap-segments) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap imports all users from mParticle except the **anonymous users**. During the import process, CleverTap compares the identifiers set by mParticle for its existing user profiles and maps the relevant user identifiers to CleverTap's user profiles. This ensures that user actions, attributes, and event data associated with a specific user in mParticle are accurately attributed to the corresponding user in CleverTap. To achieve this, a common identifier is used to map users when importing audience (segments) from mParticle to CleverTap. CleverTap uses the following identities to map the imported audience (segments) from mParticle: * **Partner ID:** A unique identifier assigned to every user profile whenever the data is exported from CleverTap to mParticle. This value is available on the mParticle dashboard as `CleverTap_User_ID` in the Partner ID field. * **Customer ID:** A unique identifier generated by mParticle to individual users within the mParticle ecosystem. * **mParticle ID:** A persistent, anonymized identifier assigned to each user in the mParticle system. * **Email:** The email address associated with a user. * **Phone Number:** The phone number associated with a user. For more information about mParticle Identity Management, refer to [Identify Users](https://docs.mparticle.com/guides/idsync/identify-users/) . ### User Identity Management [](https://docs.clevertap.com/docs/mparticle-import-audience#user-identity-management) When importing audience (segments) from mParticle, the user identity is managed in the following manner: * If the **Partner ID is present in an imported audience from mParticle**, it is mapped with the CleverTap ID value in CleverTap. In that case, the Email and Phone Number of the profile are merged with the same profile in CleverTap, and the profile becomes part of the CleverTap segment. * If the **Partner ID is not present** in an imported audience from mParticle, the **Customer ID value from mParticle is used as an identifier** and mapped with the Identity value in CleverTap. In that case, the Email and Phone Number of the profile are merged with the same profile in CleverTap, and the profile becomes part of the CleverTap segment. * If the **Customer ID is also not present** in an imported audience from mParticle, the **mParticle ID value is used as an identifier** and mapped with the Identity value in CleverTap. In that case, the Email and Phone Number of the profile are merged with the same profile in CleverTap, and the profile becomes part of the CleverTap segment. * If **only mParticle ID is present** and the rest of the details are not present in the imported audience, then the **profile is considered anonymous** and does not become part of the CleverTap dashboard. To understand this better, refer to the following diagram: ![User Identity Management between mParticle and CleverTap](https://files.readme.io/e644462-Identity_Management_mParticle.png) User Identity Management between mParticle and CleverTap View mParticle Audience in CleverTap [](https://docs.clevertap.com/docs/mparticle-import-audience#view-mparticle-audience-in-clevertap) =========================================================================================================================================== The audience name defined in the mParticle dashboard appears as the segment under the _Segments_ list page of the CleverTap dashboard. The _Type_ column under the _Segments_ list page is displayed as _Partner - mParticle_ for the exported audience. ![View Synced Audience in CleverTap](https://files.readme.io/cc97e63-View_Imported_Audience_on_CleverTap.png) View Synced Audience in CleverTap Click the segment to view the statistics for this segment, like any other segment on the CleverTap dashboard. ![View Segment Details](https://files.readme.io/7795346-View_Segment_Stats.png) View Segment Details You can also validate if the user profile is ingested from mParticle by verifying if the _Partner Sync_ event is listed under the _User activity details_ section. ![View Partner Sync Event in CleverTap User Profile](https://files.readme.io/dfe3a48-Partner_Sync_mParticle_Import.png) View Partner Sync Event in CleverTap User Profile Engage with mParticle Audience on CleverTap [](https://docs.clevertap.com/docs/mparticle-import-audience#engage-with-mparticle-audience-on-clevertap) ========================================================================================================================================================= You can also engage with the audience (segments) imported from mParticle by creating different campaigns and journeys. Creating campaigns for the Past Behavior Segment and Live Behavior Segment is the same except where we need to select the segment. For Past Behavior Campaigns/Journeys [](https://docs.clevertap.com/docs/mparticle-import-audience#for-past-behavior-campaignsjourneys) ------------------------------------------------------------------------------------------------------------------------------------------ To select the segment: 1. From the dashboard, select **Campaigns**. 2. Click **\+ Campaign**. 3. From the _Messaging Channels_ list, select the messaging channel. 4. Click **Who** and filter the target audience by selecting _With user properties_ > _Segments_. 5. Select the imported user segment from the available list of segments. ![Select the Imported Segment for Past Behavior Campaigns/Journeys](https://files.readme.io/e8daa93-View_mParticle_Audience_in_Past_Behavior_Campaigns.png) Select the Imported Segment for Past Behavior Campaigns/Journeys **Scenario: Customer wants to send an In-App Message campaign to the user from Bangalore city when they launch the mobile application.** In this case, the customer will create an audience (segment) in the mParticle dashboard and initiate a one-time export to CleverTap for engagement activities. On the CleverTap dashboard, the customer will create an In-App campaign for this audience of users. To create the campaign, the customer will navigate to In-App Campaign and select the segment under the **Who** segment section in the following way: 1. Select **App Launched** event under _As soon as the user does_ section. 2. Select _Filter on past behavior and user properties_ checkbox. 3. Select _With user properties_ > _Segments_ and select the segment name from the list. For Live Campaigns/Journeys [](https://docs.clevertap.com/docs/mparticle-import-audience#for-live-campaignsjourneys) ------------------------------------------------------------------------------------------------------------------------ To select the segment: 1. From the dashboard, select **Campaigns**. 2. Click **\+ Campaign**. 3. From the _Messaging Channels_ list, select the messaging channel. 4. Click **Who** and select _Partner Sync_ event from the list. 5. Click _Filter_ and then select _Event Property Action_ = Added. > 📘 > > ### > > Partner Sync Event > > [](https://docs.clevertap.com/docs/mparticle-import-audience#partner-sync-event) > > The _Partner Sync_ event is raised every time CleverTap receives an audience sync request from mParticle. 6. Filter the target audience by selecting **Segments** under _With User Properties_. 7. Select the imported user segment from the available list of segments. ![Select the Imported Segment for Live Campaign/Journeys ](https://files.readme.io/5fe4c99-View_Audience_in_Live_Behavior_Campaign.png) Select the Imported Segment for Live Campaign/Journeys **Scenario: Customer wants to send a recurring Email campaign to the users who added an item to the cart but did not purchase the item.** In this case, the customer will create an audience (segment) in the mParticle dashboard and initiate a recurring export to CleverTap for engagement activities. On the CleverTap dashboard, the customer will create a recurring Email campaign for this audience of users. To create the campaign, the customer will navigate to Email Campaign and create the campaign in the following way: 1. Select _Start here_ > _Live Behavior_. 2. Select the **Partner Sync** event under the _As soon as the user does_ section. 3. Click _Filter_ and then select Event Property _Action_ = _Added_. 4. Select _Filter on past behavior and user properties_ checkbox. 5. Select _Segments_ under _With user properties_ and select the segment name from the list. Find mParticle Audience from CleverTap Dashboard [](https://docs.clevertap.com/docs/mparticle-import-audience#find-mparticle-audience-from-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- To find the mParticle audience: 1. Navigate to Segments > Find People from the CleverTap dashboard. 2. Select the **Partner Sync** event from the _Users who did_ section. 3. Select _Segments_ under _Display common properties, such as_, and select the segment name from the list. ![View the Imported Audience from Find People](https://files.readme.io/14cdf75-View_Audience_in_Find_People.png) View the Imported Audience from Find People Partner Sync Event [](https://docs.clevertap.com/docs/mparticle-import-audience#partner-sync-event-1) ========================================================================================================= The _Partner Sync_ event is raised for all the users who are part of different partner segments. The following table provides information about the event properties: | Property Name | Description | Property Value/Example | | --- | --- | --- | | Partner Segment Name | Indicates the name of the audience (segment) exported from mParticle. | For example, Cart Drop off | | Action | Indicates if the user has been added or removed from the segment in the CleverTap dashboard. | * Added
* Removed | | Partner Segment ID | Indicates the Audience ID in the mParticle dashboard. | For example, 47444 | | CT Source | Indicates the source of the event. | mParticle | | Partner Name | Indicates the name of the partner from where the segment was imported. | mParticle | > 📘 > > ### > > Campaign Exceptions for Partner Sync Event > > [](https://docs.clevertap.com/docs/mparticle-import-audience#campaign-exceptions-for-partner-sync-event) > > The _Partner Sync_ event cannot be used as a trigger event to create the campaigns for the following channels as it is not an SDK event: > > * In-App Messages > * Web Popup > * Web Exit Intent > * App Inbox > * Native Display > 📘 > > ### > > Contribution Towards Billing > > [](https://docs.clevertap.com/docs/mparticle-import-audience#contribution-towards-billing) > > The _Partner Sync_ event contributes to data points for _MAU Billing Type_ and as an event for _Container Billing Type_. FAQs [](https://docs.clevertap.com/docs/mparticle-import-audience#faqs) =========================================================================== ### Q. Can I export the CleverTap engagement data to mParticle for analysis? [](https://docs.clevertap.com/docs/mparticle-import-audience#q-can-i-export-the-clevertap-engagement-data-to-mparticle-for-analysis) A. Yes. For more information, refer to [mParticle Export](doc:mparticle-export) . Updated about 2 months ago * * * Ask AI --- # Mixpanel Export Overview [](https://docs.clevertap.com/docs/mixpanel-export#overview) ========================================================================= This section provides information about exporting event data from CleverTap to the Mixpanel dashboard. CleverTap also offers to import Mixpanel cohorts. To learn more about this feature, refer to [Mixpanel Import](doc:mixpanel-integration) . > 📘 > > ### > > Export Limit Per Event > > [](https://docs.clevertap.com/docs/mixpanel-export#export-limit-per-event) > > Mixpanel supports exporting only 255 event properties per event. If the number of event properties exceeds the Mixpanel limit, the CleverTap exports the first 255 event properties. Setup [](https://docs.clevertap.com/docs/mixpanel-export#setup) =================================================================== The setup involves adding Mixpanel project details to the CleverTap dashboard. To add the project details: 1. Log in to your CleverTap account. 2. Navigate to _Settings_ > _Partners_ > _Partner List_. Select _Mixpanel_ from the list. ![Navigate to the Partners Page](https://files.readme.io/0b7bd2f3f395b8faaee4d72a556149b874c4847d383fbdee80c51e03d6136eb9-image.png) Navigate to the Partners Page 3. A popup opens on the right side of the screen. Enter the following details and click **Integrate**. | Field | Description | | --- | --- | | Mixpanel Project ID | The Project token is used to send event data to Mixpanel. For more information, refer to [Project ID](https://help.mixpanel.com/hc/en-us/articles/115004490503-Project-Settings#project-id)
. | | Service Account Username | A descriptive name for the service account in Mixpanel. For more information, refer to [Service Account Username](https://developer.mixpanel.com/reference/service-accounts#authenticating-with-a-service-account)
. | | Service Account Secret | The secret API is the key that corresponds to your project. For more information, refer to [Service Account Secret](https://developer.mixpanel.com/reference/service-accounts#authenticating-with-a-service-account)
. | | Data Residency | * The Data Residency is the physical/geographical storage location of data (EU or Standard) for each project.
* For more information, refer to [Data Residency](https://help.mixpanel.com/hc/en-us/articles/115004490503-Project-Settings#data-residency)
. | | Mixpanel Distinct ID Mapping | This user property is used as an identifier when sending event data to Mixpanel. For more information, refer to

[Distinct ID](https://help.mixpanel.com/hc/en-us/articles/115004509406-Distinct-IDs-)

. | ![Enter Mixpanel Project Details to Integrate](https://files.readme.io/cae2046-image.png) Enter Mixpanel Project Details to Integrate After successful integration, navigate to the the _Export_ tab on the _Partner List_ page. ![Create Export](https://files.readme.io/626fa1f156171a4608f0c26ddf97817dd308c0cf27aadd85e11ad8850b543404-image.png) Create Export Create New Export [](https://docs.clevertap.com/docs/mixpanel-export#create-new-export) =========================================================================================== To create a new export: 1. Navigate to **Settings** > **Partners** > **Exports**. 2. Click **Create Export** and select **Mixpanel**. ![Create Mixpanel Export](https://files.readme.io/a8b0899df20669b883fd3ca511c3581059a4fc1b45182b0a7674d2f7b23afefe-image.png) Create Mixpanel Export The **Export to Mixpanel** popup displays. ![Enter Mixpanel Export Details](https://files.readme.io/62278f3-mixpanel_live_streaming.png) Enter Mixpanel Export Details 3. Configure the settings as required. * **Partner Nickname**: Nickname for the partner. To edit the nickname, go to **Partner List**. * **DATA TYPE & IDENTIFIER PRIORITY**: Select the events from the available options to export. For more information, refer to [Export Details](https://docs.clevertap.com/docs/mixpanel-export#export-details) . * **FREQUENCY**: Select from one of the following options: * **One time**: A single export for the selected export type. You can export data up to the last **60 days**. You create an export for a specific day, date range, previous month, current month, and more. * **Recurring**: Set up a recurring export that exports all the new events captured in the last window. You can export data as frequently as every 4 hours and up to once every 24 hours. * **Date to export data**: The export starts at 12:00 a.m. on the specified date by default. > 📘 > > ### > > Rate Limits > > [](https://docs.clevertap.com/docs/mixpanel-export#rate-limits) > > If you are a Mixpanel enterprise customer and require a higher limit for a one-time backfill, contact [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#c3a2b3aab083aeaabbb3a2ada6afeda0acae) > with your project\_id and use-case. 4. Click **Export**. On clicking, the popup closes, and the following message displays at the top of the _Exports_ page: ![Mixpanel Export Initiated ](https://files.readme.io/76c41e717e574c45bbd265b3fe3dfd6c12292af6870d67b02f923eb0f43d2d82-image.png) Mixpanel Export Initiated CleverTap processes the export, and you can now see the newly created export for Mixpanel. The status for each export is displayed as **PENDING** as soon as the export is created. The status changes to **RUNNING** after the processing starts. It changes to **DONE** when the export is complete. Stop Export [](https://docs.clevertap.com/docs/mixpanel-export#stop-export) =============================================================================== You can also stop the running export. Hover over the export. Click the **Stop** ![Stop export](https://files.readme.io/203208a-StopExport.jpg) button. ![Stop mixpanel export](https://files.readme.io/9ae8e24c18c84e6c014a82b6474e5137616e8a3988f556c8a797531db6b563ed-image.png) Stop Mixpanel Export The **Stop export?** window appears. Click **Stop** to confirm your action. ![](https://files.readme.io/8f7a2ee-StopMixpanelWindow.jpg) You are navigated back to the **Exports** page. The _Mixpanel data export stopped_ message displays at the top. The status of export is now displayed as **STOPPED**. ![Mixpanel export stopped](https://files.readme.io/05c4aad8ec3323436a3b5dc46c0a7d700b2c363bca553eb9d0ca42ee0991c70f-image.png) Mixpanel Export Stopped Edit an Export [](https://docs.clevertap.com/docs/mixpanel-export#edit-an-export) ===================================================================================== You might need to modify an export to meet specific business requirements or while waiting for the next run. This section describes editing a Recurring export in the **RUNNING** and **PENDING**(awaiting next run) state. > 📘 > > ### > > Points to Remember > > [](https://docs.clevertap.com/docs/mixpanel-export#points-to-remember) > > * In case of running exports, the new changes will apply to the next run. > * You cannot edit a One-time export, regardless its status (RUNNING, PENDING, DONE, or STOPPED). > * You cannot change the export from User Profile to Event and vice-versa. > * You cannot modify exports marked as **DONE** or **STOPPED**. To edit an export: 1. On the CleverTap dashboard, go to **Partners** > **Exports**. 2. Hover over the required export. The **View**, **Edit**, and the **Stop** buttons appear. ![Click the Edit Export Icon](https://files.readme.io/b5cda2481cd779856da8c2a7d8c50f0f731416ee3a027c57f68620a6352b4ef7-image.png) Click the Edit Export Icon 3. Click the **Edit** button. The **Export to Mixpanel** section appears. ![Edit the Export](https://files.readme.io/5cb8482-UpdateMixpanelExport.jpg) Edit the Export 4. Edit the export details and click **Update export**. Filter Exports [](https://docs.clevertap.com/docs/mixpanel-export#filter-exports) ===================================================================================== This section describes the different ways you can filter exports. Filter by Export Details [](https://docs.clevertap.com/docs/mixpanel-export#filter-by-export-details) --------------------------------------------------------------------------------------------------------- To filter by export details: 1. Click the **Filter** button at the top right corner. 2. You can filter exports by **Partner**, **Type**, **Format**, **Status**, or **Frequency**. 3. To clear the filter, click **Reset all**. ![Filter Exports](https://files.readme.io/8d840a9220809415420e669faac41240a003041914652b03e5c4fa7615144631-image.png) Filter Exports Filter Exports by Date Range [](https://docs.clevertap.com/docs/mixpanel-export#filter-exports-by-date-range) ----------------------------------------------------------------------------------------------------------------- You can also filter the exports based on the export date. To filter exports by export date range: 1. Click the **Filter** button at the top right corner. 2. Click the **Exported on** button. The **Calendar** widget appears. ![Calendar Widget](https://files.readme.io/74ce34b-Amplitude_Exports_-_Calendar_Widget.png) Calendar Widget 1. Choose the custom date range and click **Apply**. The exports are filtered accordingly. Filter Exports by Pagination [](https://docs.clevertap.com/docs/mixpanel-export#filter-exports-by-pagination) ----------------------------------------------------------------------------------------------------------------- To choose how many export items you view per page: 1. Use the **Items per page** drop-down at the bottom of the **Exports** page. 2. Options include 10, 20, 30, or 40. By default, the **Exports** page shows 20 exports. Export Details [](https://docs.clevertap.com/docs/mixpanel-export#export-details) ===================================================================================== Select from one of the following options to export events from CleverTap to the Mixpanel dashboard: * [All events](doc:mixpanel-export#all-events) * [Selected events](doc:mixpanel-export#selected-events) * [Engagement events](doc:mixpanel-export#engagement-events) All Events [](https://docs.clevertap.com/docs/mixpanel-export#all-events) ----------------------------------------------------------------------------- Export data for all defined events, including _System_ and _Custom_ events. Selected Events [](https://docs.clevertap.com/docs/mixpanel-export#selected-events) --------------------------------------------------------------------------------------- Select the specific events to export. Engagement Events [](https://docs.clevertap.com/docs/mixpanel-export#engagement-events) ------------------------------------------------------------------------------------------- Export the following engagement events: | CleverTap Event Name | Description | | --- | --- | | Notification Sent | * The event is tracked when the notification is successfully sent from CleverTap to the communication channel you select for your campaign.
* This event is always recorded, even if the user does not open or click the message.
* This event is recorded for Email, Mobile Push, SMS, and Web Push campaigns.
* This event is available on the Event dashboard but not on the User Profile. | | Notification Viewed | * The event is tracked when a user views an email, in-app, or web notification sent from CleverTap.
* The event is available for Email, Web Push, In-App, Web Popup, and App Inbox. | | Notification Clicked | The event is tracked when a user clicks on a Mobile Push, In-App, Email, Web Popup, or Web Push message sent via the CleverTap dashboard or through the campaign API. | | Push Impressions | * After the Push Impression is implemented in the SDK, the toggle must be turned on from the CleverTap dashboard.
* This event is recorded whenever a push notification sent via CleverTap is delivered to the user’s device.
* The funnels on the Push campaign statistics page reflect the count for this event. | | Notification Replied | This event is tracked when the brand receives a reply from the user for WhatsApp. | | Push Unregistered | * This debug event is tracked when an existing mobile push token is removed for a profile.
* The event is tracked for a profile when:
* A user logs out of the device, and another user logs in. Applicable only if the onUserLogin() method is implemented.
* When a push token is removed using the pushFcmRegisterationId("token",false) method. Applicable only for Android. | | Control Group | The event is tracked when a campaign is activated with a Control group. | | Channel Unsubscribed | * The event is raised when an email is not acknowledged.

* The following are the event properties:

* Campaign ID: This is the ID of
the campaign from which users are updating subscriptions.
Campaign Type: Currently only email.
* Group: Group name from which the user unsubscribed/resubscribed.
* Identity: The user identity/email address.
* Variant Type: Valid values are bounced, dropped, and spam. Email IDs that bounce, drop or marked as spam are opted out from future emails
* Subscription Type: Account level and profile level. Profile level signifies that the user who qualified for the communication is opted out. Account level signifies that all users with the email address are opted out from future communications.
* Reason: Reason which was given by the email provider for the type of the error. For example: "smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces." | | Reachable By | The event is tracked for a profile when:

* Push token is added/changed.
* Email ID is added/changed.
* Phone number is added/changed. | | Notification Delivered | The event is tracked when the WhatsApp provider confirms that the notification has reached the end user (double-tick of WhatsApp). | | AB Experiment Rendered | The event is tracked when you are using the Product A/B Tests feature and the variant reaches the device. | | AB Experiment Stopped | The event is tracked when you are using the Product A/B Tests feature and the AB experiment is stopped. | | AB Experiment Rolled Out | The event is tracked when you are using the Product A/B Tests feature and the winner variant is sent to all the devices. | | Geocluster Entered | The event is tracked when you enable the geofence feature and your device enters a geofence. | | Geocluster Exited | The event is tracked when you enable the geofence feature and your device exits a geofence. | | Reply Sent | The event is tracked against the user profile of the end-user when an agent (CleverTap user) replies to a WhatsApp message from the end user. | | App Uninstalled | * The event is tracked when the user uninstalls the application.

* There are three cases when this event is tracked multiple times for a single user:

* The first case is when a user installs your app, uninstalls it, and then reinstalls it.
* The second case is when a user clears the app's memory.
* The third case is when a user installs your app on multiple devices. | | Webhook Delivered | The event is tracked when a webhook campaign is delivered successfully. | | State Transitioned | * The event is tracked whenever a user transitions from one state to another or from an unmapped state to one of the states in the lifecycle optimization framework. | | UTM Visited | * The event is tracked when a user clicks on a link from a marketing campaign that has a UTM parameter defined on it.
* The event is also tracked when a CleverTap-integrated attribution platform, such as Branch or Apsalar, sends this information to CleverTap. | FAQs [](https://docs.clevertap.com/docs/mixpanel-export#faqs) ================================================================= ### Q. Do CleverTap data exports allow special characters? [](https://docs.clevertap.com/docs/mixpanel-export#q-do-clevertap-data-exports-allow-special-characters) A. Yes, CleverTap data exports allow the following special characters: * CleverTap's export system supports Unicode (UTF-8) character encoding. It facilitates the accurate representation of text in various languages and scripts. For example, Indian regional languages, Arabic, Korean, Russian, Japanese, Chinese, Spanish, Greek, Indonesian, etc. * It replaces the following characters with a hyphen to avoid issues in output file generation: * Whitespace * Tab * Slash * null (\\0) * Control characters are replaced with ?. For more information, refer to [Control Character](https://en.wikipedia.org/wiki/Control_character) . * Supports emoji characters; however, some emojis (UTF-16) may not render properly. Updated about 2 months ago * * * Ask AI --- # Create A/B Tests Overview [](https://docs.clevertap.com/docs/create-ab-tests#overview) ========================================================================= To help you start with A/B Testing on CleverTap, this document describes the fundamentals of creating and managing an A/B test. Key Terminologies for A/B Tests [](https://docs.clevertap.com/docs/create-ab-tests#key-terminologies-for-ab-tests) ====================================================================================================================== Before we create an A/B Test, it is essential to understand the following terminologies: ### Sticky Target [](https://docs.clevertap.com/docs/create-ab-tests#sticky-target) A sticky target refers to a specific and unchanging group of users within the A/B test. Let us consider an example to understand this better. Consider a subscription platform that wants to conduct an A/B test for a new feature for their Premium Plan users. They have a substantial number of users on the Free plan, and they want to exclude data from these users as they cannot utilize the new feature. For this, they can set up a target segment using the user property _Subscription Status_ set to _Premium_ to achieve this. Subsequently, if they want to exclude users from the A/B Test who initially entered as Premium users but did not renew and switched to the free version, they must clear the _Sticky Target_ option. This action ensures that users who were initially on the Premium Plan but later switched to the Free Plan are not included in the test group. ![Sticky Target](https://files.readme.io/eff2d38-sticky.png) Sticky Target ### Goals [](https://docs.clevertap.com/docs/create-ab-tests#goals) The Goals field allows you to define the objective of your A/B Test. Setting up goals helps you measure the success of different test variations and understand how well they perform in terms of driving user engagement, conversions, or other desired outcomes. ![Define Goal Event](https://files.readme.io/5fe6c73-Goals.png) Define Goal Event #### Filter Goal Event [](https://docs.clevertap.com/docs/create-ab-tests#filter-goal-event) You can further refine and narrow down the scope of the users for whom you want to measure the goal achievement using the _Filters_ as shown in the above image. You can further filter your goal event based on a particular property or also add an Aggregate event property to get additional metrics in the Results. The Aggregate by event property represents the numerical value obtained as a result of the average or sum of an event property for the target audience. You can select up to **five** events that you may want to establish as the objective for your A/B Test. You can further select up to **three** event properties to narrow down the events that are counted towards your goal. For example, the business wants to find out the total aggregate amount for the purchase amount greater than $25 (see the following image). ![Filter Selected Events](https://files.readme.io/d62cbb1-Filter_Selected_Events.png) Filter Selected Events ### Exposure [](https://docs.clevertap.com/docs/create-ab-tests#exposure) Exposure enables you to specify the percentage of your audience that will be exposed to your A/B Test. For instance, you can test the variant on a smaller segment, such as 10% of the total audience. When performing A/B Tests, it is essential to consider how many people you want to include and how quickly you want to see the results. As a [best practice](doc:ab-test-best-practices) , it is recommended to start the test with a smaller audience and then slowly include more people to roll out the winning variant to everyone (100%). By default, all users who fit the criteria for the test are included in the A/B test. However, if you want to start with a smaller group of people, you can specify the percentage under the _Exposure_ field before starting the test. ![Set Exposure](https://files.readme.io/1393a07-Exposure.png) Set Exposure > 🚧 > > ### > > Exposure > > [](https://docs.clevertap.com/docs/create-ab-tests#exposure-1) > > Once an A/B test begins, audience size can only be increased, not reduced. Adjustments in the Exposure impact only new users, not those already in the test. Therefore, it is recommended to start the test with a smaller audience and then slowly include more people. ### Distribution [](https://docs.clevertap.com/docs/create-ab-tests#distribution) The distribution indicates the percentage of users that are distributed between the control group and other variants. The distribution is done based on the weights assigned to each of them. Based on the weights, the variant percentages are calculated dynamically and presented visually to illustrate how each variant contributes to the A/B Test. Upon initiating the experiment, users are initially distributed equally between the control group and variant A, with a default weight distribution of 1:1. If additional variants B and C are introduced, each is assigned an equal weight of 1. Consequently, every variant includes an equal number of users, resulting in a distribution of 25% for each variant. > 🚧 > > ### > > Variant Distribution > > [](https://docs.clevertap.com/docs/create-ab-tests#variant-distribution) > > Changes to the distribution are not permitted after an experiment is published and is either running or paused. Create A/B Test [](https://docs.clevertap.com/docs/create-ab-tests#create-ab-test) ====================================================================================== To create a new A/B Test for variables: 1. Click **Create A/B Test** from the _A/B Tests_ page. 2. Define the custom name for your A/B Test. 3. Under the Goals field, select your event _Goal_. Select the event filters under _Filter_ to narrow down the target audience for whom you want to measure the goal achievement. For example, consider a business willing to analyze impactful revenue-generating purchases. They can achieve this by filtering the _Purchase_ event based on the _Order Value_ property. ![Create AB test for product experiences](https://files.readme.io/317f2bdc5e3c49c0150cd8c2d8e9e11e1fd9bdd11725c1ed5c0ee2d6b6937db1-image.png) Create AB Test 4. (Optional) Enter the _Description_ for your A/B Test to add contextual information (up to 1024 characters) about your test. 5. Select the target segment for your A/B Test from the Segment dropdown. You can select previously saved segments or create a new one. If you want to target all your users at once, you also have the option to select the _All Users_ segment, as shown below. 6. Define the percentage (0-100%) of eligible users from the selected segments who will be exposed to the experiment under the _Exposure_ field. The default exposure value is 100%. 7. Select _[Sticky Target](doc:create-ab-tests#sticky-target) _ to retain variant values for users who initially met the experiment criteria and later became ineligible. This retention lasts for the entire duration of the experiment. (). 8. Define the [distribution](doc:create-ab-tests#distribution) between the _Control group_ and the additional _Variants_ by assigning weights. 9. Select the variables you want to experiment with for the A/B Test. It allows you to change the values of those variables for different variants. Consider a scenario where a variable representing a Call to Action (CTA) possesses a blue color in Variant A. You can generate an additional variant for that variable, this time featuring a red color. ![Add Variables for A/B Test](https://files.readme.io/f4c841847bd87dd733954101e2732a1335fdec3d9ade0335c47f44f6604d28d1-image.png) Add Variables for A/B Test > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/create-ab-tests#note) > > The variables available for conducting the A/B Tests are the ones defined in the Remote Configuration, along with their override segments. You can conduct an A/B Test either for all the override segments or for a particular override segment. 10. From the _Scheduling_ section, toggle to schedule the A/B Tests. You can select the start and end date for the test. You can also select if the A/B test must pause or finish after the selected date. ![Schedule an A/B Test](https://files.readme.io/ce8662b4e98bc0df50798d7d6cabbecef3285d562106afdde2f266d04c610113-image.png) Schedule an A/B Test 10. Click **Publish Now** from the top right corner. The users now start qualifying and entering the A/B Test. You can monitor the metrics for each variant from the Results section and declare the winner variant accordingly. Refer to [A/B Test Results](doc:ab-test-results) to learn how to analyze and conclude your A/B Tests. Manage A/B Tests [](https://docs.clevertap.com/docs/create-ab-tests#manage-ab-tests) ======================================================================================== The following table represents the list of actions permitted after an A/B Test is published: | Sr. No. | Actions | Permitted? (Yes/No) | | --- | --- | --- | | 1 | Change the experiment name | Yes | | 2 | Change experiment description | Yes | | 3 | Add or Remove Goals | Yes | | 4 | Increase Exposure | Yes | | 5 | Add or Remove segment | No | | 6 | Decrease exposure percentage | No | | 7 | Change Distribution percentage | No | | 8 | Adding a new variant | No | | 9 | Remove variant | No | | 10 | Add new variables | No | | 11 | Edit Variables values | No | You can also either pause a particular A/B Test or finish it after declaring the winner variant based on the metrics displayed under the _Results_ section. ### Pause A/B Test [](https://docs.clevertap.com/docs/create-ab-tests#pause-ab-test) To pause the A/B Test: 1. Go to the required A/B Test. 2. Click the ellipsis icon from the top right corner and click **Pause** (refer to the following figure). ![Pause or finish your A/B Test](https://files.readme.io/73fd896574bdf27f3e61a12cab93b415eb4ed08d456ceb7cb976af47801b7f7b-image.png) Pause or Finish your A/B Test Pausing the test prevents new users from joining the experiment. However, users who have already entered the test continue to experience the variant they were assigned. So, the test remains active for existing users, but no new users become a part of it until you resume the test. ### Finish A/B Test [](https://docs.clevertap.com/docs/create-ab-tests#finish-ab-test) After collecting substantial information, you can analyze the metrics, declare the winner variant and finish your A/B Test. The following scenarios arise based on the winner variant you declare: * **Scenario 1: Declaring Control Group as the winner variant.** In this case, no changes are made to the variables present under the _Remote Config_. The test concludes, and all users receive the default experience. ![Rollout Control Group](https://files.readme.io/1a05b81-scenario_1_AB_Test.png) Rollout Control Group * **Scenario 2: Declaring any variant as the winner with the target segment as_All Users_.** In this case, CleverTap automatically applies the winning variant variables and values to the Remote Config. These new variable values supersede the existing ones, impacting all users. ![Rollout Winning Variant](https://files.readme.io/a3cca06-Scenario_2_AB_Test.png) Rollout Winning Variant > 🚧 > > ### > > Declaring a Winner Variant for a Custom Target Segment > > [](https://docs.clevertap.com/docs/create-ab-tests#declaring-a-winner-variant-for-a-custom-target-segment) > > * Declaring a winning variant for a custom target segment is not supported at the moment. Consequently, the automated rollout of the victorious variant to the Remote Config is unavailable. > * If an A/B test with a custom target segment concludes as winner, the behavior defaults to Scenario 1. In this scenario, the Control Group is declared as the winner, and the Remote Config state remains unchanged. ![Finish A/B Test](https://files.readme.io/90dd707-Scenario_3_AB_Test.png) Finish A/B Test > 🚧 > > ### > > Finish A/B Test > > [](https://docs.clevertap.com/docs/create-ab-tests#finish-ab-test-1) > > If there is an ongoing draft for a variable in use within your A/B Test on the Remote Config page, you cannot finish the A/B Test. You must first _Publish_ or _Discard_ the draft from the _Remote Config_ page to be able to finish the A/B Test. Updated about 2 months ago * * * Ask AI --- # Google Cloud Platform (GCP) Overview [](https://docs.clevertap.com/docs/data-export-to-gcp#overview) ============================================================================ The GCP Export feature enables you to bulk export your CleverTap event or profile data to a GCP bucket. You can export your CleverTap data to analyze it with Business Intelligence (BI) tools or store it in your data warehouse for future analysis. > 📘 > > ### > > Feature Availability > > [](https://docs.clevertap.com/docs/data-export-to-gcp#feature-availability) > > This capability is a part of the _Enterprise_, _Advanced_, and _Cutting Edge_ plan. To activate this for your account, contact your Account Manager. Integrate GCP with CleverTap [](https://docs.clevertap.com/docs/data-export-to-gcp#integrate-gcp-with-clevertap) ==================================================================================================================== The integration involves the following steps: 1. [Create a Service Account for your Project](doc:data-export-to-gcp#create-a-service-account-for-your-project) . 2. [Create a Bucket](doc:data-export-to-gcp#create-a-bucket) . 3. [Configure CleverTap Dashboard](doc:data-export-to-gcp#configure-clevertap-dashboard) . > 📘 > > ### > > Data Export > > [](https://docs.clevertap.com/docs/data-export-to-gcp#data-export) > > Once you have set up both dashboards, you can configure export from the CleverTap dashboard. For more information, refer to the following: > > * [Data Exports](doc:data-exports) > for Legacy Profile and Event Export flow > * [Profile Exports](doc:profile-exports) > for Enhanced Profile Export flow Create a Service Account for your Project [](https://docs.clevertap.com/docs/data-export-to-gcp#create-a-service-account-for-your-project) ---------------------------------------------------------------------------------------------------------------------------------------------- To create a service account, perform the following steps: 1. Log in to your GCP account and select the project where you want to export your CleverTap data. Create a new project if you do not already have one. 2. From the left panel, select _IAM_ and then navigate to _Admin_ > _Service Accounts_. 3. Create a new _Service Account_ linked to the selected project and enter the Service account name and description, respectively. This is the account that you will use to _authenticate_ and _authorize_ CleverTap to upload exports to your GCP project. ![2880](https://files.readme.io/fb49ce9-Screenshot_2020-04-06_at_3.57.40_PM.png "Enter Service Account Details and click Create") Create a New Service Account 2. Navigate to _Permissions_ > _Storage Admin and continue_. ![2880](https://files.readme.io/b14f47c-Screenshot_2020-04-06_at_3.58.36_PM.png "Navigate to Storage Admin from Google Cloud") Navigate to Storage Admin 3. Click **\+ Create Key** and select JSON for the Service account. The JSON key downloads to your machine automatically. Save this key, as you will need to upload it to the CleverTap dashboard later. ![2880](https://files.readme.io/e5bc98b-Screenshot_2020-04-06_at_4.04.32_PM.png "Create a key and select JSON format for Service Account") Create Key Create a Bucket [](https://docs.clevertap.com/docs/data-export-to-gcp#create-a-bucket) ------------------------------------------------------------------------------------------ Create a bucket to store the export files from CleverTap. To do so, perform the following steps: 1. From the left navigation, go to _Storage_ and click **Create Bucket**. ![2280](https://files.readme.io/8d026fe-Screenshot_2020-04-06_at_4.12.33_PM.png "Navigate to Storage Browser from Google Cloud dashboard") Navigate to Storage Browser from GCP Dashboard On clicking, _Create a bucket_ page opens. 2. _Name your bucket_ and fill in the other details as per your requirements. ![2880](https://files.readme.io/c696063-Screenshot_2020-04-06_at_4.14.53_PM.png "Enter your bucket details and create a bucket") Enter your Bucket Details and Create a Bucket 3. Click **Create**. Following is an image for a successfully created bucket: ![2880](https://files.readme.io/fd5d73b-Screenshot_2020-04-06_at_4.16.03_PM.png "Bucket created successfully on Google Cloud") Bucket Created Successfully Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/data-export-to-gcp#configure-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------------------- Add the Service account credentials (created in [Step 1](doc:data-export-to-gcp#create-a-service-account-for-your-project) and bucket name to CleverTap. To configure the dashboard: 1. Go to _Settings_ > _Partners_ > _Integrations_ from the CleverTap dashboard. ![2848](https://files.readme.io/1e53dc52cbe396c18b283d8ad85bf016c35dc817255901b3778e8c905cedaa70-Navigating_to_Partners_Page.png "Navigating to Partner page from the CleverTap dashboard") Navigating to Partners 2. Select the _Google Cloud_ partner. The _Integrate analytics partner - Google Cloud_ window opens on the right side of the screen. 3. Click **\+ Google Cloud Bucket** to add a bucket. You can also add multiple buckets from this popup. 4. Enter the following details and click **Save Credentials**: | Field | Description | | --- | --- | | Bucket nickname | Enter the nickname for your bucket. | | Service Account Key | Enter the contents of the downloaded Service Account Key JSON file (obtained in [Step 1](doc:data-export-to-gcp#create-a-service-account-for-your-project)
) into the Service Key. | | Bucket name | Add the name of the bucket as given in the project. | ![2358](https://files.readme.io/1e6eb6a-SaveBucket.jpg "Enter Google Cloud bucket details and click Integrate") Enter Google Cloud Bucket Details > 🚧 > > ### > > Error When Saving Credential > > [](https://docs.clevertap.com/docs/data-export-to-gcp#error-when-saving-credential) > > 1. Check if the bucket name is the same as in GCP. Bucket names need to be an exact match. > 2. Generate the Service Account key again, copy and paste the new key into the _Service Account Key_ field on the _Integrate analytics partner - Google Cloud_ window. ![2540](https://files.readme.io/b4b5b46-Screenshot_2020-04-06_at_4.44.59_PM.png "Service Account Key generated") Service Account Key FAQs [](https://docs.clevertap.com/docs/data-export-to-gcp#faqs) ==================================================================== ### How to secure the data exports from CleverTap to GCP? [](https://docs.clevertap.com/docs/data-export-to-gcp#how-to-secure-the-data-exports-from-clevertap-to-gcp) You can whitelist IPs to ensure that CleverTap has access to push data only to your GCP bucket. To get the list of IP whitelisting, refer to the [IP Whitelisting](doc:ip-whitelisting) documentation. ### How to resolve a `403: retentionPolicyNotMet` error during data export to GCP? [](https://docs.clevertap.com/docs/data-export-to-gcp#how-to-resolve-a-403-retentionpolicynotmet-error-during-data-export-to-gcp) A `403: retentionPolicyNotMet` error can occur when exporting data to GCP. It could be because of a locked retention policy. To resolve this error: 1. Open the **GCP Console**. 2. Go to **Menu** > **Cloud Storage** > **Buckets**. 3. Select the required bucket. 4. Go to the **Protection** tab. 5. Check the **Retention policy (for compliance)** section. If any policy is active, the **Edit**, **Delete**, and **Lock** icons are enabled. 6. Click the **Delete** icon to delete the retention policy. If the Delete icon is not enabled, the retention policy is locked on the bucket. In this case, you have no option but to change the bucket to which CleverTap uploads export data. ### Do CleverTap data exports allow special characters? [](https://docs.clevertap.com/docs/data-export-to-gcp#do-clevertap-data-exports-allow-special-characters) Yes, CleverTap data exports allow the following special characters: * Supports Unicode (UTF-8) character encoding. It facilitates the accurate representation of text in various languages and scripts. For example, Indian regional languages, Arabic, Korean, Russian, Japanese, Chinese, Spanish, Greek, Indonesian, etc. * Replaces the following characters with a hyphen to avoid issues in output file generation: Whitespace, Tab, Slash, and null (\\0). * Replaces control characters with ?. For more information, refer to [Control Character](https://en.wikipedia.org/wiki/Control_character) . * Supports emoji characters; however, some emojis (UTF-16) may not render properly. ### What customer-related errors can stop exports, and how are customers notified when interruptions occur? [](https://docs.clevertap.com/docs/data-export-to-gcp#what-customer-related-errors-can-stop-exports-and-how-are-customers-notified-when-interruptions-occur) Export processes can stop due to customer-related errors. For example, invalid/expired credentials or a missing partner bucket. CleverTap sends emails to customers about the issue to ensure a timely resolution. Here is the customer-related error that can stop a GCP export: | Error Code | Error Message | Cause and Resolution | | --- | --- | --- | | 403 | Credentials are incorrect, GCP account is forbidden. | Your Service Account Key has expired or is invalid. There could be various reasons why your key is incorrect. Recheck all the steps, and you can refer to [Integrate GCP with CleverTap](doc:data-export-to-gcp#integrate-gcp-with-clevertap)
. | Exports are checked every hour for failures. If an error occurs, CleverTap sends three emails to the export creator within three days. Emails 1 and 2 include the error details and a link to resolve the issue. It warns that the export will stop if the problem is not resolved within three days. The third email notifies the creator that CleverTap has stopped the export. Updated 23 days ago * * * Ask AI --- # Amazon EventBridge Overview [](https://docs.clevertap.com/docs/amazon-eventbridge#overview) ============================================================================ CleverTap now enables you to send events to the [Amazon EventBridge](https://aws.amazon.com/eventbridge/) ecosystem. Events can flow from CleverTap via Amazon EventBridge to various other services such as AWS Lambda, Amazon SNS, Amazon SQS, Redshift, Firehose and Amazon Kinesis streams. Once integrated with Amazon EventBridge, you can send the CleverTap events into any service in your AWS account. Pre-requisites [](https://docs.clevertap.com/docs/amazon-eventbridge#pre-requisites) ======================================================================================== * On AWS * AWS account ID * AWS region to be associated to * On CleverTap * AWS Account credentials * Data stream setup Integrate EventBridge with CleverTap [](https://docs.clevertap.com/docs/amazon-eventbridge#integrate-eventbridge-with-clevertap) ==================================================================================================================================== This process involves the following three steps: 1. [Find Amazon EventBridge Event Source Details](doc:amazon-eventbridge#find-amazon-eventbridge-event-source-details) . 2. [Configure CleverTap Event Source](doc:amazon-eventbridge#configure-clevertap-event-source) . 3. [Associate Event Source with Designated Event Bus in AWS Console](doc:amazon-eventbridge#associate-event-source-with-designated-event-bus-in-aws-console) . Find Amazon EventBridge Event Source Details [](https://docs.clevertap.com/docs/amazon-eventbridge#find-amazon-eventbridge-event-source-details) ---------------------------------------------------------------------------------------------------------------------------------------------------- To find the event source details: 1. Navigate to Amazon EventBridge Partners from the Amazon EventBridge dashboard. 2. Click **Set up** under the CleverTap partner listing. The _Set up event source_ page opens. 3. Click **Copy** to copy your AWS account number to your clipboard and save it. You will require these details for configuring the CleverTap dashboard. Configure CleverTap Event Source [](https://docs.clevertap.com/docs/amazon-eventbridge#configure-clevertap-event-source) ---------------------------------------------------------------------------------------------------------------------------- To configure CleverTap Event Source: 1. Log in to your CleverTap account and navigate to the _Settings_ > _Partners_ page. Select _Amazon Eventbridge_ from the list. ![Partners Page](https://files.readme.io/d68579c40857f395a42742c0aaa22f480b47ea6ff49126bf706c4ef73117f836-Amplitude_Partner_Page.png) Partners Page 2. A popup opens on the right side of the screen. Enter the following details and click **Integrate**. | Field | Description | | --- | --- | | Partner Nickname | Enter the _Nickname_ for your integration. | | AWS Account ID | * Enter the AWS account number obtained in _Step 3_ of [Find Amazon EventBridge Event Source Details](doc:amazon-eventbridge#find-amazon-eventbridge-event-source-details)
.
* This user property is used as an identifier when sending event data to Amazon EventBridge. | | Region | The AWS account region. The events are sent to the selected region. | ![Enter Amazon EventBridge Project Details to Integrate](https://files.readme.io/008bb61147e413f86a3d0a7c22d0eb02d8df2ee176732dc7114e7ef1779bdfaf-image.png) Enter Amazon EventBridge Project Details to Integrate Associate Event Source with Designated Event Bus in AWS Console [](https://docs.clevertap.com/docs/amazon-eventbridge#associate-event-source-with-designated-event-bus-in-aws-console) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ To establish an event connection to Amazon EventBridge, your CleverTap event source must be associated with the event bus in Amazon EventBridge. You can now see the CleverTap event source, created in _Step 3_ of [Configure CleverTap Event Source](doc:amazon-eventbridge#configure-clevertap-event-source) , under the _Partner_ events sources on the Amazon EventBridge dashboard. To associate the event source with the designated event bus in the AWS console: 1. Select the event source name and associate it with an event bus. 2. After establishing the connection, set your rules and targets for Amazon EventBridge to redirect events to an AWS service. For more information, refer to the [Amazon EventBridge documentation](https://docs.aws.amazon.com/eventbridge/index.html) . Send Events to EventBridge [](https://docs.clevertap.com/docs/amazon-eventbridge#send-events-to-eventbridge) ================================================================================================================ There are two ways events can be sent from CleverTap to EventBridge. * Via campaigns * Via Journeys ### Sending via Campaigns [](https://docs.clevertap.com/docs/amazon-eventbridge#sending-via-campaigns) * Navigate to Campaigns from the CleverTap dashboard and click on ‘**\+ Campaign**’. * Select **Amazon EventBridge** from the channels list. ![854](https://files.readme.io/8abeb70-EB_Campaign.png "Select Amazon EventBridge from the channels dropdown") Select Amazon EventBridge from the Channels List * Select the appropriate option on '**Type'**, '**When**' pages * Select the events to be sent to Amazon EventBridge on the '**Who**' page. * Once you reach the '**What'** page, you will be able to choose what to send to Amazon EventBridge ![1113](https://files.readme.io/7ec2ed0-EB_Campaign_What.png "Define Amazon EventBridge Message Content") Define Amazon EventBridge Message Content * If the EventBridge connection is not set up, you will not be able to proceed. The ‘**Modify settings**’ link will navigate you to the configuration section for Amazon EventBridge. * You can also choose the details to send in the payload - Email, Identity & CleverTap ID, User profile attributes, GCM / APNS tokens * Click **‘Continue’** to proceed to the **'Setup'** page, and then to the **'Overview'**page and then schedule the campaign ### Sending via Journeys [](https://docs.clevertap.com/docs/amazon-eventbridge#sending-via-journeys) * When you are creating a journey, you can drag a ‘**Partner**’ node from engage node section ![1216](https://files.readme.io/4667f6c-EB_Journey_node.png "Drag and drop Amazon EventBridge engagement node") Drag and Drop Amazon EventBridge Engagement Node * On the '**Channel Type'** page, click on ‘**Amazon EventBridge**’ to proceed. ![1119](https://files.readme.io/f3f134d-EB_Journey_what.png "Define Amazon EventBridge Message Content") Define Amazon EventBridge Message Content * Once you reach the '**What**' page, you will be able to choose what to send to Amazon EventBridge ![1119](https://files.readme.io/b5ce183-EB_Journey_what.png "Click Save and Close after Defining the Message Content") Click Save and Close after Defining the Message Content * If the EventBridge connection is not set up, you will not be able to proceed. The ‘**Modify settings**’ link will navigate you to the configuration section for Amazon EventBridge. * You can also choose the details to send in the payload - Email, Identity & CleverTap ID, User profile attributes, GCM / APNS tokens * Click **‘Save and close’** to save the node Updated 23 days ago * * * Ask AI --- # Mixpanel Import (Cohort) Overview [](https://docs.clevertap.com/docs/mixpanel-integration#overview) ============================================================================== Mixpanel integration enables the following capabilities: * Import Mixpanel cohorts to the CleverTap dashboard * Engage with users from the imported cohort by using Campaigns and Journeys in the CleverTap dashboard * Export campaign events to Mixpanel for further analysis. For more information, refer to [Mixpanel Export](doc:mixpanel-export) . When exporting cohorts from Mixpanel, the Partner Sync event is raised and cohorts are exported as segments in CleverTap. The user from the CleverTap dashboard can then engage with the segment and export the engagement events data to Mixpanel for further analysis. Prerequisites [](https://docs.clevertap.com/docs/mixpanel-integration#prerequisites) ======================================================================================== The following are the prerequisites for Mixpanel Import: 1. Integrate CleverTap SDK and set `$CleverTap_user_id` in Mixpanel using Mixpanel SDK methods or APIs. For more information, refer to [Set Common User Identifier between CleverTap and Mixpanel](https://docs.clevertap.com/docs/mixpanel-integration#set-common-user-identifier-between-clevertap-and-mixpanel) . 2. [Enable CleverTap Integration](doc:mixpanel-integration#enable-clevertap-integration) . > 📘 > > ### > > Mixpanel Project Admin > > [](https://docs.clevertap.com/docs/mixpanel-integration#mixpanel-project-admin) > > You must be a Mixpanel project admin to enable the CleverTap integration from the Mixpanel dashboard. For more information, see [Project Roles and Permissions – Mixpanel Help Center](https://help.mixpanel.com/hc/en-us/articles/360024613412) > . Set Common User Identifier between CleverTap and Mixpanel [](https://docs.clevertap.com/docs/mixpanel-integration#set-common-user-identifier-between-clevertap-and-mixpanel) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A common identifier is used to match users between Mixpanel and CleverTap. For more information about matching user profiles, refer to [User Identity Management](https://docs.clevertap.com/docs/mixpanel-integration#user-identity-management) . The common user identifier is set up in the following two ways: ### Using SDK Methods [](https://docs.clevertap.com/docs/mixpanel-integration#using-sdk-methods) The value that is passed in `$CleverTap_user_id` should be the same as passed in `mixpanel.identify` (“123456”) AndroidiOS - SwiftiOS - Objective-CJavaScript // Sets user "$CleverTap_user_id" attribute to "123" mixpanel.getPeople().set("$CleverTap_user_id", "123"); // replace the value of $CleverTap_user_id with the User Identity value set in // CleverTap SDK for the profile and not the CleverTap ID. // Sets user "$CleverTap_user_id" attribute to "123" Mixpanel.mainInstance().people.set(properties: [ "$CleverTap_user_id":"123"]) // Sets user $CleverTap_user_id attribute to "123" [mixpanel.people set:@{@"$CleverTap_user_id": @"123"}]; // Sets user $CleverTap_user_id attribute to "123" mixpanel.people.set({ '$CleverTap_user_id': '123' }); ### Using Mixpanel APIs [](https://docs.clevertap.com/docs/mixpanel-integration#using-mixpanel-apis) The Value that is passed in `$CleverTap_user_id` should be the same as passed in `$distinct_id`. cURL curl --request POST \ --url 'https://api.mixpanel.com/engage#profile-set' \ --header 'Accept: text/plain' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data 'data={ "$token": "YOUR_PROJECT_TOKEN", "$distinct_id": "13793", "$ip": "123.123.123.123", "$set": { "$CleverTap_user_id": "123" } } // replace the value of $CleverTap_user_id with the User Identity value set in // CleverTap for the profile. Enable CleverTap Integration [](https://docs.clevertap.com/docs/mixpanel-integration#enable-clevertap-integration) ---------------------------------------------------------------------------------------------------------------------- To enable the integration: 1. Click the ![data](https://files.readme.io/1f692f3-Data_icon.png) icon in the top navigation bar and then select Integrations. ![1834](https://files.readme.io/c2d85a0-MIxpanel_dashboard.png "Navigating to Integrations page to enable the integration from Mixpanel Dashboard") Navigating to Integrations Page from Mixpanel Dashboard 2. From the _Integrations_ page, select _CleverTap_ and then click **Connect**. 3. Enter the following project details to authorize the connection. These details are obtained by navigating to the _Settings_ page of the CleverTap dashboard. * _Project ID_ * _Passcode_ * _Region_ To identify the region of your account, check the URL of your CleverTap account. Refer to the following table to identify the region for your account: | CleverTap Dashboard URL | Region | | --- | --- | | [https://eu1.dashboard.clevertap.com/login.html#/](https://eu1.dashboard.clevertap.com/login.html#/) | EU | | [https://in1.dashboard.clevertap.com/login.html#/](https://in1.dashboard.clevertap.com/login.html#/) | India | | [https://us1.dashboard.clevertap.com/login.html#/](https://us1.dashboard.clevertap.com/login.html#/) | US | | [https://sg1.dashboard.clevertap.com/login.html#/](https://sg1.dashboard.clevertap.com/login.html#/) | Singapore | | [https://aps3.dashboard.clevertap.com/login.html#/](https://aps3.dashboard.clevertap.com/login.html#/) | Indonesia | | [https://eu1.dashboard.clevertap.com/login.html#/](https://eu1.dashboard.clevertap.com/login.html#/) | Middle East (UAE) | ![CleverTap Project Details](https://files.readme.io/801cf4cdf2108f412cf2d44da64246c0c774f3d8532434a7f9154f9a07dba7f9-image.png) CleverTap Project Details After establishing the connection successfully, the CleverTap integration displays a “Connected” tag (see figure below). ![2978](https://files.readme.io/aad5be9-Connected.png "Connected tag denotes that the integration is successful") CleverTap and Mixpanel Integration Successful Import Cohorts [](https://docs.clevertap.com/docs/mixpanel-integration#import-cohorts) ========================================================================================== > 📘 > > ### > > Verify User Identification > > [](https://docs.clevertap.com/docs/mixpanel-integration#verify-user-identification) > > To ensure that the user profiles imported from Mixpanel are correctly identified in CleverTap, we recommend importing a smaller cohort before proceeding with larger cohorts. To import cohorts from Mixpanel: 1. Navigate to Cohorts from the Mixpanel dashboard by clicking **Cohorts** under _Users_ in the navigation bar. 2. Select the cohort that you want to export and then click on the ![ellipses](https://files.readme.io/770400c-Ellipses.png) icon to the right side of the cohort. 3. Select _Export to_ > _CleverTap_. ![4096](https://files.readme.io/0e0fb35-Export_to_clevertap.png "Select CleverTap from the Export to list for exporting cohorts") Exporting Cohorts to CleverTap 4. Select one of the following sync types and then click **Start Sync**: * **One-time Sync** In the case of one-time sync, Mixpanel sends a one-time list of users who are currently part of the cohort to CleverTap. The cohort name defined in the Mixpanel dashboard appears as the segment under the _Segment_ list page of the CleverTap dashboard. * **Dynamic Sync** In the case of dynamic sync, Mixpanel initiates sync between a cohort and CleverTap every **15 minutes**. The imported segment is updated every **15 minutes** to reflect the most recent list of users in the segment. The cohort name defined in the Mixpanel dashboard appears as the segment under the _Segment_ list page of the CleverTap dashboard. > 📘 > > ### > > Delay in Sync Initialization > > [](https://docs.clevertap.com/docs/mixpanel-integration#delay-in-sync-initialization) > > The sync initialization from Mixpanel may take **up to 15 minutes** to start exporting users after it is enabled from the Mixpanel dashboard. > 📘 > > ### > > Mixpanel Cohort Sync > > [](https://docs.clevertap.com/docs/mixpanel-integration#mixpanel-cohort-sync) > > Every dynamic cohort sync from Mixpanel includes only the users added or removed from the cohort after the last sync. User Identity Management [](https://docs.clevertap.com/docs/mixpanel-integration#user-identity-management) ============================================================================================================== Mixpanel exports only identified users to other partners, such as CleverTap. When receiving segments from Mixpanel, the user identity is matched in the following manner: * If the `$CleverTap_user_id` is present, it is matched with the identity value of all the users present in CleverTap. If a match is found, the profile becomes part of the segment. * If the $CleverTap\_user\_id\` is not present or does not match with a user profile in CleverTap, then a new user profile is created and becomes part of the segment. Refer to the following scenarios to understand how profiles are merged to become a part of the segment in Clevertap. * **Scenario 1:`$CleverTap_user_id` is not defined for user identified in the Mixpanel platform** If the`$CleverTap_user_id` for User A is not set for a Mixpanel profile (identified) and `mixpanel_distinct_id` = 123456, the _Partner Sync_ event is raised with Identity = 123456 in the CleverTap platform. * **Scenario 2:`$CleverTap_user_id` and `mixpanel_distinct_id` is defined for the user in the Mixpanel** If the `$CleverTap_user_id` for User A = 123456 and `mixpanel_distinct_id` = 986791, the Partner Sync event is raised with Identity = 123456 (`$CleverTap_user_id`) in the CleverTap platform. Additional User Properties [](https://docs.clevertap.com/docs/mixpanel-integration#additional-user-properties) ================================================================================================================== During Mixpanel cohort export, Mixpanel may also send the Email and Phone numbers of the users to CleverTap when available. These user profile properties are also updated in the Clevertap system user property (email and phone number). View Segment [](https://docs.clevertap.com/docs/mixpanel-integration#view-segment) ====================================================================================== The exported Mixpanel cohort is displayed under the _Segments_ list page in the CleverTap dashboard. The _Type_ column under the _Segments_ list page for the exported cohort is displayed as _Partner - Mixpanel_. ![2376](https://files.readme.io/23f72f0-Mixpanel_-_Partner_Segment.png "Viewing Mixpanel imported segments from Segments page") Viewing Imported Mixpanel Segment Click the segment to view the statistics for this segment, like any other segment on the CleverTap dashboard. ![2370](https://files.readme.io/5b390f9-Mixpanel_Segment_Stats.png "Viewing Statistics for Imported Mixpanel Segment") Viewing Statistics for Imported Mixpanel Segment Use Partner - Mixpanel Segment for Segmentation [](https://docs.clevertap.com/docs/mixpanel-integration#use-partner---mixpanel-segment-for-segmentation) ============================================================================================================================================================ You can also engage with the cohorts imported from Mixpanel by creating different campaigns and journeys. The process of creating campaigns for the Past Behavior Segment and Live Behavior Segment is the same except for where we need to select the segment. Select Segment for Past Behavior Campaigns/Journeys [](https://docs.clevertap.com/docs/mixpanel-integration#select-segment-for-past-behavior-campaignsjourneys) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- To select the segment: 1. From the dashboard, select **Campaigns**. 2. Click **\+ Campaign**. 3. From the Messaging Channels list, select the messaging channel. 4. Click **Who** and filter the target audience by selecting _With User Properties_ > _Segments_. 5. Select the imported user segment from the available list of segments. ![4316](https://files.readme.io/fe5ea72-Filtering_Mixpanel_Segments.png "Filtering imported Mixpanel segments under Who section of Campaigns") Filtering Imported Mixpanel Segments **Scenario: Customer wants to send an In-App Message campaign to the user from Bangalore city when they launch the mobile application.** In this case, the customer will create a cohort in the Mixpanel dashboard and initiate a one-time export to CleverTap for engagement activities. On the CleverTap dashboard, the customer will create an In-App campaign for this cohort of users. To create the campaign, the customer will navigate to In-App Campaign and select the segment under the **Who** segment section in the following way: 1. Select **App Launched** event under _As soon as the user does_ section. 2. Select _Filter on past behavior and user properties_ checkbox. 3. Select _With user properties_ > _Segments_ and then select the segment name from the list. Select Segment for Live Campaigns/Journeys [](https://docs.clevertap.com/docs/mixpanel-integration#select-segment-for-live-campaignsjourneys) ------------------------------------------------------------------------------------------------------------------------------------------------- To select the segment: 1. From the dashboard, select **Campaigns**. 2. Click **\+ Campaign**. 3. From the _Messaging Channels_ list, select the messaging channel. 4. Click **Who** and then select _Partner Sync_ event from the list. 5. Click _Filter_ and then select _Event Property Action_ = Added. > 📘 > > ### > > Partner Sync Event > > [](https://docs.clevertap.com/docs/mixpanel-integration#partner-sync-event) > > The _Partner Sync_ event is raised every time CleverTap receives a cohort sync request from Mixpanel. 6. Filter the target audience by selecting **Segments** under _With User Properties_. 7. Select the imported user segment from the available list of segments. ![2660](https://files.readme.io/2a81f5f-Filtering_Mixpanel_Live_Behavior_Segment.png "Filtering imported Mixpanel live behavior segments under Who section of Campaigns") Filtering Imported Mixpanel Live Behavior Segments **Scenario: Customer wants to send a recurring Email campaign to the users that added an item to the cart but did not purchase the item.** In this case, the customer will create a cohort in the Mixpanel dashboard and initiate a recurring export to CleverTap for engagement activities. On the CleverTap dashboard, the customer will create a recurring Email campaign for this cohort of users. To create the campaign, the customer will navigate to Email Campaign and create the campaign in the following way: 1. Select _Start here_ > _Live Behavior_. 2. Select **Partner Sync** event under _As soon as the user does_ section. 3. Click _Filter_ and then select Event Property _Action_ = _Added_. 4. Select _Filter on past behavior and user properties_ checkbox. 5. Select _Segments_ under _With user properties_ and then select the segment name from the list. Use Partner-Mixpanel Segment in Find People [](https://docs.clevertap.com/docs/mixpanel-integration#use-partner-mixpanel-segment-in-find-people) ---------------------------------------------------------------------------------------------------------------------------------------------------- To find the Partner-Mixpanel Segment: 1. Navigate to Segments > Find People from the CleverTap dashboard. 2. Select **Partner Sync** event from the _Users who did_ section. 3. Select _Segments_ under _Display common properties such as_ and select the segment name from the list. ![2724](https://files.readme.io/e04b5d1-Find_People_-_Mixpanel_Segment.png "Filter imported Mixpanel segments from Find People page") Filtering Imported Mixpanel Segments from Find People Page Partner Sync Event [](https://docs.clevertap.com/docs/mixpanel-integration#partner-sync-event-1) ==================================================================================================== The _Partner Sync_ event is raised for all the users who are part of the Mixpanel cohort. The following table provides information about the properties of the event: | Property Name | Description | Property Value/Example | | --- | --- | --- | | Partner Segment Name | Indicates the name of the cohort exported from Mixpanel | For example, Cart Drop off | | Action | Indicates if the user has been added or removed from the segment in CleverTap dashboard | * Added
* Removed | | Partner Segment ID | Indicates the Cohort ID in the Mixpanel dashboard | For example, 1638361188 | | CT Source | Indicates the source of event | Mixpanel | | Partner Name | Indicates the name of the partner | Mixpanel | > 📘 > > ### > > Campaign Exceptions for Partner Sync Event > > [](https://docs.clevertap.com/docs/mixpanel-integration#campaign-exceptions-for-partner-sync-event) > > The _Partner Sync_ event cannot be used as a trigger event to create the campaigns for the following channels as it is not an SDK event: > > * In-App Messages > * Web Popup > * Web Exit Intent > * App Inbox > * Native Display > 📘 > > ### > > Contribution towards Billing > > [](https://docs.clevertap.com/docs/mixpanel-integration#contribution-towards-billing) > > The Partner Sync event contributes to data points for MAU Billing Type and as an event for Container Billing Type. Troubleshooting [](https://docs.clevertap.com/docs/mixpanel-integration#troubleshooting) ============================================================================================ This section provides information about common errors/problems faced during Mixpanel Import. **Problem: The cohort does not display on the CleverTap dashboard even after successfully connecting the CleverTap account from the Mixpanel dashboard.** Resolution: Ensure that the following details are correctly entered when connecting the CleverTap account: * CT Account ID * Passcode * Region These details can be obtained by navigating to the _Settings_ > _Project_ page of the CleverTap dashboard (see figure below): ![CleverTap Project Details](https://files.readme.io/2001106022c72ca3871076bf4ea287392b96ac8c3f58d1825856a50b6d444bf5-image.png) CleverTap Project Details For more information about identifying the region of your account, refer to [Enable Integration](https://docs.clevertap.com/docs/mixpanel-integration#:~:text=Refer%20to%20the%20following%20table%20to%20identify%20the%20region%20for%20your%20account%3A) . Updated about 2 months ago * * * Ask AI --- # Twilio Introduction [](https://docs.clevertap.com/docs/twilio#introduction) ======================================================================== Twilio is a leading communication platform that empowers businesses to connect with their users through various channels, including SMS. This document highlights the integration of CleverTap and Twilio, empowering businesses to elevate their SMS communication using Twilio's infrastructure. Prerequisites for Integration [](https://docs.clevertap.com/docs/twilio#prerequisites-for-integration) ========================================================================================================== Before you begin with integration, ensure you have: * A Twilio account with SMS permissions * A CleverTap account with SMS setup enabled Twilio Setup [](https://docs.clevertap.com/docs/twilio#twilio-setup) ======================================================================== This process involves the following three significant steps: 1. [Find Twilio Details](doc:twilio#find-twilio-details) 2. [Add Twilio Details on CleverTap Dashboard](doc:twilio#add-twilio-details-on-clevertap-dashboard) 3. [Send a Test SMS](doc:twilio#send-a-test-sms) Find Twilio Details [](https://docs.clevertap.com/docs/twilio#find-twilio-details) -------------------------------------------------------------------------------------- CleverTap recommends keeping the Twilio account handy before configuring it on the CleverTap dashboard. To locate these details, navigate to the _Console_ page from the Twilio dashboard: * Account SID * Auth Token * My Twilio phone number ![Twilio Account Details](https://files.readme.io/b4ef390-Twilio_Account_Details.png) Twilio Account Details Add Twilio Details on CleverTap Dashboard [](https://docs.clevertap.com/docs/twilio#add-twilio-details-on-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------------------------------- To add Twilio details on the CleverTap dashboard: 1. From the CleverTap Dashboard, navigate to _Settings_ > _Channels_ > _SMS_. 2. Click **+Add Provider**. The _Add SMS provider_ page opens. ![Add SMS Provider](https://files.readme.io/dd87beb-SMS_Add_Provider.png) Add SMS Provider 3. Under _Setup_, enter the following details: | Field | Description | | --- | --- | | _Nickname_ | Uniquely identifies the provider. | | _Account SID_ | Enter your account identifier from the Twilio dashboard. This is a unique key to distinguish a specific Twilio parent account or subaccount. For more information, refer to [Twilio Account SID](https://support.twilio.com/hc/en-us/articles/14726256820123-What-is-a-Twilio-Account-SID-and-where-can-I-find-it-)
. | | _Auth token_ | Enter the Auth Token (Password) obtained from the Twilio dashboard. For more information, refer to [Auth Token](https://support.twilio.com/hc/en-us/articles/223136027-Auth-Tokens-and-How-to-Change-Them)
. | | _Callback URL_ | Enter the URL where delivery or error callbacks must be posted after sending the SMS. By default, CleverTap's callback URL will be pre-populated. If you wish to send the callbacks to a custom URL instead, you can also set it here. For more information on setting a custom callback URL, refer to [Custom callback URL](doc:twilio#custom-callback-url)
.

* \*Note\*\*: This feature is currently in Public Beta. | | _Restore_ | Click _Restore_ to reinstate CleverTap's callback URL. This will remove any custom callback URLs. | | _From Number_ | Enter phone numbers obtained under the Twilio console → _Manage-numbers_ → _Active number_ section. | | _Service SID (Copilot)_ | Enter Service SID details obtained from the Twilio dashboard. The Copilot Service SID, a Twilio identifier, streamlines message management. It automates number selection and formatting, enhancing engagement by optimizing message delivery based on location and carrier requirements. | | _Template ID_ | It is a unique template ID for each SMS template that you want to use. Selecting this option will make it mandatory to input the template ID when saving the provider. | | _Mark as default_ | Select _Mark this as default_ to make this SMS provider the default provider to send the SMS. | ![Add SMS provider as Twilio](https://files.readme.io/dd8bd05845c1a4e832ccc1ae84a5149131c03e448940d4bf5bfffbf6b7d771e5-image_44.png) Add SMS provider as Twilio 4. Click **Save** to save the details. Send a Test SMS [](https://docs.clevertap.com/docs/twilio#send-a-test-sms) ------------------------------------------------------------------------------ To ensure that the integration is successful, send a test SMS as follows: 1. Click the _Send Test SMS_ hyperlink before creating SMS campaigns and journeys. 2. Enter the following details: * _Country Code_ and _Mobile Number_ : Enter the country code and mobile number to which you want to send the message. * _Message_: This is a test message. ![Send a Test SMS](https://files.readme.io/02ee2f3-Send_a_Test_SMS_.png) Send a Test SMS > 🚧 > > ### > > Twilio Trial Account > > [](https://docs.clevertap.com/docs/twilio#twilio-trial-account) > > With a Twilio trial account, you can only send SMS campaigns only to numbers registered on the Twilio dashboard. > 📘 > > ### > > Encoding > > [](https://docs.clevertap.com/docs/twilio#encoding) > > The messages sent out from CleverTap are encoded in the UTF-8 charset. Twilio Callbacks [](https://docs.clevertap.com/docs/twilio#twilio-callbacks) ================================================================================ > 📘 > > ### > > Public Beta > > [](https://docs.clevertap.com/docs/twilio#public-beta) > > Currently, this feature is in Public Beta. The Twilio callback functionality enhances the tracking of SMS interactions originating from the CleverTap dashboard. Twilio's webhooks allow your Twilio phone number to receive incoming text messages. Within CleverTap's setup, the Callback URL is seamlessly generated and prefilled in the provider configuration under _Settings_ > _Channels_ > _SMS_ > _+Provider_. Users can replace this URL with their own, which must be configured on our end to receive callbacks. The callback mechanism between Twilio and CleverTap is designed to facilitate communication regarding SMS status updates. The Clevertap callback URL tracks for Delivered (SMS delivered to the user), Failed (SMS delivery error), and Replied (user response to SMS) events from Twilio. Delivery Callback URL [](https://docs.clevertap.com/docs/twilio#delivery-callback-url) ------------------------------------------------------------------------------------------ CleverTap manages delivery callbacks automatically when sending messages through Twilio. No manual setup is required—CleverTap will automatically receive delivery and status updates. 1. Navigate to _Settings > Channels > SMS_ in the CleverTap Dashboard and select **Twilio** from the provider list. 2. The Inbound Message Callback URL field is preconfigured and non-editable, ensuring that CleverTap receives delivery and status updates automatically. If needed, you can configure delivery callbacks manually in your Twilio account by setting up a webhook, but this is not required for CleverTap to receive status updates. ![Delivery Callback URL - Twilio](https://files.readme.io/bf4f66d762379716b70e22d4bfe3f328c7c67bd74c6dbb34cce0de74848aa13b-image_45.png) Delivery Callback URL - Twilio Incoming Message Callback URL [](https://docs.clevertap.com/docs/twilio#incoming-message-callback-url) ---------------------------------------------------------------------------------------------------------- To configure the Incoming Message Callback URL for Twilio SMS in CleverTap, follow these steps on the CleverTap Dashboard: 1. Navigate to _Settings > Channels > SMS >_ select Twilio provider from the provider list on the CleverTap Dashboard. 2. The Callback URL field will display a pre-filled, non-editable URL generated by CleverTap. This URL is essential for receiving incoming messages. Copy this URL. On the the Twilio dahsboard: 1. Navigate to _Messaging > Services_ and select the messaging service you intend to use. ![Messaging Services - Twilio](https://files.readme.io/9c73e69b6b110bcf1fa75303cdbb8290b64c995fa94fdfbaf6c11d6d695b949b-image_40.png) Messaging Services - Twilio 2. To set up incoming message callback URL, go to the **Integration** tab and under _Incoming Messages_, select _Send a webhook_ > _Request URL_ field enter the Callback URL provided by CleverTap into this field. ![Incoming Messages - Twilio](https://files.readme.io/e942ad9917d2035a0458ff4a6db55ce9ae44b3e75023624d292e758c1bafb5de-image_45.png) Incoming Messages - Twilio 3. Ensure the **HTTP Method** is set to **POST**. 4. Click **Save** to apply the changes. By completing these configurations, Twilio will forward incoming SMS messages and delivery statuses to CleverTap, enabling seamless message tracking and response handling within the CleverTap platform. Error Codes [](https://docs.clevertap.com/docs/twilio#error-codes) ---------------------------------------------------------------------- If there is an error in the SMS delivery, these error codes indicate the nature of an error encountered. Each error code corresponds to a specific error description. The error descriptions are displayed within the _Errors_ tab in the campaign stats section in case of delivery-related failures. The following table provides information about the acceptable error codes: | Error Codes | Error Description | Details | | --- | --- | --- | | 30001 | Queue overflow | Indicates that the rate limit was exceeded for sending messages, causing the queue to overflow. To resolve this issue, please wait a while before sending your message again. | | 30002 | Account suspended | Indicates that the account was temporarily suspended between sending the message and its delivery. Kindly get in touch with Twilio for further assistance. | | 30003 | Unreachable destination handset | Indicates that the recipient's mobile device is either turned off or presently not reachable. | | 30004 | Message blocked | Indicates that the recipient's number you are attempting to contact is blocked from receiving this message, possibly due to being blacklisted. | | 30005 | Unknown destination handset | Indicates that the attempt to reach the specified number encounters an unfamiliar recipient, which may suggest an invalid or non-existent contact. | | 30006 | Landline or unreachable carrier | Indicates that the destination number is unable to receive this message. This can arise when contacting a landline or encountering an unreachable carrier, particularly with shortcodes. | | 30007 | Carrier violation | Indicates that the carrier has detected the message content as objectionable, prompting the activation of content or spam filtering to safeguard their subscribers. For a deeper understanding of carrier filtering, consult supplementary resources. | | 30008 | Unknown error | This error does not conform to any predefined categories mentioned above. | | 30009 | Missing segment | Indicates that one or more segments associated with your multipart inbound message were not received. | | 30010 | Message price exceeds the max price | Indicates that the cost of the message surpasses the maximum price parameter set. | | 21614 | Invalid Mobile Number | Indicates that the user's number is not valid. | | 21610 | Unsubscribed recipient | Indicates that the individual you are attempting to message has chosen not to receive messages from your Twilio phone number, Channels sender, or Messaging Service. | ### Sample Payload [](https://docs.clevertap.com/docs/twilio#sample-payload) The following is a sample error payload: curl --location 'https://sk1.cb.wzrkt.com/sms/twilio?account=YOUR_ACCOUNT_ID&meta=000000000.1200000000.1691686363.20230810.0.wzrk_default.-4930006' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'ErrorCode=30005' \ --data-urlencode 'SmsSid=SMXXXXXXXXXXXXXXXXXXXXXXX' \ --data-urlencode 'SmsStatus=failed' \ --data-urlencode 'MessageStatus=failed' \ --data-urlencode 'To=000000000000' \ --data-urlencode 'MessagingServiceSid=MGXXXXXXXXXXXX' \ --data-urlencode 'MessageSid=SMXXXXXXXXXXXXXXX' \ --data-urlencode 'AccountSid=AAAAAAA000000' \ --data-urlencode 'From=0000000000' \ --data-urlencode 'ApiVersion=2010-04-0' Stats [](https://docs.clevertap.com/docs/twilio#stats) ========================================================== CleverTap displays comprehensive stats such as Errors, Delivered, Clicked, and CTRs upon receiving callbacks from Twilio. After setting up the provider on the CleverTap dashboard, you can view these statistics from the following pages on the CleverTap dashboard: * _Stats_ tab of the Campaigns. For more information, refer to [SMS Stats](doc:sms-stats) . ![Twilio Campaign Stats](https://files.readme.io/907e612-Twilio_Campaign_Stats.png) Twilio Campaign Stats > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/twilio#note) > > The stats for _Clicked_ event is available only if you use CleverTap's [Click Tracking](https://docs.clevertap.com/docs/twilio) > feature. * _Stats_ tab under _Provider_ setup. For more information, refer to the [Provider Stats](https://docs.clevertap.com/docs/sms-provider-operations#view-provider-stats) . ![Twilio Campaign Stats](https://files.readme.io/37199a0-SMS_Provider_Stats.png) Twilio Provider Stats You can also analyze the _Notification Delivered_ and _Notification Replied_ events by navigating to the _Analytics_ > _Events_ page, as shown in the following image: ![Analyze Notification Delivered](https://files.readme.io/eb5134e-image.png) Analyze Notification Delivered ![Analyze Incoming Text](https://files.readme.io/50e5a6f-2023-09-13_17-36-47_1.gif) Analyze Notification Replied Updated about 2 months ago * * * Ask AI --- # App Tracking Transparency (ATT) Overview [](https://docs.clevertap.com/docs/att#overview) ============================================================= At the Apple Worldwide Developers Conference (WWDC) 2020, Apple announced that all apps would require users to opt into tracking starting with iOS 14. This means that the _Identifier for Advertisers (IDFA)_ can only be maintained for users who explicitly opt-in. IDFA and CleverTap [](https://docs.clevertap.com/docs/att#idfa-and-clevertap) ================================================================================= CleverTap is committed to complying with the new Apple privacy policy. The CleverTap iOS SDK does not track IDFA. CleverTap's iOS SDK uses _Identifier for Vendors (IDFV)_ to track anonymous users. However, you can set anything you want as the device identifier. Codebase Changes [](https://docs.clevertap.com/docs/att#codebase-changes) ----------------------------------------------------------------------------- Starting with the CleverTap SDK version 3.9.0 ( released August 29, 2020), we have removed all code that can access the device's advertising identifier (IDFA). The CleverTap SDK versions for iOS lower than version 3.9.0 could access IDFA; refer to [tracking with the identifier for advertiser](https://developer.clevertap.com/docs/sdk-changes-for-gdpr-compliance#section-restrict-tracking-with-the-identifier-for-advertiser-idfa) . However, these versions still did not capture IDFA automatically unless the customer configured it. > 🚧 > > ### > > Important > > [](https://docs.clevertap.com/docs/att#important) > > We recommend upgrading to the latest version of the CleverTap SDK for all customers using versions 3.8.2 and lower. User Tracking [](https://docs.clevertap.com/docs/att#user-tracking) ----------------------------------------------------------------------- There is no impact on most of our customers because CleverTap iOS SDKs (version 3.9.0 and above) do not use IDFA to track anonymous user activity by default. Install Attribution Events [](https://docs.clevertap.com/docs/att#install-attribution-events) ------------------------------------------------------------------------------------------------- Some attribution vendors may likely stop sending individual attribution events. Check with your attribution vendor to learn more about the possible impact. Device Information [](https://docs.clevertap.com/docs/att#device-information) ================================================================================= CleverTap tracks the following information: * IDFV * App version and build number * Bundle ID * iOS OS version * Device model * Cellular provider * Network carrier * Country code and timezone * Wi-Fi and Bluetooth information * Device width, height, and name The [CleverTap iOS SDK](https://github.com/CleverTap/clevertap-ios-sdk) is open-source, and all the device information that is captured is available in our [iOS Github Repository](https://github.com/CleverTap/clevertap-ios-sdk/blob/4c4e6cc0f494419c8f36a926788fa00be07758b9/CleverTapSDK/CTDeviceInfo.m#L29) . App Store Connect - App Privacy [](https://docs.clevertap.com/docs/att#app-store-connect---app-privacy) =========================================================================================================== Starting from December 8, 2020, Apple requires App Privacy Details for all new apps and app updates. Refer to [app store connect](https://help.apple.com/app-store-connect/#/dev1b4647c5b) to understand Apple's privacy rules and app integrations with multiple third-party SDKs to make the correct decision for your app. For help with the privacy questionnaire, see [app store connect - app privacy](https://developer.clevertap.com/docs/app-store-connect-app-privacy) . App Rejection and Recommended Steps [](https://docs.clevertap.com/docs/att#app-rejection-and-recommended-steps) =================================================================================================================== There may be cases when your app may be rejected by _Apple Review_ with a note that your app is not compliant with the new privacy guidelines. Apple privacy guidelines hint at rejecting apps that specifically track users across apps and websites using IDFA. However, we recommend reaching Apple support to understand the exact reason for app rejection. Please create a support ticket from the CleverTap dashboard if you still need further information. We would be happy to help you with any other queries. FAQs [](https://docs.clevertap.com/docs/att#faqs) ===================================================== Q. What is IDFA? [](https://docs.clevertap.com/docs/att#q-what-is-idfa) --------------------------------------------------------------------------- The _Identifier for Advertisers (IDFA)_ is an alphanumeric string unique to each device you only use for advertising. Learn more about IDFA at [Apple Advertising Identifier](https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614151-advertisingidentifier) . Q. How can I continue to access IDFA? [](https://docs.clevertap.com/docs/att#q-how-can-i-continue-to-access-idfa) --------------------------------------------------------------------------------------------------------------------- If you choose to implement ATT, we recommend that you pass the IDFA value as an event property with a _Custom Event_ instead of setting it as a _Custom CleverTap ID_. Updated about 2 months ago * * * Ask AI --- # Use Case 2: Recover Abandoned Cart Using Journeys Scenario [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#scenario) ========================================================================================================== A potential user visits an online shoe app and adds a pair of sneakers to the cart. However, the consumer leaves the app without completing the transaction. Objective [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#objective) ============================================================================================================ Using CleverTap Journeys, send notifications to: * Encourage consumers to complete the transaction by re-engaging with them. * Recover potential lost revenue. * Provide a seamless and personalized shopping experience to the consumer. Create an Inaction Journey [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#create-an-inaction-journey) ============================================================================================================================================== Create an inaction journey that triggers when the user adds items to the cart but does not complete the purchase within two minutes. Using an inaction journey allows you to filter users for your Journey based on the actions they did not perform within a specified time. Use a combination of the user's preferred channels to send reminders at specific intervals. For example, Push, SMS, and Email messages. Customize these messages for a personalized touch. The goal is to encourage users to complete the transaction. In this example, you create the following Journey flow: _**Inaction Segment > Yes > Push Notification > 2 Hours Delay > SMS > 2 Hours Delay > Email**_ ![](https://files.readme.io/d3ee3f1-image.png) Let's understand how to create this sample Journey using the CleverTap dashboard. On the **CleverTap Dashboard**, go to **Journeys** and click **+Journey**. On the canvas, perform the following steps: * [Set up the journey](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#set-up-the-journey) * [Define goals](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#define-goals) * [Define entry segment](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#define-the-entry-segment) * [Define the journey path](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#define-the-journey-path) * [Personalize the journey](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#personalize-the-messages) Once you complete all the steps, publish your journey. Set Up the Journey [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#set-up-the-journey) ------------------------------------------------------------------------------------------------------------------------------ As this is an Inaction Journey, the user's entry into the journey is determined based on the event trigger. 1. To set up your Journey, click the **Setup** widget and provide the following details as shown in the following image: * **Journey name** * **Journey entry criteria** * **Journey entry timelines** * **DND & Timezone** * **Journey control group** * **Journey timeout duration** ![](https://files.readme.io/8f50305-image.png) 2. Click **Save & Close**. For more information, refer to the [Setting Up a Journey](https://docs.clevertap.com/docs/setup-journey) document. Define Goals [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#define-goals) ------------------------------------------------------------------------------------------------------------------ To define goals for the Journey: 1. Expand **GOALS**, drag and drop the **Action** segment in the **Goals** widget. 2. Click the **Goals** widget and set the following details: 1. Enter the name of the goal in the **Goal name** field. For example, _Completed the Purchase_. 2. Under **Who** > **Target Segment**, set the **Charged** event as the exit criteria. Click **Continue**. ![](https://files.readme.io/8e561e9-image.png) 3. Click **Save & Close**. For more information, refer to the [Define Goals](https://docs.clevertap.com/docs/define-goals) document. Define the Entry Segment [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#define-the-entry-segment) ------------------------------------------------------------------------------------------------------------------------------------------ The Entry Segment identifies users who will qualify to enter the journey. For example, users who added items to the cart but didn't complete the transaction within 2 minutes qualify to enter the Journey. 1. Drag and drop the **Inaction** segment node to the **Entry Segment** block as the entry criteria. 2. Click the **Action** segment node and enter the following details: 1. Enter the name of the segment in the **Segment name** field. For example, _Added to Cart but Did Not Do Charge_. 2. Under **Who** > **Target Segment**, set the following events and click **Continue**: 1. **As soon as user does** = _Added to Cart_ event 2. **And does not do** = _Charged_ event _within 2 minutes_ ![](https://files.readme.io/a0bdb4d-image.png) 3. Click **Save & Close**. For more information, refer to the [Define Entry Segment](https://docs.clevertap.com/docs/define-entry-segment) document. Define the Journey Path [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#define-the-journey-path) ---------------------------------------------------------------------------------------------------------------------------------------- Drag and drop engagement nodes from the left pane, connect them using the journey links (e.g., **Yes** or **Sent** path), and set the delay hour using the **Sleep Time** icon. Create the journey path in the following sequence: ![](https://files.readme.io/4319962-image.png) 1. **Push Notification with Free Shipping**: * Sent immediately if the user qualifies for the journey through the inaction segment. * Offers free shipping to the consumer. 2. **SMS with Discount**: * After 2 hours, if the user hasn't completed the purchase. * Provides a limited-time offer of a 10% discount. 3. **Final Email Reminder**: * Another 2-hour wait. * Sends a final reminder through email. Personalize the Messages [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#personalize-the-messages) ------------------------------------------------------------------------------------------------------------------------------------------ Once you have outlined the journey path, compose the Push, SMS, and Email messages. For more information about composing your message, refer to the [Push](https://docs.clevertap.com/docs/push) , [SMS](https://docs.clevertap.com/docs/sms) , and [Email](https://docs.clevertap.com/docs/email) documents. In this example, let's understand how to personalize a Push message. 1. Click the **Push** engagement node. 2. Under **What**, select **Message Type** and open the editor. 3. Enter the message in the **Title** and **Message** field. You can use the **Scribe** ![](https://files.readme.io/bf3a4d6-2023-03-17_11-28-28.jpg) icon to generate personalized copies. 4. Further, you can use the inline **@** personalization option or the more advanced options from the **Personalization** icon at the top of the page. In the following graphic, use **@Profile - Name** to includes the customer's name in the message. ![Personalize in Journeys](https://files.readme.io/b5be7ddb8487f43c90f4efd078e85e48f875f50b39f68672388965959306cc3d-Personalize_in_Journeys.png) Personalize in Journeys For more information on personalization, refer to the [Personalization in Journeys](doc:personalization-in-journeys) document. 5. Click **Done**. Similarly, you can compose SMS and Email messages. 6. Click **Publish** to make the journey live. Once you have published the Journey, you can monitor the Journey using Journey stats. For more information on Journey statistics, refer to the [Journey Performance](https://docs.clevertap.com/docs/viewing-statistics) document. Conclusion [](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys#conclusion) ============================================================================================================== Thus, CleverTap Journeys offers an effective solution for addressing cart abandonment. It allows you to re-engage users and guide them toward completing their purchases. As a result, it increases conversions and revenue generation. Updated about 2 months ago * * * Ask AI --- # Coupon Stats Overview [](https://docs.clevertap.com/docs/coupon-stats#overview) ====================================================================== The **Stats** tab provides a summary of the coupon performance, including redemptions, revenue impact, and user activity, over a selected time period. To access coupon stats, go to _Promotions_ > _Rewards_ > _Coupons_, click a coupon name to open its details page, and select the _Stats_ tab. ![View Coupon Stats](https://files.readme.io/610cbce06ffbf4c967d08bdb1a6a40473358fabd7b63fe0c8b4e4d1bda508383-image.png) View Coupon Stats The _Stats_ tab shows the following key metrics to help you assess coupon performance. Some metrics will appear only when applicable, based on the type of coupon. | Metric | Description | Applies To | | --- | --- | --- | | **Total Redemptions** | Total number of times this coupon was successfully redeemed within the selected date range. | All Coupons | | **Redeeming Users** | Total number of unique users who redeemed the coupon within the selected date range. | All Coupons | | **Redemption Rollbacks** | Number of redemptions that were reversed within the selected date range. | All Coupons | | **Discount Redeemed** | Total monetary value of discounts applied through this coupon over the selected date range. | All Coupons | | **Gross Merchandise Value** | Total order value where this coupon was applied. | All Coupons | | **Coupons Distributed** | Number of unique codes generated and distributed through Promo campaigns. | Single-code coupons distributed via user actions | | **Codes Distributed** | Number of times the coupon was distributed through Promo campaigns. | Bulk-code coupons distributed via user actions | | **Cashback Points Credited** | Total cashback points credited to the user's loyalty wallet from all coupon redemptions. | Coupons with reward type set to cashback | You can use the calendar widget in the top-right corner to filter coupon stats by a custom date range. ![Filter Stats with Calendar Widget](https://files.readme.io/dee1ad24bce2658f1a6d8322cda21570399c35d0d3b0538420aad5659cd0cada-image.png) Filter Stats by Custom Date Range Updated about 2 months ago * * * Ask AI --- # CleverTap Essentials Billing Overview [](https://docs.clevertap.com/docs/billing#overview) ================================================================= This document provides information about billing terminologies and calculations for CleverTap Essentials users. The billing is based on the Monthly Billable Users, derived from Monthly Active Users and the Data Points as explained in the following sections. > 📘 > > ### > > Annual Plan > > [](https://docs.clevertap.com/docs/billing#annual-plan) > > The **CleverTap Essentials** plan also offers an annual plan option. To check if you are eligible, navigate to _Organization_ > _My Plan_ section. Billing Terminologies [](https://docs.clevertap.com/docs/billing#billing-terminologies) =========================================================================================== Monthly Active User (MAU) [](https://docs.clevertap.com/docs/billing#monthly-active-user-mau) ------------------------------------------------------------------------------------------------- A Monthly Active User (MAU) is an end-user who has recorded one or more events in a calendar month. This includes any unique user action across web, mobile, engagement channels, or through data imported from third-party services or offline uploads. When tracking mobile apps and websites, a user active on both devices with the same identity token will be counted as one MAU. An organization is charged based on the total number of MAUs across all projects, which means that if a user performs a qualifying event in multiple projects, they are counted once per project. ### System Event Included in MAU Calculation [](https://docs.clevertap.com/docs/billing#system-event-included-in-mau-calculation) The following is the list of system events included in the MAU calculations for the CleverTap Essentials plan: 1. App Launched 2. UTM Visited 3. Web Session Started The _Partner Sync_ system event and its properties are included in the Data Point calculation. CleverTap has many more system events, which are not billable and hence excluded in the Data Point calculation. To know about those events, refer to [System Events](https://docs.clevertap.com/docs/events#system-events) . > 📘 > > ### > > Manage UTM Visited and Web Session Started > > [](https://docs.clevertap.com/docs/billing#manage-utm-visited-and-web-session-started) > > You can disable UTM Visited and Web Session Started. For more information, refer to [Configure System Events](doc:events#system-events) > . Data Point [](https://docs.clevertap.com/docs/billing#data-point) --------------------------------------------------------------------- An event, event property, or profile property update is a data point, a usage measure associated with MAU. A total of 10,000 data points are allowed per MAU. > 📘 > > ### > > Profile Property Update > > [](https://docs.clevertap.com/docs/billing#profile-property-update) > > If the user updates more than one profile property at one time, it is counted as one data point. Monthly Billable Users (MBUs) [](https://docs.clevertap.com/docs/billing#monthly-billable-users-mbus) --------------------------------------------------------------------------------------------------------- Monthly Billable Users reflect the highest value amongst Selected MAU Tier or Actual MAU Usage. The Monthly Billable Users is calculated as follows: * **Actual MAU**: {\[All App, Web, and API users (including anonymous users of App and API)\] + (1/3 \* Web anonymous users)}. * **Selected MAU Tier**: The number of MAUs selected from the available MAU tiers. To check your MBUs, the account administrators need to navigate to _Organization_ > _Billing_ > _My Plan_ from your dashboard. It displays the estimated MBUs for the current month for all your organization's projects. Data Upload Charges [](https://docs.clevertap.com/docs/billing#data-upload-charges) --------------------------------------------------------------------------------------- If data is uploaded to amend a user profile or user activity history, the number of data points uploaded counts toward the total number of data points allocated for the month. The number of data points allocated for each calendar month equals the MAU tier in your pricing agreement times 10,000. Data Retention Policy [](https://docs.clevertap.com/docs/billing#data-retention-policy) ------------------------------------------------------------------------------------------- The default data retention policy for the CleverTap Essential plan is three years, which cannot be changed. Overages [](https://docs.clevertap.com/docs/billing#overages) ----------------------------------------------------------------- Overages are over usage charges which will be added as a billable amount if you exceed your plan limits. You can always upgrade to a plan of higher MAU to avoid paying overages. For more details on overage calculation, refer to this [section](doc:payment-and-overages) . To access details on commonly encountered problems, refer to the [FAQ](doc:clevertap-for-startups-billing-faqs) section. Updated about 2 months ago * * * Ask AI --- # Create Loyalty Wallet Overview [](https://docs.clevertap.com/docs/create-loyalty-wallet#overview) =============================================================================== The loyalty wallet keeps track of all the reward points that can be used for discounts, offers, and in-app purchases. This document provides an overview of wallet creation and explains each configurable field with examples to help you set up your wallet accurately. Create a Wallet [](https://docs.clevertap.com/docs/create-loyalty-wallet#create-a-wallet) ============================================================================================= To create a wallet: 1. Go to _Promotions_ from the CleverTap dashboard. 2. Click **Rewards** and select **Loyalty Wallets** from the list. 3. Click the **Create Loyalty Wallet** button and configure the following wallet settings: 1. **Loyalty wallet name**: Enter a unique name of the loyalty wallet. Once created, the wallet name cannot be changed. For example, _Festival Rewards_. 2. **Loyalty points name**: Choose the applicable currency or points system of the loyalty points associated with the wallet. For example, _Supercoins_. 3. **Points Expiry:** Define expiration rules if applicable. The points expiry rule can only be set once and cannot be changed later. 1. **Never**: Points will never expire. 2. **After**: Points expire after a specific duration. You can specify the number of days after which points must expire. 4. **Rounding Rules**: Determine how point values are rounded when calculated. You can calculate the point values up to three decimal places. The options include 0, 1, 2, or 3 and have the following rounding types: 1. **Round up**: Rounds the points up to the nearest specified decimal. For example, if the calculation result is 12.34 and rounding is set to 1 decimal place with Round Up, the points credited will be 12.4. 2. **Round down**: Rounds the points down to the nearest specified decimal. For example, if the calculation result is 12.78 and rounding is set to 1 decimal place with Round Down, the points credited will be 12.7. 4. Click **Create**. ![Set Up a Wallet](https://files.readme.io/969df6fcfe723fc072a7dbcb31c891336a60ae81a59db07e02d4c7d52029ffca-Create_Loyalty_Wallet.png) Set Up a Wallet Updated about 2 months ago * * * Ask AI --- # OpenWeather Overview [](https://docs.clevertap.com/docs/open-weather#overview) ====================================================================== [OpenWeather](https://openweathermap.org/) provides fast and elegant access to weather forecasts, nowcasts, and historical data globally. This enables businesses to integrate with [CleverTap](doc:linked-content) for targeted campaigns. CleverTap and OpenWeather integration allows you to fetch the user's location and weather updates in real time and send personalized campaigns to your users. For instance, retail companies can send localized notifications recommending weather-appropriate products such as umbrellas during rainy seasons. This document is a comprehensive guide for integrating OpenWeather with CleverTap. Prerequisites [](https://docs.clevertap.com/docs/open-weather#prerequisites) ================================================================================ You must have the following for this integration: * An OpenWeather account * API key for OpenWeather. To get the API, contact your OpenWeather account manager. * A CleverTap account > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/open-weather#note) > > Ensure that you are tracking user coordinates (latitude and longitude) as user attributes on CleverTap. Integrate CleverTap with OpenWeather [](https://docs.clevertap.com/docs/open-weather#integrate-clevertap-with-openweather) ============================================================================================================================== This process involves the following three major steps: 1. [Get the API key from OpenWeather](doc:open-weather#get-api-key-from-openweather) . 2. [Set Up CleverTap dashboard](doc:open-weather#set-up-clevertap-dashboard) . Get API Key from OpenWeather [](https://docs.clevertap.com/docs/open-weather#get-api-key-from-openweather) -------------------------------------------------------------------------------------------------------------- You need to generate an API key from the OpenWeather dashboard to integrate with CleverTap: 1. Log in to your OpenWeather dashboard. 2. Select _My API Keys_ from the dropdown list from your account. You can also select the _API keys_ tab directly. 3. Enter your _API key name_ under the _Create Key_ field and click **Generate**. OpenWeather also creates a default _API key_ when you log in to the dashboard for the first time. ![Generate OpenWeather API Key](https://files.readme.io/bce6db3-generate_KEY_OPENWEATHER.png) Generate OpenWeather API Key Set Up CleverTap Dashboard [](https://docs.clevertap.com/docs/open-weather#set-up-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------- To set up CleverTap dashboard: 1. Go to _Settings_ > _Setup_ > _Linked Content_ and click **\+ Linked Content**. ![Linked Content Setup](https://files.readme.io/1437fb1-OpenWeather_Clevertap_Linked_Content.png) Set Up Linked Content 2. Enter the following details: | Parameters | Description | | --- | --- | | API Name | Enter the name to uniquely identify your API. | | Endpoint URL | Select **GET** from the dropdown list and use the Open Weather API endpoint URL that most suits your purpose. For our use case, we want to fetch current weather data for the user's location. Enter the following endpoint URL: [https://api.openweathermap.org/data/2.5/weather?lat={{latitude}}&lon={{longitude}}&appid=f2b6d7ac90dcc08639e4118621673bdb&exclude={{part}}](https://api.openweathermap.org/data/2.5/weather?lat=%7B%7Blatitude%7D%7D&lon=%7B%7Blongitude%7D%7D&appid=f2b6d7ac90dcc08639e4118621673bdb&exclude=%7B%7Bpart%7D%7D)

For more information about OpenWeather's available APIs, refer to [Weather API](https://openweathermap.org/api)
.

* \*Note\*\*: You must update the API URL based on your OpenWeather subscription. | | Parameters | Declare the parameters to replace them with the personalized value while running the campaigns/journey. For our use case, we are declaring the following parameters:

* latitude
* longitude
* part
Mark _latitude_ and _longitude_ as mandatory fields. | ![Set Up Linked Content](https://files.readme.io/c95d18a-set_up_linked_content_openweather.png) Set Up Linked Content 3. (Optional) Click **Test Linked Content** to ensure that the Linked Content is set up correctly. 4. Fill in the required mapping according to your requirements, or click **Auto-fill Objects with Responses**. Once you do this, click **Test & Save changes** to proceed with the campaign creation. ![Auto-Fill Objects with Response](https://files.readme.io/19f08d0-auto-fill_objects_with_response.png) Auto-Fill Objects with Response ![Test & Save Changes](https://files.readme.io/5f63cb3-OpenWeather_Test__Save_Changes.png) Test & Save Changes Here is an example of the response: JSON { "coord": { "lon": -94.04, "lat": 33.33 }, "weather": [\ {\ "id": 803,\ "main": "Clouds",\ "description": "broken clouds",\ "icon": "04d"\ }\ ], "base": "stations", "main": { "temp": 305.36, "feels_like": 311.36, "temp_min": 303.15, "temp_max": 305.36, "pressure": 1014, "humidity": 62, "sea_level": 1014, "grnd_level": 1003 }, "visibility": 10000, "wind": { "speed": 1.54, "deg": 340 }, "clouds": { "all": 75 }, "dt": 1720188172, "sys": { "type": 1, "id": 6094, "country": "US", "sunrise": 1720177934, "sunset": 1720229345 }, "timezone": -18000, "id": 4736096, "name": "Texarkana", "cod": 200 } Create a Campaign on CleverTap [](https://docs.clevertap.com/docs/open-weather#create-a-campaign-on-clevertap) ================================================================================================================== Once you set up the Linked Content on CleverTap, you can now run personalized campaigns from the CleverTap dashboard. OpenWeather will be available in Push, SMS, Email, WhatsApp, Web Push, and Webhook campaigns. In our case, the retail company wants to send a personalized email campaign recommending weather-appropriate products such as umbrellas during rainy seasons and so on. To do so: 1. Go to _Campaigns_ and click **\+ Campaigns**. 2. Select _Emails_ from the list of messaging channels. 3. Click **Go To Editor** from the What section and select _Email with Rich Media_ template to create an email campaign. 4. Click the ![](https://files.readme.io/c486f61-Personalization_icon.png) icon and select the _Linked Content_ tab. 5. Slect the _API_ you configured while setting up the Linked Content on the CleverTap dashboard. 6. Map the API Parameters to attributes in the users' profile and click **Apply**. ![Personalization Set up](https://files.readme.io/9d4a3c1-image_7.png) Personalization Set up 7. Create the campaign message using the Linked Content as shown in the following image: ![Map Linked Content to create an Email](https://files.readme.io/22151a3-image_6.png) Create a Personalized Email Campaign Using Linked Content JSON {% if Linked.OpenWeather-Demo.weather[0].main == "Clouds"%} Hey! it looks cloudy, are you ready for the monsoons? Avail 50% off on all monsoon gear. {% else %} Avail early bird discounts on all monsoon gear. {% endif %} 8. Define all the campaign sections and click **Publish**. You can also send a test campaign before publishing it to a broader audience. Updated about 2 months ago * * * Ask AI --- # View Coupons Overview [](https://docs.clevertap.com/docs/view-coupons#overview) ====================================================================== The Coupons list page provides a centralized view to filter, search, and manage all coupons created in your account. You can view the list of coupons by navigating to _Promotions_ > _Rewards_ > _Coupons_ from the CleverTap dashboard. ![View Available Coupons](https://files.readme.io/10d8ebbe18c50adc7cf55d1d5583d3742edd603300069de39fe8318135a0f2c5-image.png) View Available Coupons This page is divided into the following two tabs based on the coupon lifecycle status: * **Available**: Displays the coupons that are active, scheduled, paused, or in draft state. These coupons are still active, editable, or scheduled for future use. * **Archived**: Displays the coupons that have expired or been manually archived. These coupons are no longer active and are view-only. You can use this tab to review historical coupon data and past promotions. Each tab displays key details for every coupon in a tabular format, including status, type, usage, linked campaigns, and more. | Column Name | Description | | --- | --- | | **Coupon Code/Name** | Displays either the coupon code or the coupon name along with the coupon ID, based on the coupon type.

* In the case of single code coupons, it indicates the coupon code and ID.
* In the case of bulk codes, it indicates the coupon name and ID.

Clicking the coupon opens the coupon details page. | | **Status** | Shows the current status of the coupon, such as

_Active_

,

_Paused_

,

_Draft_

,

_Scheduled_

,

_Ended_

, or

_Archived_

. For more information, refer to

[Status and Actions](doc:coupon-operations#status-and-actions)

. | | **Updated On** | Displays the date and time when the coupon was last updated. | | **Coupon Type** | Indicates how the coupon is distributed and redeemed based on the format and triggering method. The following are the available options:

* Single code for all users
* Single code based on user actions
* Downloadable bulk unique codes
* Bulk unique codes based on user actions

For more information, refer to [Select Coupon Type](doc:create-coupons#select-coupon-type)
. | | **Limit Per Code** | Displays the maximum number of times the coupon code can be redeemed. It applies to single code coupons only, and the value can be set to either unlimited or a fixed number of redemptions per code. | | **Redemptions** | Shows the number of times the coupon has been redeemed. | Updated about 2 months ago * * * Ask AI --- # Wallet Overview Overview [](https://docs.clevertap.com/docs/wallet-overview#overview) ========================================================================= The _Overview_ tab provides a comprehensive summary of a wallet’s points distribution and configuration details. It allows you to track issued, redeemed, expired, and removed points and make necessary adjustments, such as adjusting the points for a specific user, filtering the points balance for a duration, and editing a loyalty wallet or points names. To view the _Overview_ of a wallet: 1. Go to _Promotions_ from the CleverTap dashboard. 2. Click **Rewards** and select **Loyalty Wallets** from the dropdown menu. 3. Click the desired wallet and view the following details: ![](https://files.readme.io/4702391dd54c7c81f6de0c46ca93e2bc5189b7541327ed9f2ef7012ab29d5b27-Wallet_Overview.png) Wallet Overview Summary [](https://docs.clevertap.com/docs/wallet-overview#summary) ----------------------------------------------------------------------- The _Summary_ section provides the current status of all the loyalty wallet points in the following way: ### Key Metrics [](https://docs.clevertap.com/docs/wallet-overview#key-metrics) Track the real-time status of the loyalty points available for users and those scheduled for future credit with the following key metrics: * **Active Points:** Total points currently available for use. * **Promised Points:** Points earned by customers but are yet to be credited to the active points bucket based on the points activation date. ### Points Breakdown [](https://docs.clevertap.com/docs/wallet-overview#points-breakdown) Analyze the distribution of loyalty points, including issued, expired, redeemed, and manually adjusted points in the following ways: * **Issued Points:** Total points awarded to users within the selected date range through various sources, such as: * **Cashback Coupon**: Points credited when a cashback coupon is redeemed. For example, a user redeems a coupon called _SAVE50_ and earns 50 points. * **Promo Campaigns**: Points credited via marketing promotions. For example, a festival sale campaign credits 100 points. * **Wallet Credit API**: Points credited via the Credit Wallet API. For example, an automated credit of 30 points triggered by a system workflow or a manual credit of 50 points by an admin using the API for customer support resolution. * **Manual Credit**: Points credited manually via the CleverTap dashboard. For example, an Admin credits 20 points to an irate customer through the CleverTap dashboard. * **Expired Points:** Total points that were unused within their validity period. * **Redeemed Points:** Total points debited via the Debit API. * **Removed Points:** Points deducted or revoked due to manual adjustments made through the CleverTap Wallet dashboard. > 📘 > > ### > > Ledger Balance Calculation > > [](https://docs.clevertap.com/docs/wallet-overview#ledger-balance-calculation) > > The ledger balance is calculated with the following formula: > **Active Points** = Issued Points – (Redeemed Points + Removed Points + Expired Points) > > Where, > **Issued Points** = Points Rewarded via Campaign + Points Rewarded via API + Points Rewarded Manually via Dashboard Setup Details Section [](https://docs.clevertap.com/docs/wallet-overview#setup-details-section) --------------------------------------------------------------------------------------------------- This section provides the following information about the wallet configuration: * **Created On:** Date when the loyalty wallet was created. * **Created By:** Email of the user who created the wallet. * **Loyalty Wallet Name:** The name of the wallet. * **Loyalty Points Name:** The name of the points used in the wallet. * **Wallet ID:** Unique identifier for the loyalty wallet. * **Rounding Rules:** Displays the rounding rule applied to points. * **Points Expiry:** Indicates whether points expire and the applicable expiry policy. ![](https://files.readme.io/1b39c2a0341e367aa00857137f05467ee93a0c95fc12516b0f1bc5b36ca5f746-Setup_Details.png) Setup Details ### Date Filter [](https://docs.clevertap.com/docs/wallet-overview#date-filter) You can adjust the date range using the date picker to analyze the distribution of points within a specific period. ![](https://files.readme.io/c4b6551f0a2665e0e3aec60ca9c181641b3cd105b12ac9c902fe174a2d876753-Calendar_Widget.png) Calendar Widget ### Edit [](https://docs.clevertap.com/docs/wallet-overview#edit) Clicking _Edit_ allows you to modify wallet names and points. ![](https://files.readme.io/7cfe24d02f41493079a13b689e05654d42fcb03c5de41e2802798260c77cec4f-Edit_Loyalty_Wallet.gif) Edit Loyalty Wallet and Points Name Transactions [](https://docs.clevertap.com/docs/wallet-overview#transactions) ================================================================================= The _Transactions_ page allows you to view and filter loyalty wallet transactions based on different parameters, such as transaction type, source, and points range. To view the list of all recorded transactions: 1. Go to _Loyalty Wallets_ and select the desired wallet. 2. Click the **Transactions** tab. The following parameters of the transactions appear: ![](https://files.readme.io/7ca194070e2bb934aca1e64c92678dfb76bb9734aa5697dc71acdff97d18f0fb-image.png) View Wallet Transactions > 📘 > > ### > > Transaction Display Limit > > [](https://docs.clevertap.com/docs/wallet-overview#transaction-display-limit) > > The dashboard displays only the latest 500 transactions. However, if you are looking for a specific transaction beyond this limit, you can use the [Search](doc:wallet-operations#search) > feature. Transactions Table [](https://docs.clevertap.com/docs/wallet-overview#transactions-table) --------------------------------------------------------------------------------------------- | Field | Description | | --- | --- | | Identity | A unique identifier representing the user associated with the transaction. The identity value is clickable and redirects to the user details page in a new window, allowing quick access to user-specific information. | | Timestamp | The date and time when the transaction was recorded. | | Source | The origin of the transaction. The following are valid sources:

* API
* Promo Campaigns
* Manual
* Cashback Coupon
* System

For more information, refer to [Source](doc:wallet-operations#source)
. | | Txn ID | A unique transaction identifier for the wallet transaction. | | Description | A brief note about the transaction. The transaction descriptions are determined based on the following transaction types:

* **API Transactions (Credit/Debit)**: The description is determined by user input in the API payload.
* **Manual Adjustments (Dashboard)**: The description is set by the user while adjusting points.
* **System-Generated Transactions**: The following standard descriptions are automatically applied based on the transaction types:

* _Points earned from campaign_: Applied to credit transactions originating from promotional campaigns.
* _Points earned for redeeming {Coupon Code} coupon_: Applied when users redeem cashback coupons.
* _Expired points_: Applied when loyalty points have expired. | | Txn Type | The transaction type, such as Credit, Debit, Scheduled, or Expired. | | Points | The value credited, debited, or expired in the transaction. | Updated 1 day ago * * * Ask AI --- # Payments and Overages Payment Methods [](https://docs.clevertap.com/docs/payment-and-overages#payment-methods) ============================================================================================ Under the CleverTap Essential plan, CleverTap accepts all major credit or debit cards (for example, Visa, Mastercard, Discover, and JCB). We also allow eNACH (eMandate via Net Banking) for Indian customers paying in INR. For more information about how it works, refer to the [eMandate via NetBanking](https://docs.clevertap.com/docs/emandate-via-netbanking?utm_source=C4S&utm_medium=doc&utm_id=KB) . Managing Payment Method [](https://docs.clevertap.com/docs/payment-and-overages#managing-payment-method) ------------------------------------------------------------------------------------------------------------ CleverTap provides the flexibility of having more than one payment method. One of the payment methods is always marked as Default. You can update any one of the saved methods as the default payment method. In this case, all future transactions will be made through the default method. Update Billing Information and Card Details [](https://docs.clevertap.com/docs/payment-and-overages#update-billing-information-and-card-details) ---------------------------------------------------------------------------------------------------------------------------------------------------- If you are an organization member with billing permissions (Admins), you can update the billing and payment information by clicking **Organization** on the left navigation menu of the dashboard. Then, click **Payment Methods** to update the required details. > 📘 > > ### > > Billing Currency > > [](https://docs.clevertap.com/docs/payment-and-overages#billing-currency) > > You cannot change the currency for billing. Payment Failure [](https://docs.clevertap.com/docs/payment-and-overages#payment-failure) -------------------------------------------------------------------------------------------- In case your payment fails, we notify you right away. You must complete your payment within a grace period of 10 days. You can choose to retry with the existing default payment method or use a new payment method. We automatically make the payment method you choose to pay with a default method post successful transaction. During the grace period, the incoming data, data exports, and dashboard access are not affected. If the payment details are not updated within the grace period, your account access is locked. If you do not clear all outstanding payments within 14 days of the account lock, your account is canceled. After the account is canceled, you can no longer retrieve your account, and all the data is deleted permanently. > 📘 > > ### > > New RBI eMandate Regulations > > [](https://docs.clevertap.com/docs/payment-and-overages#new-rbi-emandate-regulations) > > For Indian Customers, with new Reserve Bank of India (RBI) e-mandate regulations coming into effect, there are high chances your payment may fail. This is because the processing of e-mandate on cards for recurring transactions requires an Additional Factor of Authentication (AFA). For more information, refer to [Compliance with RBI eMandate Regulations](https://docs.clevertap.com/docs/compliance-with-rbi-emandate-regulations?utm_source=C4S&utm_medium=doc&utm_id=KB) > . Exceeding Plan Limits [](https://docs.clevertap.com/docs/payment-and-overages#exceeding-plan-limits) -------------------------------------------------------------------------------------------------------- If you exceed your plan limits, you can upgrade to a higher MAU tier before the end of the billing period to avoid overage charges. Overage Calculation [](https://docs.clevertap.com/docs/payment-and-overages#overage-calculation) ---------------------------------------------------------------------------------------------------- When your MAU usage exceeds the plan's MAU limit, you will be charged extra for each additional MAU. For the Essential Plan, the following rates apply for overages: * **Base Price**: $1.25 per 100 MAUs in USD and ₹100 in INR. * **Overage Rate**: Overage charges are calculated at 1.2 times the base price for each additional 100 MAU. * **Add-On Surcharge**: An additional 10% surcharge applies to the calculated overage for each add-on. The following example helps us understand the calculation of overage charges for a USD subscription with an MAU tier of 20,000, including add-ons: | MAU Limit | Monthly Billable Users | Base Price | Add-on Price | Overage for MAU | Overage for Add-on | Billable Amount | | --- | --- | --- | --- | --- | --- | --- | | Up to 20,000 | <20,000 without add-ons | $250 | $0 | $0 | $0 | $250 | | Up to 20,000 | <20,000 with add-ons | $250 | $25 | $0 | $0 | $275 | | Up to 20,000 | 22,000 (2,000 MAUs overage) without add-ons | $250 | $0 | Overage \[(2,000/100)x$1.25x1.2\] = $30 | $0 | $280 | | Up to 20,000 | 22,000 (2,000 MAUs overage) with add-ons | $250 | $25 | Overage \[(2,000/100)x$1.25x1.2\] = $30 | Overage
$30x10/100 = $3 | $308 | \*Excluding applicable taxes. ### Monitor and Manage Overages [](https://docs.clevertap.com/docs/payment-and-overages#monitor-and-manage-overages) You can monitor your plan’s estimated MAU usage and overages by navigating to _Organization_ > _My Plan >_ _Usage Summary_. Overage charges are calculated pro-rata from the start of the billing period for the month in which the overage occurred. To avoid overage charges, consider upgrading your subscription to a higher MAU tier. > 📘 > > ### > > MBU Usage over 300% > > [](https://docs.clevertap.com/docs/payment-and-overages#mbu-usage-over-300) > > You may lose access to your account for any MBU usage over 300%. There are no overage charges levied during the trial period. > 📘 > > ### > > Softlock for Annual Payments > > [](https://docs.clevertap.com/docs/payment-and-overages#softlock-for-annual-payments) > > The softlock for annual payment happens at 120%. If your **Annual Billable Users** exceed 120% of the annual data point limit, then your account gets softlocked. Alert for Overages [](https://docs.clevertap.com/docs/payment-and-overages#alert-for-overages) -------------------------------------------------------------------------------------------------- All account admins will receive alert emails when their account exceeds their MAU tier limit cap by the following percentages: 80%, 100%, 125%, 150%, 200%, 250%, 300%, and 600%. Account admins are also notified to upgrade to a higher MAU tier through a popup if the account exceeds the MAU tier limit. Account Lock and Suspension [](https://docs.clevertap.com/docs/payment-and-overages#account-lock-and-suspension) -------------------------------------------------------------------------------------------------------------------- ### Account Lock Due to Overages [](https://docs.clevertap.com/docs/payment-and-overages#account-lock-due-to-overages) If your MAU overages exceed 300%, your account may be locked. During this time, you will no longer be able to access the dashboard. To restore account access and avoid overages, you must upgrade your subscription to a higher MAU tier limit. Data ingestion and any scheduled or recurring campaigns will not be affected during this time. All data exports via API, SFTP, and third-party partners will be disabled. If you do not upgrade by the next billing date (the 1st of each month), your account access will be locked, and overage charges will be applicable. Invoices, GST, and Sales Tax [](https://docs.clevertap.com/docs/payment-and-overages#invoices-gst-and-sales-tax) ==================================================================================================================== View & Manage Invoices [](https://docs.clevertap.com/docs/payment-and-overages#view--manage-invoices) --------------------------------------------------------------------------------------------------------- Whenever you purchase a CleverTap Essentials subscription, you can find your invoices under the Billing tab of your admin section. The invoice is sent on the first of every month only to the email added under the billing details section. For more details on changing the invoice recipient, refer to the [Change Invoice Recipients and Billing Details](https://docs.clevertap.com/docs/billing#section-change-invoice-recipients-and-billing-details?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) section. To find your invoices: 1. Click **Organization** on the left navigation menu of the dashboard. 2. Click **Billing details** > **Invoices**. From there, you will be able to view all invoices. 3. To view the entire invoice, click on an invoice number. > 📘 > > ### > > Invoice Access > > [](https://docs.clevertap.com/docs/payment-and-overages#invoice-access) > > Only account admins can access and update invoices. Tax Invoicing [](https://docs.clevertap.com/docs/payment-and-overages#tax-invoicing) ======================================================================================== * **VAT (Value-Added Tax)**: A field is provided to USD customers for entering tax numbers, which is shown in the invoice for USD accounts. * **GST (Goods and Services Tax)**: CleverTap supports GST invoicing for customers in India. GST (Goods and Services Tax) is a mandatory levy for all Indian Rupee (INR) invoices as per regulatory requirements in India. Businesses registered in India can input their GSTIN (GST Identification Number) during the signup process. * **TDS (Tax Deducted at Source)**: Compliance with regards to the TDS or withholding taxes is required to be taken by the customer. To comply with the requirement, you must gross up the amount paid to CleverTap and accordingly calculate the TDS on the same. For example, If INR 14000 + GST is the monthly invoice and you need to withhold 2% TDS, then 2% of Rs.14000 or INR 280 becomes the withholding tax, and you have to expense it out at your end. Please check the terms and conditions mentioned on the online page related to TDS or withholding taxes. Please refer to [section 6.2](https://clevertap.com/terms-service?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) of the terms and conditions. Change Invoice Recipients and Billing Details [](https://docs.clevertap.com/docs/payment-and-overages#change-invoice-recipients-and-billing-details) ======================================================================================================================================================== To change the invoice recipient or update invoice details: 1. Go to _Organization_ > _Billing_ > _Billing details_ > on the CleverTap dashboard. 2. Make the required changes and click **Save** to apply your changes. Any changes made to these settings will be reflected on the next invoice. For more information on the billing details page, refer to [Add Billing Details](doc:project-setup#add-billing-details) . For additional information on commonly encountered queries, refer to the [FAQs](doc:clevertap-for-startups-billing-faqs) . Updated about 2 months ago * * * Ask AI --- # Profile Exports Overview [](https://docs.clevertap.com/docs/profile-exports#overview) ========================================================================= Profile Exports allow you to securely export user profile data from CleverTap to external cloud storage platforms such as Amazon S3, Google Cloud Storage, or Microsoft Azure. You can configure export to centralize customer data, integrate with existing analytics workflows, and ensure the data warehouse platform always has the latest profile information. With Profile Exports, you can: * **Export to Multiple Cloud Storage Platforms**: Send profile data to Amazon S3, Google Cloud Storage, or Microsoft Azure blob storage. * **Customize Data Structure**: Organize files with flexible folder structures and naming conventions. * **Optimize Export for Cloud Storage Platform**: Select file formats (CSV, JSON, XML, Parquet) that work best with your data pipeline. * **Granular Identity Selection**: Export either a single identifier per profile using fallback logic or export all selected identities. You can also export account identity values \[Identity, Email, and Phone\], and the CleverTap ID. * **Select Data for Export**: Choose specific user properties, communication preferences, and device attributes to export. Rename and reorder the columns to suit your data pipeline. * **Manage Schema**: Lock your export schema or automatically include new properties. * **Schedule Exports**: Run one-time exports or set up recurring daily exports with incremental updates. Use Cases [](https://docs.clevertap.com/docs/profile-exports#use-cases) =========================================================================== Profile Exports support a variety of use cases across marketing, data science, and compliance functions: * **Data Warehousing & Business Intelligence**: Export user profiles to your data warehouse (for example, BigQuery, Snowflake, Redshift) for advanced analytics and reporting. Use daily incremental exports to sync updates efficiently, without reprocessing the full dataset. * **Custom Identity Reconciliation**: Export all identity fields along with the CleverTap ID to map CleverTap profiles to identifiers in your internal systems. Fallback logic ensures that each record has a usable, prioritized identifier, even if one or more fields are missing. * **Privacy & Compliance**: Include only the properties necessary to comply with data privacy regulations. * Exclude Personally Identifiable Information (PII) by deselecting sensitive fields. * Lock the schema to avoid accidental inclusion of new sensitive attributes. * Use communication preference fields to ensure marketing campaigns respect user opt-outs. * **Compliance & Archival**: Schedule periodic exports to create backups of user data for regulatory compliance and long-term archival purposes. Prerequisites [](https://docs.clevertap.com/docs/profile-exports#prerequisites) =================================================================================== Before creating a profile export, ensure your cloud storage environment is ready and your CleverTap account has the necessary permissions. Depending on the cloud platform you are using: * [Configure Amazon S3 Integration](doc:data-export-to-aws-s3#create-an-aws-s3-bucket) * [Configure Google Cloud Storage Integration](doc:data-export-to-gcp#integrate-gcp-with-clevertap) * [Configure Microsoft Azure Integration](doc:microsoft-azure#setup) You must have **write** access permissions on the cloud storage platform you use to create and manage exports. Create Export [](https://docs.clevertap.com/docs/profile-exports#create-export) =================================================================================== To create an export, perform the following steps: 1. Go to _Settings_ > _Partners_ and select _Export center_. 2. Click **Create Export**, select _Profiles_ and click **Next**. 3. Select the _Partner_ to which you want to send the export and click **Start**. The export setup includes the following four main steps: ![Create Export](https://files.readme.io/e09f980fca5805d1eca3447ff04724e0799336b580ea2af71f4cc1a58ced80e2-Create_Export.gif) Create Export 1. **Configure Storage & File Details**: Configure the destination, folder structure, file format, and naming conventions. 2. **Select User Identifiers**: Define which user identifiers to export and their order. 3. **Configure Properties & Order**: Select user properties, device information, and communication preferences. 4. **Define Schedule**: Set up one-time or recurring export schedules. However, if you have an existing profile exports created with the legacy flow, perform the following steps to create an export: 1. Stop the existing export and create a new export using the enhanced flow with the same or improved settings. 2. Verify the new export runs successfully and produces the expected output. 3. Update your data warehouse systems to process files from the new export location. > 📘 > > #### > > Migration from Legacy Exports > > [](https://docs.clevertap.com/docs/profile-exports#migration-from-legacy-exports) > > * Legacy exports continue to run without interruption. You can view and edit legacy exports using the Switch to legacy option. > * You cannot migrate legacy exports to the new flow directly. You must stop the legacy export and create a new export using the enhanced flow. Configure Storage & File Details [](https://docs.clevertap.com/docs/profile-exports#configure-storage--file-details) ------------------------------------------------------------------------------------------------------------------------ In this section, you will define the destination, folder organization, file format, and file naming for your export. Use the live _Preview_ on the screen to validate paths and filenames as you configure them. 1. **Select Storage Bucket** Choose the cloud storage bucket or blob container where you want to export profile data. The dropdown displays all integrated storage destinations configured in your account. 2. **Set Up Sub-folder Structure** Choose how CleverTap should organize folders within your bucket or container using the following options. The folder structure preview updates in real-time as you configure each option. * **Bucket root**: Files are stored directly in the root of your bucket with no sub-folders. _Preview:_ `/{bucket-name}/file.csv.gz` * **Split by data type**: Creates top‑level folders such as `events/` and `profile/`. Profile exports will be stored under `profile/`. _Preview:_ `/{bucket-name}/profile/file.csv.gz` * **Split by export run date**: Partitions files by the export run date so each day’s data lands in its own folder. This is ideal for date-based ingestion pipelines. _Preview:_ `/{bucket-name}/2025-10-03/file.csv.gz` * **Split by export unique ID**: Creates a sub-folder using the unique export ID assigned to each export configuration. _Preview:_ `/{bucket-name}/1761650178/` * **Custom**: Build your own folder structure using dynamic variables. Click {{}} to insert variables and use `/` to create subfolders. The following are the supported variables: * `{{Account-id}}`: Your unique CleverTap account identifier. * `{{Export-id}}`: Unique export ID assigned to each export run. * `{{Timestamp}}`: EPOCH timestamp when the export runs. * `{{Instance-id}}`: Database identifier for your account (typically 0–23). * `{{Date}}`: Export run date in `yyyy-mm-dd`. _Example_: `{{date}}/run-{{export-id}}` _Preview_: `/{bucket-name}/2025-10-03/run-1761650178/file.csv.gz`\\ > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/profile-exports#note) > > Use forward slashes (/) to create sub-folders. You can include letters (a-z, A-Z), numbers (0-9), slashes (/), hyphens (-), and underscore (\_). ![](https://files.readme.io/a77ce23417eb8525f39e6d8cad5e0bb24e209b8b6b3e5e6ea4c0a6575606ac6e-Set_Up_Sub-Folder_Structure.png) Set Up Sub-Folder Structure 3. **Select File Format** Select the file format for your exported data. To minimize post-processing, select the format that your downstream platforms can process most efficiently. You can choose from the following formats: * **CSV**: Flat tabular file with a header row. All selected fields are exported, even if the values are null. * **JSON**: Structured JSON format, ideal for flexible data parsing * **Parquet**: A compressed, column-based format designed for analytics and large-scale data storage. * **XML**: A structured format suited for systems that need nested data. > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/profile-exports#note-1) > > * Parquet files are saved as .parquet by default (without additional compression). If compression is enabled, they are saved as .parquet.gz. > * CSV, JSON, and XML files are automatically compressed using Gzip and saved as .gz files. 4. **Define File Name Convention** Define how each file is named inside the innermost folder created by _Sub folder structure_. If you select _Default_, CleverTap applies a standard structure. If you select _Custom_, the input field and dynamic variable picker are enabled. Ensure that required variables are included and correctly separated. The _Preview_ shows the exact filename based on your input. * **Default file name**: The default format is `---..gz`. For example, `100000000-1761651721-1761651721-0.csv.gz`. * **Custom**: Create a custom filename using supported dynamic variables. Click **{{ }}** to insert variables and combine them with fixed text. For example, the custom file name convention `profiles-{{date}}-{{export-id}}.csv.gz` resolves to `profiles-2025-10-03-1761651721.csv.gz`). By default, the timestamp and instance ID are always appended to the end of the filename to ensure that the content is not overridden. The following are the supported variables: * `{{Account-id}}`: Your unique CleverTap account identifier. * `{{Export-id}}`: Unique export ID assigned to each export run. * `{{Timestamp}}`: Epoch timestamp when the export runs. * `{{Instance-id}}`: Database identifier for your CleverTap account (typically 0–23). * `{{Date}}`: Export run date in `yyyy-mm-dd`. > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/profile-exports#note-2) > > Use forward slashes (/) to create sub-folders. You can include letters (a-z, A-Z), numbers (0-9), slashes (/), hyphens (-), and underscore (\_). ![Select File Format and Define File Name](https://files.readme.io/574aeb96345953e27aee4ff4e007b9362d967255ef41270d87e97b98a5e36ca5-Define_File_Name_Convention.png) Select File Format and Define File Name 5. Click **Next** to choose user identifiers. Select User identifiers [](https://docs.clevertap.com/docs/profile-exports#select-user-identifiers) ------------------------------------------------------------------------------------------------------- Choose which user identifiers to include in the export and how they appear in the output file. These settings enable data warehouse platforms to accurately match user profiles across multiple identifiers. 1. **Select Identity & Define Order** Use the dropdown to select which identifiers to export and click **Apply**. You must select at least one identifier. Options include: * **Identity**: Your account-defined user identifier * **Email**: The email address stored in the user profile. * **Phone**: The phone number stored in the user profile. * **Custom**: A business-specific identifier (for example, `crm_id`). ![Select Identity](https://files.readme.io/1a28ae6ee64add0430f7cbc2338843b9ff4dd7633e0bf6330e72fc70f9c97f40-Select_Identity.gif) Select Identity > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/profile-exports#note-3) > > The order in which you select identifiers sets the initial priority. You can fine-tune priority under _Values to export_ and _Fallback order_. Ensure **Phone** values use E.164 format (for example, `+15551234567`) to avoid downstream validation issues. 2. **Define Export Preference** Choose how identifier values are written and define priority. Drag to reorder or enter position numbers. * **Single value with fallback**: Exports one identifier value per profile following your priority order. If the first identifier is unavailable, CleverTap uses the next available identifier as per your defined sequence. Use the _Reorder_ option to set priority by dragging rows or entering position numbers. For example, if the priority order is `Identity → Email → Phone → CRM ID [Custom properties]`, CleverTap exports the first available identifier in that order for each user. ![Define Export Preference when Exporting Single Value for Identity](https://files.readme.io/4763bf86ff4c593bf96063be083efa00e9f86b24fd6e5940c7013dddd2a96a29-Choose_Export_Preference.gif) Define Export Preference when Exporting Single Value for Identity * **Export all values**: Exports all selected identifiers in the **identity** column, listed in order of priority. Missing values are omitted. Select this option when reconciliation, deduplication, or identity joins are required downstream. 3. **(Optional) Select Account-Defined User Identity** Turn ON the toggle to add **all\_identities**, which exports all [account-defined identifiers](https://developer.clevertap.com/docs/developer-go-live-checklist) (**Identity**, **Email**, **Phone**) for each profile. If a user does not have a value for one or more of these identifiers, those values are omitted from the list. _Example:_ If a profile has identities user\_123, user\_456, and email [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#abded8ced9ebced3cac6dbc7ce85c8c4c6) , the output will be: 4. **Select CleverTap ID** Select this option to include the following in your export: * **clevertapId**: A unique, system-generated identifier assigned to each user profile. For more information, refer to [CleverTap ID](https://docs.clevertap.com/docs/user-profiles#user-profile-data-model) . * **clevertapIds**: A list of all historical CleverTap IDs associated with the profile, useful for tracking users across devices and merged profiles. 5. **Preview Output** Review how the selected identifiers will appear in the export. The live preview updates based on your selection and priority order, allowing you to verify: Fallback behavior, Data structure, and Sample output format. ![Preview Output](https://files.readme.io/5e0c6d84a15621ab608e199f8de65af4fd10e9948aedec8377d9877aa9337b37-Preview_Output.png) Preview Output 6. Click **Next** to proceed to the _Properties & order_ step. Configure Properties & Order [](https://docs.clevertap.com/docs/profile-exports#configure-properties--order) ---------------------------------------------------------------------------------------------------------------- Configure which properties to include in the export, as well as how they are labeled and ordered. Use the live Preview to verify selected fields, headers, and column order. 1. **Include Device Attributes** Device-level identifiers captured for the profile. This information is included by default in the export. ![Include Device Attributes](https://files.readme.io/89080e6460bd1d6639605ff0ef7e5df35c8962418f704967ceeaa796c115892d-Include_Device_Attributes.png) Include Device Attributes > 📘 > > #### > > Device Token Missing > > [](https://docs.clevertap.com/docs/profile-exports#device-token-missing) > > If a profile has no device token, the token column appears blank. 2. **Add Communication Preferences**. Include the [user's opt-in/opt-out status](doc:gdpr#right-to-marketing-opt-out) across messaging channels. Select one or more options from the dropdown: `MSG-push`, `MSG-webpush`, `MSG-email`, `MSG-sms`, `MSG-whatsapp`, and `subscriptionGroups` ([subscription group](doc:group-unsubscribe#subscription-groups) preferences for messaging channels). Selecting multiple items adds multiple columns. If a profile has no value for a selected item, the corresponding column appears blank. ![](https://files.readme.io/ad426b7e1132a4d3186a695cb0c5f1134cc1b3255de2a72ba2b6a70f556477ef-profile_export_1.png) Export Communication Preferences 3. **Select User Properties** Choose which profile properties to export: * **All user properties**: Exports all system and custom user properties. For more information, refer to [User Properties](doc:user-profiles#user-properties) . * **System properties**: Exports only CleverTap system properties such as **Name**, **Gender**, **DOB**, **Email**, **Phone**, and **Photo**. For more information, refer to [System Properties](https://docs.clevertap.com/docs/user-profiles#system-user-properties) . > 📘 > > **Note** > > Properties like Lat, Long, and CT\_Test\_User are available under all user properties and selected properties. * **Selected properties**: Pick specific fields from your schema (for example, **Email**, **Phone**, **Customer Type**). For more information, refer to [Custom Properties](doc:user-profiles#custom-properties) . ![Select User Properties to Export](https://files.readme.io/86580e1c39e195008221ca0c636d54717b94ff958c0e31dbf96c245927e65742-Select_User_Properties_to_Export.gif) Select User Properties to Export > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/profile-exports#note-4) > > You must select at least one user property. You cannot select the Identity and CleverTap ID configured in _Step 2: Select User Identifiers_. 4. **Rename & Reorder Properties**: Customize the column names and the order of selected properties. Use the _Selected properties_ dropdown to rename or reorder the selected properties (for example, change `Phone` to `Phone Number`). ![Rename and Reorder User Properties to Export](https://files.readme.io/785878c2969967e4229143efedd2b4d61283bdfc8ddea7b09da7af3186c61043-Rename__Reorder_Properties.gif) Rename and Reorder User Properties to Export > 📘 > > #### > > Points to Consider > > [](https://docs.clevertap.com/docs/profile-exports#points-to-consider) > > * Renaming only affects the column header in the export; it does not change the original property name. > * Use the search bar to find specific fields. > * Drag rows to rearrange columns, or use the Reorder button to set the export sequence. > * If a property is missing for a profile, the column still appears but remains blank and the Key in the JSON file will be removed. > * Reordering does not impact data collection or internal storage — it only affects the file structure. > * If two or more properties have the same name, then the property present last in the order will only be exported. So avoid having two properties with the same name 5. **Manage Schema Updates** Control how new properties are handled in future export creation. This option appears only when you choose to export all properties in the previous step. * **Add new properties at the end**: Automatically append any new properties (system or custom) as new columns at the end of the export file. For example, if you later add a property named **loyalty\_tier**. It will be included as a new column at the end of the next export and onwards. * **Lock current schema**: Keep the file structure fixed. New properties are excluded until manually added. For example, if you add **loyalty\_tier**, it will not appear in the export until you update the schema configuration. ![Manage Schema Updates](https://files.readme.io/e9dd4ed68144deefe6f7f3e9bdc3bd0ad7e28688f97466f55b662c6148f5ca0e-Manage_Schema_Updates.png) Manage Schema Updates > 📘 > > #### > > Tip > > [](https://docs.clevertap.com/docs/profile-exports#tip) > > Choose _Add new properties at the end_ if you want to capture all user data automatically. Choose _Lock current schema_ if your downstream pipelines require a fixed schema structure. 6. Click **Preview** to review the complete data structure and click **Next** to configure the export schedule. Define Schedule for Export [](https://docs.clevertap.com/docs/profile-exports#define-schedule-for-export) ------------------------------------------------------------------------------------------------------------- Define how often data should be exported to your destination. 1. **Choose Frequency** Select how often the export should run: * **One-time**: Immediately runs a one-time export using the current configuration. Use this for ad-hoc analysis or initial data migration. * **Recurring**: Automatically exports data every 24 hours. The frequency is fixed to once per day. Use when downstream systems expect a daily file. 2. **Select Export Type** For recurring exports, choose how CleverTap determines which profiles to export: * **Only profiles changed since the last run (first run is full)**: The first run exports all profiles. Future runs export the following profiles: * A new profile was created since the last run. * A profile is updated. A profile is considered updated if: * An identifier or user property is added, removed, or modified. * A communication preference (for example, MSG-email, MSG-sms, MSG-push) changes. * **Full dataset each day**: Export all profiles in every run. Each daily run exports the complete dataset, regardless of changes. Use this if your downstream systems require a daily full refresh. ![Create Recurring Export](https://files.readme.io/0afbe823816d06a3c231d2392bf02f421b4d1f493264cae95b5c5afda68a6cd9-Recurring_Export.png) Create Recurring Export 3. Click **Create** to complete the creation of your export. File Output Structure [](https://docs.clevertap.com/docs/profile-exports#file-output-structure) =================================================================================================== Exported profile files follow this consistent column order: 1. **User Identifiers**: Identity, All Identities, CleverTap ID based on the configuration done in Step 2. 2. **Device Information**: Device Token 3. **Communication Preferences**: MSG-push, MSG-push-all, MSG-email, MSG-sms, MSG-whatsapp, subscriptionGroups (if selected). 4. **User Properties**: System and custom properties in the order you define. { "identity": "XXXXXXX", "all_identities": "[XXXXXXX]", "clevertapId": "__g1234567890", "clevertapIds": ["__g1234567890","Ne22k5-xQ90sN1aebRkzjiV65JN6Cwdc"], "token": "XXXXXXX", "subscriptionGroups": { "group1": "Subscribed", "group2": "Unsubscribed", "group3": "Subscribed" }, "MSG-webpush": "XXXXXXX", "MSG-push": "XXXXXXX", "MSG-email": "XXXXXXX", "MSG-sms": "XXXXXXX", "MSG-whatsapp": "XXXXXXX", "Email": "XXXXXXX", "Phone": "XXXXXXX", "Name": "XXXXXXX", "Gender": "XXXXXXX", "DOB": "XXXXXXX", "Photo": "XXXXXXX", "Favouties Game": "XXXXXXX", "Designation": "XXXXXXX", "Blood Group": "XXXXXXX" } Manage Export [](https://docs.clevertap.com/docs/profile-exports#manage-export) =================================================================================== This section outlines how to track the status of your data exports, stop them when needed, and filter them efficiently based on your requirements. ### Stop Export [](https://docs.clevertap.com/docs/profile-exports#stop-export) Stop a running export by hovering over the export and clicking **Stop**. The export status on the _Export center_ page is displayed as **Stopped**. ![](https://files.readme.io/3dd0385254e9a5a9afbe298f9772424c280a0f7c81bfe1f1e20829274a5069dd-Stop_export.png) Stop Export ### Export Status [](https://docs.clevertap.com/docs/profile-exports#export-status) Each export has a status that reflects its current state in the export lifecycle as follows: * **Pending**: Indicates that the export has been created and is awaiting the scheduled run to begin. In the case of recurring exports, after each successful run, the status returns to Pending, indicating that the next daily run is scheduled and waiting to begin. The status changes to **Running** once the next execution starts. * **Running**: Indicates that the export is in progress, processing, and transferring profile data. * **Stopped**: Indicates that the export was manually stopped and will not run again. * **Done**: Indicates that the one-time export finished successfully. Best Practices [](https://docs.clevertap.com/docs/profile-exports#best-practices) ===================================================================================== Follow these best practices to ensure your profile exports are reliable, organized, and compatible with downstream systems: * **Use Clear File Naming Conventions** Create descriptive file names using dynamic date variables to help identify and process exports chronologically. * **Structure Folders by Date** Organize exports using date-based folders (e.g., yyyy-mm-dd or {{Date}}) to simplify processing in your data pipelines. * **Enable Incremental Exports** Use incremental exports for large datasets to minimize processing time, enhance performance, and reduce storage costs. * **Manage Schema Carefully** * Lock the schema if downstream systems require a fixed column structure. * Use Add new properties at the end to automatically capture newly added data fields without affecting existing columns. * **Monitor Export Delivery** Configure alerts in your cloud platform to detect delays or missing files and troubleshoot failures quickly. * **Validate Exported Data** Run data quality checks to confirm the exported files match your expectations before loading them into downstream systems. * **Monitoring & Error Handling**: If your export fails: * Check that your storage credentials (IAM policy, service account key, or SAS token) are valid. * Ensure the bucket or container exists and is accessible. * For GCP exports, a 403 error often indicates that the service account key is invalid. FAQs [](https://docs.clevertap.com/docs/profile-exports#faqs) ================================================================= ### Can I run a one-time Profiles export if a recurring Profiles export is active? [](https://docs.clevertap.com/docs/profile-exports#can-i-run-a-one-time-profiles-export-if-a-recurring-profiles-export-is-active) Before running a one-time profile export, stop any scheduled recurring profile export. ### How long are exported files retained in my cloud storage? [](https://docs.clevertap.com/docs/profile-exports#how-long-are-exported-files-retained-in-my-cloud-storage) CleverTap does not delete exported files. Your cloud storage bucket lifecycle policies control file retention. ### Can I export profiles for specific segments? [](https://docs.clevertap.com/docs/profile-exports#can-i-export-profiles-for-specific-segments) Profile Exports export all profiles in your account. To export specific segments, use the Profile API with segment filters or post-process exported files. ### How do I include deleted properties in my export? [](https://docs.clevertap.com/docs/profile-exports#how-do-i-include-deleted-properties-in-my-export) If a property is deleted from the CleverTap schema but still exists in an active export, it continues to be exported. ### What is the maximum file size for exports? [](https://docs.clevertap.com/docs/profile-exports#what-is-the-maximum-file-size-for-exports) CleverTap automatically splits large exports into multiple files. File size depends on your profile count and selected properties. ### Can I schedule recurring exports more frequently than 24 hours? [](https://docs.clevertap.com/docs/profile-exports#can-i-schedule-recurring-exports-more-frequently-than-24-hours) Profile Exports support only a 24-hour frequency for recurring exports. For more frequent exports, consider using the Profile APIs. ### How are large exports chunked? [](https://docs.clevertap.com/docs/profile-exports#how-are-large-exports-chunked) We chunk the data across multiple files for larger exports. File sizes are limited to ~100 MB to make them more consumable. The file index indicates the file number in the series. ### How do I handle schema changes in my data warehouse? [](https://docs.clevertap.com/docs/profile-exports#how-do-i-handle-schema-changes-in-my-data-warehouse) Use the _Add new properties at the end_ option to append new columns automatically. Update your warehouse schema to accommodate new columns, or use the "Lock current schema" option to prevent changes. ### Can I export profiles to multiple buckets [](https://docs.clevertap.com/docs/profile-exports#can-i-export-profiles-to-multiple-buckets) Currently, CleverTap allows only one recurring profile export to be created. ### Can I change the folder structure or file name after creating an export? [](https://docs.clevertap.com/docs/profile-exports#can-i-change-the-folder-structure-or-file-name-after-creating-an-export) Currently, you cannot edit the new version of the profile export. ### Can I schedule exports more frequently than once per day? [](https://docs.clevertap.com/docs/profile-exports#can-i-schedule-exports-more-frequently-than-once-per-day) For profile exports in the new export flow, the frequency is fixed to 24 hours. Event exports allow more frequent schedules (down to every 4 hours), but profile exports always run daily. ### How does recurring export work? [](https://docs.clevertap.com/docs/profile-exports#how-does-recurring-export-work) On day one, the entire user profile data is sent. From day two onwards, only updates or additions are exported (for example, new profiles or updates to user properties/communication preferences). You can export data as frequently as every 4 hours and up to once every 24 hours. ### Why do I see an error when creating the export? [](https://docs.clevertap.com/docs/profile-exports#why-do-i-see-an-error-when-creating-the-export) Check that the bucket or container name matches exactly and that the IAM policy, service account key or SAS token is valid. Regenerate keys if necessary. ### What should I do if my export fails? [](https://docs.clevertap.com/docs/profile-exports#what-should-i-do-if-my-export-fails) If your export fails, follow these steps to troubleshoot the issue: * Verify your storage credentials — Make sure your IAM policy (AWS), service account key (GCP), or SAS token (Azure) is valid and has the required write permissions. * Check bucket or container access — Ensure the target bucket or container exists and is reachable from CleverTap. * Check for the following error codes: * A 403 error in GCP usually indicates an invalid or expired service account key. * For other platforms, refer to your cloud provider’s error documentation for further guidance. ### What other ways can I export data from CleverTap? [](https://docs.clevertap.com/docs/profile-exports#what-other-ways-can-i-export-data-from-clevertap) * [**Export via API**](https://developer.clevertap.com/docs/upload-user-profiles-api) (see API Overview). * [**Find People**](doc:find-people#download-users) : Download the profile data directly from the CleverTap dashboard through _Segments_ → _Find People_ → **View Details** → download under **Total users**. Updated 24 days ago * * * Ask AI --- # Amplitude Import (Cohort) Overview [](https://docs.clevertap.com/docs/amplitude-cohort-import#overview) ================================================================================= [Amplitude](https://amplitude.com/) , an analytics and business intelligence platform, helps make informed decisions for targeting users. This integration allows you to import cohorts (segments) from Amplitude into CleverTap and provides different benefits described in the below section. Key Benefits [](https://docs.clevertap.com/docs/amplitude-cohort-import#key-benefits) ========================================================================================= Here are some of the key benefits of this integration: * **Enhanced Cohort Management**: Leverage Amplitude's product analytics to create targeted cohorts (segments) in CleverTap for personalized messaging and engagement campaigns based on user behaviors and preferences captured in Amplitude. * **Comprehensive Event Tracking**: Capture and analyze user interactions within CleverTap, such as app installs, uninstallations, push notifications, and in-app messages, in Amplitude for a holistic view of user engagement across both platforms. * **Data-Driven Decision Making**: Make informed decisions and optimize your customer engagement strategies by leveraging the combined insights from CleverTap and Amplitude's powerful analytics engines. * **Personalized and Relevant Campaigns**: Deliver contextual and personalized messaging to your users based on their behaviors and preferences captured in Amplitude, leading to higher engagement and conversion rates. * **Streamlined Workflow**: Seamlessly push cohorts (segments) and system events between CleverTap and Amplitude with a simple and intuitive setup, saving you time and effort in managing your marketing campaigns. Prerequisites [](https://docs.clevertap.com/docs/amplitude-cohort-import#prerequisites) =========================================================================================== Before you begin the integration, ensure that you have: * Correctly map the Amplitude Cohorts (segments) to CleverTap Segments * The required permission to create cohorts (segments) in the Amplitude account Set Up [](https://docs.clevertap.com/docs/amplitude-cohort-import#set-up) ============================================================================= This procedure involves the following four major steps: 1. [Map User Identities for Amplitude Cohorts to CleverTap Segments](doc:amplitude-cohort-import#map-user-identities-for-amplitude-cohorts-to-clevertap-segments) 2. [Find CleverTap Project Details](doc:amplitude-cohort-import#find-clevertap-project-details) 3. [Configure CleverTap as a Destination in Amplitude](doc:amplitude-cohort-import#configure-clevertap-integration-in-amplitude) 4. [Import Cohorts from Amplitude](doc:amplitude-cohort-import#import-cohorts-from-amplitude) Map User Identities for Amplitude Cohorts to CleverTap Segments [](https://docs.clevertap.com/docs/amplitude-cohort-import#map-user-identities-for-amplitude-cohorts-to-clevertap-segments) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Amplitude exports all users to CleverTap, including anonymous users. A common identifier is used to match users when syncing cohorts (segments) from Amplitude to CleverTap. The following are the key points to remember when setting up an identifier on the Amplitude dashboard: * Amplitude captures `User ID` and `Device ID` as an identifier for every profile. The `User ID` is for identified profiles, whereas the `Device ID` is for every profile. * CleverTap allows `identity`, `email` or `phone` as an identifier for the users. It captures `Device ID` as the CleverTap ID (Object ID) for every profile. For more information about how users are identified, refer to the following section. ### User Identity Management [](https://docs.clevertap.com/docs/amplitude-cohort-import#user-identity-management) The CleverTap User ID is a unique identifier assigned to the user in Amplitude. This identifier enables the mapping of user data between CleverTap and Amplitude, allowing for a more comprehensive understanding of user behavior and engagement across different channels. When importing cohorts (segments) from Amplitude, the user identity is matched in the following manner: * If the CleverTap User ID is present in Amplitude, it is matched with the identity value of all the users present in CleverTap. If a match is found, the profile becomes part of the segment. * If the CleverTap User ID is not present in Amplitude, the Device Id (Anonymous Id) value is used as CleverTap ID, and a new profile is created in CleverTap. This new profile becomes part of the segment. To understand this better, refer to the following diagram: ![User Identity Mapping When Importing Cohorts (segments) to CleverTap](https://files.readme.io/2299ef2-Amplitude_User_Identity_Mapping.png) User Identity Mapping When Importing Cohorts (segments) to CleverTap To understand how users are identified in different scenarios, read the following information: **Scenario 1: When a user's identity is the same in both Amplitude and CleverTap** Consider a scenario where user A is assigned the CleverTap User ID `Clevertap1` in Amplitude, and the same user's identity is set as `clevertap1` in CleverTap. In this scenario, CleverTap raises a _Partner Sync_ event for the user in CleverTap and includes the user in the segment (cohort). **Scenario 2: When a user's identity is different in Amplitude and CleverTap** Consider a scenario where user A is assigned the CleverTap User ID `CleverTap1` in Amplitude, and the same user is identified with a different user identity in CleverTap, which is `CleverTap2`. In this case, the CleverTap creates a new profile for the same user with a new identity as `CleverTap1` and raises a _Partner Sync_ event to include the new profile in the segment (cohort). To avoid this scenario, CleverTap recommends you push the _CleverTap\_Identity_ as the identity in Amplitude and use this identity when setting up CleverTap as a cohort (segment) destination. For more information, refer to [Set Up Common User Identifier](doc:amplitude-cohort-import#set-up-common-user-identifier-between-clevertap-and-amplitude) . **Scenario 3: When User A with Device ID is not identified in Amplitude** Consider a scenario where a user with Device ID `543C-3455-4555-3SRD` is not identified in Amplitude. In this scenario, CleverTap captures this Device ID (`543C-3455-4555-3SRD`) as CleverTap ID (Object ID) and creates a new profile. After the new profile is created, CleverTap raises a _Partner Sync_ event for this profile and includes the user in the segment (cohort). ### Set Up Common User Identifier between CleverTap and Amplitude [](https://docs.clevertap.com/docs/amplitude-cohort-import#set-up-common-user-identifier-between-clevertap-and-amplitude) When a user's identity differs between Amplitude and CleverTap, the common user identifier must be set up to identify and include the user in the cohort (segment). The following are two different ways of setting up a common identifier between the two platforms: #### Using Amplitude APIs [](https://docs.clevertap.com/docs/amplitude-cohort-import#using-amplitude-apis) The value that is passed in `CleverTap_Identity` must be the same as that passed as identity in CleverTap. cURL curl --location --request POST 'https://api2.amplitude.com/identify' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'api_key=a0ccac7656a6e187b597f44476dd031e' \ --data-urlencode 'identification=[{"user_id":"amplitude_id", "user_properties":{"CleverTap_Identity":"[email protected]"}}]' > 📘 > > ### > > Set Up Identity > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#set-up-identity) > > You must replace the value of `CleverTap_Identity` with the user identity value set in CleverTap for the profile. For example, `[[email protected]](https://docs.clevertap.com/cdn-cgi/l/email-protection) ` is the identity set in CleverTap, so we must pass that value to Amplitude. If the value of the identity was `12345`, we must pass the value as `12345`. #### Using Amplitude SDKs [](https://docs.clevertap.com/docs/amplitude-cohort-import#using-amplitude-sdks) The value that is passed in `CleverTap_user_Id` must be the same as that passed in CleverTap. JavaObjective-CSwift val identify = Identify() identify.set("CleverTap_Identity", "[email protected]") amplitude.identify(identify) AMPIdentify *identify = [[[AMPIdentify identify] set:@"CleverTap_Identity" value:@"[[email protected]]]]; [[Amplitude instance] identify:identify]; let identify = AMPIdentify() .set("CleverTap_Identity", value: "[email protected]") Amplitude.instance().identify(identify) Find CleverTap Project Details [](https://docs.clevertap.com/docs/amplitude-cohort-import#find-clevertap-project-details) ----------------------------------------------------------------------------------------------------------------------------- Find the following project details to authorize the CleverTap integration in the Amplitude dashboard: * [Project ID](https://docs.clevertap.com/docs/amplitude-cohort-import#project-id) * [Passcode](https://docs.clevertap.com/docs/amplitude-cohort-import#passcode) * [Region](https://docs.clevertap.com/docs/amplitude-cohort-import#region) > 📘 > > ### > > Project Details > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#project-details) > > CleverTap suggests keeping the above details handy, as you will need them to configure the Amplitude dashboard. ### Project ID [](https://docs.clevertap.com/docs/amplitude-cohort-import#project-id) The Project ID can be obtained by navigating to the _Settings_ > _Project_ page of the CleverTap dashboard (see figure below): ![CleverTap Project Details](https://files.readme.io/4ca0240-Project_Details.png) CleverTap Project Details ### Passcode [](https://docs.clevertap.com/docs/amplitude-cohort-import#passcode) To find the passcode for your Amplitude Import project, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . > 📘 > > ### > > Account Passcode > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#account-passcode) > > When generating account passcode, we recommend you set the expiry date for passcode as _Forever_. ### Region [](https://docs.clevertap.com/docs/amplitude-cohort-import#region) To identify the region for your account, refer to the following table: | Region | API Endpoint | CleverTap Dashboard URL | | --- | --- | --- | | Europe (Default region) | api.clevertap.com | [https://eu1.dashboard.clevertap.com/login.html](https://eu1.dashboard.clevertap.com/login.html) | | India | in1.api.clevertap.com | [https://in1.dashboard.clevertap.com/login.html](https://in1.dashboard.clevertap.com/login.html) | | Indonesia | aps3.api.clevertap.com | [https://aps3.dashboard.clevertap.com/login.html](https://aps3.dashboard.clevertap.com/login.html%5D(https://aps3.dashboard.clevertap.com/login.html)) | | Middle East (UAE) | mec1.api.clevertap.com | [https://mec1.dashboard.clevertap.com/login.html](https://mec1.dashboard.clevertap.com/login.html) | | Singapore | sg1.api.clevertap.com | [https://sg1.dashboard.clevertap.com/login.html](https://sg1.dashboard.clevertap.com/login.html) | | South Korea | sk1.api.clevertap.com | [https://sk1.dashboard.clevertap.com/login.html](https://sk1.dashboard.clevertap.com/login.html) | | United States (USA) | us1.api.clevertap.com | [https://us1.dashboard.clevertap.com/login.html](https://us1.dashboard.clevertap.com/login.html) | Configure CleverTap as a Destination in Amplitude [](https://docs.clevertap.com/docs/amplitude-cohort-import#configure-clevertap-as-a-destination-in-amplitude) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- To configure the Amplitude dashboard: 1. Navigate to _Destinations_ from the Amplitude dashboard and click **\+ Add Destination**. ![Destinations in Amplitude Dashboard](https://files.readme.io/4c7c17b-small-Add_Destination_Amplitude.png "Click Add Destination") Destinations in Amplitude Dashboard 2. Click **CleverTap** from the _MESSAGING DESTINATIONS_. ![Messaging Destinations in Amplitude](https://files.readme.io/83ea665-small-CleverTap_Destination_Amplitude.png "Click CleverTap from Messaging Destinations") Messaging Destinations in Amplitude 3. Enter the following details in the _Connect to CleverTap_ form: ![Add Destination Details to Connect CleverTap](https://files.readme.io/05dec70-small-Connect_to_CleverTap_Amplitude_Import.png) Add Destination Details to Connect CleverTap | Field | Description | | --- | --- | | Name | Enter the name to uniquely identify the integration. | | CleverTap Region | Select the [Region](https://docs.clevertap.com/docs/amplitude-cohort-import#region)
of your CleverTap account from the dropdown. | | Account ID | Enter the [Project ID](https://docs.clevertap.com/docs/amplitude-cohort-import#project-id)
of your CleverTap account. | | Account Passcode | Enter the [Passcode](https://docs.clevertap.com/docs/amplitude-cohort-import#passcode)
of your CleverTap account. | | Anonymous ID Mapping | Select _Device ID_ as an identity to map anonymous users in CleverTap. For more information, refer to [Map User Identity](https://docs.clevertap.com/docs/amplitude-cohort-import#map-user-identities-for-amplitude-cohorts-to-clevertap-segments)
. | | CleverTap User ID Mapping | Select _identity_ to map the identified users in CleverTap User ID. For more information, refer to [Map User Identity](https://docs.clevertap.com/docs/amplitude-cohort-import#map-user-identities-for-amplitude-cohorts-to-clevertap-segments)
. | 4. Click **Save**. CleverTap is now displayed on the _Destinations_ page. ![Add CleverTap as a Destination in Amplitude](https://files.readme.io/f09006b-small-Destination_CleverTap_Amplitude.png "Click Save and View CleverTap as a Destination in Amplitude") Add CleverTap as a Destination in Amplitude Import Cohorts from Amplitude [](https://docs.clevertap.com/docs/amplitude-cohort-import#import-cohorts-from-amplitude) --------------------------------------------------------------------------------------------------------------------------- > 📘 > > ### > > Verify User Identifications > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#verify-user-identifications) > > To ensure that the user profiles imported from Amplitude are correctly identified in CleverTap, we recommend importing a smaller cohort (segment) before proceeding with larger cohorts. To import the cohorts (segments) from Amplitude to CleverTap: 1. Navigate to _Cohorts_ from the Amplitude dashboard. ![Cohorts Page in Amplitude Dashboard](https://files.readme.io/6684986-small-Cohorts_Amplitude_Import.png) Cohorts Page in Amplitude Dashboard 2. Select the cohort (segment) you want to import and click **Sync**. ![Sync a Cohort (segment) from Amplitude Dashboard](https://files.readme.io/b68cfef-small-Cohort_Definition_Amplitude_Import.png) Sync a Cohort (segment) from Amplitude Dashboard 3. Select the destination as _CleverTap_ and click **Next**. ![Select CleverTap as a Destination for Sync](https://files.readme.io/a9e9a8c-small-Select_Destination_Amplitude.png "Select CleverTap as a Destination and Click Next") Select CleverTap as a Destination for Sync 4. Select the API target to sync to your CleverTap project and click **Next**. ![Select API Target as CleverTap](https://files.readme.io/98d3af4-small-API_Target_Amplitude.png "Select API Target and Click Next") Select API Target as CleverTap 5. Select one of the sync types and click **Sync**. ![Define the Cadence for Cohort Sync from Amplitude](https://files.readme.io/3ad3d20-small-Define_Cadence_Amplitude.png "Select Scheduled Sync and Click Sync") Define the Cadence for Cohort Sync from Amplitude * **One-time Sync**: In the case of one-time sync, Amplitude sends a one-time list of users who are currently part of the cohort to CleverTap. * **Scheduled Sync**: In the case of scheduled sync, Amplitude initiates sync between a cohort and CleverTap on an hourly or daily basis. The imported segment is updated as per the chosen sync type to reflect the most recent list of users in the segment. * **Real-Time**: In the case of real-time sync, Amplitude sends a list of users in the cohort every minute to CleverTap. The real-time sync feature is available on request. To avail of this feature, contact your Amplitude team to enable it for your account. > 📘 > > ### > > Amplitude Cohort Sync > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#amplitude-cohort-sync) > > Every cohort sync from Amplitude includes only the users added or removed from the cohort after the last sync. View Amplitude Cohorts in CleverTap [](https://docs.clevertap.com/docs/amplitude-cohort-import#view-amplitude-cohorts-in-clevertap) ======================================================================================================================================= The cohort name defined in the Amplitude dashboard appears as the segment under the _Segments_ list page of the CleverTap dashboard. The _Type_ column under the _Segments_ list page for the exported cohort is displayed as _Partner - Amplitude_. ![View Synced Cohort in CleverTap](https://files.readme.io/42f595b-small-Segments_List_Amplitude_Import.png) View Synced Cohort in CleverTap Click the segment to view the statistics for this segment, like any other segment on the CleverTap dashboard. ![View Segment Details](https://files.readme.io/9ac966d-small-View_Segments_Amplitude_Import.png) View Segment Details You can also validate a user profile ingested from Amplitude using the Partner Sync event. ![](https://files.readme.io/f323e91-small-User_Profile_Amplitude_Import.png) Engage with Amplitude Cohort on CleverTap [](https://docs.clevertap.com/docs/amplitude-cohort-import#engage-with-amplitude-cohort-on-clevertap) =================================================================================================================================================== You can also engage with the cohorts (segments) imported from Amplitude by creating different campaigns and journeys. The process of creating campaigns for the Past Behavior Segment and Live Behavior Segment is the same except for where we need to select the segment. For Past Behavior Campaigns/Journeys [](https://docs.clevertap.com/docs/amplitude-cohort-import#for-past-behavior-campaignsjourneys) ---------------------------------------------------------------------------------------------------------------------------------------- To select the segment: 1. From the dashboard, select **Campaigns**. 2. Click **\+ Campaign**. 3. From the _Messaging Channels_ list, select the messaging channel. 4. Click **Who** and filter the target audience by selecting _With user properties_ > _Segments_. 5. Select the imported user segment from the available list of segments. ![Select the Imported Segment for Past Behavior Campaigns/Journeys](https://files.readme.io/e94d4dc-small-With_User_Properties_Past_Behavior.png) Select the Imported Segment for Past Behavior Campaigns/Journeys **Scenario: Customer wants to send an In-App Message campaign to the user from Bangalore city when they launch the mobile application.** In this case, the customer will create a cohort (segment) in the Amplitude dashboard and initiate a one-time export to CleverTap for engagement activities. On the CleverTap dashboard, the customer will create an In-App campaign for this cohort of users. To create the campaign, the customer will navigate to In-App Campaign and select the segment under the **Who** segment section in the following way: 1. Select **App Launched** event under _As soon as the user does_ section. 2. Select _Filter on past behavior and user properties_ checkbox. 3. Select _With user properties_ > _Segments_ and then select the segment name from the list. For Live Campaigns/Journeys [](https://docs.clevertap.com/docs/amplitude-cohort-import#for-live-campaignsjourneys) ---------------------------------------------------------------------------------------------------------------------- To select the segment: 1. From the dashboard, select **Campaigns**. 2. Click **\+ Campaign**. 3. From the _Messaging Channels_ list, select the messaging channel. 4. Select _Start here_ > _Live Behavior_. Select **Partner Sync** event. 5. Click _Filter_ and then select Event Property _Partner Segment Name = Exact\_Amplitude\_Cohort\_Name_. 6. Click _Filter_ and then select _Event Property Action = add_ . > 📘 > > ### > > Partner Sync Event > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#partner-sync-event) > > The _Partner Sync_ event is raised every time CleverTap receives a cohort sync request from Amplitude. ![](https://files.readme.io/931567d8ec84858d594543510d1c7e4765334475dccc508a0e9d25f096599ede-Screenshot_2025-06-30_at_18.23.55.png) Select the Imported Segment for Live Campaigns/Journeys **Scenario: Customer wants to send a recurring Email campaign to the users that added an item to the cart but did not purchase the item.** In this case, the customer will create a cohort (segment) in the Amplitude dashboard and initiate a recurring export to CleverTap for engagement activities. On the CleverTap dashboard, the customer will create a recurring Email campaign for this cohort of users. To create the campaign, the customer will navigate to Email Campaign and create the campaign in the following way: 1. Select _Start here_ > _Live Behavior_. 2. Select **Partner Sync** event under the _As soon as the user does_ section. 3. Click _Filter_ and then select Event Property _Action_ = _Added_. 4. Select _Filter on past behavior and user properties_ checkbox. 5. Select _Segments_ under _With user properties_ and then select the segment name from the list. Find Amplitude Cohort from CleverTap Dashboard [](https://docs.clevertap.com/docs/amplitude-cohort-import#find-amplitude-cohort-from-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------------- To find the Amplitude cohort: 1. Navigate to Segments > Find People from the CleverTap dashboard. 2. Select the **Partner Sync** event from the _Users who did_ section. 3. Select _Segments_ under _Display common properties such as_ and select the segment name from the list. ![View the Imported Cohort from Find People](https://files.readme.io/37604c0-small-Find_People_Amplitude_Import.png) View the Imported Cohort from Find People Partner Sync Event [](https://docs.clevertap.com/docs/amplitude-cohort-import#partner-sync-event-1) ======================================================================================================= The _Partner Sync_ event is raised for all the users who are part of different partner segments. The following table provides information about the event properties: | Property Name | Description | Property Value/Example | | --- | --- | --- | | Partner Segment Name | Indicates the name of the cohort (segment) exported from Amplitude. | For example, Cart Drop off | | Action | Indicates if the user has been added or removed from the segment in the CleverTap dashboard. | * Added
* Removed | | Partner Segment ID | Indicates the Cohort ID in the Amplitude dashboard | For example, 1638361188 | | CT Source | Indicates the source of the event. | Amplitude | | Partner Name | Indicates the name of the partner from where the segment was imported. | Amplitude | > 📘 > > ### > > Campaign Exceptions for Partner Sync Event > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#campaign-exceptions-for-partner-sync-event) > > The _Partner Sync_ event cannot be used as a trigger event to create the campaigns for the following channels as it is not an SDK event: > > * In-App Messages > * Web Popup > * Web Exit Intent > * App Inbox > * Native Display > 📘 > > ### > > Contribution Towards Billing > > [](https://docs.clevertap.com/docs/amplitude-cohort-import#contribution-towards-billing) > > The _Partner Sync_ event contributes to data points for _MAU Billing Type_ and as an event for _Container Billing Type_. FAQs [](https://docs.clevertap.com/docs/amplitude-cohort-import#faqs) ========================================================================= ### Q. Can I export the CleverTap engagement data to Amplitude for analysis? [](https://docs.clevertap.com/docs/amplitude-cohort-import#q-can-i-export-the-clevertap-engagement-data-to-amplitude-for-analysis) A. Yes. For more information, refer to [Amplitude Export](https://docs.clevertap.com/docs/amplitude-export) . Updated 13 days ago * * * Ask AI --- # Loyalty Wallets Overview [](https://docs.clevertap.com/docs/loyalty-wallets#overview) ========================================================================= The Loyalty Wallet is a digital system that allows businesses to store and reward loyalty points earned by customers for actions such as purchases, referrals, reviews, and so on. Customers can later redeem these points for discounts or exclusive benefits. CleverTap’s Loyalty Wallets feature provides a flexible, credit-based engagement strategy that allows businesses to seamlessly manage points ledger and distribute wallet points. By leveraging this feature, businesses can enhance user interactions, drive repeat purchases, and build stronger customer relationships. This document explains how to configure, manage, and utilize the Loyalty Wallet across various websites and mobile platforms. Use Cases [](https://docs.clevertap.com/docs/loyalty-wallets#use-cases) =========================================================================== The following table highlights key use cases, real-world examples, and the impact of the Loyalty Wallet on both customers and businesses: | Category | Use Case | Example | Customer Value | Business Impact | | --- | --- | --- | --- | --- | | **Driving Higher Customer Spending and Retention** | Awarding Points for Purchases | A retail brand gives 100 points for every $100 spent or 10% of cashback points when a cashback coupon is redeemed. | Customers feel incentivized to increase order value to earn more points. | Encourages repeat purchases, boosts customer retention, and increases customer lifetime value (CLV). | | | Bonus Points on First Purchase | A food delivery app offers 200 bonus points on the first order. | New users are encouraged to place their first order, reducing acquisition friction. | Lowers cost-per-acquisition (CPA) and improves conversion rates. | | | Double Points on Special Occasions | A fashion e-commerce store gives double points in a Christmas week. | Personalized rewards increase emotional connection with the brand. | Drives engagement and encourages seasonal or Christmas-related purchases. | | **Creating a Premium Customer Experience** | Tiered Rewards System | Customers who earn 1,000 points in a year get VIP perks such as free shipping and exclusive discounts. | Customers aim for a higher status by shopping more frequently. | Encourages loyalty program participation, increases purchase frequency, and enhances customer retention. | | | Redeeming Points for Exclusive Products | A cosmetics brand allows customers to use 500 points to access limited-edition products. | Creates exclusivity and perceived value for loyalty members. | Strengthens brand rapport, increases customer engagement with limited products, and reduces churn rates. | | **Leveraging Social Proof and Community Engagement** | Points for Writing Reviews | A tech gadget store offers 20 points per product review. | Encourages customers to share feedback, which enhances brand credibility. | Generates user-generated content (UGC), boosts SEO rankings, and influences purchase decisions. | | | Referral Bonuses | Both the referrer and the new customer earn 100 points on the first successful transaction. | Encourages word-of-mouth marketing and attracts new users organically. | Reduces marketing costs, expands customer base, and increases trust through referrals. | | **Boosting Seasonal and Behavioral Conversions** | Seasonal Point Multipliers | A sportswear brand offers triple points during the holiday season. | Encourages time-sensitive purchases during peak seasons. | Increases holiday sales volume, enhances customer engagement, and improves campaign ROI. | | | Points for Abandoned Cart Recovery | A grocery delivery service awards 50 points to users who complete their abandoned cart checkout. | Provides a low-cost incentive for customers to return and complete transactions. | Reduces cart abandonment rates, increases conversion rates, and improves revenue per visitor. | Prerequisites [](https://docs.clevertap.com/docs/loyalty-wallets#prerequisites) =================================================================================== Before using the Wallet feature, check the following: * You have enabled the Loyalty Wallets feature on your CleverTap account. * You have the necessary permissions to configure and manage wallet points. * You have a Wallet already created for your account to integrate the [Wallet APIs](https://developer.clevertap.com/docs/wallet-apis) . Features [](https://docs.clevertap.com/docs/loyalty-wallets#features) ========================================================================= The following are the key features of the Loyalty Wallets: * **Wallet Points**: Loyalty points assigned to customers that can be redeemed for discounts, offers, or in-app purchases. Points can be credited through various sources such as promotional campaigns, cashback coupons, APIs, and CleverTap dashboard. Different reward types are supported, such as fixed points, percentage-based points, proportional points, and random points based on their probability factors. * **Wallet Transactions**: Tracks all wallet-related transactions for a user, including point credits, debits, promises, and expiry. Loyalty points can be credited via promo campaigns, the Wallet Credit API, cashback coupons, or the CleverTap dashboard. Debits occur through the [Wallet Debit API](https://developer.clevertap.com/docs/debitcredit-wallet) when users redeem points or the points expire. * **Points Expiration**: Wallets can be set up with a point expiration duration, which defines the time period in days, weeks, hours, or minutes after which rewarded points will automatically expire. This approach encourages timely usage and increases engagement. Access Loyalty Wallets [](https://docs.clevertap.com/docs/loyalty-wallets#access-loyalty-wallets) ===================================================================================================== The Loyalty Wallets page shows all the wallets created for your account. To view all the created wallets: 1. Go to _Promotions_ from the CleverTap dashboard. 2. Click **Rewards** and select **Loyalty Wallets** from the list. ![Access All Wallets](https://files.readme.io/52fa28d7380c4ac8e5ef1c7bd9612edf0d5f33e5d5b866315252917b151752a9-Loyalty_Wallets_Page.png) Access All Wallets Each wallet has its unique Wallet ID and some predefined values such as Loyalty Points Name, Creation Date, Created by, and so on. For more information, refer to [Create a Wallet](doc:create-loyalty-wallet#create-a-wallet) . Resources [](https://docs.clevertap.com/docs/loyalty-wallets#resources) =========================================================================== Refer to the following documents to understand CleverTap's Loyalty Wallet feature: * [Wallet Overview](https://docs.clevertap.com/docs/wallet-overview) * [Wallet Operations](https://docs.clevertap.com/docs/wallet-operations) * [Create Loyalty Wallet](https://docs.clevertap.com/docs/create-loyalty-wallet) * [Use Loyalty wallets in Campaigns](https://docs.clevertap.com/docs/use-loyalty-wallets-in-campaigns) Updated about 2 months ago * * * Ask AI --- # Platform Considerations Operating System (OS) [](https://docs.clevertap.com/docs/platform-considerations#operating-system-os) ========================================================================================================= The CleverTap SDK supports the following OS: * Android 4.0 (Ice Cream Sandwich) and above * iOS 8.0 and above Users [](https://docs.clevertap.com/docs/platform-considerations#users) =========================================================================== User profiles [](https://docs.clevertap.com/docs/platform-considerations#user-profiles) ------------------------------------------------------------------------------------------- ### General [](https://docs.clevertap.com/docs/platform-considerations#general) * A User Profile can have a maximum number of 256 custom attribute keys. * User Profile attribute keys must be of type String and attribute values can be scalar values, i.e. String, Boolean, Integer, Float or a Date object or multi-values (returned as a JSONArray or NSArray/Array). * Attribute key names are limited to 120 characters in length. * Scalar attribute values are limited to 512 characters in length. It means that the key values can have a maximum length of 512 characters. For example, the name of the product, such as **red shoe**. ### Multi-value Properties [](https://docs.clevertap.com/docs/platform-considerations#multi-value-properties) * Multi-values property must have unique values for the corresponding attribute key. For example, The attribute key 'Shirt Color' can have the following unique values. 1. Red Shirt 2. Blue Shirt 3. Green Shirt * Multi-value property values must be Strings and are limited to 100 items. Excess items will be removed on a FIFO (first-in, first-out) basis. For example, the key 'Shirt Type' can have the following values: 1. Shirt 1 2. Shirt 2 3. Shirt 3…upto 4. Shirt 100 * Multi-value property values are limited to 512 characters in length. * When setting a multi-value property, any existing value is overwritten. * When adding items to a multi-value property via an API, the API looks for a match. If the property does not exist, a new property with the specified name is created. If the property is a single value property with a scalar value, the property is promoted to a multi-value property. The current property value is then converted to a string and the new values are added to the values list. For example, the profile for John has the Language property with property value as “English”. You pass new values such as "Spanish" and "German" to the Language property. Now, the Language property will include all values, that is, English, Spanish, and German. * When removing items from a multi-value property via an API, it checks if the property contains a scalar value. If the property contains a scalar value, it is promoted from a single value property to a multi-value property before the value is removed. If the multi-value property becomes empty after removing the values, then the property is also removed (for the specified profile). For example, the profile for Jane has the Language property with property value as “English”. You remove English from the Language property. Now, the Language property is removed from Jane’s profile. ### Prohibited Characters [](https://docs.clevertap.com/docs/platform-considerations#prohibited-characters) The following characters are prohibited in key names: percent (%), greater than sign (>), less than sign (<), exclamation point (!), pipe (|), ampersand (&), dot(.), colon( : ), semi-colon(;), dollar sign($), single quote('), double quote("), backslash( \\ ), and hash(#). For example, you cannot have a key named “$erialNo>Fifty”. Upload User Profiles API [](https://docs.clevertap.com/docs/platform-considerations#upload-user-profiles-api) ----------------------------------------------------------------------------------------------------------------- * Calls to the Upload User Profiles API endpoint are synchronous. We recommend making individual calls, waiting for our response, and then make another request. * Concurrent requests to the Upload User Profiles API are limited to 15 per account. Requests that exceed the limit will return a 429 HTTP response code. Events [](https://docs.clevertap.com/docs/platform-considerations#events) ============================================================================= General Constraints [](https://docs.clevertap.com/docs/platform-considerations#general-constraints) ------------------------------------------------------------------------------------------------------- * The maximum number of User Event types per app is 512. While the number may appear limited at first, you can use it with properties and record substantial User Event data. The volume of events submitted per account across those User Event types is practically unlimited. * For each User Event that is recorded, the maximum number of Event Properties is limited to 256. * The _Charged_ Event supports up to 256 Items values. * Event property keys must be of type String and property values must be Scalar values, that is, String, Boolean, Integer, Float, or a Date object. * Prohibited characters for Event names are: percent (%), greater than sign (>), less than sign (<), exclamation point (!), pipe (|), ampersand (&), dot(.), colon( : ), semi-colon(;), dollar sign($), single quote('), double quote("), and backslash( \\ ). * User Event keys are limited to 120 characters in length. * User Event property values are limited to 512 characters in length. * Event names that differ only by spaces are not considered unique. For instance, `Event Name` and `EventName` are treated as the same event. To avoid this conflict, use separators such as underscores (\_) or hyphens (-). For example, use `Event_Name` or `Event-Name` instead of `EventName`. * Event names are not case-sensitive, meaning that variations such as `SignUp`, `signup`, and `SIGNUP` are considered as the same event. If a previously discarded event name is reused with a different capitalization, it will still be rejected. To prevent this issue, it is recommended to create a distinct name by adding a character such as an underscore (\_) or a dash (-). For example, instead of using `SignUp`, you could use `SignUp_New`. Upload Events API [](https://docs.clevertap.com/docs/platform-considerations#upload-events-api) --------------------------------------------------------------------------------------------------- * Notification Sent, Notification Viewed, Notification Clicked, Notification Delivered, Notification Replied, UTM Visited, App Launched, App Uninstalled, App Version Changed, and Stayed, Reply Sent, Experiment Rendered, Reachable By, Identity Reset, Identity Set, and Identity Error are system event names that are available by default and used across the system. These are reserved event names that cannot be used for custom events. * Avoid using event property names similar to system event properties. This affects the eligibility for trigger campaigns using the same event property. For instance, _device\_type_ is already a system event property used to monitor device-related data. Therefore, use more generic names for custom event properties to avoid potential conflicts with system properties. * Prohibited characters in event and property names include percent (%), greater than sign (>), less than sign (<), exclamation point (!), pipe (|), ampersand (&), dot(.),colon( : ), semi-colon(;), dollar sign($), single quote('), double quote("), and backslash( \\ ). * Calls to the Upload Events API endpoint are synchronous. We recommend making individual calls, waiting for our response, and then make another request. * Concurrent requests to the Upload Events API are limited to 15 per account. Requests that exceed the limit will return a 429 HTTP response code. Channel-Specific Timeouts and Retries [](https://docs.clevertap.com/docs/platform-considerations#channel-specific-timeouts-and-retries) =========================================================================================================================================== CleverTap provides multiple engagement channels such as Mobile Push Notifications, SMS, WhatsApp, Email, Webhooks, and more. These channels allow you to collect data or send engagements via your Business Service Providers (BSPs). When you integrate your BSP's API endpoint with our system, you might expect answers to the following questions: * What throughput should you expect? * What is the expected response window? * How often does CleverTap retry if it receives an error from your service provider's API endpoint? * What are the various types of errors? CleverTap offers native integrations with various third-party service providers (BSPs) that operate on different communication channels, such as GupShup (for Email and WhatsApp), Nexmo (for WhatsApp), Sendgrid (for Email), and so on. Each BSP has unique configuration settings for batch processing and timeouts tailored to their specific processing capabilities. Best Practices to Follow [](https://docs.clevertap.com/docs/platform-considerations#best-practices-to-follow) ----------------------------------------------------------------------------------------------------------------- For a seamless experience, we recommend you follow the below-mentioned best practices: * Consider a scenario where your BSP's API experiences a temporary surge in traffic, leading to delayed responses or potential errors. In this case, implementing queuing logic can ensure a smoother process. You enable data processing on your terms by providing CleverTap with an HTTP response code 200 using the POST method. This mitigates the impact of potential fluctuations. * CleverTap diligently respects HTTP codes and categorizing. For example, HTTP codes that lie in the range of 3xx, 4xx, and 5xx are marked as errors. For more information, refer to [API Errors](https://developer.clevertap.com/docs/api-errors) . * When CleverTap receives an error response due to a temporary technical issue from your service provider, it is important to follow CleverTap's specified [Timeout and Retry Limits](doc:platform-considerations#timeouts-and-retries) . Adhering to these limits ensures that necessary retries are performed, ultimately improving the integration reliability. Timeouts and Retries [](https://docs.clevertap.com/docs/platform-considerations#timeouts-and-retries) --------------------------------------------------------------------------------------------------------- To understand the implemented timeouts and retries that CleverTap respects, refer to the following terms: * **Channel**: The name of the messaging channel. * **Timeout (ConnectionRequest)**: The configured API cannot respond within the expected time window. * **Retry Limits**: The number of times the CleverTap server retries. For more information about timeouts and retries for each channel, refer to the following: * [Push Notifications](doc:troubleshooting-faqs-push-notifications#q-what-are-the-timeouts-and-retry-times-for-push-notifications) * [Web Push](doc:web-push-stats#what-are-the-timeouts-and-retry-limits-for-web-push-notifications) * [SMS](doc:sms-faqs#q-what-are-the-timeouts-and-retry-times-for-sms) * [Email](doc:troubleshooting-email#q-what-are-the-timeouts-and-retry-times-for-email) * [WhatsApp](doc:faqs-1#q-what-are-the-timeouts-and-retry-times-for-whatsapp) * [Webhook](doc:webhooks-overview#q-what-are-the-timeouts-and-retry-times-for-webhook) Updated about 2 months ago * * * Ask AI --- # Instapage Overview [](https://docs.clevertap.com/docs/instapage-via-zapier#overview) ============================================================================== [Instapage](https://instapage.com/) , a landing page platform, helps businesses create and optimize high-converting pages without coding. Marketers can capture leads through New Form Submissions, where visitors enter and submit their details (for example, Name, Email, Phone). Integrating Instapage with CleverTap via Zapier helps transfer leads, updates user profiles in real time, and triggers personalized engagement campaigns on CleverTap based on user actions. The following are some of the use cases that the CleverTap Instapage integration can address: * **Automatically Sync New Leads**: When a user submits a form on Instapage, [creation of a user profile is triggered](doc:instapage-via-zapier#createupdate-user-profiles) in CleverTap with details such as name, email, phone number, and so on. * **Update User Profiles with Form Submissions**: When an existing user fills out a new form, [updation of the profile is triggered](doc:instapage-via-zapier#createupdate-user-profiles) in CleverTap with the latest details, such as preferences or interests. * **Trigger Personalized Campaigns**: When a user submits a lead form, [an event is uploaded](doc:instapage-via-zapier#upload-event) in CleverTap with event details such as submission time, form type, and campaign source to trigger automated engagement workflows. Prerequisites for Integration [](https://docs.clevertap.com/docs/instapage-via-zapier#prerequisites-for-integration) ======================================================================================================================== The following are the prerequisites for Instapage: * Ensure you have access to your Instapage Account with a valid workspace token. * Ensure you have access to an active Zapier account to create the CleverTap app. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. Integrate Instapage with CleverTap using Zapier [](https://docs.clevertap.com/docs/instapage-via-zapier#integrate-instapage-with-clevertap-using-zapier) ============================================================================================================================================================ The integration process involves the following two major steps: 1. [Create a Passcode on the CleverTap Dashboard](doc:instapage-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 2. [Create/Update User Information](doc:instapage-via-zapier#createupdate-user-profiles) . OR [Upload Event](doc:instapage-via-zapier#upload-event) . Create a Passcode on CleverTap Dashboard [](https://docs.clevertap.com/docs/instapage-via-zapier#create-a-passcode-on-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Profiles [](https://docs.clevertap.com/docs/instapage-via-zapier#createupdate-user-profiles) ------------------------------------------------------------------------------------------------------------------- Consider an example where you want to automatically sync new forms submitted from Instapage with CleverTap to trigger personalized engagement campaigns. This automation ensures that new forms submitted from Instapage are added to CleverTap while existing forms are updated when details change. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. Zapier can connect different applications, such as Instapage. ![Create a Zap on Zapier Dashboard](https://files.readme.io/9b71c999e832d4a3344a2216c4e72dfaacf78feabca42da8617b0ec20d049f49-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _Instapage_ from the _App_ section. This starts the Zap when a trigger event occurs on Instapage. 2. Select _Trigger Event_ from the dropdown list and then select _Form Submission_ for this use case. 3. Select _Account_ and sign in using your Instapage [workspace token](https://help.instapage.com/hc/en-us/articles/11953465179159-Workspace-settings-and-account-settings) . You can also connect a new account if your account does not appear in the dropdown. refer to [Integrating with Zapier](https://help.instapage.com/hc/en-us/articles/360001720908-Integrating-with-Zapier) . 4. Click **Continue** after your workspace token has been accepted. All the pages within this particular workspace will be imported. 5. Select the page that you want to connect to and click **Continue**. ![Set Up Trigger Event](https://files.readme.io/2d788816cb3c71f454307f8cd3955ac227e0341993190afa1b598bb31d38d5f8-2025-02-03_10-25-08_1.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. After testing the trigger, you will see details of pulled records similar to the image below. ![Pulled Records](https://files.readme.io/2b99401f69593a359ac1110a6c6132c140c061aea1316e7f1215c969851f7566-image.png) Details of Pulled Records 5. Click **Continue with selected record**. 6. _Select the Action_ that zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ event dropdown. 2. Select _Create/Update User Profile_ from the _Action event_ dropdown. This implies that whenever a new form is submitted, a new user profile is created, or an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. 4. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained in the [Create a Passcode on CleverTap Dashboard](doc:instapage-via-zapier#create-a-passcode-on-the-clevertap-dashboard) step. 5. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/a1a233c252eb2bcb8a9952932a4c94bcd2c56bd83be36c80dfc1dfe7d1e10392-2025-02-03_10-28-31_1.gif) Select Action for Zap 6. **Configure the Action**. Map Instapage data fields to CleverTap fields as follows: | **CleverTap Field** | **Instapage Field** | | --- | --- | | **Identity** | Instapage user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Date of the user’s creation in Instapage. | | **Profile Properties** | Include user properties in JSON format (such as name, email, role, and other custom properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/instapage-via-zapier#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/a1be3cfe84968a98c1dbd121081cd4be5e12c18892130be9c8646894169f5566-image.png) Configure the Action 7. Click **Continue** and click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, a new user is created, or an existing user is updated on the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm the user profile has been created or updated. ![Verify user in CleverTap](https://files.readme.io/22d496be8a5e1407f768b1da28e7e73561e1f39613a71b5229193767f597293e-image.png) Verify user in CleverTap Upload Event [](https://docs.clevertap.com/docs/instapage-via-zapier#upload-event) -------------------------------------------------------------------------------------- Consider an example where a user submits a form on an Instapage landing page to download a resource, such as the "Marketing Trends 2025" eBook. This automation ensures that the form submission is recorded as an event in CleverTap, allowing businesses to track content engagement. By leveraging this data, businesses can segment users based on interests, trigger targeted email/SMS campaigns, and re-engage them with personalized offers or webinars, improving conversions and retention 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. 2. **Set up a Trigger**. For this example, perform the following steps: 1. Select _Instapage_ from the _App_ section. This starts the Zap when a trigger event occurs in Instapage. 2. Select _Trigger Event_ from the dropdown list and select _Form Submission_ in this case. 3. Select _Account_ and sign in using your Instapage [workspace token](https://help.instapage.com/hc/en-us/articles/11953465179159-Workspace-settings-and-account-settings) . You can also connect a new account if your account does not appear in the dropdown. refer to [Integrating with Zapier](https://help.instapage.com/hc/en-us/articles/360001720908-Integrating-with-Zapier) . 4. Click **Continue** once your workspace token has been accepted, and all the pages within this particular workspace will be imported. 5. Select the page that you want to connect to and click **Continue**. ![Set Up Trigger Event](https://files.readme.io/ca1b44f10b3a82190de50fdc829cfd13bd75b47b4e2e269f82d9ca0bb54416ca-2025-02-03_10-25-08_1.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue**. After testing the trigger, you will see details of pulled records similar to the image under _step 4_ of [Create/Update User Profiles](doc:instapage-via-zapier#createupdate-user-profiles) . 5. Select any one record, and click **Continue with selected record**. 6. **Select the Action** that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ event dropdown. 2. Select _Upload Event_ from the Action _event_ dropdown. This implies that whenever a new event is generated, a new user profile is created, and an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. For more information about how to do this, refer to _step 5 (iii)_ under [Create or Update User Profiles](doc:instapage-via-zapier#createupdate-user-profiles) . 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/ea4a8b64eba629e8b65a9e30c07117ea9a4b19ecf120e40044b2d8f48a43dbe7-image.png) Select Action for Zap 6. **Configure the Action**. Map Instapage data fields to CleverTap fields as follows: | **CleverTap Field** | **Instapage Field** | | --- | --- | | **User ID** | Instapage user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Event creation date. | | **Event Name** | Select a predefined event or create a custom event. You can also map the event name using the Instapage data fields. | | **Event Properties** | Include metadata in JSON format (for example, event type, priority, event properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/instapage-via-zapier#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/75d925cad97915288b31dd58bcf061e64113db667f8054c4d9742507d6de5a5c-image.png) Configure the Action 7. Click **Continue**. Click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify whether the user is new or existing. You can verify this by checking your CleverTap dashboard to confirm if the event has been logged. ![Verify Events in CleverTap](https://files.readme.io/a259011eccc4f51a518798447618f843a3045fcacb8c5028b0314434397c9058-image.png) Verify Events in CleverTap FAQs [](https://docs.clevertap.com/docs/instapage-via-zapier#faqs) ====================================================================== ### What happens if you do not map the required fields? [](https://docs.clevertap.com/docs/instapage-via-zapier#what-happens-if-you-do-not-map-the-required-fields) Not mapping required fields may result in incomplete data being transferred or failure to update user profiles and events correctly. Updated about 2 months ago * * * Ask AI --- # Product A/B Tests (Legacy) Our Product Experiences suite helps you enrich your app users' experience right from the CleverTap dashboard using AB testing as a tool. CleverTap A/B Test allows Application Developers, Product Managers, and Marketers to run A/B tests for their mobile Apps. This feature provides a web-based interface for managing tests. For example, test your app for a better click-through rate. There are many ways in which you can present the CTA button. In our example, let us assume that the button on one variant of the app says "Buy Now", and the same button in another variant says "Hurry!". You can run this test for 4-5 weeks and determine which CTA delivers a higher click-through rate. You can roll out these changes partially to say 10 percent of the segment. When you are satisfied with the results, you can declare a variant that generates the highest click-through rate as a winner, and then roll out this variant to all the users. Getting Started [](https://docs.clevertap.com/docs/product-exp-ab-tests#getting-started) -------------------------------------------------------------------------------------------- An A/B test has three components. * Segment - The set of users that will see the different variants. For creating segments, see [Create Segments](https://docs.clevertap.com/docs/product-experiences-setup#section-create-segments) . * Keys - These are the keys that you have defined in your app code. You can map these keys from the CleverTap dashboard and control your app's configuration. Keys allow you to define the variable and default value to be used in the test. Keys can be shared across multiple A/B tests. For more information about creating keys, see [Create Keys](https://docs.clevertap.com/docs/product-experiences-setup#section-create-keys) . * Goals - This is the desired outcome of your test. They help evaluate the performance of an A/B test. It is an event and when a user performs this event, it is considered as a conversion. For more information on creating goals, see [Creating Goals](https://docs.clevertap.com/docs/product-experiences-setup#section-create-goals) An A/B test consists of a default control variant and one or more test variants. For each variant, CleverTap enables you to quantify the impact on important metrics such as a conversion event or goal. Define A/B Test [](https://docs.clevertap.com/docs/product-exp-ab-tests#define-ab-test) =========================================================================================== 1. Click Product Experiences > A/B Tests. 2. Click the +A/B Tests button. The Create New page appears. 3. Add a name and meaningful description for the test. ![Define A/B Test](https://files.readme.io/160bb9e-Define_AB_Tests.png) Define A/B Test Select Segment and Goals [](https://docs.clevertap.com/docs/product-exp-ab-tests#select-segment-and-goals) ============================================================================================================== 1. Select a Segment or a test group from the Segment. If you want to roll out the test partially, select the percentage of users in a segment that can see the test, using test group %. 2. Select the goals. In our example, we select a single goal. It is a purchase event. For creating a goal, see [Set up Goals](https://docs.clevertap.com/docs/product-experiences-setup#section-goals) . You can select a maximum of 5 goals. ![916](https://files.readme.io/e0ccaec-AB_Segment_Segments_Goals.png "Select segment and goals for your A/B Tests") Selecting Segments and Goals for A/B Tests 3. Make users exclusive for this test. From a qualifying segment, only unique users that are not part of any other test are selected. Also, such users are not included in any other test until the current test is stopped, rolled out, or the user is disqualified for some reason. For more information, see [Setting mutually exclusive users](https://docs.clevertap.com/docs/product-experiences-setup#section-mutually-exclusive-a-b-tests) 4. Check the box to keep qualified users in the segment. It means that the user will remain in the test unless it is stopped or rolled out, even if they disqualify from the test after some time. Create Variations [](https://docs.clevertap.com/docs/product-exp-ab-tests#create-variations) ------------------------------------------------------------------------------------------------ 1. Create different variations of the test. Select [Keys](https://docs.clevertap.com/docs/product-experiences-setup#section-create-keys) and enter values for the Test Variant. The Control Variant displays the default value defined for the key in the setup, which cannot be edited. You can have a maximum of 7 variants. 2. Click Next. ![Creating Variations and Keys](https://files.readme.io/c55b1bb-Create_variations.png) Creating Variations and Keys > 📘 > > All identified users will always get the same variant across all devices. If some users choose not to identify, then they may see different variants on different devices. Schedule AB Test [](https://docs.clevertap.com/docs/product-exp-ab-tests#schedule-ab-test) ============================================================================================== Schedule the start and end time of your test. You can choose to start immediately or at a later date and time. ![633](https://files.readme.io/a31d8ed-AB_Test_Schedule.png "Scheduling A/B tests") Scheduling A/B Tests Publish AB Test [](https://docs.clevertap.com/docs/product-exp-ab-tests#publish-ab-test) ============================================================================================ Publish the test to start receiving results. 1. Save the test and review all the test information. ![864](https://files.readme.io/a5716f3-AB_Test_Publish_Summary.png "Review and edit variations for A/B Tests ") Reviewing A/B Test Variations 2. Publish the test. ![881](https://files.readme.io/b378cf2-AB_Experiment_Publish.png "Publish A/B Tests") Publishing A/B Tests Manage Test [](https://docs.clevertap.com/docs/product-exp-ab-tests#manage-test) ==================================================================================== 1. Navigate to Product Experiences > A/B Tests. The A/B Tests page lists all the tests. 2. Click the required test from the list. The Stats page appears by default. Edit Test [](https://docs.clevertap.com/docs/product-exp-ab-tests#edit-test) -------------------------------------------------------------------------------- You can edit a published test. The following fields can be edited in a test - * Change the description * Change the test group % of the chosen segment * Add or delete goals * Add or delete keys * Change values of the keys 1. Navigate to Product Experiences > A/B Tests. The A/B Tests page lists all the tests. 2. Click the required test from the list. 3. Click Setup. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-exp-ab-tests#note) > > For a Scheduled AB test, all components including segment can be edited. ### Version Control [](https://docs.clevertap.com/docs/product-exp-ab-tests#version-control) A new version is created every time a published test is edited. The stats for each version are tracked separately. You can revert to an older version of the test. To view versions, follow the steps: 1. Open Product Experiences > A/B Tests. The A/B Tests page lists all the tests. 2. Click the required test from the list. 3. Click the View Version History link. ![873](https://files.readme.io/55ef7bb-AB_Test_version_link.png "Click View version history link to view versions of the variations") Click View Version History 4. The Version History page appears. Click the required version to see the stats. You can revert to an earlier version anytime. ![897](https://files.readme.io/64d3297-AB_Test_version_history.png "View version history details") Viewing Version History Details View Stats [](https://docs.clevertap.com/docs/product-exp-ab-tests#view-stats) ---------------------------------------------------------------------------------- You can view the test stats to determine the performance of the test. In our example, we need the CTA with the highest conversion. 1. Navigate to Product Experiences > A/B Tests. The A/B Tests page lists all the tests. 2. Click the required test from the list. The Stats page appears by default. 3. Scroll down to see all the stats. ### Statistical significance [](https://docs.clevertap.com/docs/product-exp-ab-tests#statistical-significance) Statistical significance provides a measurable impact for your winning variant by eliminating any possibility of a chance winner. We use Welch's t-test to measure statistical significance. The formula for calculating the necessary confidence level for a variant to be declared as statistically significant is `100 - (5 / number of variants - 1)`. For more information on A/B testing, see [How to Identify and Mitigate Risk in A/B Testing](https://clevertap.com/blog/how-to-identify-and-mitigate-risk-in-a-b-testing/) . ![2336](https://files.readme.io/29d2015-AB_Exposure_event_Stats.png "View statistical significance of variations") Viewing Statistical Significance of Variations Exposure Event [](https://docs.clevertap.com/docs/product-exp-ab-tests#exposure-event) ------------------------------------------------------------------------------------------ An exposure event can help to determine the exact order of events that lead to a goal. You can assign an event as an exposure event to further test the effectiveness of your campaign. For example, you can check if the number if the user immediately performs a purchase after viewing a product. You can set the product-viewed event as an exposure event. Another aspect of using an exposure event is it allows you to measure more focused conversions. Once it is toggled on, you can see the conversions of only those users who actually saw the experiment or were exposed to it as per the event defined. To set exposure events, follow these steps: 1. Navigate to Product Experiences > A/B Tests. The A/B Tests page lists all the tests. 2. Click the required test from the list. The Stats page appears by default. 3. Toggle the Test exposure event button. ![2366](https://files.readme.io/2fe5828-AB_Exposure_event_toggle.png "Toggle ON the Test exposure event option") Enable Exposure Events 4. Select and save the exposure event ![908](https://files.readme.io/8c40e29-AB_Exposure_event_set.png "Select and save exposure events") Selecting and Saving Exposure Events 5. View Conversion Stats. ![2336](https://files.readme.io/9b5c0b4-AB_Exposure_event_Stats.png "View conversion stats") Viewing Conversion Stats Declare Winner [](https://docs.clevertap.com/docs/product-exp-ab-tests#declare-winner) ------------------------------------------------------------------------------------------ The best-performing variant can be declared a winner. 1. Click the Declare Winner button to declare a variant as the winner. The Declare Winner window appears. ![386](https://files.readme.io/28beebf-AB_Test_Declare_Winner.png "Declare the winning variant for A/B tests") Declare the Winning Variant 2. Select the Variant and click Declare to declare it as the winner. The stats page will now display the stats of the winning variant. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-exp-ab-tests#note-1) > > The test is still active after declaring the winner. Declaring a winner does not affect the test. You can always change the winning variant later. Rollout Variant [](https://docs.clevertap.com/docs/product-exp-ab-tests#rollout-variant) -------------------------------------------------------------------------------------------- After you are satisfied with the performance of a variant, you can roll it out to all users. This cannot be reversed. However, you can stop the test to stop rolling out the variant to the target segment. 1. Click the Roll Out button from the test. The Roll out variant window appears. ![392](https://files.readme.io/3034673-AB_Test_Rollout_Variant.png "Roll out winning variant for A/B Tests") Rolling Out Winning Variant 2. Select the variant 3. Select the segment. 4. Click Roll Out. This variant is rolled out to all the users in the segment and the test is marked as 'Rolled out'. Set Test Priority [](https://docs.clevertap.com/docs/product-exp-ab-tests#set-test-priority) ================================================================================================ A user may belong to multiple tests with the same key. In that case, you can assign a higher priority to the required test. This is only applicable to new users. In our example, say user A qualified for the variant 'Buy now'. Now another test is created for the same key. This newly created test has a higher priority. There is no change for user A. This user continues to see the variant from the first test. However, for a new user who qualifies for both the test after the new test is prioritized, the priority will be respected. This new user will get a variant from the new test because it has a higher priority. To set priority, follow the steps: 1. Navigate to Product Experiences > AB Tests. 2. Click the Priority Order Tab. The priority list appears. ![861](https://files.readme.io/be865df-AB_Test_Priority.png "Define test priority if the users belong to multiple tests") Defining Test Priority for A/B Tests 3. Drag and drop the test to prioritize the test. Video Tutorial [](https://docs.clevertap.com/docs/product-exp-ab-tests#video-tutorial) ========================================================================================== For further information, you can watch the following video on product A/B tests: Updated about 2 months ago * * * Ask AI --- # Mixpanel Mixpanel, an analytics and business intelligence platform, helps make informed decisions for targeting users. Integration CleverTap with Mixpanel allows you to export and import your CleverTap event data to your Mixpanel dashboard. * [Mixpanel Export](doc:mixpanel-export) * [Mixpanel Import](doc:mixpanel-integration) Updated about 2 months ago * * * Ask AI --- # SheetDB Overview [](https://docs.clevertap.com/docs/sheetdb#overview) ================================================================= [SheetDB](https://sheetdb.io/) turns a Google Spreadsheet into a RESTful JSON API. It enables you to use spreadsheets as dynamic data sources that can be read from or written to in real time. With this integration, you can: * Pull dynamic content (for example, titles, messages) into your CleverTap campaigns using Linked Content. * Push user data from CleverTap into a Google Sheet via Webhook campaigns. Prerequisites for Integration [](https://docs.clevertap.com/docs/sheetdb#prerequisites-for-integration) ----------------------------------------------------------------------------------------------------------- The following are the prerequisites for SheetDB: * Ensure you have a valid SheetDB account. * Ensure your spreadsheet has column headers such as `ID`, `Title`, `Message`, and `Button`. * Ensure you have access to the CleverTap dashboard. Integration Overview [](https://docs.clevertap.com/docs/sheetdb#integration-overview) ========================================================================================= The integration process involves the following three major steps: 1. [Create an API in SheetDB](doc:sheetdb#create-an-api-in-sheetdb) 2. [Configure the Linked Content API](doc:sheetdb#configure-the-linked-content-api) 3. [Create a Personalized Campaign Using Linked Content](doc:sheetdb#create-a-personalized-campaign-using-linked-content) > 📘 > > ### > > Import Your Spreadsheet into SheetDB > > [](https://docs.clevertap.com/docs/sheetdb#import-your-spreadsheet-into-sheetdb) > > To begin, connect a Google Sheet or upload a new one in the SheetDB dashboard. Your spreadsheet should include headers such as `ID`, `Title`, and `Message` for use in CleverTap campaigns. Create an API in SheetDB [](https://docs.clevertap.com/docs/sheetdb#create-an-api-in-sheetdb) ------------------------------------------------------------------------------------------------- 1. Log in to your SheetDB dashboard and click **\+ Create New API**. 2. Select your source: * _Existing spreadsheet_ * _Create new spreadsheet_ * _Create new spreadsheet JSON_ ![Select Source](https://files.readme.io/0f042798072802b793ec8e2363660205ed93a7455b98e99c88b16ab24405dcd5-image.png) Select Source 3. Paste the Google Sheet URL to generate the API for your spreadsheet. ![](https://files.readme.io/03c444a48910b34cb5c65708ebd9f7a8bf13f478dfb43872ac48bc6c4fa550d8-Screen_Recording_2025-02-05_at_2.43.41_PM_1.gif) 4. Once setup is complete, copy the generated **API URL** for your spreadsheet. Configure the Linked Content API [](https://docs.clevertap.com/docs/sheetdb#configure-the-linked-content-api) ----------------------------------------------------------------------------------------------------------------- Set up Linked Content in CleverTap to connect your SheetDB API and retrieve dynamic campaign content using user profile parameters. 1. Go to _Settings_ > _Setup_ > _Linked Content_ in the CleverTap dashboard. Click **\+ Linked Content**. ![Add Linked Content](https://files.readme.io/a06da6f0b7efc54f86dc7cf9f2af6c8dcfa0fe4b529b000e9c71bfa6615ff3f3-image.png) Add Linked Content 2. In the **URL** field, paste the **API URL** copied in the previous step, and append the filter query using a profile parameter: https://sheetdb.io/api/v1//search?ID={{id}}&single_object=true In this example, `ID` is used to identify the user from the spreadsheet based on their CleverTap `Identity`. 3. Click **Test Linked Content** and enter a sample ID to preview the response. ### Example Response [](https://docs.clevertap.com/docs/sheetdb#example-response) JSON { "ID": "1234", "Titile": "Hey", "Message": "How are you been?", "Button": "Buy Now!" } 4. Click **Auto-Fill Objects with Response** to automatically map the fields from the API response to custom labels, as shown below. ![Auto-Fill Objects with Response](https://files.readme.io/c00a87fdc168e43428afcfd060fb01be047b7f3b09f02100c7f4ce10a6f8bdc6-image.png) Auto-Fill Objects with Response 5. Click **Test and Save** to save this API. ![Save Linked Content](https://files.readme.io/2ce451f75d46a57624713c63a1533e9bdee811edab759c5367f5b57a2ae66b44-image.png) Save Linked Content Once the SheetDB data is available through Linked Content, you can use it in any CleverTap campaign that supports personalization, such as [Push Notifications](doc:create-message-push) or [Email Campaigns](doc:create-message-email) . Create a Personalized Campaign Using Linked Content [](https://docs.clevertap.com/docs/sheetdb#create-a-personalized-campaign-using-linked-content) ------------------------------------------------------------------------------------------------------------------------------------------------------- Use the Linked Content API inside a Push Notification campaign to personalize the message with SheetDB. To do so, perform the following steps: 1. Go to _Campaigns_ from the CleverTap dashboard and click **\+ Campaign**. 2. Select _Push Notification_ from the Messaging Channels list. 3. Configure all the campaign settings and then go to the _What_ section: 1. Click **Personalization** 2. Select the _Linked Content_ configured under [Configure the Linked Content API](doc:sheetdb#configure-the-linked-content-api) and click **Apply**. ![Personalization](https://files.readme.io/a3374c8a1e5bc30a31aa7a3a306e8af5223cd4605cae1af3d3fc8d4c420c545f-2025-05-09_19-59-27_1.gif) Personalization 4. Type `{`, `{{`, or `@` to view available personalization options. For more information about how to personalize a message using Linked Content, refer to [CleverTap Liquid tag](doc:personalize-message-all) . ![Create Personalized Message Using Linked Content](https://files.readme.io/6d72365caee91c86624e70cc6a2c9263e5fda1c9879c16cc566c6f0b07b8bc4c-image.png) Create Personalized Message Using Linked Content 5. Click **Preview & Test** to see if the campaign pushes the default values you configured. 6. Click **Publish** to launch the campaign. Verify that everything works as intended. Users will receive a push notification like the one below. ![Push Notifications](https://files.readme.io/603907b0cec1fd9e727345df285791fea6588734f8449e407ece8501442ee94d-image.png) Push Notifications Similarly, you can apply this setup to other CleverTap campaigns using linked content, such as [Email](doc:create-message-email) , [Web Push](doc:create-message-web-push) . Updated about 2 months ago * * * Ask AI --- # Promo Campaign Errors Overview [](https://docs.clevertap.com/docs/promo-campaign-errors#overview) =============================================================================== The **Errors** tab displays all failed reward distribution attempts for a Promo campaign. It helps you understand why a reward could not be issued, how often each error occurs, and whether limits, configurations, or system-level failures affected campaign performance. These errors also help you: * Diagnose reward delivery failures. * Verify whether limits such as user-level, campaign-level, or redemption limits are being reached. * Identify configuration issues with wallets, coupons, vouchers, or reward setups. * Detect system-level failures such as assignment failures, _parsing errors_, or _inactive reward systems_. By monitoring these errors, you can take targeted actions, such as updating reward configurations, increasing budgets, replacing exhausted code lists, or troubleshooting webhook integrations. This tab is available for all campaign types and displays historical error logs for the selected date range. ![](https://files.readme.io/b4306397c0fc8c480f018c5ab3b411f7bce911d99d7f38ee60870b4c142cdccb-image.png) Promo Campaign Errors Total Errors [](https://docs.clevertap.com/docs/promo-campaign-errors#total-errors) ======================================================================================= At the top of the **Errors** tab, the total number of failed reward distributions for the campaign is displayed. If no errors have occurred, the page displays an empty state, indicating that the campaign is running without any reward distribution issues. Errors vary depending on the reward type selected in the campaign: * [Loyalty Wallet Errors](doc:promo-campaign-errors#loyalty-wallet-errors) * [Coupon Errors](doc:promo-campaign-errors#coupon-errors) * [Partner Voucher Errors](doc:promo-campaign-errors#partner-voucher-errors) Loyalty Wallet Errors [](https://docs.clevertap.com/docs/promo-campaign-errors#loyalty-wallet-errors) --------------------------------------------------------------------------------------------------------- The following errors may occur when distributing _Loyalty Points_ through a wallet. | Error Type | Description | | --- | --- | | **Invalid wallet configuration** | Reward ID or wallet details are invalid. | | **Inactive user wallet** | User’s wallet is inactive or does not exist. | | **Invalid points calculated** | Calculated points are less than 0 or not a numeric value. | | **User’s reward recurrence limit exceeded** | User has already been rewarded the maximum number of times allowed per user from this campaign. | | **Campaign’s points budget exceeded** | Campaign has reached the maximum points distribution budget. | | **User’s points budget exceeded** | User has already been rewarded the maximum number of points allowed per user in this campaign. | | **Points credit failed** | Failed to credit points due to a system error. | Coupon Errors [](https://docs.clevertap.com/docs/promo-campaign-errors#coupon-errors) ----------------------------------------------------------------------------------------- The following errors may occur for _Single Code_ or _Bulk Code_ coupon rewards. | Error Type | Description | | --- | --- | | **Invalid coupon configuration** | Reward ID or coupon details are invalid. | | **Inactive coupon** | Coupon has expired or is inactive. | | **Campaign’s coupon limit exceeded** | Campaign has reached the maximum number of coupons that can be rewarded. | | **User’s coupon limit exceeded** | User has reached the maximum coupon rewards allowed per user for this campaign. | | **Codes from bulk coupon series exhausted** | All possible codes from the bulk series have been distributed. | | **Coupon redemption limit exceeded** | Coupon has reached its maximum redemption limit. | | **Coupon assignment failed** | Failed to assign a coupon due to a system error. | Partner Voucher Errors [](https://docs.clevertap.com/docs/promo-campaign-errors#partner-voucher-errors) ----------------------------------------------------------------------------------------------------------- The following errors may occur when the reward type is a _Partner Voucher List_. | Error Type | Description | | --- | --- | | Invalid voucher configuration | Reward ID or voucher details are invalid. | | Inactive voucher list | Voucher list has expired or is inactive. | | **Campaign’s voucher code limit exceeded** | Campaign has reached the maximum number of vouchers that can be rewarded. | | _**User’s voucher code limit exceeded**_ | User has reached the maximum voucher rewards allowed per user for this campaign. | | **Codes from voucher list exhausted** | All codes from the uploaded voucher list have been distributed. | | **Voucher code assignment failed** | Failed to assign voucher code due to a system error. | Updated 19 days ago * * * Ask AI --- # Create Coupons Overview [](https://docs.clevertap.com/docs/create-coupons#overview) ======================================================================== The _Create Coupon_ page allows you to define, configure, and launch coupon-based rewards tailored to your business goals. You can create single or bulk coupon codes, set up reward types, define redemption limits, and control visibility and expiration settings. Coupons created through this flow can be used in Promo Campaigns, distributed via user actions, or uploaded in bulk for manual assignment. Create Coupon [](https://docs.clevertap.com/docs/create-coupons#create-coupon) ================================================================================== To create a coupon, go to _Promotions_ > _Rewards_ > _Coupons_, and click **Create Coupon**. The entire process is divided into the following three key steps: 1. [Select Coupon Type](doc:create-coupons#select-coupon-type) 2. [Select Reward Effect](https://docs.clevertap.com/docs/create-coupons#select-reward-effect) 3. [Configure Coupon](doc:create-coupons#configure-coupon) Select Coupon Type [](https://docs.clevertap.com/docs/create-coupons#select-coupon-type) -------------------------------------------------------------------------------------------- Select how you want to distribute the coupon codes to your users based on your engagement strategies, then click **Next** to continue. * **Single code for all users**: A single coupon code that can be used by all users without eligibility criteria. This includes new visitors and existing users. For example, use code `CHRISTMAS20` to get 20% off on your entire order—no sign-up, login, or purchase history required. This type of code is ideal for platform-wide promotions such as festive sales, homepage banners, or email campaigns targeting a broad audience. * **Single code based on user actions**: A single coupon code that is distributed through Promo campaigns when users meet specific qualifying conditions, such as signing up, completing a purchase, or reactivating after a period of inactivity. For example, use code `WELCOME100` to get $100 cashback on your first order. This type of coupon is best used for milestone-based campaigns such as onboarding, re-engagement, or referral rewards, ensuring the reward is tied to meaningful user actions. * **Downloadable bulk unique codes**: Unique, one-time-use codes that can be redeemed by any user—no eligibility criteria required. These are generated in bulk using customizable code formats (for example, alphanumeric), with optional prefix, suffix, and length settings. For example, generate 10,000 unique codes such as `SAVE25XYZ`, which are then distributed via any partner platform. This type of coupon is ideal for offline promotions, printed flyers, or third-party channels where you want to restrict each user to a single redemption without needing system-based user segmentation. * **Bulk unique codes based on user actions**: One-time-use codes that are automatically assigned to users who meet specific conditions defined in a linked Promo campaign. The system selects and assigns a unique code from the coupon pool when the user qualifies. For example, assign a unique code to each user who completes three purchases in a loyalty campaign. The code is automatically issued once the condition is met and can be redeemed only once by that user. This type of coupon is ideal for personalized reward journeys or limited inventory campaigns where you want to control distribution based on behavioral triggers. The preview panel provides a representative visualization of each selected coupon type, helping you understand how the coupon will appear and function for users. ![Select Coupon Type from the Available Types](https://files.readme.io/817615e15b51e294723fa2b396f7e1c518b58b0d9497b20d29bd5c210f8e54df-2025-03-24_15-27-29_1.gif) Select Coupon Type from the Available Types Select Reward Effect [](https://docs.clevertap.com/docs/create-coupons#select-reward-effect) ------------------------------------------------------------------------------------------------ Define where the coupon discount will be applied within the order and click **Continue** to configure coupon settings: * **Entire Order**: Applies the discount to the total order value. For example, a coupon offering 20% off on an order worth $250 results in a $50 discount. The user pays $200. * **Specific Products**: Applies the discount only to selected products in the cart. For example, a coupon offering 30% off on jackets, where the cart includes a jacket ($2,000) and shoes ($3,000). The discount applies only to the jacket (30% of $2,000 = $600). The final payable amount is $4,400. * **Custom Order Property**: Applies the discount to a custom property such as platform fees, convenience fees, or surge charges. For example, a coupon offering 50% off on platform fees. If the order subtotal is $2,000 and the platform fee is $200, the user gets a $100 discount, reducing the total payable amount to $2,100. The preview panel displays a visual breakdown of how the coupon is applied, including itemized pricing, discount amount, and final total. ![Select Reward Effect for a Coupon](https://files.readme.io/11375f30bb60e5c64a0263811f8ba5b5a2e7d047bb1ddb1f67e47a0c4ad1fbd8-2025-03-24_15-31-25_1.gif) Select Reward Effect for a Coupon Configure Coupon [](https://docs.clevertap.com/docs/create-coupons#configure-coupon) ---------------------------------------------------------------------------------------- ### Key Details [](https://docs.clevertap.com/docs/create-coupons#key-details) Define the core identity and structure of your coupon. The following table outlines each available field, its purpose, and the coupon types it applies to. | Field | Description | Single Code | Bulk Unique Codes | | --- | --- | --- | --- | | **Coupon code** | A static code users apply at checkout (for example, `FLAT500`). | ✅ | – | | **Coupon name** | Internal name to identify the coupon set (for example, `FLAT_APRIL_2025`). | – | ✅ | | **Code format** | Choose the format for generated codes: Numeric, Alphabetic, or Alphanumeric. | – | ✅ | | **Code length** | Set the number of characters for each generated code. | – | ✅ | | **Number of codes** | Total number of unique codes to generate (for downloadable bulk codes). | – | ✅ | | **Prefix/Suffix** | Add optional text before or after the generated code for tracking or branding. | – | ✅ | | **Coupon description** | A short description of the offer shown to users or used internally. | ✅ | ✅ | | **Terms & Conditions** | Define restrictions or usage notes such as "One-time use only" or "Cannot be combined." | ✅ | ✅ | | **Coupon visibility** | Toggle ON to make the coupon code visible to users in the coupon tray | ✅ | ✅ | You can preview how the coupon will appear in the user’s coupon tray. > 📘 > > ### > > Coupon Preview > > [](https://docs.clevertap.com/docs/create-coupons#coupon-preview) > > The preview panel on the right provides a visual representation of how the coupon will appear in the user’s coupon tray. This is only a sample and may not reflect the exact in-app appearance. To customize the tray layout, refer to [Fetch Coupon API](https://staging.docs.dev.clevertap.net/docs/fetch-coupon) > . ### Reward [](https://docs.clevertap.com/docs/create-coupons#reward) Choose where the reward should be applied within the user’s order. This determines which part of the cart or transaction the discount or cashback will target as follows: ![Define Reward Scope](https://files.readme.io/a5e9b19718944996b157c361902beab0a55df2d5f72a93e1cbffe29c2bc1d1a9-Configure_Reward_Section_.png) Define Reward Scope #### Reward Effect [](https://docs.clevertap.com/docs/create-coupons#reward-effect) Each _Reward effect_ provides additional configuration options as follows | Reward Effect | Description | Unique Configuration Options | | --- | --- | --- | | **Entire Order** | Applies the reward to the total value of the order. | **Exclude products**

: Enable this option to exclude certain products from the coupon discount. For example, if you select exclude

`itemName = iPhone 15`

and if a cart contains

`iPhone 15`

and

`AirPods`

, only the

`AirPods`

value will be considered for discount calculation. | | **Specific Products** | Applies the reward only to selected products in the cart. | * **Product Filters**: Define which products are eligible for the reward based on attributes such as `itemName` or `category`. You can apply multiple filters using AND/OR logic. Additionally, you can use custom catalog properties from your product catalog to define business-specific filters.
* **Qualifying rules**: Once eligible products are identified using filters, you can define qualifying rules that determine when the reward should apply. These rules are evaluated only against discount-eligible items and include:
* `itemsTotalQuantity`: The total number of eligible items in the cart.
* `itemsSaleAmount`: The total sale value of eligible items, calculated as unit price × quantity.You can combine these rules using AND or OR to specify whether all conditions must be met or just any single is sufficient. | | **Custom Order Property** | Applies the reward to a specific order-level property. | **Applicable property**

: Choose a custom field such as platform fee or shipping cost | Once you select the reward scope, you can define the reward details such as _Reward type_ and _Discount value_. #### Reward Type [](https://docs.clevertap.com/docs/create-coupons#reward-type) The following are the options available for the _Reward types_ dropdown on the CleverTap dashboard: | Reward Type | Description | Supports Max Cap | | --- | --- | --- | | Fixed discount | Offers a flat reduction in the order amount. For example, enter 200 to give users $200 off on their purchases. | No | | Percentage discount | Applies a percentage-based discount to the order. For example, enter 15 to give users a 15% discount on their purchase. | Yes | | Fixed cashback | Gives fixed cashback points to the user wallet or account. For example, enter 100 to credit $100 cashback points to the user after a successful transaction. It also requires selecting the target _Loyalty wallet_, where the cashback will be credited. | No | | Percentage cashback | Credits cashback points based on a percentage of the order total. For example, enter 10 to provide 10% of the order value as cashback points. It also requires selecting the target _Loyalty wallet_ where the cashback will be credited. | Yes | > 📘 > > ### > > Max Cap for Percentage Rewards > > [](https://docs.clevertap.com/docs/create-coupons#max-cap-for-percentage-rewards) > > For percentage-based rewards, you can optionally set a maximum cap by clearing the Unlimited discount per order or Unlimited cashback per order checkbox. > > For example, 10% discount with a cap of $100 means if the order total is $1500, the discount applied will be $100 max. #### Discount Value [](https://docs.clevertap.com/docs/create-coupons#discount-value) Enter either the fixed amount or the percentage to be applied based on the selected reward type. For cashback rewards, ensure a loyalty wallet is selected. #### Example [](https://docs.clevertap.com/docs/create-coupons#example) Consider an example to understand how the Reward configuration works. You want to offer a 20% discount on T-shirts, but only when a user buys at least two items from that category. In this case, * **Product filters**: Set category = T-shirts to limit the reward to T-shirt purchases. * **Qualifying rule**: Define itemsTotalQuantity ≥ 2 to ensure the discount applies only when the user adds two or more T-shirts to their cart. * **Reward type**: Choose Percentage discount. * **Discount value**: Enter 20% and optionally set a maximum cap (for example, $50) by disabling the Unlimited discount per order checkbox. ### Qualifying Rules [](https://docs.clevertap.com/docs/create-coupons#qualifying-rules) Define the conditions under which a coupon becomes applicable. You can apply rules based on cart properties, product-level attributes, or user profile traits. Multiple conditions can be combined using AND/OR logic to build flexible eligibility criteria. ![Define Qualifying Rules for the Coupon](https://files.readme.io/20e60f8c37a5a452b8fc4c750b0315194c4799c1b29893e0d0ef5280f8d296cf-Qualifying_Rules.png) Define Qualifying Rules for the Coupon #### Cart [](https://docs.clevertap.com/docs/create-coupons#cart) Define eligibility based on cart-level attributes such as total sale amount or item count. You can add multiple cart properties with different operators, such as `equals`, `greater than`, `less than`, `between` and. You can combine multiple conditions using AND to enforce all rules, or OR to allow any rule to trigger coupon eligibility. For example, if a user adds 2 T-shirts priced at ₹150 each and a cap priced at ₹250 (total ₹550), the coupon is applicable. ![Add Qualifying Rules for Cart](https://files.readme.io/5ce6807d47d34f47e1b15cfa6acec5678120832d93c9f667e2babb2bdfcc79af-image.png) Add Qualifying Rules for Cart #### Product [](https://docs.clevertap.com/docs/create-coupons#product) Apply the coupon on product properties with two available modes. You can add multiple product property rules and combine them with **AND/OR** conditions as needed. Let us consider an example to understand this better. A fashion retailer wants to offer 15% OFF on winter wear items such as jackets, sweaters, and hoodies, all from the brand ArcticEdge. The product filters are: * `productCategory = Jackets OR Sweaters OR Hoodies` * `brand = ArcticEdge` It supports the following two modes: * **Any of**: The coupon applies if at least one item in the cart meets the filters above. In this case, if the cart contains 1 ArcticEdge sweater + 1 regular t-shirt, the coupon applies (sweater qualifies)\`. * **Each of**: The coupon applies only if all items in the cart match the filters. In this case, if the cart contains 2 ArcticEdge jackets + 1 ArcticEdge hoodie, the coupon applies (all items match). ![Add Qualifying Rules for Product](https://files.readme.io/ad4990fd2d3aac2bbc28a5085015587940e2deeb555061b88b5aabe28537f088-image.png) Add Qualifying Rules for Product #### User Property [](https://docs.clevertap.com/docs/create-coupons#user-property) Restrict coupon applicability to users who match specific profile attributes. You can configure multiple user properties combined using **AND/OR** conditions to target the right audience precisely. These conditions ensure that the coupon is visible and redeemable only for eligible users based on attributes available in their user profile. For example, A food delivery app wants to offer a $50 OFF coupon exclusively to users located in India. ![Add Qualifying Rules for User Property](https://files.readme.io/8c6474ada9e3b2a4020fdd8d1b9f34cf3fe90c270fc52e3b78ab6aed30b1e567-image.png) Add Qualifying Rules for User Property > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/create-coupons#note) > > The User Property rule is available only for All Users coupons. ### Validity [](https://docs.clevertap.com/docs/create-coupons#validity) Configure when the coupon will become active and remain available to users. Validity settings vary based on the coupon type. #### For All Users Coupons [](https://docs.clevertap.com/docs/create-coupons#for-all-users-coupons) These include the following coupon types: Single code for all users or Downloadable bulk unique codes. Set the following parameters to define the active window for the coupon: * **Timezone**: The system uses your default account timezone, for example, GMT +05:30 Asia/Kolkata. * Time Period: * **Start date and time**: Define when the coupon becomes active. For example, if the start time is 1st July 2025 at 10:00 AM, users will only be able to view and redeem the coupon from that moment onward. The start date is derived from promo campaigns based on when the coupon is being rewarded to the user. * **End date and time**: Choose when the coupon expires. Set a specific time, for example, 31st July 2025 at 11:59 PM) or select _Never ends_ for ongoing availability. ![Set Validity for All User Coupons](https://files.readme.io/a09819937eef7baa1ba00961f658fd2df33702417a9370b40dfb2e8fae454467-image.png) Set Validity for All User Coupons #### For User Actions-Based Coupons [](https://docs.clevertap.com/docs/create-coupons#for-user-actions-based-coupons) These include the following coupon types: Single code based on user actions or Bulk unique codes based on user actions. These coupons become active when assigned through a Promo Campaign and support only relative expiry settings: * **Coupon expiry**: Define how long the coupon remains valid after it is assigned. For example, 7 days after the coupon was rewarded. You can select from minutes, hours, days, or weeks. Select Never for coupons with no expiry. ![Set Validity of User Action Based Coupons](https://files.readme.io/18f4b64212939afced1f33c6ef9571c4864501c88755ea11575a8b30d5956ffc-image.png) Set Validity of User Action-Based Coupons #### Custom Schedule [](https://docs.clevertap.com/docs/create-coupons#custom-schedule) Use this option to restrict when a coupon can be redeemed during the day or week, regardless of the overall start or end time. This feature is available for all coupon types. It is especially useful for time-sensitive promotions, for example, Happy hour discounts, Weekend-only deals, Midnight or lunchtime offers and so on. You can define: * Specific days of the week (for example, Saturday, Sunday) * Specific time slots (for example, 12:00 PM – 3:00 PM) This ensures the coupon is only redeemable during those selected windows, even if it’s otherwise valid. ### Redemption Limits [](https://docs.clevertap.com/docs/create-coupons#redemption-limits) Configure how many times a coupon can be redeemed globally and per user. These settings help prevent overuse and ensure budget control. > 📘 > > ### > > Redemption Limits Rules > > [](https://docs.clevertap.com/docs/create-coupons#redemption-limits-rules) > > * Redemption limits can be configured only for single code coupons (both all user and user action based). > * For bulk code coupons (both downloadable and user action based codes), the code-level and user-level redemption limits are fixed to one. This is because each bulk coupon code is unique and designed for one-time use by a single user, ensuring exclusivity and preventing misuse. #### Code Level Limits [](https://docs.clevertap.com/docs/create-coupons#code-level-limits) Set the total number of times a coupon code can be redeemed globally across all users. The default is _unlimited_ but you can also change the total limit to X times. * **Daily limit**: Maximum number of redemptions allowed per day. For example, 100 redemptions per day. * **Weekly limit**: Maximum number of redemptions allowed per week. For example, 500 redemptions per week. * **Monthly limit**: Maximum number of redemptions allowed per month. For example, 2000 redemptions per month. ![Set Code Level Limits](https://files.readme.io/2b89e8e77a4f6a603141b34f9987bbc60f4239884678bbe7bbc0d1ef5d30e9de-image.png) Set Code Level Limits #### User Level Limits [](https://docs.clevertap.com/docs/create-coupons#user-level-limits) Set the number of times each user can redeem the coupon. The default total limit is set to one use per user, but you can change it to unlimited or click **Add Limit** to customize: * **Daily limit**: Redemptions allowed per user per day. For example, 1 redemption per user per day. * **Weekly limit**: Redemptions allowed per user per week. For example, 2 redemptions per user per week. * **Monthly limit**: Redemptions allowed per user per month. For example, 4 redemptions per user per month. ![Set User Level Limits](https://files.readme.io/d14a64172c2f68ddf06a08b5e98708e93c527c5bb12ea2aa241c7e52222aa755-image.png) Set User Level Limits #### Redemption Logic [](https://docs.clevertap.com/docs/create-coupons#redemption-logic) When a user attempts to redeem a coupon, the system validates: * Whether the coupon is active and within the validity period * Whether the coupon meets all qualifying rules (cart, product, user property) * If Single Code Coupon: * Ensure the global code-level limit has not been exceeded * Ensure the user has not exceeded their redemption quota * If Bulk Code Coupon: * Ensure the unique code hasn’t been used before If all checks pass, the coupon is successfully applied. Best Practices [](https://docs.clevertap.com/docs/create-coupons#best-practices) ==================================================================================== The following are the best practices when creating coupons: * Use percentage discounts for small purchases and flat discounts for high-value items. * Set expiry dates to create urgency. * Use cart-based conditions to increase order value. * Track coupon performance regularly and adjust campaigns accordingly. * Avoid excessive stacking to prevent revenue loss. Updated about 2 months ago * * * Ask AI --- # Use Loyalty Wallets in Campaigns Engage with Wallet Points Rewarded Users [](https://docs.clevertap.com/docs/use-loyalty-wallets-in-campaigns#engage-with-wallet-points-rewarded-users) ========================================================================================================================================================== CleverTap allows you to target users who have received loyalty points by creating a campaign based on the _CT Points Credited_ event. This event helps you personalize communication and encourage users to redeem their points, driving higher conversions and user retention. Let’s say you are an e-commerce brand that wants to remind users who earned points from a recent purchase or campaign but have not redeemed them yet. You can create a targeted campaign like this: 1. Go to _Campaigns_ from the CleverTap dashboard. 2. Click **\+ Campaign** and select a messaging channel from the dropdown. 3. Click **Add an event** from the _Who_ section. 4. Select the **CT Points Credited** event and apply filters using the event properties. ![Target Users with a Campaign/Journey](https://files.readme.io/64dd0edc80500745812013eded24c2f99887d6b23476e38a3dfadecb22cf2efe-image.png) Target Users with a Campaign/Journey CT Points Credited [](https://docs.clevertap.com/docs/use-loyalty-wallets-in-campaigns#ct-points-credited) ============================================================================================================== Whenever a user's wallet is credited with points, either via a campaign, API, or manually, CleverTap triggers the _CT Points Credited_ event. This allows you to create follow-up messaging such as reminders, promotional nudges, or personalized incentives. The event includes the following System and Custom event properties, which help you to personalize campaigns or segment users: System Event Property [](https://docs.clevertap.com/docs/use-loyalty-wallets-in-campaigns#system-event-property) -------------------------------------------------------------------------------------------------------------------- | Property | Description | Example Value | | --- | --- | --- | | **CT Source** | Identifies the source via which the event was triggered. | `API` | Custom Event Properties [](https://docs.clevertap.com/docs/use-loyalty-wallets-in-campaigns#custom-event-properties) ------------------------------------------------------------------------------------------------------------------------ | Property | Description | | --- | --- | | **walletId** | The unique ID of the wallet credited. | | **transactionId** | Unique identifier for the wallet transaction. | | **points** | Number of points credited. | | **source** | Source of the credit (Campaign, API, Manual, Cashback Coupon). | | **campaignId** | ID of the campaign through which the reward was issued (if applicable). | | **pointsDescription** | Optional description about the transaction. | | **eventTimestamp** | Time when the points were credited. | These properties can be leveraged in Liquid Tags to personalize messages, enabling dynamic content in your engagement campaigns. Updated about 2 months ago * * * Ask AI --- # Rewards Overview [](https://docs.clevertap.com/docs/rewards#overview) ================================================================= CleverTap's Promo engine empowers you to drive customer loyalty and boost sales with tailored reward strategies that integrate seamlessly across web and mobile platforms. You can engage with your customers through the following four reward types: Loyalty Wallets [](https://docs.clevertap.com/docs/rewards#loyalty-wallets) ------------------------------------------------------------------------------- Engage your customers with a flexible, credit-based reward points system that lets you create, manage, and track wallet credits, monitor detailed transactions and balance changes, configure expiry policies and rounding rules, and more. For more information, refer to [Loyalty Wallets](doc:loyalty-wallets) . Coupons [](https://docs.clevertap.com/docs/rewards#coupons) --------------------------------------------------------------- Drive promotions with targeted coupon campaigns that enable you to boost conversions and customer retention by creating various coupon types (single, bulk, and campaign-based), managing discount rules and redemption limits, tracking performance through real-time analytics, and so on. For more information, refer to [Coupons](doc:coupons) . Partner Vouchers [](https://docs.clevertap.com/docs/rewards#partner-vouchers) --------------------------------------------------------------------------------- Simplify voucher management with partner vouchers to streamline the distribution process. They allow you to upload, manage, and track vouchers from partner brands, map vouchers to promo campaigns for targeted engagement, leverage event metadata to trigger personalized communications, and more. For more information, refer to [Partner Vouchers](doc:partner-vouchers) . Custom Rewards [](https://docs.clevertap.com/docs/rewards#custom-rewards) ----------------------------------------------------------------------------- Integrate your own reward or partner systems with CleverTap through Custom Rewards. They let you create and distribute external rewards, such as gift cards, digital subscriptions, physical items, or wallet-based credits, directly through Promo campaigns using secure webhook integrations. For more information, refer to [Custom Rewards](doc:custom-rewards) . Updated about 2 months ago * * * Ask AI --- # Promo Campaigns Overview [](https://docs.clevertap.com/docs/promo-campaigns#overview) ========================================================================= Promo Campaigns are a flexible and powerful feature that enables businesses to engage their users by distributing targeted rewards. Campaigns can be triggered based on users' past behavior or in real time based on their actions (or inactions). The Promo Campaigns system supports various types of rewards, including wallet points, coupons, and partner vouchers. Example Use Cases [](https://docs.clevertap.com/docs/promo-campaigns#example-use-cases) =========================================================================================== The following are some of the examples that illustrate how Promo Campaigns can deliver its value: * **E-commerce**: Reward high spenders with percentage-based wallet points or offer discount coupons when users abandon their cart. * **Delivery**: Distribute cashback wallet points to users for orders placed during off-peak hours, or send discount coupons to those who have not placed an order in the last 30 days. * **Travel and Hospitality**: Offer loyalty points for bookings exceeding a specific value, or run a promotional campaign offering coupons for early-bird or last-minute hotel bookings. * **Fintech**: Provide wallet points or vouchers to users who complete their first UPI transaction or run reward campaigns based on bill payments. For example, reward users 100 points when they deposit $100. * **Gaming and Entertainment**: Offer 10% off on movie ticket bookings or distribute partner vouchers when users perform specific in-app actions, such as watching a trailer or making a purchase. * **Healthcare and Wellness**: Offer wallet points for booking health checkups or consultations, or run promotional campaigns offering vouchers for app signups or referrals. Features [](https://docs.clevertap.com/docs/promo-campaigns#features) ========================================================================= The following is the set of features designed to help you build, manage, and optimize reward campaigns with ease: * ̉**Campaign Types**: Supports Past Behavior and Live Action campaigns. * **Past Behavior Campaigns**: Allow you to target users based on their historical behavior or predefined user lists, enabling personalized re-engagement strategies. * **Live Action Campaigns**: Triggered in real-time based on user actions, or inactions, within a defined time window, helping you respond instantly to user behavior. * **Reward Types:** Offers a wide variety of rewards to engage your users meaningfully. You can distribute Single-Code Coupons for broad usage, Bulk Coupon Codes for individual redemptions, Wallet Points to encourage loyalty, or Partner Vouchers to reward your users with popular third-party brand offers. * **Segment Rule Builders:** Enables audience segmentation using predefined filters, custom user lists, and or uploaded custom lists. Segments can be created based on real-time and historical user data. * **Campaign Management**: Provides complete control over live and scheduled campaigns. You can pause, edit, or stop campaigns at any time. The campaign list view includes filters and key campaign details such as status, type, reward, and creator. FAQs [](https://docs.clevertap.com/docs/promo-campaigns#faqs) ================================================================= Find answers to the following common questions about using ̉Promo Campaigns: Can I target both live actions and past behavior in a single campaign? [](https://docs.clevertap.com/docs/promo-campaigns#can-i-target-both-live-actions-and-past-behavior-in-a-single-campaign) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- No, each campaign supports only one type of segmentation: Past Behavior, Live Actions, or Custom Lists. ### What happens if the reward inventory is exhausted? [](https://docs.clevertap.com/docs/promo-campaigns#what-happens-if-the-reward-inventory-is-exhausted) The system stops distributing rewards once the limit is reached. For bulk coupons, an alert is shown if you exceed the available codes. ### Can I reuse a coupon series in multiple campaigns? [](https://docs.clevertap.com/docs/promo-campaigns#can-i-reuse-a-coupon-series-in-multiple-campaigns) Yes, you can reuse the same bulk coupon series across multiple campaigns. The system always assigns a unique code to each eligible user, even if they qualify in different campaigns using the same series. This ensures that users will never receive duplicate codes from the same series across campaigns. Updated about 1 month ago * * * Ask AI --- # Promo Campaign Operations Oveview [](https://docs.clevertap.com/docs/promo-campaign-operations#oveview) ================================================================================= The Promo _Campaigns_ list view allows you to manage, organize, and locate campaigns efficiently. It combines search, filters, and date selection tools to offer a seamless way to track campaign performance, take action on drafts or running campaigns, and review past efforts. This document covers all the available operations and utilities to help you make the most of the Promo Campaigns dashboard. Search [](https://docs.clevertap.com/docs/promo-campaign-operations#search) ------------------------------------------------------------------------------- Use the _Search by ID/Name_ bar to instantly find campaigns: * Search by Campaign ID * Search by Campaign Name ![Searcy by Campaign ID or Name](https://files.readme.io/315cb8a4a45d5c66d293a82cde96ce6c7d9125c7f579c587f316102227bea1bb-image.png) Searcy by Campaign ID or Name Date Filter [](https://docs.clevertap.com/docs/promo-campaign-operations#date-filter) ----------------------------------------------------------------------------------------- Use the date picker in the top-right corner to filter campaigns by a specific date range based on their start time. This helps in analyzing campaign activity over time or during specific promotional windows. ![Filter Campaigns by Creation or Start Date](https://files.readme.io/bb2e4527d6328f2492221df5ef8093a2e87c4be8080a1bf3600ed4fc63bba498-image.png) Filter Campaigns by Creation or Start Date Status and Actions [](https://docs.clevertap.com/docs/promo-campaign-operations#status-and-actions) ------------------------------------------------------------------------------------------------------- The **Status** of a Promo Campaign reflects its current stage in the campaign lifecycle and determines which actions can be performed. Properly managing campaign statuses ensures effective control over reward distribution and campaign performance. The table below outlines each Promo Campaign's list status, its description, and the actions you can perform: | Status | Description | Available Actions | | --- | --- | --- | | **Draft** | Campaign is saved but not yet active or scheduled. | Edit, Archive | | **Scheduled** | Campaign is set to go live at a future date/time. | Edit, Stop | | **Running** | Campaign is currently live and rewarding eligible users. | Pause, Stop | | **Stopped** | Campaign has been manually ended before completion or archived. | Archive | | **Completed** | Campaign has naturally ended after reaching the configured end time. | Archive | ### Actions [](https://docs.clevertap.com/docs/promo-campaign-operations#actions) To perform actions on a campaign, click the ![](https://files.readme.io/fd94389a260926d6a6b7d231dcac8b1b905b887e0007c452d4719f3934e03bf7-Ellipsis_Promo.png) icon associated with that row in the list. The available actions depend on the current campaign status. | Action | Effect | | --- | --- | | **Edit** | Opens the campaign for modification. Available only in _Draft_ or _Scheduled_ states. | | **Stop** | Manually ends the campaign permanently. It can not be resumed once stopped. | | **Archive** | Permanently deletes a campaign. | Best Practices for Campaign Management [](https://docs.clevertap.com/docs/promo-campaign-operations#best-practices-for-campaign-management) ----------------------------------------------------------------------------------------------------------------------------------------------- Follow these best practices to maintain campaign quality, control, and consistency: * **Use Drafts for Iteration**: Build campaigns in _Draft_ mode, review, and schedule when finalized. * **Monitor Status Regularly**: Use the status column on the list page to ensure campaigns are behaving as expected. Updated about 2 months ago * * * Ask AI --- # Promo Campaign Stats Overview [](https://docs.clevertap.com/docs/promo-campaign-stats#overview) ============================================================================== The **Rewards Distribution** tab under Promo Campaign Stats provides a comprehensive overview of Promo campaign performance, displaying real-time and historical analytics for user engagement, reward distribution, and redemption activity. The metrics and charts displayed depend on the _Reward type_ selected when creating the campaign. Each reward type includes: * Key Performance Indicators (KPIs) for campaign outcomes. * Interactive charts visualizing trends over time. * Date filters to customize your analysis by day, week, or month. > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/promo-campaign-stats#note) > > The Campaigns with the Past Behavior Segments show total metrics only (no time-based charts), while Campaigns with the Live Behavior Segments include both total metrics and interactive, time-based performance graphs. Loyalty Points Campaign Stats [](https://docs.clevertap.com/docs/promo-campaign-stats#loyalty-points-campaign-stats) ======================================================================================================================== Loyalty Points campaigns display wallet-based reward performance and the total number of points distributed. These KPIs help you assess the frequency of rewards and the overall point volume during the campaign as follows: * **Rewards Distributed**: Represents the total number of times a reward was distributed during the campaign. For example, if rewards were triggered multiple times for the same user, each instance is counted toward the total. * **Points Distributed**: Indicates the total number of loyalty points issued to all qualifying users. For example, a total of 6,132 loyalty points were distributed. ![](https://files.readme.io/7bbbd5a59eb1604a797ef115f65e89fe0db97a47a8ac64793961116be082cd31-image.png) KPIs for Promo Campaign with Loyalty Wallet Rewards View Trends [](https://docs.clevertap.com/docs/promo-campaign-stats#view-trends) ------------------------------------------------------------------------------------ The _Loyalty Wallets_ rewards KPIs also include two line charts that show how reward distribution changed throughout the campaign. These charts help you visually identify patterns such as high-engagement days, reward spikes, or periods of inactivity. For example, if users were rewarded on multiple days, the charts show recurring spikes corresponding to the distribution of rewards and points. * **Rewards Distributed**: This line chart illustrates the frequency of rewards issued on each day, week, or month within the selected date range. * **X-axis**: Represents the Date or Month for the selected duration. * **Y-axis**: Represents the total number of rewards distributed during that period. You can aggregate chart data by Day, Week, or Month using the dropdown in the top-right corner of the chart. When you hover over any data point, the chart displays: * The exact number of rewards distributed for that period, and * The percentage change compared to the previous period (Day/Week/Month based on the selected aggregation). ![](https://files.readme.io/0099b8772a477101867024a8c5f4247eafe3f64bd9932c39b712c6117d6732fb-image.png) Rewards Distributed Over Time in Loyalty Wallets * **Points Distributed**: This line chart illustrates the number of loyalty points issued on each date within the campaign range, as well as distribution trends, such as reward bursts on high-activity days or consistent distribution throughout the campaign. ![Points Distributed Over Time in Loyalty Wallets](https://files.readme.io/6d2e0f2c8a263c3755b20a527328bdeb2bbb41749ae1dffbccf064c12da2e4a7-image.png) Points Distributed Over Time in Loyalty Wallets Coupon Campaign Stats [](https://docs.clevertap.com/docs/promo-campaign-stats#coupon-campaign-stats) ======================================================================================================== Coupon campaigns help you track how coupons are issued and redeemed over time, providing visibility into user engagement and the financial impact of discounts or cashback rewards delivered. The _Rewards Distribution_ tab adapts based on the Coupon Type (Single Code or Bulk Code) and the Coupon Benefit (Discount or Cashback). Only relevant KPIs and charts are displayed. The KPIs in this section help you understand how frequently coupon rewards were issued, how coupons were distributed, and the total value redeemed by users. * **Rewards Distributed**: Represents the total number of times a coupon reward was issued during the campaign. Each reward trigger is counted, including repeat rewards issued to the same user. * **Coupons Distributed**: Indicates how coupon codes were distributed, based on the type of coupon used in the campaign. * **Single Code Coupon**: Shows the number of times the same coupon code was shared with users. * **Bulk Code Coupon**: Shows how many unique coupon codes from the bulk series were distributed. Each campaign trigger assigns a new code to the user. * **Discount Redeemed**: Applicable only for discount coupons, this KPI shows the total value of discounts redeemed using coupons issued by the campaign. ![](https://files.readme.io/f9d21685c45fb6d2761947cb6de699685f90106148397936392fa326f62bade7-image.png) KPIs for Promo Campaigns with Coupon Rewards * **Cashback Points Credited**: Applicable only to cashback coupons, this KPI shows the total number of cashback points credited to users’ wallets from coupon redemptions. For example, the campaign may show **5,000 cashback points credited** during the selected period. ![](https://files.readme.io/2fe7319573af245958699e24da8b6dc7b772d0c677f99c071bc27b3efa59182a-image.png) Cashback Points Credited KPI for Cashback Coupon Types Partner Voucher Campaign Stats [](https://docs.clevertap.com/docs/promo-campaign-stats#partner-voucher-campaign-stats) ========================================================================================================================== Partner Voucher campaigns track the distribution of unique voucher codes sourced from external providers. These analytics help you understand how many vouchers were issued and how distribution patterns changed over time. The KPIs for Partner Voucher campaigns help you track the number of voucher codes assigned and overall engagement with voucher rewards. * **Rewards Distributed**: Includes a line chart that displays voucher distribution patterns over time. This helps you analyze days with higher voucher issuance and spot trends or anomalies in campaign performance. For example, a spike on a specific date indicates higher voucher issuance compared to surrounding days. * **Voucher Codes Distributed**: Indicates the total number of partner voucher codes assigned to users during the campaign. ![](https://files.readme.io/a53f44e93a25ebc9c4c278c31eb483bd8140a68c19a9c64ee3a8b0ba34db8f7c-image.png) KPIs for Promo Campaigns with Partner Voucher Rewards View Trends [](https://docs.clevertap.com/docs/promo-campaign-stats#view-trends-1) -------------------------------------------------------------------------------------- This _Voucher Codes Distributed_ chart illustrates the distribution of voucher codes across each day, week, or month within the selected date range. It provides a clear view of distribution frequency and peak issuance dates. ![](https://files.readme.io/9db18f74caff43027141697e3a2a0188d895c1b67b90e3128782d4c1a56f3f75-image.png) Vouchers Distributed Over Time in Partner Vouchers Custom Rewards Campaign Stats [](https://docs.clevertap.com/docs/promo-campaign-stats#custom-rewards-campaign-stats) ======================================================================================================================== Custom Rewards campaigns rely on webhook calls to deliver rewards, such as wallet credits, digital items, or third-party payouts. The _Rewards Distributed_ tab displays the number of webhook-triggered rewards that succeeded, were sent, or failed. The KPIs in this section help you evaluate webhook performance and identify any system-level issues that may impact reward delivery. * **Webhook Credits Rewarded**: Represents the total credits successfully issued through webhook calls when _Self-Managed Wallet Credits_ are used as the reward type. This KPI does not apply to _Physical & Digital Rewards_. * **Webhook Sent**: Indicates the total number of webhook requests triggered from CleverTap to the external endpoint. * **Webhook Failed**: Shows the number of webhook requests that failed due to issues such as endpoint failures, timeouts, or invalid payloads. ![](https://files.readme.io/8715ca9cc75e88be4302d5ff0ae6d9575e601b9a2069b68111f17883c479af06-image.png) KPIs for Promo Campaigns with Custom Rewards Updated 19 days ago * * * Ask AI --- # Journey Stats Overview [](https://docs.clevertap.com/docs/journey-stats#overview) ======================================================================= The Journey Stats tab provides comprehensive performance metrics for the journey. This view helps you understand how users are progressing through the journey, evaluate goal performance, and compare target vs. control group behavior. ![Journey Stats](https://files.readme.io/9a4babab4fbbc9f1661e8008bccacd5c6d7b31b0ab3c0371b333df9a96478d21-Journey_Stats.png) Journey Stats Use the calendar selector at the top to define a custom date range for which you want to view journey performance. > 📘 > > ### > > Metrics for Journey Stats > > [](https://docs.clevertap.com/docs/journey-stats#metrics-for-journey-stats) > > All metrics displayed on this page are based on the selected date range, except for the Users in journey count, which reflects the real-time number of users currently progressing through the journey. The following metrics are displayed at the top for the selected journey version: * **Entered Journey**: Users who entered the journey. * **Qualified**: Users who met the entry condition and were processed by journey nodes. * **Control Group**: Random users held out from the journey for A/B comparison. * **Goal Met**: Users who fulfilled the defined journey goal. * **Completed**: Users who completed the journey. * **Timed Out**: Users who did not complete the journey within the allowed timeframe. * **Force Exits**: Users forcibly removed due to defined conditions. ![1345](https://files.readme.io/ba3f3b9a022c2aa9a639b94a7f0a38501a4272024bc8f0872dc4ba0e27818b6f-Journey_Stats_-_Key_Metrics.png "Journey stats") Key Metrics for Journey Stats Goal Conversion Rate [](https://docs.clevertap.com/docs/journey-stats#goal-conversion-rate) =============================================================================================== This section displays the conversion performance of the journey and compares the _Target Group_ to the _Control Group_. ![1880](https://files.readme.io/ecc981ad72f966c5e78daf35546254e312bf3cef5988c2a1c770b7b67322c49a-Goal_Conversion_Rate.png "Journeys Stats for goal conversions") Goal Conversion Rate for Journey * The Boost for the journey is calculated as follows: **Boost Rate** = \[(Target Group% - Control Group%)/Control Group%\] x 100 * The Conversion Rate for the journey is calculated as follows: **Conversion Rate** = (Number of Conversions/Number of Visitors) x 100 Entry and Exit Trends [](https://docs.clevertap.com/docs/journey-stats#entry-and-exit-trends) ================================================================================================= The Trends section offers a timeline view, such as daily, weekly, and monthly, of key journey metrics: * Number of users who entered the journey * Number of users who completed the journey * Users who met the journey goal * Users who timed out of the journey These insights help identify behavioral patterns and performance fluctuations over time. ![1348](https://files.readme.io/8af820ea015a7d689800f66ce5ba566c8b37889d43f5db128ecd2ab48285732e-Weekly_Entry_and_Exit_Trends.png "Journeys Stats for Trends") Weekly Entry and Exit Journey Trends Updated about 2 months ago * * * Ask AI --- # Regex Campaign Overview [](https://docs.clevertap.com/docs/regex#overview) =============================================================== Regex is a feature that provides the capability to create a campaign that includes or excludes users who visit specific pages on your website. > 📘 > > ### > > Regex Explained > > [](https://docs.clevertap.com/docs/regex#regex-explained) > > Regex is an abbreviation for the term regular expression which defines a search pattern for a string. The pattern can be a single character, multiple characters, or an expression with characters describing the pattern. > > Following are some Regex examples: > > * "." matches any character. > * "ABC" matches ABC. > * "A|B" matches A or B. Use Case [](https://docs.clevertap.com/docs/regex#use-case) --------------------------------------------------------------- For example, if you have a travel booking site, you can create a campaign that targets users who are searching for flights between San Francisco and Los Angeles. When a user searches for flights from San Francisco (SFO) to Los Angeles (LAX) on your website, the URL follows this pattern: _[https://www.example.com/flights/SFO/LAX](https://www.example.com/flights/SFO/LAX) _. Using the Regex below, you can identify users who visited that URL and include them in a campaign. Regex .*(SFO|LAX).* Feature Guide [](https://docs.clevertap.com/docs/regex#feature-guide) ========================================================================= When creating a campaign or a journey in CleverTap that targets web users, you can use the Regex feature to define who receives the campaign based on pages the user did or did not visit. ![900](https://files.readme.io/8a70f69-regex2.png "Regex feature to send campaigns based on user page visits.") Regex Feature If you want to include users who visited a page that matches the Regex, select the _matches regex_ option. If you want to exclude those users, select the _does not match regex_ option. If there is only one page that needs to be matched or not matched for a campaign, then you can use the options _contains_ or _does not contain_. Examples [](https://docs.clevertap.com/docs/regex#examples) =============================================================== The following table shows more examples: | Regex | Notes | | --- | --- | | . | Matches any character. | | example text | Matches exactly. For example: "example text". | | example\\s+text | Matches the word "example" followed by one or more whitespace characters followed by the word "text". For example: "example text". | | A\\ | B | Regex Verification [](https://docs.clevertap.com/docs/regex#regex-verification) =================================================================================== You can use [Regex101.com](https://regex101.com/) to build and test your Regex. Updated about 2 months ago * * * Ask AI --- # Coupon Operations Overview [](https://docs.clevertap.com/docs/coupon-operations#overview) =========================================================================== This document explains the available coupon statuses, the actions you can perform at each stage, and how to use filters to locate specific coupons quickly. For details about viewing and navigating the list of coupons, refer to [View Coupons](doc:view-coupons) . Coupon Status [](https://docs.clevertap.com/docs/coupon-operations#coupon-status) ===================================================================================== The status of a coupon determines whether it can be used in campaigns or modified. Use statuses to manage the coupon lifecycle effectively. | Status | Description | Available Actions | | --- | --- | --- | | **Draft** | Coupon list has been created but is not available for campaigns yet. | Archive | | **Scheduled** | Coupon list is set to become active at a future date and time. | End, Archive | | **Active** | Coupon list is live and available for use in promotional campaigns. | Pause, End, Archive | | **Paused** | Coupon list is temporarily inactive; it cannot be used in campaigns until reactivated. | Activate, End, Archive | | **Ended** | Coupon list has expired or has been manually ended. It cannot be used further. | Archive | | **Archived** | Coupon list is permanently disabled and becomes view-only. | No actions | Available Actions [](https://docs.clevertap.com/docs/coupon-operations#available-actions) ============================================================================================= Depending on the coupon list status, you can take different actions on a coupon list. | Action | Effect | | --- | --- | | **Pause** | Temporarily deactivates an active coupon list, making it unavailable for campaigns. | | **Activate** | Reactivates a paused coupon list, making it available for use again. | | **End** | Stops the coupon list distribution, preventing further usage. | | **Archive** | Permanently disables a coupon list. t becomes read-only and cannot be reused. | | **Download Codes** | Allows you to download the list of coupon codes for record-keeping or offline distribution. It is only applicable to the Bulk downloadable codes. | Filter Coupons [](https://docs.clevertap.com/docs/coupon-operations#filter-coupons) ======================================================================================= Use _Filters_ to quickly sort and manage coupons based on their type, reward effect, reward type, and current status. This helps in locating specific coupons for review or action. ![Filter Available Coupons](https://files.readme.io/4a686e3a66fc9814bc68553b7e3649fd35f8d11c9c738f365babfe656fc3d4e6-Filter_Coupons.gif) Filter Available Coupons | Filter Category | Description | Options Available | | --- | --- | --- | | **Coupon Type** | Filters coupons based on how they are distributed—shared codes or unique codes, assigned manually or through user actions. | * **Single code for all users**: A single coupon code that can be used by all users.
* **Single code based on user actions**: A single code distributed to a specific segment through promo campaigns based on user actions defined in the Promo campaign.
* **Downloadable bulk unique codes**: Unique coupon codes generated in bulk for manual distribution.
* **Bulk unique codes based on user actions**: Unique codes automatically assigned to users based on defined actions.

For more information, refer to [Select Coupon Type](doc:create-coupons#select-coupon-type)
. | | **Reward Effect** | Defines which part of the order the reward applies to: the full order value, selected products, or a custom-defined order property. | * **Entire order**: The reward or discount applies to the entire order value.
* **Specific products**: The reward or discount applies only to selected products.
* **Custom order property**: The reward is applied based on a custom property of the order, as defined in the setup. | | **Reward Type** | Filters coupons based on how the reward is structured—fixed amount or percentage, applied as a discount or cashback. | * **Flat discount**: A fixed amount of discount applied to the order.
* **Percentage-based discount**: A percentage-based discount applied to the order total or specific products.
* **Flat cashback**: Fixed cashback points credited to the user.
* **Percentage-based cashback**: Cashback provided as a percentage of the order amount. | | **Status** | Filters coupons based on their current status in the lifecycle. | * **Active**: Coupon list is live and available for use in promotional campaigns.
* **Paused**: Coupon list is temporarily inactive; it cannot be used in campaigns until reactivated.
* **Draft**: Coupon list has been created but is not available for campaigns yet.
* **Scheduled**: Coupon list is set to become active at a future date and time.
* **Ended**: Coupon list has expired or has been manually ended. It cannot be used further.
* **Archived**: Coupon list is permanently disabled and becomes view-only. | Updated about 2 months ago * * * Ask AI --- # Wallet Operations Operations [](https://docs.clevertap.com/docs/wallet-operations#operations) =============================================================================== This document helps you understand how to Filter, Search, and manage all transactions within the Loyalty Wallet. Learn how to refine transaction data, adjust points manually, and follow best practices to ensure smooth and effective rewards management. Adjust Points [](https://docs.clevertap.com/docs/wallet-operations#adjust-points) ------------------------------------------------------------------------------------- The _Adjust Points_ button allows Admins to add (credit) or deduct (debit) points manually from a user's wallet. The following are some sample use cases where you might want to adjust points for a user's wallet: * Rewarding users manually for customer service resolutions or special scenarios. * Correcting points in cases where automated transactions fail or need manual intervention. * Deducting points in case of fraudulent activity or errors. The following is an example of manually crediting points for a user who has submitted a social media review for your product: ![Adjust Points for a User](https://files.readme.io/ccc5f339bbed64b2ac1d2158b7bbb7026eb55422ca364089582b58e5e9f381de-Adjust_Points.gif) Adjust Points for a User ### Error Cases [](https://docs.clevertap.com/docs/wallet-operations#error-cases) The following errors may occur while manually adjusting points, preventing successful submission: * Attempting to debit more points than the user's current active balance results in an error. * Entering invalid or negative point values will trigger a validation error. * Missing required fields (identity or description) will not allow submission. Filter [](https://docs.clevertap.com/docs/wallet-operations#filter) ----------------------------------------------------------------------- You can refine your transactions list view using the following filters: ![Apply Filters on Transactions](https://files.readme.io/3828092f335cc3cf8d7d8e4e3cf4fe8e11ccd5baf2090ee92cefd2dafbe2299b-Transactions_Filters.gif) Apply Filters on Transactions ### Time Period [](https://docs.clevertap.com/docs/wallet-operations#time-period) Use the calendar widget to define a date range for which you want to filter the transactions. ### Transaction Type [](https://docs.clevertap.com/docs/wallet-operations#transaction-type) You can filter the following transaction types: * **Credit**: Points added to a user's wallet. * **Debit**: Points used or deducted from a user's wallet. * **Promised**: Points transactions scheduled for future processing. For more information on the distribution of Promised points, refer to [Points Buckets](doc:wallet-operations#points-buckets) . * **Expired**: Points that have expired. > 📘 > > ### > > Points Expiry Logic > > [](https://docs.clevertap.com/docs/wallet-operations#points-expiry-logic) > > Points expire based on the expiry period defined in the system. The CleverTap system follows a FIFO (First-In-First-Out) logic to expire points, meaning older points expire first, followed by newer points. #### Points Buckets [](https://docs.clevertap.com/docs/wallet-operations#points-buckets) When points are credited to a user, they are stored in the following two buckets: * **Promised Points Bucket**: Holds points that are scheduled to be activated after a predefined duration. Points here are not usable by the end user until they move to the active bucket. * **Active Points Bucket**: Consists of points that are available for redemption and usage by the end user. Any points credited through a [Promo Campaign](doc:promo-campaigns) or [Credit API](https://developer.clevertap.com/docs/debitcredit-wallet) with a custom activation duration are first added to the Promised Points Bucket. After the activation duration is completed, the same points are moved to the Active Points Bucket. The users cannot use points from the promised bucket for redemption. For example, a Food delivery app offers 10% cashback points to its users based on their order value with a custom activation period of 3 days. If a user places an order on March 3 at 10:20 PM with an order value of $100, then 10 points are immediately credited to their Promised Points Bucket. After 3 days, those points are automatically credited to their Active Points Bucket, from where they become available for redemption. ### Source [](https://docs.clevertap.com/docs/wallet-operations#source) Filter transactions based on their origin: * **API**: Credit or debit transactions are initiated via the [Debit/Credit API](https://developer.clevertap.com/docs/debitcredit-wallet) calls. * **Campaign**: Transactions are triggered via Promo campaigns. * **Manual**: Points are adjusted manually by the Admin from the CleverTap dashboard. For more information, refer to [Adjust Points](doc:wallet-operations#adjust-points) . * **System**: Transactions are automatically generated by the system for activities such as points expiry. For example, automatic deduction of expired points from the user's wallet. * **Cashback Coupon**: Points are credited to the user’s wallet when they redeem a cashback coupon. ### Points Range [](https://docs.clevertap.com/docs/wallet-operations#points-range) Enter the **minimum** and **maximum** points to filter transactions within a specific range. Search [](https://docs.clevertap.com/docs/wallet-operations#search) ----------------------------------------------------------------------- The _Search_ bar allows you to quickly find specific transactions using either: * Identity (the user’s unique identifier), or * Transaction ID (unique ID of the transaction) ![Search by Identity or Transaction ID](https://files.readme.io/838ca353fac29091b17b92da2c08532df930c0cfd995f501970a79e6e8db6a32-Search.png) Search by Identity or Transaction ID Best Practices [](https://docs.clevertap.com/docs/wallet-operations#best-practices) ======================================================================================= Follow these best practices to manage Loyalty Wallets effectively, enhance user engagement, and maximize the impact of your rewards program. * **Define Clear Expiry Policies:** Encourage timely usage by setting appropriate expiry periods. * **Monitor Transactions Regularly:** Use reports to track points usage and prevent fraud. * **Segment Users for Personalization:** Deliver targeted wallet incentives to maximize engagement. * **A/B Test Wallet Campaigns:** Experiment with different point values and promotions to optimize results. Updated about 2 months ago * * * Ask AI --- # IntelliNODE FAQs ### Q. What is the difference between an IntelliNODE goal and a journey goal? [](https://docs.clevertap.com/docs/intellinode-faqs#q-what-is-the-difference-between-an-intellinode-goal-and-a-journey-goal) A. Journey goals exit the users from the journey, whereas IntelliNODE goals do not. IntelliNODE goals help assess which path is more successful. ### Q. Can an IntelliNODE goal and a journey goal be the same? [](https://docs.clevertap.com/docs/intellinode-faqs#q-can-an-intellinode-goal-and-a-journey-goal-be-the-same) It is recommended not to use the same goals for IntelliNODE and Journeys because they serve different purposes. IntelliNODE's goal helps us to define which path is getting the better conversion. Journey goals exit the users from the journey once they have finished the desired action. ### Q. What is the formula for goal conversion in IntelliNODE? [](https://docs.clevertap.com/docs/intellinode-faqs#q--what-is-the-formula-for-goal-conversion-in-intellinode) A. The formula for goal conversion in IntelliNODE is: **IntelliNODE Goal Conversion**: (Total Conversions/User Entered) x 100 Updated about 2 months ago * * * Ask AI --- # Conditional Split with Advanced Conditions Overview [](https://docs.clevertap.com/docs/conditional-split-with-advanced-conditions#overview) ==================================================================================================== The Advanced Split configuration enhances the flexibility of the Conditional Split node by allowing marketers to define complex split conditions using AND/OR logic across user properties and event properties of different data types. This enables highly targeted personalization within Journeys based on combinations of real-time and historical user data. Advanced Conditions also support real-time triggers (from Action nodes) and scheduled PBS-based triggers, offering flexibility across journey types. This mode is useful when journey logic depends on both static user profile details and contextual event data, such as recent purchases, last browsed items, or user engagement history. Use the Advanced configuration when your targeting criteria involve multiple conditions per path. For example: * Target users who are on a Premium plan AND located in Mumbai * Target users who purchased an Electronics product OR used a coupon code You can create conditions based on the following data types: String, Boolean, Number, or DateTime properties. For example: * `plan_type` = Premium (String) * `order_value` > 500 (Number) * `is_first_time_buyer` = true (Boolean) * `event_time` < 7 days ago (DateTime) Target Evaluation Type: Action Node [](https://docs.clevertap.com/docs/conditional-split-with-advanced-conditions#target-evaluation-type-action-node) ========================================================================================================================================================= When an Action node triggers a journey, the Conditional Split can evaluate event properties from the triggering event in real time alongside user properties. For example, a fitness app wants to personalize post-workout follow-ups based on: * **User property**: `customer_type` * **Event property**: `workout_duration` **Setup** * Trigger: The journey starts when a user logs a workout session (Action node). * Conditional Split (Advanced): Evaluates both the `Customer Type` (user property) and `workout_type` (event property) from the same workout event. ![Advanced Split Setup for Trigger Type Action Node](https://files.readme.io/423bcb1442a8f53aa60aa9bddf9dc6152aeb7b21f27bdccaf0ccd3a43e1d3351-Advaced_-_Trigger_Type_Action_Node.png) Advanced Split Setup for Trigger Type Action Node **Conditions and Paths** * Condition 1: `Customer Type` = Premium AND `workout_type` = Cardio → Sends a curated HIIT playlist via email, followed by a push reminder for cooldown tracking. * Condition 2: `Customer Type` = Free AND `workout_type` > Cardio → Sends an upgrade prompt email highlighting premium recovery videos, followed by a push the next day. * Condition 3: `Customer Type` = Premium AND `workout_type` = Weight Training → Sends a quick post-strength stretch routine via email, followed by a push notification with muscle recovery tips. * Fallback Path: Others → Sends a motivational push to encourage consistent logging and engagement. ![Advanced Split Journey for Trigger Type Action Node ](https://files.readme.io/689ecaa8722dfe36667e727576eb5ac6f5f57a8e68f516c7646fb1a902b39def-Advaced_Use_Case_-_Action_Node_Journey.png) Advanced Split Journey for Trigger Type Action Node This approach ensures that every user receives a contextual message tailored to their fitness behavior and membership level in real time without requiring multiple nested segments. Trigger Type: Past Behavior Segment [](https://docs.clevertap.com/docs/conditional-split-with-advanced-conditions#trigger-type-past-behavior-segment) ========================================================================================================================================================= When the Past Behavior Segment (PBS) triggers a journey, the Conditional Split node in Advanced mode can evaluate multiple user properties using Advanced Split logic. While a basic split may rely on a single attribute, Advanced configuration allows combining several user-level criteria using AND/OR operators, supporting precise targeting. For example, a FinTech app wants to re-engage dormant users by tailoring communication based on their subscription tier and investment profile. **Setup** * Trigger: PBS segment `DormantUsers` (users inactive for 30 days) * Split Logic: The Advanced Conditional Split node evaluates: * `plan_type` (user property) * `investment_profile` (user property) ![Conditional Split with Advanced Use Case Setup](https://files.readme.io/8ca53545895d5eafbc5d02deda8957dd91149a5cca95b618cebdd277508bec6b-Advanced_Conditional_SPlit_Setup.png) Conditional Split with Advanced Use Case Setup **Conditions and Paths** * Condition 1: `plan_type` = Premium AND `investment_profile` = Aggressive → Sends an SMS with high-return investment ideas and a personalized win-back offer. * Condition 2: `plan_type` = Free AND `investment_profile` = Conservative → Sends an email with savings tips and curated low-risk product recommendations. * Fallback Path: No match → Sends a push notification with a limited-time discount or referral bonus. ![Conditional Split with Advanced Use Case Journey](https://files.readme.io/567841e0c658293c4c29b40be77a988fadad0f068b56ba485115fd11f2687d9c-Advanced_CS_Journey.png) Conditional Split with Advanced Use Case Journey The Conditional Split node uses the most updated user profile data at the time of qualification. Users are evaluated once and moved through their respective paths after satisfying the intermediate conditions, if any (such as a delay node). Updated about 2 months ago * * * Ask AI --- # Journey Use Cases This section covers some of the Journey use cases. Use the sample use cases to increase customer engagement and retention. * [Use Case 1: Score a Customer Using Past Behaviour Segment Journey](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey) * [Use Case 2: Recover Abandoned Cart Using Journeys](https://docs.clevertap.com/docs/use-case-2-recover-abandoned-cart-using-journeys) Updated about 2 months ago * * * Ask AI --- # n8n Overview [](https://docs.clevertap.com/docs/n8n#overview) ============================================================= [n8n](https://n8n.io/) is a powerful no-code or low-code workflow automation tool that enables you to connect a wide range of applications through visual workflows. With the CleverTap and n8n integration, you can trigger workflows based on any app supported by n8n and send user or event data directly to CleverTap, without writing any custom code or handling the API manually. With this integration, you can: * Automatically send form submissions from tools such as Typeform or Google Forms to CleverTap for real-time user segmentation. * Trigger CleverTap events when a deal is marked as won in CRM tools such as HubSpot. * Ingest webhook data (for example, payment confirmations, support tickets) into CleverTap for timely, personalized engagement. This document explains how to send _Form_ responses or data from other apps into CleverTap using n8n’s HTTP Request node. Prerequisites for Integration [](https://docs.clevertap.com/docs/n8n#prerequisites-for-integration) ======================================================================================================= Ensure you have the following before starting the integration: * A CleverTap account with a valid **Account ID**and **Passcode**. * An active [n8n account](https://n8n.io/) Integrate n8n with CleverTap [](https://docs.clevertap.com/docs/n8n#integrate-n8n-with-clevertap) ===================================================================================================== To integrate n8n with CleverTap, perform the following three major steps: 1. [Create Trigger Node in n8n](doc:n8n#create-trigger-node-in-n8n) . 2. [Set Up HTTP Request Node for CleverTap](doc:n8n#set-up-http-request-node-for-clevertap) . 3. [Test and Activate Workflow](doc:n8n#test-and-activate-workflow) . Create Trigger Node in n8n [](https://docs.clevertap.com/docs/n8n#create-trigger-node-in-n8n) ------------------------------------------------------------------------------------------------- Use this integration to automatically capture user details from form submissions, such as feedback, registration, or sign-up forms, and send them to CleverTap as user profiles for real-time personalization, segmentation, or campaign targeting. Create a workflow using a _Form Submission_ trigger in n8n to collect user data. To do so, perform the following steps on the n8n dashboard: 1. Log in to your n8n account and create a _New Project_. 2. Click **Add First Step** and select a trigger node. For this example, select _Form Submission_. ![Set up a Form Submission trigger node in n8n to collect user input.](https://files.readme.io/4a3f1c257e6080b29f7705a37a5448bbbb902fe04578ffc2abdb60a44c4eb45d-Screen_Recording_2025-07-02_at_3.40.01_PM_2.gif) Set Up Form Submission Trigger Node in n8n to Collect User Input. 3. Design and configure your _Form_ as per your use case. 4. Test the _Form submission_ and check that the data is captured correctly. ![Submit the form to test and capture user data.](https://files.readme.io/6c813be0d569ea5d8cefbcb9a0b17d713bd9d88844fc1eea4c2f6a9ce7c780d3-Screen_Recording_2025-07-02_at_3.42.06_PM_1.gif) Submit Form to Test and Capture User Data. 5. Save the trigger node once verified. Set Up HTTP Request Node for CleverTap [](https://docs.clevertap.com/docs/n8n#set-up-http-request-node-for-clevertap) ------------------------------------------------------------------------------------------------------------------------- Capture _Form_ data and send it to CleverTap using an HTTP Request node. This step defines where and how you send the data. To do so, perform the following steps on the n8n dashboard: 1. Add a new node by clicking the **+** symbol. 2. Search and select the _HTTP Request_ node. 3. Set the _HTTP Method_ to `POST`. 4. Use the following CleverTap endpoint to upload user profile data: .api.clevertap.com/1/upload> Replace `` with your CleverTap region. To identify the region of your account, refer to [CleverTap Regions](https://developer.clevertap.com/docs/idc#api) 5. In the _Headers_ section, add the following key-value pairs: | Key | Value | | --- | --- | | `X-CleverTap-Account-Id` | Your Account ID | | `X-CleverTap-Passcode` | Your Passcode | | `Content-Type` | `application/json` | To find your CleverTap Account ID and Passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . ![Configure the HTTP Request node with CleverTap's endpoint and headers.](https://files.readme.io/59d02f00f9bdcea5c7269da16f534a511feaaf608baa7e84ab00240391f1550f-Screen_Recording_2025-07-02_at_3.48.27_PM_1.gif) Configure HTTP Request Node with CleverTap Endpoint and Headers. ### Map Form Fields to CleverTap API Keys [](https://docs.clevertap.com/docs/n8n#map-form-fields-to-clevertap-api-keys) In the HTTP Request node, you must map the _Form_ fields collected in n8n to the required CleverTap API keys to ensure the data is sent correctly. Depending on your use case, refer to [Upload/Update User Profile](https://developer.clevertap.com/docs/upload-user-profiles-api) or [Upload Events](https://developer.clevertap.com/docs/upload-events-api) . To map form fields, perform the following steps on the n8n dashboard: 1. Set the _Body Parameters_ to _Raw JSON_. 2. Use dynamic variables from the _Form_ trigger node to populate the payload. **Example Payload for Uploading User Profile** JSON { "d": [\ {\ "objectId": "={{$json['email']}}",\ "type": "profile",\ "profileData": {\ "Name": "={{$json['name']}}",\ "Email": "={{$json['email']}}",\ "Phone": "={{$json['phone']}}"\ }\ }\ ] } 3. Once mapped, click **Execute Node** to test if data is sent successfully. ![Map form fields to CleverTap’s user profile payload using dynamic variables.](https://files.readme.io/d662e6cf73e9ef937f1c2212f3053ed7b82a1d400e787ed3becff5fb2fa0e22c-Screen_Recording_2025-07-02_at_3.53.00_PM_1.gif) Map Form Fields to CleverTap’s User Profile Payload Using Dynamic Variables Test and Activate Workflow [](https://docs.clevertap.com/docs/n8n#test-and-activate-workflow) ------------------------------------------------------------------------------------------------- Run the workflow and validate the results in CleverTap. After testing, activate the workflow to make it live. To do so, perform the following steps: 1. Go to your CleverTap dashboard and check if a user with the provided email has been created or updated. Open **User Profiles** in the CleverTap dashboard to confirm successful record creation. ![Verify the user profile in the CleverTap dashboard after submission.](https://files.readme.io/b7a356561a78ea30b6dc659bab64a68dbae9c0399fc3b64a2e3a8e5f1ff9da5e-image.png) Verify User Profile on CleverTap Dashboard After Submission 2. If successful, enable the **Activate** workflow in n8n. ![Activate the workflow in n8n to start syncing data with CleverTap.](https://files.readme.io/56584dd7f1c6100530f29c3cb1a4434c89f34de70e506dde3a634812b2618933-image.png) Activate Workflow in n8n to Sync Data with CleverTap Every time the _Form_ is submitted, the corresponding user data is synced with CleverTap. You can review **Recent API Calls** to troubleshoot or monitor the integration. This integration allows you to automate user onboarding or event tracking using any app supported by n8n, without writing or maintaining any code. Updated about 2 months ago * * * Ask AI --- # Conditional Split Stats Overview [](https://docs.clevertap.com/docs/conditional-split-stats#overview) ================================================================================= The Conditional Split Stats provide detailed insights about how users enter and move through each defined path. Stats are displayed per path and include counts and percentages under the _Node Stats_ tab. View Conditional Split Stats [](https://docs.clevertap.com/docs/conditional-split-stats#view-conditional-split-stats) ========================================================================================================================= Stats are displayed per path and include counts and percentages under the _Node Stats_ tab. To view the stats, perform the following steps: 1. Click the required journey from the All Journeys page. 2. Select the _Node Stats_ tab. The stats page opens to show the journey nodes. 3. Select the date range to show stats for the journey. ![Conditional Split Stats](https://files.readme.io/1ce5a488302a679a1345c047225b6fc243ea165c708e7a6fd4b02b0e03680bef-Conditional_Split_Stats.png) Node Stats for Conditional Split Journey 4. Open the Conditional Split node stats by clicking the node. The following stats are displayed: ![Conditional Split Node Stats](https://files.readme.io/779d9e55ecf3fe65f096d71827abb909c50bd0646de0ce47d92b6b628cd04b14-Conditional_Split_Node_Stats.png) Conditional Split Node Stats Conditional Split stats allow marketers to see how users are segmented across different paths, based on real-time or historical property evaluations. This reveals: * Which conditions attract the highest volume of users * How evenly (or unevenly) users are distributed across logic branches * Whether fallback/default paths are being overused. For example, if 80% of users fall into the fallback path, your segmentation logic may need refining. Users Across Paths [](https://docs.clevertap.com/docs/conditional-split-stats#users-across-paths) ----------------------------------------------------------------------------------------------------- This provides a visual and tabular representation of how users are distributed across each defined path over a selected time range. It helps you analyze the performance of your segmentation logic in real time and its effectiveness within the journey. ### User Trend by Path [](https://docs.clevertap.com/docs/conditional-split-stats#user-trend-by-path) The line chart in the Stats tab helps you quickly analyze user distribution across each conditional path over time. It is especially useful for identifying behavioral trends, spotting anomalies, and validating the performance of your split logic. ![Users Across Conditional Paths](https://files.readme.io/c5bf1baa0b112592e417d74a05f1696b053fecc28878c0ee72d506ae7734a716-Users_Across_Conditional_Paths.gif) Users Across Conditional Paths Each line in the chart corresponds to a defined path. The Y-axis represents the number of users who entered a specific path. The X-axis represents the time dimension, displayed based on the selected granularity: Day, Week, or Month. You can use the dropdown menu at the top right of the chart to toggle between: * Day(s) (default) * Week(s) * Month(s) This helps you zoom in on short-term spikes or zoom out for long-term trends. You can also toggle which paths appear in the graph. ### Tabular View of Users Across Path [](https://docs.clevertap.com/docs/conditional-split-stats#tabular-view-of-users-across-path) A tabular view below the graph provides detailed counts of users who entered each path, broken down day-wise (based on the selected filter). You can use the checkboxes to toggle which paths are visible in the graph. The columns in the table are aligned with the date markers in the graph for accurate comparison. ![Tabular View of Users Across Path](https://files.readme.io/853f684cd5efbddfafbd96048dd1ac46fa82ac03275b5e3a9f25ce8a2d82c44f-Users_Across_Conditional_Paths.gif) Tabular View of Users Across Path Updated about 2 months ago * * * Ask AI --- # Archive Journeys Archive Journeys [](https://docs.clevertap.com/docs/archive-journeys#archive-journeys) ------------------------------------------------------------------------------------------ To stop a Journey or to remove it from your dashboard, you can archive a Journey. This helps you to keep only relevant and the latest journeys for your reference on the main Journey listing page. To archive Journeys: 1. Click **Journeys**. The _Journeys_ page appears and lists all the available journeys. 2. Select the required Journeys and click the **Archive** icon ![](https://files.readme.io/fe9ec79-Journeys_archive_icon.png) on the top. ![1438](https://files.readme.io/2fd67987850df0bdb8f2b6cc22db3c49641181a3e9feb68f2302bf927b9df449-Archive_Journeys.gif "Select multiple Journeys and archive them") Archive Journeys > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/archive-journeys#note) > > Scheduled or running journeys cannot be archived. To unarchive a journey: 1. Click **Journeys**. The _Journeys_ page appears and lists all the available journeys. 2. Toggle the _Archived Journeys_ box at the bottom. All the archived Journeys are listed. 3. Select the required Journeys and click the Unarchive icon ![](https://files.readme.io/0b500cd-Journeys_unarchive_icon.png). Updated about 2 months ago * * * Ask AI --- # Create Conditional Split Journey Overview [](https://docs.clevertap.com/docs/create-conditional-split-journey#overview) ========================================================================================== This document walks you through the steps to configure and use the Conditional Split node within a CleverTap Journey. The Conditional Split node enables personalized, real-time decision-making by routing users down different paths based on their profile attributes, event behavior, or a combination of both. Create Conditional Split Journey [](https://docs.clevertap.com/docs/create-conditional-split-journey#create-conditional-split-journey) ========================================================================================================================================== Consider an example to understand how to build a journey using a Conditional Split node and how it works behind the scenes at each step. A movie streaming app wants to personalize content recommendations based on the movie genre selected by users during onboarding. By splitting users according to their `preferred_genre` (such as Action or Comedy), the app can deliver more relevant content suggestions and improve engagement through genre-specific emails and push notifications. To create a journey using the Conditional Split node, perform the following steps: 1. Create a new Journey. 2. Define the Entry Segment. Here, it will be the Action Node where the _Onboarding Completed_ event will be the trigger event. When a user completes onboarding, they immediately enter the journey. Since this is a live trigger, the user proceeds to the next node in real time. 3. Drag and drop the **Conditional Split** node from the _Controllers_ section. 4. Click the Conditional Split node to set up the conditions per your requirements. Here, the * Condition Type: User Property * User Property: `preferred_genre` ![Set Up Conditional Split Node](https://files.readme.io/065befe1fc18cd125f35dd168844c2bd3e8ba61333ffe53893f5a3d97fbe85d9-Set_Up_Conditional_Split_Node.gif) Set Up Conditional Split Node 5. Add the required engagement nodes for each path. Here, the split paths will be: * `preferred_genre` = Action * `preferred_genre` = Comedy * Others (fallback) → Default path with general recommendations. This path, labeled “Others”, captures all users who do not meet any configured conditions. This path appears last and cannot be reordered or renamed. All standard journey nodes can be connected to this path, except IntelliNODE. ![Create Conditional Split Journey for Movie Streaming App](https://files.readme.io/414acef6279f741efbe0848bdea8a569f75d8cf85f39878940559a3efbe6d438-Conditional_Split_Movie_Streaming_App.png) Create Conditional Split Journey for Movie Streaming App 5. **Save** or **Publish** the journey. When the user reaches the Conditional Split node, CleverTap checks the real-time value of the `preferred_genre` user property and routes the user down the first matching path. The personalized emails/push notifications are triggered immediately based on the user’s split path. This ensures users receive hyper-relevant content immediately after joining, increasing engagement and satisfaction from Day 1. > 📘 > > ### > > Node Connection Guidelines > > [](https://docs.clevertap.com/docs/create-conditional-split-journey#node-connection-guidelines) > > * Viewed and Sent paths from the same campaign node cannot connect to a Conditional Split node (to avoid conflicting logic) > * You cannot attach multiple Conditional Split nodes in parallel to the same origin path. Parallel Conditional Split nodes are allowed if each originates from different paths, such as separate PBS branches. > * The Conditional Split node routes users based on specific conditions. Since each user could follow a different path, you must handle each condition independently by connecting a separate node to each path. Order of Paths [](https://docs.clevertap.com/docs/create-conditional-split-journey#order-of-paths) ====================================================================================================== The order of paths is important because CleverTap evaluates conditions in the order they are defined and routes the user down the first matching path. If broader or overlapping conditions are placed higher in the order, more specific conditions lower down might never be checked, leading to incorrect user routing. For example: * Path 1: `plan_type` = Exists * Path 2: `plan_type` = Premium In this case, all users with a `plan_type` match Path 1 first, even if they are Premium. Sequential Conditional Split Nodes [](https://docs.clevertap.com/docs/create-conditional-split-journey#sequential-conditional-split-nodes) ============================================================================================================================================== You can chain multiple Conditional Split nodes to evaluate layered conditions. Each conditional split node evaluates conditions in the order they appear. This approach allows you to personalize paths based on event or user properties without needing complex segments. CleverTap supports up to three conditional split nodes in a journey, ideal for scenarios where decisions must be made step by step. Sequential Conditional Split Using User Properties [](https://docs.clevertap.com/docs/create-conditional-split-journey#sequential-conditional-split-using-user-properties) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ **Use Case**: A food delivery app wants to tailor promotional messages based on the user properties `subscription_plan` and `location`: ![Sequential Split by User Properties](https://files.readme.io/906ec81a7f1b98190f18f3fea13b9325c50be7a1cf06b1e5ae40faa11d1f294e-Sequential_Split_By_User_Properties.webp) Sequential Split by User Properties In this way, the app ensures that only Premium users in metro cities receive exclusive offers by chaining two conditional split nodes. In contrast, all other users receive appropriate alternatives based on plan and location. Sequential Conditional Split Using Event Properties [](https://docs.clevertap.com/docs/create-conditional-split-journey#sequential-conditional-split-using-event-properties) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- You can also chain multiple Conditional Split nodes to evaluate a series of event properties, provided each node follows a supported event trigger. **Use Case**: A food delivery app wants to personalize messages after an order based on the type of order placed and the time it was placed. * Conditional Split Node 1: Evaluates the event property `order_type` from the Order Placed event * `order_type` = Scheduled → Moves to Splitter 2 * `order_type` = Instant → Sends a Thank You message * Conditional Split Node 2 (connected to the “Scheduled” branch): Evaluates the event property delivery\_slot * `delivery_slot` = Dinner → Sends a message promoting dessert add-ons * `delivery_slot` = Lunch → Sends a message offering a lunch combo upgrade This setup tailors post-order engagement based on when and how the order was placed, enabling highly contextual and timely messaging. Usage Limits [](https://docs.clevertap.com/docs/create-conditional-split-journey#usage-limits) ================================================================================================== * **Sequential Split**: A maximum of 3 Conditional Split nodes can be used sequentially in a single journey. This allows for layered decision logic while maintaining clarity and control. * **Paths per Conditional Split Node**: Each Conditional Split node can support up to six defined condition paths, and a fallback path ("Others"), adding up to seven paths per node. * **Account-wide Limit**: A maximum of 15 Conditional Split nodes can be used per account across journeys. Error Scenarios [](https://docs.clevertap.com/docs/create-conditional-split-journey#error-scenarios) ======================================================================================================== The following are the error scenarios marketers may encounter while creating a Conditional Split journey: * **Incomplete Split Criteria** This occurs when a user opens the Conditional Split node and attempts to publish it without configuring any split conditions. The journey cannot be published until all path conditions are defined. ![Incomplete Split Criteria Error](https://files.readme.io/1a6f8d7c0090bc07646007e947af202ab93e1a73a8aac97ea00d8acd3c0d6c12-Incomplete_Split_Condition.gif) Incomplete Split Criteria Error * **Previous Node Modified or Deleted** This error occurs when the node connected to the Conditional Split, typically an Action or PBS node, is either modified to invalidate the existing conditions or deleted entirely from the journey canvas. ![Previous Node Deleted](https://files.readme.io/2c491387a028f6eff91fd2f5a6274f29f7de3fdb07502c05109e5e1d859b8ce2-Conditonal_Split_Node_Uninitialized.gif) Previous Node Deleted To resolve this, do the following: 1. Reconnect the Conditional Split node to a valid, configured segment or action node. 2. Reconfigure the split paths using relevant user/event properties from the new upstream node. 3. Validate the journey again before publishing. * **Unsupported Data Types in Conditions** This occurs when you attempt to select a property of type DateTime, List, or Number in the Split setup, which currently supports only String and Boolean. * **Path Conditions Exceed Limit** This occurs when you add more than the allowed number of paths. You can add six paths and one fallback path (automatically added), totaling seven paths per Conditional Split node. * **Fallback Path Missing or Unlinked** This occurs when the fallback path is deleted or left unconnected to any node. Updated about 2 months ago * * * Ask AI --- # Create and Manage Voucher Lists Overview [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#overview) ========================================================================================= View and manage all your voucher lists in one place. The _Voucher Lists_ page provides key details about each list, helping you track their status, usage, and associated campaigns. Access Voucher List [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#access-voucher-list) =============================================================================================================== To access the _Voucher Lists_ page, perform these steps: 1. Go to _Promotions_ from the CleverTap dashboard. 2. Click **Rewards** and select _Partner Vouchers_ from the dropdown menu. ![Voucher Lists](https://files.readme.io/b55c1ccbffd44f05f9ab7a67f24171c5aa6097fff121e15eba98d013160fed01-Voucher_Lists_Page.png) Voucher Lists The **Voucher Lists** page provides a comprehensive overview of all voucher lists with the following columns: | **Column Name** | **Description** | | --- | --- | | **List ID** | A unique identifier for each voucher list. Click the ID to view detailed information about the list. | | **Partner** | Displays the name of the voucher provider associated with the list. | | **List Tag** | A unique identifier for the voucher list is used along with the Partner Name to generate a distinct List ID. | | **Updated On** | The date and time of the most recent modification. | | **Status** | Indicates the current state of the voucher list. The following are the statuses:

* Active
* Expired
* Paused
* Archived

For more information, refer to [Voucher List Status and Actions](doc:create-and-manage-voucher-lists#voucher-list-status-and-actions)
. | | **Linked Promo Campaigns** | The number of campaigns using this voucher list. | | **Codes Uploaded** | The total number of voucher codes uploaded. | | **Codes Distributed** | The number of voucher codes issued to users. | Voucher List Status and Actions [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#voucher-list-status-and-actions) --------------------------------------------------------------------------------------------------------------------------------------- The status of a voucher list determines its availability and the actions you can take. Properly managing lists ensures seamless voucher distribution in promotional campaigns. The table below outlines each voucher list status, its description, and the actions you can perform: | Status | Description | Available Actions | | --- | --- | --- | | **Active** | Voucher list is available for use in promotional campaigns. | Pause, Edit, Upload codes, Archive | | **Paused** | Voucher list is temporarily inactive; campaigns cannot use codes. | Activate, Edit, Upload codes, Archive | | **Expired** | Voucher list has passed its expiration date and cannot be used. | Edit, Archive | | **Archived** | The voucher list is permanently deactivated and retained for record-keeping. | No further actions allowed | Voucher List Actions [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#voucher-list-actions) ----------------------------------------------------------------------------------------------------------------- To perform any action on the voucher list, click the ![](https://files.readme.io/bb833f57ad2428831fdc23f4a1bf488039206ddbf9bdd8083d13148e887e17cf-Ellipsis_Promo.png) icon next to the list. The available actions depend on the current status of the list. | Action | Effect | | --- | --- | | **Pause** | Temporarily deactivates an active voucher list, making it unavailable for campaigns. | | **Upload codes** | Adds new voucher codes to the existing list, ensuring continued distribution. | | **Edit** | Allows modifications to the list name, description, and expiry date. | | **Activate** | Reactivates a paused voucher list, making it available for use again. | | **Archive** | Permanently disables a voucher list, preventing any further modifications or usage. | Upload New Vouchers [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#upload-new-vouchers) =============================================================================================================== Before uploading new voucher codes, you must create a voucher list in CleverTap. Once created, you can upload codes to distribute them through campaigns. To upload new voucher codes, follow these steps: 1. Go to _Promotions_ from the CleverTap dashboard. 2. Click **Rewards** and select _Partner Vouchers_ from the dropdown. 3. Click **New Voucher List** in the top-right corner. 4. Enter the following details: | Field | Description | | --- | --- | | **Partner** | Enter the name of the voucher provider. For example, _Puma_. The partner name helps categorize and track voucher sources. If the Partner is not listed, click **Add Partner** to create a new entry. The system enforces case sensitivity and prevents duplicate partner names. For example, `clevertap` and `CLEVERTAP` are considered separate partners in Promo. | | **List tag** | Define a short, unique identifier for the codes. For example, _holi2025campaign_. The _List tag_ uniquely identifies the uploaded voucher list within CleverTap. It must be unique for each Partner. The system automatically converts the value to lowercase. Special characters are permitted, but spaces are not. | | **List name** | This is the name of the voucher list used for communication campaigns. For example, _Holi 2025 Sale_. It does not describe individual voucher codes but serves as an identifier for the list. | | **List description** | This field defines the usage conditions of the voucher codes uploaded in a voucher list. For example, _Offer is applicable on orders above $100_. | | **Files** | Upload a CSV file with voucher codes. The maximum file size must not exceed 50MB. Add voucher codes in a single column without comma-separated values. If multiple columns are added, the system rejects the file. | | **Expiry** | Set up an expiration date for the voucher list. Once the date expires, CleverTap stops distributing vouchers from this list. However, you can extend the expiration date if needed. | 5. Click **Create**. ![Create Voucher List](https://files.readme.io/35630e17dd4b532c7684410023af475c5cc7bedc9ef2324b2a4c569f3d80f922-Create_Voucher_List.png) Setup Voucher List View Upload History [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#view-upload-history) =============================================================================================================== Once a voucher file is uploaded, the system processes and validates the codes and records the upload logs against each voucher list. The _Upload_ tab logs details of uploaded voucher files, helping you track and manage the upload process. To view the upload history of a voucher file, click the **List ID** of the desired voucher list, then select the _Uploads_ tab. ![View Uploads](https://files.readme.io/b5be60febe7a6c8d3a4e898129653f3b4b8fdfb32e9f0104cee692872fe7fa7f-Uploads_History_Tab.gif) View Uploads Each entry has the following fields: | Column Name | Description | | --- | --- | | **Timestamp** | The date and time when the voucher file was uploaded. | | **Status** | Indicates the current state of the upload process. The possible statuses are:

* **Completed**: The upload was successful, and all valid voucher codes have been processed.
* **In Progress**: The system is still processing the uploaded file.
* **Failed**: The upload encountered errors, and no codes were processed. | | **Uploaded By** | Displays the email ID of the user who uploaded the voucher file. | | **File Name** | Displays the name of the uploaded file. | | **Codes (Uploaded/Total)** | Displays the number of voucher codes successfully uploaded compared to the total codes in the file. | | **Errors** | Displays issues found during upload, such as duplicate codes or an invalid file format. It also indicates the total number of errors found in the uploaded file.

Issues found during upload, such as duplicate codes or an invalid file format. The total number of errors is also displayed. | You can download the uploaded voucher file from the _Uploads_ page for reference or troubleshooting. ![Download Uploaded Vouchers File](https://files.readme.io/705175fec85decd3d94309734cc68c0a717eaf9c758cc1fd7740efa60a77a34b-Download_Voucher_File.png) Download Uploaded Vouchers File Upload Codes [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#upload-codes) ------------------------------------------------------------------------------------------------- If your voucher list is running low on codes, you can add more vouchers without creating a new list. This ensures seamless voucher distribution and prevents disruptions in your campaigns. To upload additional voucher codes: * Use the Upload Codes option to add new vouchers to an existing list at any time. * The system automatically validates new codes to prevent duplicates within the same list. * Once uploaded, the newly added codes immediately become available for distribution. > 📘 > > ### > > Errors in Uploading Codes > > [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#errors-in-uploading-codes) > > If an error occurs during upload, for example, duplicate codes or invalid format, download the _Error File_ from the _Uploads_ tab. This file contains error codes and corresponding error messages. Correct the errors and re-upload the corrected file using the _Upload codes_ flow against the same voucher list. Best Practices [](https://docs.clevertap.com/docs/create-and-manage-voucher-lists#best-practices) ===================================================================================================== To ensure smooth voucher list management and avoid disruptions in campaigns, follow these best practices: * **Upload Unique Voucher Codes**: Ensure that all voucher codes in a list are unique to prevent duplication errors and maintain accuracy. * **Monitor Status Regularly**: Keep track of the voucher list status to ensure it remains active for ongoing campaigns. * **Maintain Unique List Tag**: Use meaningful and distinct identifiers for better organization and easy reference. * **Keep Codes Updated**: Regularly upload new voucher codes to prevent depletion and ensure continuous availability. Updated about 2 months ago * * * Ask AI --- # Use Case 1: Score a Customer Using Past Behaviour Segment Journey Overview [](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey#overview) -------------------------------------------------------------------------------------------------------------------------- Identifying a user's engagement within an app, such as user activity, time spent, frequency of app usage, etc, can be challenging. However, at CleverTap, we suggest you utilize a Past Behaviour Segment (PBS) Journey to identify certain user behavior, assign the users a score based on their activity, and segment them later. It enables you to assess the user's engagement within the product and run targeted Push, In-app, Email, and Web campaigns. Sample Use Case [](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey#sample-use-case) ---------------------------------------------------------------------------------------------------------------------------------------- Create your Journey with several hierarchies of engagement nodes to identify four distinct user cohorts S1, S2, S3, and S4, where S1 users are your most valuable customers, and so on. You can later save these users as a segment and send personalized campaigns. ### Create a PBS Journey [](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey#create-a-pbs-journey) 1. **Set Up the Journey**: Set up a recurring Past Behaviour Segment Journey. Set the entry criteria and time for the users to enter the Journey. **Score Refresh Frequency**: You can modify the frequency of updating the user score weekly, biweekly, monthly, quarterly, or any frequency you like. To do so, you can modify the entry criterion in the Journey Setup using the _Recurring entry_ or _Multiple dates_, and _Allow users to re-enter the journey_ option. ![](https://files.readme.io/98d8e88-RecurringEntry.png) 2. **Create Journey Paths**: Create the Journey paths like a tree structure where all the nodes are mutually exclusive and collectively exhaustive. It ensures that no users are stuck along the Journey path. You can build highly complex Journey paths because there are no constraints on the tree structure. The following example shows a Journey with a sequence of PBS nodes that identify the user's performance of a certain event, followed by an _Update User Profile_ node and a _Force Exit_ node. If the user moves along a path and fulfills the criteria, the user property is updated, and the user is forced to exit. The user property value can be a string (S1, S2, S3, and so on.) or a score calculated from the backend. ![Scoring Customers Using Past Behaviour Journey ](https://files.readme.io/e8e78d3-ScoreCustomer.jpg) Scoring Customers Using Past Behaviour Journey In the above example, users who accomplish Events A, B1, and C1 on the first path will have their user property updated to S1. For example, * A = Users who launched the app * B1 = Users who charged for a specific number of times * C1 = Users who added to the cart a specific number of times. ![](https://files.readme.io/2d8b083-UserScoreLevel1.jpg) Similarly, based on the events users complete, the user property is updated as follows: * The user property of users who move via the second path is updated to S2. * The user property of users who move via the third path is updated to S3. * The user property of users who move via the fourth path is updated to S4. From the _Find People_ section, you may then retrieve the user property updates and constantly refresh the scores for the users. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey#note) > > You can also compute user scores using your own correlation analysis. 3. **Publish and Monitor**: You can now publish the Journey and monitor the Journey performance. ### Save the User Segment [](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey#save-the-user-segment) To find the users having user property as S1: 1. Go to _Segment_ > _Find People_. 2. Under _Display common properties such as_, enter the following details: ![](https://files.readme.io/16ad7c9-FindS1Users.jpg) 3. To save the resultant users into a segment, Click **Save segment**. 4. Enter the segment name as _S1 Users_ and click **Create**. You can now use the saved segment to send a campaign. ### Run a Campaign for the User Segment [](https://docs.clevertap.com/docs/use-case-1-score-a-customer-using-past-behaviour-segment-journey#run-a-campaign-for-the-user-segment) After you save the segment, create a Push campaign to target the S1 users. On the Push Notification campaign editor, under the _Who_ section, you must specify your campaign's target audience. Ensure you select _S1 Users_ as the segment. Create your message, then schedule it and publish the campaign. For more information about creating a Push message, refer to the [Create Push Message](https://staging.docs.user.clevertap.net/docs/create-message-push) document. Campaign provides users with a more personalised and engaging experience, resulting in improved retention rates and increased customer loyalty. Updated about 2 months ago * * * Ask AI --- # Align Journey Nodes #### **Auto Align and Space** [](https://docs.clevertap.com/docs/align-journey-nodes#auto-align-and-space) An elaborate Journey may contain multiple overlapping nodes and connections. The _Auto Align & Space_ button will help you add clarity to the Journey canvas. Click the ![](https://files.readme.io/c637c0b-Align_icon.png) icon on the upper right corner of the Journey canvas. The _Auto Align & Space_ button automatically rearranges and spaces your nodes so that all the stats are visible clearly. ![1438](https://files.readme.io/595d77e946d261e52aeede74fbc67b44d9027506f404c64d05778a88d23448b8-Align_Journey_Nodes_and_Links.gif "Align the decluttered journey nodes and links") Align Journey Nodes and Links The nodes on the _Nodes Stats_ tab are arranged automatically so that all the stats are visible clearly. ![1104](https://files.readme.io/9bc2438e22129b8aead35c3bbb373f2667a915bf9dd85816e4c1a31614428708-Align_Node_Stats.png "Align nodes in Journey statistics") Align Node Stats Updated about 2 months ago * * * Ask AI --- # Manage Personal Information Overview [](https://docs.clevertap.com/docs/manage-personal-information#overview) ===================================================================================== Personally Identifiable Information (**PII**) is any data that can identify an individual. PII may be used alone or with other relevant data to identify an individual. PII may include the following: * Name * Address * Email * Telephone Number * Date of Birth * Passport Number * Fingerprint * Credit or Debit Card Number * Social Security Number CleverTap does not automatically collect PII information, such as usernames, advertising identifiers, email addresses, mailing addresses, phone numbers, precise locations (such as GPS coordinates of four decimal places or more), etc. PII data must be explicitly pushed to CleverTap for it to be collected. Manage PII [](https://docs.clevertap.com/docs/manage-personal-information#manage-pii) ========================================================================================= To manage PII for end-users, you may use any or a combination of the following practices: * [Mask PII](doc:manage-personal-information#mask-pii) * [Audit Your Integration](doc:manage-personal-information#audit-your-integration) * [Use Non-PII Identifiers](doc:manage-personal-information#use-non-pii-identifiers) * [Use Server-Side Implementation](doc:manage-personal-information#use-server-side-implementation) * [Track Malicious Users](doc:manage-personal-information#track-malicious-users) Mask PII [](https://docs.clevertap.com/docs/manage-personal-information#mask-pii) ------------------------------------------------------------------------------------- PII masking is the process of hiding or obscuring sensitive information to protect the privacy and security of individuals. PII masking is commonly used in data storage and transmission, especially in cases where the data needs to be shared with third parties or stored in a less secure location. Organizations need to use PII masking techniques to prevent data breaches and protect the privacy of their customers or users. CleverTap lets you mask PII information to ensure security. For more information, refer to [Enable PII Masking](doc:pii-masking) and [Masking Personally Identifiable Information](https://docs.clevertap.com/docs/role-based-access-control#mask-personally-identifiable-information-and-events) . Audit Your Integration [](https://docs.clevertap.com/docs/manage-personal-information#audit-your-integration) ----------------------------------------------------------------------------------------------------------------- While planning your Integration, you should consult your internal legal counsel before pushing sensitive information such as PII to CleverTap. Get your [Event Design](https://docs.clevertap.com/docs/sample-events-by-business-verticals) document audited to prevent any _arbitrary data_ from being pushed to CleverTap. We recommend only pushing the _data needed_ to achieve the business objectives. For live integrations, use our Schema framework for auditing the data pushed to CleverTap. Use Non-PII Identifiers [](https://docs.clevertap.com/docs/manage-personal-information#use-non-pii-identifiers) ------------------------------------------------------------------------------------------------------------------- CleverTap's client-side SDKs automatically assign a unique random identifier called a CleverTap ID. You can associate the _CleverTap ID_ with an identifier such as an email address, phone number, or database ID via client-side SDKs or APIs. We strongly recommend using a non-PII identifier. Use Server-Side Implementation [](https://docs.clevertap.com/docs/manage-personal-information#use-server-side-implementation) --------------------------------------------------------------------------------------------------------------------------------- CleverTap SDKs are open source and can be viewed in the [CleverTap Github Repository](https://github.com/CleverTap) . You can also push data to CleverTap using our APIs or SFTP. We recommend a hybrid approach of client-side SDKs and APIs wherein the APIs pass sensitive information to CleverTap when required. Track Malicious Users [](https://docs.clevertap.com/docs/manage-personal-information#track-malicious-users) --------------------------------------------------------------------------------------------------------------- CleverTap SDKs use iOS or Android native storage. If a device's security is compromised or a user roots their Android device or jail breaks their iOS device, the data may be available for access to other third-party apps. We recommend using Non-PII identifiers and [Server-Side Implementation](https://developer.clevertap.com/docs/upload-user-profiles-api) for PII data. It can help you avoid any leakages. GDPR Compliance [](https://docs.clevertap.com/docs/manage-personal-information#gdpr-compliance) =================================================================================================== CleverTap does not collect any of the data types by default, thus ensuring GDPR compliance for our clients. We go to great lengths to ensure customer data security, privacy, and confidentiality. We provide a role-based app­ level access control to customers to manage access to their data. For more information, refer to [SDK Changes for GDPR Compliance](https://developer.clevertap.com/docs/sdk-changes-for-gdpr-compliance) . Updated about 2 months ago * * * Ask AI --- # Conditional Split By Event Property Overview [](https://docs.clevertap.com/docs/conditional-split-by-event-property#overview) ============================================================================================= The Conditional Split node can branch users based on event properties, such as `product_category`, `order_value`, or `device_type`. Only String and Boolean event property types are supported. You will encounter a validation error if an unsupported event property data type is used (for example, arrays or numbers). Event property–based splits are supported when the previous node is an Action or Inaction node in a Live Journey The table below outlines where event property-based splits are supported: | Journey Type | Trigger Type | When Split Check Happens | Event Property Support | Event Property Type | | --- | --- | --- | --- | --- | | Live | Action | In real time | Yes | String, Boolean | | Live | Inaction | In real time | Yes | String, Boolean | Target Evaluation Type: Action/Inaction Node [](https://docs.clevertap.com/docs/conditional-split-by-event-property#target-evaluation-type-actioninaction-node) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- When an Action or Inaction node triggers a journey, the Conditional Split node can evaluate the event properties from that specific action as soon as the user reaches the node. For example, a job search app wants to tailor the follow-up messages based on the job category a user applies to. With Conditional Split, the journey triggered by the _Application Submitted_ event (Action node) can immediately route users by evaluating the `job_type` event property: ![Conditional Split by Event Property Setup ](https://files.readme.io/eb2677f696b8fa65b1007ce4cf6e6c70a79d8ead473b88285273e11ff546989f-CS_by_Event_Property_Setup.png) Conditional Split by Event Property Setup * `job_type` = Tech → Sends an email highlighting tech interview prep resources, followed by a push with tech role recommendations. * `job_type` = Marketing → Sends an email with resume tips for creatives, followed by a push featuring top marketing jobs. * Others → Sends a general email on job search tips, followed by a push notification linking to personalized job discovery tools. ![Conditional Split by Event Property Journey](https://files.readme.io/2de98fb3b3f88e2be92539e282b877e9ca2c360aeca71a537a609cb219138368-CS_by_Event_Property_Journey.png) Conditional Split by Event Property Journey Conditional Split eliminates the delay between the event and personalized engagement. It turns user actions into immediate, contextual engagement, simplifying journey design. Updated about 2 months ago * * * Ask AI --- # Billing and Overages: FAQs Can I access additional features outside of the CleverTap Essentials plan? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#can-i-access-additional-features-outside-of-the-clevertap-essentials-plan) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap Essentials plan provides additional features available as either free or paid add-ons to help you grow. After you have mastered the basics, we recommend getting our [lifecycle optimizer](doc:lifecycle-optimizer) , where you can map the user lifecycle and nudge users from one engagement stage to the next. Check out all the available add-ons under the My Plan section of the platform. For more information on including or removing add-ons, refer to the [add-ons](doc:features-add-ons#add-ons) section. Are there any separate costs for sending emails and SMS? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#are-there-any-separate-costs-for-sending-emails-and-sms) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- You can integrate several external email and SMS service providers with CleverTap. There are no additional charges from CleverTap to integrate your email or SMS service providers and start running campaigns. Find out more about our [email integrations](doc:email-partners) and [SMS integrations](doc:sms-partners) . How do I contact support? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#how-do-i-contact-support) ------------------------------------------------------------------------------------------------------------------------------ CleverTap provides product documentation, video walk-throughs, educational webinars, and more. We are always here to support your growth. To report an issue or a bug, you can do so via the CleverTap platform. Why did my payment fail? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#why-did-my-payment-fail) ---------------------------------------------------------------------------------------------------------------------------- If your card has been rejected, ensure your card information is up-to-date (for example, expiration date and CVV code) and that you are entering your card number without dashes or spaces. If your card is still not processing, you may need to follow up with your bank to see if there are any issues on their end. If you still have issues, create a support help request via the platform by providing the required details. Can I make a manual payment? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#can-i-make-a-manual-payment) ------------------------------------------------------------------------------------------------------------------------------------ Since we process payments through a third-party processor, we cannot manually enter your card. Cards are automatically processed through CleverTap. Can I make my payment with more than one card? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#can-i-make-my-payment-with-more-than-one-card) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Our payment system is set up to upload only one card at a time; however, you can change your card information anytime. Can I split my payment into smaller payments? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#can-i-split-my-payment-into-smaller-payments) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- No, our payment system is set up to charge the entire invoice amount due to the card attached to the account. Is it possible to switch my CleverTap Essentials account from the EU region to a different region? [](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs#is-it-possible-to-switch-my-clevertap-essentials-account-from-the-eu-region-to-a-different-region) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- No, CleverTap Essentials accounts do not support direct region change. To set a different region for your account, upgrade to the Advanced or Cutting Edge plan. Updated about 2 months ago * * * Ask AI --- # Plans and Programs Here are the essential components of CleverTap for Startup customers: the Essentials Plan and the Leap Program. Whether you require comprehensive solutions or strategic partnerships, these offerings are tailored to empower your startup's growth and success. Essentials Plan [](https://docs.clevertap.com/docs/plans-and-programs#essentials-plan) ========================================================================================== The [Essentials plan](https://clevertap.com/clevertap-for-startups-features/?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) helps early to mid-stage startups looking for an all-in-one engagement platform to grow their business. Pricing starts at a base rate of $75/month with an MAU tier of up to 5,000 users. The plan can support up to 100,000 MAU (Monthly Active Users), and the user history is retained for one year. To make this more customizable to the specific requirements of your business, you can choose to add paid [add-ons](https://clevertap.com/clevertap-for-startups-features?utm_source=C4S&utm_medium=doc&utm_campaign=KB) as per your use case. The billing is based on the Monthly Billable Users, derived from Monthly Active Users and the processed Data Points, whichever is higher. For more information, refer to the [Billing](doc:billing) . To get a comprehensive and supervised understanding of how the product works, register [here](https://bit.ly/c4sdemo?utm_source=C4S&utm_medium=doc&utm_campaign=KB) for our interactive webinars. You can also sign up with the Essentials Plan and get access to a demo account that has been populated with sample data for you to understand and explore the platform’s features and functionalities. Leap Program [](https://docs.clevertap.com/docs/plans-and-programs#leap-program) ==================================================================================== CleverTap offers a complete engagement and retention suite for your startup. As part of the [Leap program](https://clevertap.com/leap?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) , we are offering growing companies generous discounts to get started. Take a look at the Startup growth partners that are supported as of now: !["Leap Discount Partnerships: Accelerators and Incubators"](https://files.readme.io/cbfae35-image.png) Leap Discount Partnerships Inclusions [](https://docs.clevertap.com/docs/plans-and-programs#inclusions) -------------------------------------------------------------------------------- As part of the Leap Program, you gain access to the following: * A discount on the CleverTap for Startups Plan, including add-ons. * Complete access to a library of marketing resources, product documentation, and ongoing user engagement events and webinars. * Opportunity to collaborate with us on joint marketing initiatives such as case studies and webinars. Eligibility Criteria [](https://docs.clevertap.com/docs/plans-and-programs#eligibility-criteria) ---------------------------------------------------------------------------------------------------- To be eligible for the CleverTap Leap program, all businesses must meet the following criteria: * Applicable only on CleverTap for Startups. * Have not previously received CleverTap discounts/credits. * Should be a current participant or alumni with one of our startup growth partners. * Applicable only to customers who are new to CleverTap. How to Apply? [](https://docs.clevertap.com/docs/plans-and-programs#how-to-apply) ------------------------------------------------------------------------------------- To take advantage of the benefits offered by CleverTap, follow these simple steps: * Sign up for the CleverTap for Startups plan * If you have already subscribed, fill out the [application form](https://clevertap.com/leap/?utm_source=C4S&utm_medium=doc&utm_id=KB) . * Sit tight! We will get back to you. Updated about 2 months ago * * * Ask AI --- # Workflow Automation Partners Overview [](https://docs.clevertap.com/docs/workflow-automation-partners#overview) ====================================================================================== CleverTap integrates with leading workflow automation tools to streamline processes and boost productivity. These integrations enable businesses to automate actions across apps, trigger events, and manage data seamlessly, driving greater operational efficiency. CleverTap currently supports the following partner platforms: * [Airtable](doc:airtable) * [Apxor](doc:apxor) * [DataChannel](doc:datachannel) * [n8n](doc:n8n) * [Pipedream](doc:pipedream) * [SheetDB](doc:sheetdb) * [Sheetlabs](doc:sheetlabs) * [Smashpops](doc:smashpops) * [Zapier](doc:zapier) Updated about 1 month ago * * * Ask AI --- # Conditional Split By User Property Overview [](https://docs.clevertap.com/docs/conditional-split-by-user-property#overview) ============================================================================================ The Conditional Split node can be used to branch users based on user properties such as `plan_type`, `location`, `subscription_status`, or any other attribute stored in the user profile. You can use user properties with _String_ or _Boolean_ values for your conditions. You will encounter validation errors if unsupported user property types (arrays or objects) are selected. Conditional split evaluation for target users is closely related to the criteria of target evaluation. Target Evaluation Type: Live Node [](https://docs.clevertap.com/docs/conditional-split-by-user-property#target-evaluation-type-live-node) --------------------------------------------------------------------------------------------------------------------------------------------- If you choose Action, Inaction, or Date/Time as the target evaluation criteria, the Conditional Split node instantly checks user properties to determine the next path in the journey. As soon as the user reaches the Conditional Split node, CleverTap checks the latest value of the selected user property and routes the user down the first matching path. For example, a music streaming app wants to split users based on their favorite music genre and personalize recommendations. ![Conditional Split by User Property Setup for Trigger Type Action Node](https://files.readme.io/3cd26775e2839146fa52b99da6e1ea0591329a495723dd8b78abb0c9890ffb9f-CS_Setup_for_split_by_User_Property_.png) Conditional Split by User Property Setup for Trigger Type Action Node The Action node (here, Onboarding Complete) triggers the journey, and users are split immediately based on the `preferred_genre` user property as follows: * `preferred_genre` = Pop → Sends an email with trending pop playlists, followed by a push notification after 2 days to nudge engagement. * `preferred_genre` = Jazz → Sends an email with a curated jazz essentials collection, followed by a push notification after 2 days. * Others → Sends an email with Trending Chartbusters, followed by a push notification after 2 days. ![Conditional Split by User Property for Trigger Type Action Node](https://files.readme.io/dc72141885fbe5763de04f6564ac2fb8a2166cd6531d365d526ac9b3c11c9f11-CS_by_User_Property_Journey.png) Conditional Split by User Property for Trigger Type Action Node Target Evaluation Type: Past Behavior Node [](https://docs.clevertap.com/docs/conditional-split-by-user-property#target-evaluation-type-past-behavior-node) --------------------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a unified view of user profile and behavior to determine the correct path, enabling precise and contextual targeting. When the target evaluation is of a past behavior segment type, the conditional split node evaluates user properties based on how the PBS node is configured. * **PBS as Entry Node** If the journey’s entry node is a Past Behavior Segment (PBS) followed by a Conditional Split node, the Conditional Split evaluates users daily at midnight. This allows newly qualifying users (based on updated properties or behaviors) to enter the appropriate path from that day onward. * **PBS Within Journey Flow** If a PBS node is used mid-journey (within the journey flow) and is followed by a conditional split node, user property evaluation still happens at midnight as per the scheduled PBS run. Conditional split evaluation happens as soon as users reach the conditional split node after completing any intermediate nodes (for example, Delay Node or other logic nodes). The Conditional Split does not re-evaluate; it uses the user property values available during PBS evaluation. For example, an electronics retail brand wants to re-engage users who showed interest in specific product categories (such as TVs, mobiles, or ACs) but have not returned in the past 14 days. * Trigger: PBS segment with conditions: * `last_browsed_category` = Electronics * `last_active_date` > 14 days ago When the journey starts, users are split based on their `preferred_device_type` user property: * `preferred_device_type` = TV → Sends an email with trending Smart TV deals, followed by a push after 2 days. * `preferred_device_type` = Mobile → Sends mobile deals via email, followed by a WhatsApp message. * No Preference → Sends a fallback email with a coupon, followed by a promotional push notification ![Conditional Split by User Property for Trigger Type PBS Node](https://files.readme.io/8b906596199cbdd7e125ef53cb89887160037f39373078c3285368eed4b38834-CS_by_User_Property_PBS_Journey.png) Conditional Split by User Property for Trigger Type PBS Node Updated about 2 months ago * * * Ask AI --- # WhatsApp Direct Add-on Overview [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#overview) ================================================================================ The WhatsApp Direct Add-on for CleverTap Essentials enables your business to engage with customers on WhatsApp without a separate Business Solution Provider (BSP). With this add-on, you get direct access to CleverTap’s WhatsApp BSP, allowing you to send campaigns, trigger journeys, and manage conversations seamlessly within CleverTap. This add-on is ideal for startups and growing businesses that want a simple setup, transparent pricing, and complete control over message delivery. Here’s why the WhatsApp Direct Add-on is the right choice for your business: * **No external BSP required**: Use CleverTap’s WhatsApp Direct out of the box. * **Seamless integration**: Configure WhatsApp under _Settings_ > _Channels_ immediately after purchase. * **Transparent pricing**: Fixed platform fee + pre-paid credits, no hidden costs. * **Control over usage**: Campaigns automatically stop when credits run out, preventing overages. Prerequisites [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#prerequisites) ========================================================================================== Before enabling the WhatsApp Direct Add-on, check that your business meets the following requirements: * A CleverTap Essentials account. * Admin access to your organization’s account. Pricing and Billing [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#pricing-and-billing) ====================================================================================================== The WhatsApp Direct Add-on is billed at 20% of your base plan fee. The monthly fee will appear in your Chargebee invoice. Additionally, you must buy credits to send messages. Enable Add-on [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#enable-add-on) ========================================================================================== The following are the key steps to enable the WhatsApp Direct Add-on feature in your project: 1. [Purchase WhatsApp Direct Add-on](doc:whatsapp-direct-add-on#purchase-the-whatsapp-direct-add-on) 2. [Purchase Credits](doc:whatsapp-direct-add-on#purchase-credits) 3. [Configure WhatsApp Direct Settings](doc:whatsapp-direct-add-on#configure-whatsapp-direct-settings) Purchase WhatsApp Direct Add-on [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#purchase-whatsapp-direct-add-on) ------------------------------------------------------------------------------------------------------------------------------ The add-on does not include free credits. Credits must be purchased separately, and this add-on is not enabled without them. To purchase the WhatsApp Direct Add-on: 1. Log in as an **Admin** to your CleverTap account. 2. Go to _Organization_ > _Billing_ > _My Plan_ > _Manage Add-ons_. 3. Locate _WhatsApp Direct Add-on_ in the list. 4. Click **Purchase**. 5. Confirm the purchase. Purchase Credits [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#purchase-credits) ------------------------------------------------------------------------------------------------ Credits are required to send WhatsApp Direct messages. Credits have no expiry, and they roll over across billing cycles. The invoices for credits are available under _Billing_ > _Invoices_. To purchase credits: 1. Log in as an **Admin** to your CleverTap account. 2. Go to _Organization_ > _Billing_ > _My Plan_ > _Manage Add-ons_. 3. Click **Purchase Credits**. 4. Select the required number of credits. 5. Click **Continue to payment** and complete the checkout process. Configure WhatsApp Direct Settings [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#configure-whatsapp-direct-settings) ------------------------------------------------------------------------------------------------------------------------------------ Once purchased, you are redirected to _Settings_ > _Channels_ > _WhatsApp_, where you can configure your WhatsApp channel. For more information, refer to [CleverTap WhatsApp](doc:clevertap-bsp) . Using WhatsApp Credits [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#using-whatsapp-credits) ============================================================================================================ Keep track of your WhatsApp credit usage to ensure uninterrupted campaign delivery. Consumption Tracking [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#consumption-tracking) -------------------------------------------------------------------------------------------------------- Admins can track credit usage by navigating to _Billing_ > _My Plan_ > _Details_. The following breakdown is available for credit usage: * **By Country**: Usage across geographies. * **By Message Category**: Utility, Service, Marketing. Alerts and Notifications [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#alerts-and-notifications) ---------------------------------------------------------------------------------------------------------------- To help you avoid disruptions in your messaging campaigns: * Dashboard alerts and email notifications are triggered when your balance falls below a certain threshold. * if credits are running low, in-app nudges appear when creating WhatsApp campaigns or journeys. Campaign Behavior [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#campaign-behavior) -------------------------------------------------------------------------------------------------- Understand how your WhatsApp campaigns work based on credit availability: * **When credits are available**: WhatsApp Direct campaigns and journeys run normally. * **When credits are exhausted**: * All active WhatsApp Direct campaigns are stopped. * New WhatsApp Direct campaigns cannot be created until credits are purchased. * Campaigns using WhatsApp Connect (your own BSP) remain unaffected. FAQs [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#faqs) ======================================================================== ### Q. Do credits expire? [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#q-do-credits-expire) No. Credits remain available until consumed, even if billing cycles change. ### Q. What happens if I cancel the add-on while credits remain? [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#q-what-happens-if-i-cancel-the-add-on-while-credits-remain) Unused credits will not be refunded. Please check that you consume credits before opting out. ### Q. Can non-admin users purchase credits? [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#q-can-non-admin-users-purchase-credits) No. Only account admins can purchase and manage credits. ### Q. Will my campaigns automatically restart after buying credits? [](https://docs.clevertap.com/docs/whatsapp-direct-add-on#q-will-my-campaigns-automatically-restart-after-buying-credits) No. Campaigns that stopped due to exhausted credits must be restarted manually. Updated about 2 months ago * * * Ask AI --- # Support Ticket Overview [](https://docs.clevertap.com/docs/support-ticket#overview) ======================================================================== If you encounter any questions or technical issues while using CleverTap, you can easily raise a Support Request with us. Before doing so, ensure you have explored the documentation available on our [Help Center](https://help.clevertap.com/hc/en-us) . Additionally, we recommend utilizing [Ask](https://ask.clevertap.com/) , our AI-assisted chatbot accessible from the Dashboard menu, to seek immediate assistance. Alternatively, CleverTap Enterprise customers can directly contact their dedicated Technical Account Manager (TAM) or Customer Success Manager (CSM). To initiate and monitor support requests conveniently, you can utilize the CleverTap Dashboard. This allows you to track both ongoing and past tickets, ensuring a streamlined experience in addressing your concerns. Furthermore, raising a support request from the dashboard automatically captures relevant account details. This enables our customer success team to efficiently assess, prioritize, and resolve issues. This feature is available to all customers. Raise a Support Ticket [](https://docs.clevertap.com/docs/support-ticket#raise-a-support-ticket) ==================================================================================================== You can raise support requests from the following: (i) CleverTap Dashboard and (ii) CleverTap Help Center. The process may vary a bit depending on the method you choose to raise a request. From CleverTap Dashboard [](https://docs.clevertap.com/docs/support-ticket#from-clevertap-dashboard) -------------------------------------------------------------------------------------------------------- To create a support ticket from within the CleverTap dashboard: 1. Log into your Clevertap account. 2. Click the ![](https://files.readme.io/349fbe3-Need_Help_icon.png) icon and select _Create a Support Ticket_ from the list. The **Create Support Ticket** pop-up window opens. ![Creating Support Ticket](https://files.readme.io/7353d37-Support_Ticket_from_CleverTap_Dashboard.gif) Creating Support Ticket 3. Enter the following details: | Fields | Description | | --- | --- | | Email ID | This field is prepopulated with your related email ID. This is not an editable field. | | Account ID | This field is prepopulated with your CT account ID. This is not an editable field. | | Account Name | This field is prepopulated with your account name. This is not an editable field. | | * What do you need help with? | Select from the drop-down option for which you need help. | | * Category | Select the predefined classifications from the drop-down menu to specify the nature of your support inquiry.
There are the following options:

* _Query_: Select this option for general inquiries or questions regarding CleverTap features, functionalities, or best practices.

* _Bug_: Select this option to report any technical issues, errors, or unexpected behavior experienced while using CleverTap.

* _Billing_: Select this option for inquiries related to billing, subscription plans, invoices, payment processing, or account billing details.

* _Feature Request_: Select this option to suggest new features, enhancements, or improvements you would like to see implemented in CleverTap.

* _Integration_: Select this option if you require assistance with integrating CleverTap with other platforms or services. | | * Priority | Select from the drop-down option to designate the urgency level of your support request. You can select from the following priority options:

* _Urgent_: Select this option for critical issues requiring immediate attention.

* _High_: Select this option for significant and impactful issues that may not require immediate resolution.

* _Medium_: Select this option for important issues that do not require urgent attention.

* _Low_: Select this option for low-priority issues that have minimal impact on operations or functionality. | | * Subject | Provide a brief description of what you need help with. This is a mandatory field. | | * Description | Provide any additional information that we can use to help you. This is a mandatory field. | | Attach Files | Add any relevant file or document that provides additional context or information related to your support request. | | Add team members | Add any email address of your team member who may be involved in or responsible for addressing the reported issue. You can add up to 10 email addresses. | \* The fields marked with asterisk (\*) mark are mandatory fields. 4. Click **Create Support Request** to create a support ticket. Our customer success team will receive the ticket along with pertinent account details. Based on the provided information, they will assess, prioritize, and address the issue efficiently. You will receive updates and notifications regarding the progress and resolution of your ticket from the CT dashboard. From CleverTap Help Center [](https://docs.clevertap.com/docs/support-ticket#from-clevertap-help-center) ------------------------------------------------------------------------------------------------------------ To raise a support request from the Clevertap Help Center, visit the [CleverTap Help Center](https://help.clevertap.com/hc/en-us/requests/new) and select from the following options * _I have a CleverTap account_: If you choose this option, you will be advised to raise a ticket from within the CleverTap dashboard. * _I can't log in to my CleverTap Dashboard, or I don't have a CleverTap account yet_: If you select this option, you are prompted to enter the details of the issue you are encountering. ![Submit a Support Request from the Help Center](https://files.readme.io/cc0572d-Submit_a_Request_-_Help_Center.png) Submit a Support Request from the Help Center Track A Support Request [](https://docs.clevertap.com/docs/support-ticket#track-a-support-request) ====================================================================================================== After you create your support ticket, you can track it from _Ticket Dashboard_ > _Need Help?_. The Ticket Dashboard lists the support tickets created with their status. You can also find the ticket history on this page. ![Track Your Support Request](https://files.readme.io/8e8083e-image.png) Track Your Support Request Updated about 2 months ago * * * Ask AI --- # Setup and Integration Integration [](https://docs.clevertap.com/docs/setup-integration#integration) ================================================================================= Integrating the CleverTap SDK with your mobile app or website is the first step to understanding and retaining users while igniting growth. The Essentials plan is a self-serve model where we provide support for integration via: * [Documentation](https://docs.clevertap.com/docs) : A product documentation entailing CleverTap overview for users, platform features, and core concepts, and developer documentation covering SDK, API, and Development resources to help you get. * [Integration Videos](https://eu1.dashboard.clevertap.com/R74-ZWR-R44Z/integration-videos?utm_source=C4S&utm_medium=doc&utm_campaign=KB) : These videos can be accessed from the _Need Help?_ section to help you tackle integration issues. * [Integration Checklist](https://eu1.dashboard.clevertap.com/R74-ZWR-R44Z/main?utm_source=C4S&utm_medium=doc&utm_campaign=KB) : Available on your CleverTap dashboard to guide you through onboarding and setup. * [Support tickets](https://bit.ly/c4sticket?utm_source=C4S&utm_medium=doc&utm_campaign=KB) : You will be able to raise support tickets, and the support team will revert back over the email. In case you need a specialized onboarding manager, then you would need to upgrade to an Enterprise plan. The time to integrate depends on the speed and skills of your software developer. It also depends on the number of metrics you want to track and the Mar-Tech stack of your business. We have customers who have integrated CleverTap in a week. It is recommended that you begin with tracking only the most essential metrics for your business. [Data Setup](doc:onboarding-setup-data-management) [](https://docs.clevertap.com/docs/setup-integration#data-setup) ======================================================================================================================= Data setup starts with defining the structure for your data, that is, Schema. Once that is defined and all the required SDKs are integrated, the data flows into the CleverTap dashboard. Read on to learn more about Schema and User Profiles. [Schema](doc:schema) [](https://docs.clevertap.com/docs/setup-integration#schema) ------------------------------------------------------------------------------------- Schema is a framework to maintain, organize, and structure your data. It enforces rules to maintain data integrity so that you can avoid data quality issues later. The schema table stores event and user properties in a pre-defined order to preserve data sanity. Let us quickly overview events and user profiles in the upcoming sections. [User Profile](doc:concepts-user-profiles) [](https://docs.clevertap.com/docs/setup-integration#user-profile) ----------------------------------------------------------------------------------------------------------------- A CleverTap user profile has a set of default fields, such as email, phone number, and language. You can also extend the default user profile by adding custom fields that are specific to your business. A CleverTap user profile consists of three parts: * **Identifiers**: Each user profile is given a unique CleverTap ID. You can also add other identifiers to recognize the user, including email, phone number, Facebook ID, or your own custom identifier. To learn more about how identity works on the CleverTap dashboard, refer to the [User Profiles](doc:concepts-user-profiles) documentation. * **Properties**: User profile properties such as age, gender, device, and location. You can also extend the default user profile by adding custom fields that are specific to your business. ![User Properties](https://files.readme.io/b58d5ee-image.png) User Properties * **Events**: This is a log of actions a user takes in your app, such as a product viewed, a video watched, or an item added to the cart. ### [User Profile Types](doc:user-profiles#user-profile-types) [](https://docs.clevertap.com/docs/setup-integration#user-profile-types) The CleverTap user profile type changes automatically depending on the information set in them. A user profile can only belong to one type: * Anonymous/Guest * Addressable User Profiles * Customer #### [Updating User Profile](doc:user-profiles#user-profile-types) [](https://docs.clevertap.com/docs/setup-integration#updating-user-profile) You can also upload user properties via CSV, API, and SFTP Import. For more information, refer to the following documentation below. * [Uploading User Profiles via API](https://developer.clevertap.com/docs/upload-user-profiles-api) * [Importing data via SFTP](https://developer.clevertap.com/docs/imports-via-sftp) * [CSV Upload](doc:csv-upload) [Events](https://developer.clevertap.com/docs/events?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) [](https://docs.clevertap.com/docs/setup-integration#events) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- Events track what individual actions users perform in your app or website. Some examples of events include a user launching an app, viewing a product, listening to a song, sharing a photo, making a purchase, or favoriting an item. An event could be of four types: * [System Events](doc:schema#system-events) : These are events tracked automatically after you Integrate our SDK. Some events tracked automatically are app install, app launched, notification sent, notification viewed, etc. Check the complete [list of system events](https://developer.clevertap.com/docs/events#system-events) in CleverTap. * [Custom Events](doc:schema#custom-events) : These are events you can define, edit, remove, and so on. These are your app events that you can fully control. * [Conversion Event](doc:schema#conversion-event) : These events help you track conversion. For example, _charged_ event for an e-commerce app or an _order placed_ for a Food-Tech app or website. * [Qualifying Event](doc:schema#section-qualifying-event) : This event qualifies users as active if they have performed the event at least once in the defined time. Updated about 2 months ago * * * Ask AI --- # IntelliNODE Stats Overview [](https://docs.clevertap.com/docs/intellinode-stats#overview) =========================================================================== The Stats for an IntelliNODE provide a summary of results collected for each path. This helps understand the goal conversions for the paths to decide the user distributions better. View Node Stats [](https://docs.clevertap.com/docs/intellinode-stats#view-node-stats) ========================================================================================= 1. Click the required journey from the _All Journeys_ page. 2. Click **Node Stats**. The stats page opens to show the journey nodes. 3. Select the date range to show stats for the journey. ![2212](https://files.readme.io/8059ddaece4390e3fb957019d29abeb23cc03f247154a2d589f2bc8a6648a1b5-View_IntelliNODE_Node_Stats_for_a_Journey.png "View IntelliNODE node stats for a Journey") View IntelliNODE Node Stats for a Journey View IntelliNODE Stats [](https://docs.clevertap.com/docs/intellinode-stats#view-intellinode-stats) ------------------------------------------------------------------------------------------------------- Click the IntelliNODE on the Node Stats page to view detailed stats for each experiment. Scroll down to view the detailed stats. This page displays the following information: * [Goal Conversion Across Paths](https://docs.clevertap.com/docs/intellinode-stats#goal-conversion-across-paths) * [Winning Path Selection](https://docs.clevertap.com/docs/intellinode-stats#declare-winning-path) * [Change Log](https://docs.clevertap.com/docs/intellinode-stats#view-change-log) * [Goal Conversion (#) Across Paths Chart](https://docs.clevertap.com/docs/intellinode-stats#goal-conversion--across-paths) * [User Distribution (%) Across Paths Chart](https://docs.clevertap.com/docs/intellinode-stats#user-distribution--across-paths) Goal Conversion Across Paths [](https://docs.clevertap.com/docs/intellinode-stats#goal-conversion-across-paths) ------------------------------------------------------------------------------------------------------------------- You can view the goal conversion results for all paths in absolute numbers or percentages. The values are cumulative from the date the journey was first run till the date selected on the canvas. The following details are displayed on the _Stats_ page: * Paths: Lists all the paths drawn from the IntelliNODE. There can be up to 7 paths. * Users Entered: Shows all the users that entered the path. * Goal: Shows how many people performed the IntelliNODE goal event for each path. You can set up to 3 goals for an IntelliNODE. * Total Conversions: Displays the summation of all the defined goals, that is, _Goal 1 + Goal 2 + Goal 3 = Total Conversions._ ![1532](https://files.readme.io/1daebd3ee1e2971a82e5061c963695f8b4b1a1f76ab716033d2764a06650a652-Goal_Conversions_Across_Paths.png "View IntelliNODE goal conversion results for all paths") View IntelliNODE Goal Stats ### Declare Winning Path [](https://docs.clevertap.com/docs/intellinode-stats#declare-winning-path) For Automated IntelliNODEs, you can select the preferred path and declare a winner. After a winner a declared, the experiment stops, but the journey continues to run. In the future run of the journeys, all the qualified users will move forward on the winning path. IntelliNODE does not send any users to the non-winning paths. ![1490](https://files.readme.io/62fdc432a04298bff462d047c49968da53a139d89c8eb7e573e4baf797af0ed3-Declare_Winning_Path.png "Select a preferred path and declare winning IntelliNODE path") Declare Winning IntelliNODE Path ### View Change Log [](https://docs.clevertap.com/docs/intellinode-stats#view-change-log) You can view all the changes made to the path by clicking **View Change Log**. * Changelog for automated journeys: All the changes to the path are listed on this page. * Changelog for manual journeys: The latest ten changes to the path are listed on this page. ![1568](https://files.readme.io/4fe9225-Intellinode_user_distribution_edit_log.png "View user distribution changelog for manual and automated journeys") IntelliNODE Change Log Goal Conversion (%) Across Paths [](https://docs.clevertap.com/docs/intellinode-stats#goal-conversion--across-paths) ------------------------------------------------------------------------------------------------------------------------ Select the IntelliNODE goal from the list. This trend line graph shows the goal conversion % across the path for the selected IntelliNODE goal. The values on this chart are cumulative, that is, the values for each day indicate the users converted from the start of the journey to the end date selected from the canvas. Click on the legends at the bottom of the trend (indicated by colored squares) to hide or unhide a trend line for the selected path. ![1532](https://files.readme.io/30d8cef-IntelliNODE_goal_conversion_trend.png "IntelliNODE goal conversion across path") IntelliNODE Goal Conversion Across Path User Distribution (%) Across Paths [](https://docs.clevertap.com/docs/intellinode-stats#user-distribution--across-paths) ---------------------------------------------------------------------------------------------------------------------------- You can view the distribution of users across paths on a daily, weekly, or monthly basis. Select the date range for the user distribution. The trend line graph displays the selected date range. The date range could be daily, weekly, or monthly. This trend line shows % trend of user distribution across different paths. This graph will stabilize over time as more users enter the journey. For example, if only one user qualifies for the journey and is sent along a path, then the user distribution for that path will be 100 %. However, there is greater clarity when the sample size is larger. ![1532](https://files.readme.io/4f2f7ab-IntelliNODE_user_distribution_trend.png "IntelliNODE user distribution across paths") User Distribution Across Paths Updated about 2 months ago * * * Ask AI --- # Journey Operations Manage Journeys [](https://docs.clevertap.com/docs/journey-operations#manage-journeys) ========================================================================================== 1. Select **Journeys**. This takes you to the _All Journeys_ page. 2. Select a journey's checkbox to manage its functioning. ![1345](https://files.readme.io/821ac308207ce2eab2f2d89959c008dac88da604f9fa8cc017b38fe24df58c23-Manage_Journeys.png "View and manage Journeys on the All Journeys page") Manage Journeys This activates the _Action Buttons_ displayed on the top left. The buttons are: | Action Buttons | Description | | --- | --- | | * \*Stop\*\*![Stop](https://files.readme.io/e99e396-Stop.png) | Completely halts the journey. It stops:

* qualification of new users
* movement of users within the journey
* delivery of campaigns.**NOTE**: Restarting a stopped journey is not possible. You can select more than one Journey to stop them together. | | **Ellipsis![Ellipsis](https://files.readme.io/38242f5-ellipsis.png)** | More actions are available from the ellipsis icon:

* **Clone**: Enables you to copy and create a new journey. You may use the cloned journey to create an edited version from the base cloned version.
* **Edit**: Enables you to edit the journey. You cannot edit all parts of the Journey once published. You can only edit the Journey content. | Updated about 2 months ago * * * Ask AI --- # Filter Journeys Overview [](https://docs.clevertap.com/docs/filter-journeys#overview) ========================================================================= Based on certain parameters, you can filter journeys to view on the Journey listing page. Quick Filters [](https://docs.clevertap.com/docs/filter-journeys#quick-filters) ----------------------------------------------------------------------------------- Quick Filters are available on top for the created journeys. ![589](https://files.readme.io/1b74fc8-Journey_Quick_Filters.png "Use quick filters for Journeys") Quick Filters for Journeys The Quick Filters are: * **Draft**: Selecting this filter displays all journeys that are in draft status. * **Running**: Selecting this filter displays all published and active journeys. * **Complete**: Selecting this filter displays all finished journeys; either based on time or segment. * **Stopped**: Selecting this filter displays all stopped journeys. You cannot restart these journeys. * **Paused**: Selecting this filter displays all paused journeys. You may resume these journeys. Custom Filters [](https://docs.clevertap.com/docs/filter-journeys#custom-filters) ------------------------------------------------------------------------------------- To customize journey filters: 1. Click ![Filter](https://files.readme.io/a5bfe04-Journey_Filter_Icon.png) beside the _Search_ bar. The **Filter Journeys** box appears. ![302](https://files.readme.io/22fbe47-Journeys_Filters.jpg "Create a custom filter for Journeys") Custom Filter for Journeys 2. Select the field to filter journeys by. * **Entry Type**: Enables you to filter by: * Live * Past Behavior * **Status**: Enables categories same as quick filters. * **Created by**: Enables you to filter by the journey creator using their email address. * **Label**: Enables you to filter journeys by any specific labels that were applied to journeys. 3. Click **Apply**. This displays journeys with your applied filter. 4. Clicking **Save Filter** adds your applied filter to the quick filters on top. Give your saved filter a name. ![294](https://files.readme.io/506a95e-Filters_Save.jpg "Save a custom filter for Journey") Save a Custom Filter Updated about 2 months ago * * * Ask AI --- # Account and Data Management Admin & Support [](https://docs.clevertap.com/docs/account-and-data-management#admin--support) ================================================================================================== Add New User [](https://docs.clevertap.com/docs/account-and-data-management#add-new-user) --------------------------------------------------------------------------------------------- CleverTap offers Role-Based Access Control (RBAC) for account administrators to enable different access levels for dashboard users. For more information on inviting new users to the CleverTap dashboard and assigning different roles to the users, refer to the following: * [Manage Users](doc:manage-users) * [Role-Based Access Control](doc:role-based-access-control) > 📘 > > ### > > Notes > > [](https://docs.clevertap.com/docs/account-and-data-management#notes) > > Access for guests outside the domain can be provided by the organization admin. Support [](https://docs.clevertap.com/docs/account-and-data-management#support) ----------------------------------------------------------------------------------- The Essentials plan is a self-serve model where we provide support for integration and setup via: * [Support tickets](https://bit.ly/c4sticket?utm_source=C4S&utm_medium=doc&utm_campaign=KB) * [Documentation](https://docs.clevertap.com/docs) * [Integration Videos](https://eu1.dashboard.clevertap.com/R74-ZWR-R44Z/integration-videos?utm_source=C4S&utm_medium=doc&utm_campaign=KB) * [Integration Checklist](https://eu1.dashboard.clevertap.com/R74-ZWR-R44Z/main?utm_source=C4S&utm_medium=doc&utm_campaign=KB) * [CleverTap University](https://academy.clevertap.com/catalog?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [Upskill with CleverTap](https://eu1.dashboard.clevertap.com/x/upskil?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) Account [](https://docs.clevertap.com/docs/account-and-data-management#account) =================================================================================== You can effectively manage your CleverTap account with these key features and guidelines: Access Trial Account [](https://docs.clevertap.com/docs/account-and-data-management#access-trial-account) ------------------------------------------------------------------------------------------------------------- When you initially sign up for CleverTap for Startups, you will get access to 30 days of the free trial, subject to completing the account setup. You will also get a demo account access to the CleverTap platform for testing. > 🚧 > > ### > > Warning > > [](https://docs.clevertap.com/docs/account-and-data-management#warning) > > If you do not complete the payment and billing information, you will not be able to use the dashboard for the last seven days of the free trial. To access your [CleverTap demo account](https://docs.clevertap.com/docs/quickstart-guide?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) , follow these steps: 1. Log in to your [CleverTap account](https://dashboard.clevertap.com/?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . 2. Click on your account name on the top left corner of the CleverTap dashboard. 3. Click the _Demo E-commerce_ button. > 📘 > > ### > > Clone Campaign Across Projects > > [](https://docs.clevertap.com/docs/account-and-data-management#clone-campaign-across-projects) > > As of now it is not possible to clone campaigns from a test project to a live project after your trial period ends and you continue with your subscription. Manage Your Plan [](https://docs.clevertap.com/docs/account-and-data-management#manage-your-plan) ----------------------------------------------------------------------------------------------------- As a paid subscriber, you can change your plan by upgrading or downgrading to another plan. ### MAU Tier Upgrade [](https://docs.clevertap.com/docs/account-and-data-management#mau-tier-upgrade) You can upgrade to a higher MAU tier by following these steps: 1. Navigate to _Organization_ > _My Plan_ > _Change Plan_. 2. Choose the new MAU tier. 3. Click _Update Plan_ to confirm the upgrade. The upgrade will be effective immediately, and a prorated charge for the current month will occur, including orders for any paid add-ons. A confirmation with the payment details and invoice will be sent to your registered billing address. To upgrade to an MAU tier of more than 100,000 active users, we recommend upgrading to the CleverTap Enterprise plan to suit your organization's growing scale and needs. For more information on the plan and pricing, contact our team from the CleverTap dashboard. ### MAU Tier Downgrade [](https://docs.clevertap.com/docs/account-and-data-management#mau-tier-downgrade) You can downgrade to a lower MAU tier by following these steps: 1. Navigate to _Organization_ > _My Plan_ > _Change Plan_. 2. Click **Downgrade** and select the required MAU tier. ![Donwgrade MAU](https://files.readme.io/a251325-Downgrade.png) Donwgrade MAU Tier 3. Click the **Downgrade** button to confirm the downgrade. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/account-and-data-management#note) > > The downgrade will apply starting from the next billing cycle. ### Add-ons Inclusion [](https://docs.clevertap.com/docs/account-and-data-management#add-ons-inclusion) You can add add-ons to your current subscription plan: 1. Navigate to _Organization_ > _My Plan_ > _Manage Add-ons_. 2. Select the add-on you want. 3. Click _Update Plan_ to confirm. ### Add-ons Removal [](https://docs.clevertap.com/docs/account-and-data-management#add-ons-removal) Removing an add-on is as simple as adding one: 1. Navigate to _Organization_ > _My Plan_ > _Manage Add-ons_. 2. Click the _Remove_ button of the add-on you don’t need, select the reason from the dropdown menu and remove the Add-on. 3. Click _Update Plan_ to confirm. Account Pause [](https://docs.clevertap.com/docs/account-and-data-management#account-pause) ----------------------------------------------------------------------------------------------- You can pause your subscription by navigating to Organization> Billing > My Plan > Pause Plan. After initiating the pause, your account is instantly paused for 60 days. You can reactivate your subscription within 60 days of pausing. If you don't reactivate within this period, your account and data will be permanently deleted, and recovery of the account will not be possible. To reactivate your account create a support ticket on [Help Center](https://help.clevertap.com/hc/en-us) . Account Cancellation [](https://docs.clevertap.com/docs/account-and-data-management#account-cancellation) ------------------------------------------------------------------------------------------------------------- The project admin can cancel the subscription by navigating to _Organization_ > _Billing_ > _My Plan_ > _Cancel Plan_. You are prompted to select the reason and enter **DELETE** in the acknowledgement field. After the account is cancelled, all the projects and corresponding data under the organization are deleted permanently and cannot be retrieved. Data Management [](https://docs.clevertap.com/docs/account-and-data-management#data-management) =================================================================================================== This section provides comprehensive insights into data retention policies, privacy protocols, data export options, and guidelines for ensuring secure and compliant data handling. Data Retention Policy [](https://docs.clevertap.com/docs/account-and-data-management#data-retention-policy) --------------------------------------------------------------------------------------------------------------- The default data retention policy for the CleverTap Essential plan is three years. CleverTap deletes all backups within 60 days of the customer deleting the data. The data of CleverTap for startup customers are stored in the EU region. Currently, there is no provision to store the data in other regions. If you are keen to change the region of the server/data center based on your preferences, we suggest you opt for the CleverTap Enterprise plan. This data can be exported using the Export option or an API. For more information, refer to [Export Data](doc:export) . Privacy [](https://docs.clevertap.com/docs/account-and-data-management#privacy) ----------------------------------------------------------------------------------- Protecting customer data is always a priority at CleverTap, so we maintain globally recognized standards of data handling, best practices, and adherence to data transfer regulations. Compliance is assessed by independent, third-party auditors. CleverTap complies with GDPR, CCPA, SOC 2 Type II, ISO 27001, and HIPAA. You can read more about how we handle data privacy [here](https://clevertap.com/security?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . Updated about 2 months ago * * * Ask AI --- # FAQs #### Push Notification [Push Notification: Troubleshooting & FAQs](https://docs.clevertap.com/docs/troubleshooting-faqs-push-notifications) #### In-App [In-App: Troubleshooting & FAQs](https://docs.clevertap.com/docs/troubleshooting-faqs-inapp) #### App Inbox [App Inbox: Troubleshooting & FAQs](https://docs.clevertap.com/docs/troubleshooting-faqs-app-inbox) #### SMS [SMS: Troubleshooting & FAQs](https://docs.clevertap.com/docs/sms-faqs) #### Email [Email: Troubleshooting & FAQs](https://docs.clevertap.com/docs/troubleshooting-email) #### WhatsApp [WhatsApp: Troubleshooting & FAQs](https://docs.clevertap.com/docs/faqs-1) #### Google Ads [Google Ads: Troubleshooting & FAQs](https://docs.clevertap.com/docs/troubleshooting-google-adwords) #### Journey [Journey: Troubleshooting & FAQs](https://docs.clevertap.com/docs/faqs) #### CleverTap for Startups [Features and Add-ons: FAQs](https://docs.clevertap.com/docs/features-add-ons#faqs) [Billing & Overages: FAQs](https://docs.clevertap.com/docs/clevertap-for-startups-billing-faqs) Updated about 2 months ago * * * Ask AI --- # Overview The CleverTap for Startups Program is created to help early-stage startups leverage the benefits of CleverTap. Under this program, we offer the [Essentials Plan](doc:plans-and-programs) , which starts at $75 a month for 5,000 Monthly Active Users(MAU). It is a pay-as-you-grow model that offers the flexibility of choosing the add-ons and provides the flexibility of monthly payments with no annual commitment. With this offering, startups can start using CleverTap from the beginning. There is a one-click option to migrate to the Enterprise plans once the startups have scaled up. This removes any hassle of switching to other solutions or doing manual migrations. In the CleverTap for Startups Program, we work with the [CleverTap Leap](doc:plans-and-programs#leap-program) partner community, which consists of startup accelerators, incubators, venture capital firms, and the broader eco-system. Together, we offer special advantages and discounts on the CleverTap Essential Plan to their startup portfolio or network. Our partner program benefits both current and alumni-affiliated startups. You can find more details and check your eligibility for the Leap Program [here](https://clevertap.com/leap/?utm_source=C4S&utm_medium=doc&utm_campaign=KB) . CleverTap can be integrated into your website or app. It helps startups understand their customers and engage them to grow their businesses. Updated about 2 months ago * * * Ask AI --- # Viewing Journey Reports Overview [](https://docs.clevertap.com/docs/viewing-journey-reports#overview) ================================================================================= Journey reports provide detailed insights into how your users move through journeys. You can analyze metrics such as entries, exits, goal conversions, and engagement trends, helping you understand the effectiveness of your journeys over time. In the case of multiple journey versions, it also provides performance insights for each version of your journey. Whether you are analyzing a live journey or reviewing how an older version performed, the reports help you make data-driven decisions and track engagement trends over time. You can do the following: * Track metrics for the current published version in real time. * Access historical data for previously published versions. * Compare engagement, conversions, and goal completions across versions. Export Journey Reports [](https://docs.clevertap.com/docs/viewing-journey-reports#export-journey-reports) ============================================================================================================= You can export Journey reports as CSV files directly from the dashboard. You can select one or more journeys and choose whether to include data from all versions or only selected versions of each journey. To export journey reports, perform the following steps: 1. Select the period and the required Journeys from the Journeys list page. 2. Click the ![](https://files.readme.io/6ebe7ff9d9fd0298735dcf535f24dda429e4460884bfd033578853cee22270db-Email_Report_icon.png) icon. The _Email Report_ popup opens. ![Email Journey Reports](https://files.readme.io/fc789f4084a159d5ff3888aede598c3ba1c497f262e159414a4f94187dfb1571-Email_Journey_Report.png) Email Journey Reports 3. Choose _All versions_ or _Selected versions_ of the selected journeys. * Choose to include only specific versions of the selected journeys when: * You only want to review performance for the most recent version. * You need data for a particular published version that was live during a specific campaign or test. * Choose to include _All versions_ of the selected journey when: * You want to analyze how the journey evolved over time. * You are comparing performance trends across multiple published versions. * You need a comprehensive dataset for audit, reporting, or analytics. * You are exporting reports for long-running journeys edited and republished multiple times. In this case, only active versions within the selected date range are available for export in the report. 4. Select the report type: _Summary_ or _Node wise_. 5. Enter a report name. Once configured, the report is emailed to your registered email address. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/viewing-journey-reports#note) > > You can email reports for up to 100 Journeys at a time from the dashboard. Schedule Journey Exports [](https://docs.clevertap.com/docs/viewing-journey-reports#schedule-journey-exports) ================================================================================================================= You can choose to get daily or weekly reports for any Journeys with the _running_ status. You can choose the period and frequency from the reports section in Settings. Go to _Settings_ > _Setup_ > _Reports_. ![1000](https://files.readme.io/463b609-Journey-reports.jpg "Schedule Journey reports") Schedule Journey Reports Types of Journey Reports [](https://docs.clevertap.com/docs/viewing-journey-reports#types-of-journey-reports) ================================================================================================================= There are two types of Journey Reports available: * Journey Summary Report * Journey Nodewise Report Journey Summary Report [](https://docs.clevertap.com/docs/viewing-journey-reports#journey-summary-report) ------------------------------------------------------------------------------------------------------------- This report provides a high-level summary of each journey. If a journey has multiple published versions, each version is listed as a separate row in the report. Each row includes journey metadata, user engagement, goal conversion, and control group statistics. The data included in the report can be broadly categorized as: Journey Data and User Data. ### Journey Data [](https://docs.clevertap.com/docs/viewing-journey-reports#journey-data) This section contains journey-level metadata and configuration details. It helps identify the version and setup context for each report row. | Report Column | Description | | --- | --- | | **Journey Start Time** | Timestamp when the journey started. | | **Journey End Time** | Timestamp when the journey ended. | | **Journey Name** | Name of the journey. | | **Journey ID** | Unique identifier for the journey. | | **Journey Labels** | Tags or labels associated with the journey. | | **Version Number** | Version number of the journey. | | **Version Name** | Display name for the journey version. | | **Version Entry Type** | Entry criteria type: Live or Past Behaviour. | | **Re-entry Allowed** | Indicates whether users can re-enter the journey. Possible values: TRUE or FALSE. | | **Version Status** | Status of the version. Possible values: Scheduled, Running, Paused, Stopped, Completed, and Restricted. | | **Version Created by** | User who created the journey version. | | **Version Created on** | Date and time the version was created. | | **Version Published by** | User who published the version. | | **Version Published on** | Date and time the version was published. | | **Number of Nodes in the version** | Total number of nodes present in this version. | | **Journey version URL** | Link to access the version in the dashboard. | ### User Data [](https://docs.clevertap.com/docs/viewing-journey-reports#user-data) This section includes user-level metrics such as entries, completions, goal conversions, and control group stats, which reflect how users engaged with a specific journey version. | Report Column | Description | | --- | --- | | **Qualified** | Total users who qualified for the journey. | | **Entered** | Total users who entered the journey. | | **Goal Met** | Total users who met any goal. | | **Goal 1 Name** | Name of the first goal. | | **Goal 1 Conversions** | Users converted for goal 1. | | **Goal 1 Control Group Conversions** | Control group users who converted for goal 1. | | **Goal 2 Name** | Name of the second goal. | | **Goal 2 Conversions** | Users converted for goal 2. | | **Goal 2 Control Group Conversions** | Control group users who converted for goal 2. | | **Goal 3 Name** | Name of the third goal. | | **Goal 3 Conversions** | Users converted for goal 3. | | **Goal 3 Control Group Conversions** | Control group users who converted for goal 3. | | **Journey Timeout** | Users who timed out of the journey. | | **Force Exits** | Users exited using the Force Exit node. | | **Version Exit** | Users who exited the version from this node. | | **Completed** | Users who completed the journey. | | **Control Group (Total)** | Total users in all control groups. | | **System Control Group Conversions** | Conversions in the system control group. | | **Journey version Control Group Conversions** | Conversions in journey-level control group. | | **Custom Control Group Conversions** | Conversions in a custom control group. | | **Custom Control Group Name** | Name of the custom control group. | Journey Nodewise Report [](https://docs.clevertap.com/docs/viewing-journey-reports#journey-nodewise-report) --------------------------------------------------------------------------------------------------------------- Each row in the report represents a node from a specific journey version, including logic nodes (for example, Segment, Delay) and engagement nodes (for example, Push, Email, WhatsApp). If a journey includes multiple campaigns, variants, or connector paths, each variation is shown as a separate row in the report. The data included in the Nodewise Report can be broadly categorized into: Journey Data, Node Data, Node User Data, and Campaign Data. > 📘 > > ### > > Multiple Values for Report Column > > [](https://docs.clevertap.com/docs/viewing-journey-reports#multiple-values-for-report-column) > > The columns may contain multiple values separated by delimiters `|`, depending on the node configuration (for example, multiple variants, paths, or goal definitions). Such columns have been marked with \* in the tables included in the sections to follow. ### Journey Data [](https://docs.clevertap.com/docs/viewing-journey-reports#journey-data-1) This section contains journey-level metadata and configuration details. It helps identify the version and setup context for each report row. | Report Column | Description | | --- | --- | | **Start Date / Start Time** | Timestamp when the journey started. | | **End Date / End Time** | Timestamp when the journey ended. | | **Journey Name** | Name of the journey. | | **Journey ID** | Unique identifier for the journey. | | **Journey Labels** | Tags associated with the journey. | | **Version Number** | Version number of the journey. | | **Version Name** | Display name for the journey version. | | **Version Entry Type** | Entry criteria: Live or Past Behaviour. | | **Re-entry Allowed** | Indicates whether users can re-enter the journey. | | **Version Status** | Status of the version. Possible values: Scheduled, Running, Paused, Stopped, Completed, and Restricted. | | **Version Created by / on** | Creator and creation timestamp for the version. | | **Version Published by / on** | User who recently published the version and the time. | | **Number of Nodes in the version** | Total number of nodes in this version. | | **Journey version URL** | URL to open the journey version in the dashboard. | ### Node Data [](https://docs.clevertap.com/docs/viewing-journey-reports#node-data) This section describes the node-specific attributes within a journey version. | Report Column | Description | | --- | --- | | **Node Type** | Type of node, for example, Segment, Email, SMS, Push, and so on. | | **Node ID** | Unique identifier of the node. | | **Previous Node\*** | IDs of preceding nodes connected to this node. | | **Delay before Node\*** | Time delay before this node is executed. | | **Connector from Previous\*** | Connector logic used to enter the node. Possibe values: Yes, No, and Timeout. | | **Qualifying Window** | Time window to meet entry conditions at the segment node. | | **Campaign / Segment / Controller Name** | Name of the campaign, segment, or controller associated with the node. | | **Campaign / Segment / Controller ID** | Unique ID for the associated campaign or segment. | | **Channel / Segment / Controller Type** | Type of messaging or segmentation logic, for example, Push, Email, and so on. | | **Campaign URL** | Link to the campaign in the dashboard. | ### Node User Data [](https://docs.clevertap.com/docs/viewing-journey-reports#node-user-data) This section includes metrics for user movement through this node and outcomes recorded. | Column | Description | | --- | --- | | **Moved Forward** | Total users who progressed from this node. | | **Moved Forward via Yes / No / Node Timeout\*** | Users moved along specific connector paths. | | **Journey Timeout** | Users who timed out at or before this node. | | **Completed** | Users who completed the journey starting from this node. | | **Goal Met** | Total users who achieved any goal. | | **Goal 1–3 Name\*** | for up to three defined goals. | | **Goal 1–3 Conversions\*** | Number of users who have been converted by achieving respective goals | | **Version Exit** | Users who exited the version from this node. | ### Campaign Data [](https://docs.clevertap.com/docs/viewing-journey-reports#campaign-data) This section is available for engagement nodes and captures delivery and interaction metrics. | Report Column | Description | | --- | --- | | **Campaign Type** | Campaign configuration details. | | **Campaign Variant\*** | Campaign configuration details.
If multiple variants are tested (for example, A/B test), multiple variant IDs may be shown, though typically each row reflects one. | | **Campaign OS\*** | Campaign configuration details. Lists targeted platforms, often shown as Android \| iOS. | | **Global Campaign Limits Applied** | Whether global send limits were applied. | | **Campaign Title / Message** | Campaign title and message content. | | **Total Sent / Viewed / Clicked** | Message delivery and interaction counts. | | **Total Delivered / Replied** | Delivery confirmation and replies (where applicable). | | **Total Unsubscribes** | Total users who unsubscribed via this campaign. | | **Conversion Event / Time** | Event considered as conversion and the window duration. | | **Unique Sent / Viewed / Clicked / Converted within Conversion Time** | Unique users counted within the conversion window. | | **Influenced Conversions / Revenue** | Indirect conversions and attributed revenue. | | **Amplified by Push** | Whether push messaging influenced engagement. | | **RenderMax Enabled** | Indicates if RenderMax (rich content optimization) was used. | | **Template Name / Provider Name** | Template and provider details for Email or SMS. | | **WABA Number** | WhatsApp Business Account number in the case of the WhatsApp campaign. | | **Total HTML/AMP Viewed/Clicked/Unsubscribed\*** | Email stats segmented by HTML and AMP versions. Values can include HTML and AMP email format subfields, often tracked in separate columns (for example, Total AMP Clicked). | ### Conversion Stats for WhatsApp Nodes [](https://docs.clevertap.com/docs/viewing-journey-reports#conversion-stats-for-whatsapp-nodes) CleverTap BSP enables tracking clicks on WhatsApp messages. The stats for these clicks are available under the Campaigns > Stats page. If Click Tracking is enabled, the Journey Report will display the node stats for the _sent > delivered > viewed > clicked > converted_ funnel. However, if Click Tracking is not enabled, only the viewed data is reported for your campaign. Therefore, the funnel in this case is, _sent> delivered > viewed > converted_ . ![Click Tracking Funnel](https://files.readme.io/b139aea-sent_delivered_funnel.jpg) Click Tracking Funnel | Campaign/Journey Data | Click Tracking Enabled | Click Tracking Disabled | | --- | --- | --- | | Unique Sent within Conversion Time | sent > delivered > viewed > clicked > converted | sent > delivered > viewed >converted | | Unique Viewed within Conversion Time | sent > delivered > viewed > clicked > converted | sent > delivered > viewed > converted | | Unique Clicked within Conversion Time | sent > delivered > viewed >clicked > converted | sent > delivered > viewed > converted | | Unique Converted within Conversion Time | sent > delivered > viewed >clicked > converted | 0. | Updated about 2 months ago * * * Ask AI --- # Journey: Troubleshooting and FAQs Frequently asked questions [](https://docs.clevertap.com/docs/faqs#frequently-asked-questions) ================================================================================================== ### Q. Why do my users not qualify? [](https://docs.clevertap.com/docs/faqs#q-why-do-my-users-not-qualify) A. If the entry node is an action node, and the event data coming from the API is older than 60 minutes, then the users associated with these events do not qualify. ### Q. What are the last nodes? [](https://docs.clevertap.com/docs/faqs#q-what-are-the-last-nodes) A. These are the nodes that do not have an output path. These nodes are present in Journeys without goals. ### Q. What happens to my users if my Journey does not have a goal? [](https://docs.clevertap.com/docs/faqs#q-what-happens-to-my-users-if-my-journey-does-not-have-a-goal) A. If you do not set a goal, the users from the last node exit the Journey. Their Journey is considered complete when they reach the last node. ### Q. Where can I see the waiting users because of delay or sleep defined between two nodes? [](https://docs.clevertap.com/docs/faqs#q-where-can-i-see-the-waiting-users-because-of-delay-or-sleep-defined-between-two-nodes) A. You will see them on the following node under 'Waiting users.' ### Q. Why is the number of users on nodes not matching or adding up? [](https://docs.clevertap.com/docs/faqs#q-why-is-the-number-of-users-on-nodes-not-matching-or-adding-up) A. The count of the users depends on the selected date range. If the original date range of the Journey does not match the date range in your search, then the numbers will differ from the original. ### Q. How do I verify the number of users entering a specific node? [](https://docs.clevertap.com/docs/faqs#q-how-do-i-verify-the-number-of-users-entering-a-specific-node) A. The number of users moving forward from a node will always match the number of users who are entering the following nodes. ### Q. Why are there discrepancies between the users who qualified for a Journey and those who entered a Journey? [](https://docs.clevertap.com/docs/faqs#q-why-are-there-discrepancies-between-the-users-who-qualified-for-a-journey-and-those-who-entered-a-journey) A. There can be discrepancies between the users who qualified for a Journey and those who entered a Journey due to the Control Group. ### Q. Why my stats at the last node are not matching? [](https://docs.clevertap.com/docs/faqs#q-why-my-stats-at-the-last-node-are-not-matching) A. In the journeys created before Dec 27, 2019, You might see a mismatch of user counts or a drop in users. This is because earlier, we used a dummy wait step to post the last node, where users will move and wait for the goal to be met. In the new journeys (created post-Dec 27, 2019), the dummy step no longer exists, and this mismatch should not happen. ### Q. What are 'Non-Targetable' profiles? [](https://docs.clevertap.com/docs/faqs#q-what-are-non-targetable-profiles) A. 'Non-Targetable' profiles are profiles on a device other than a mobile device that do not possess any identity, email, phone, or token (web/ push). ### Q. What happens to Non-Targetable profiles if they reach the last engagement node? [](https://docs.clevertap.com/docs/faqs#q-what-happens-to-non-targetable-profiles-if-they-reach-the-last-engagement-node) A. If Journey Goal is set up, Non-Targetable profiles will accumulate under 'Waiting users' → 'Before Node' stats. If Journey Goal is not set up, Non-Targetable profiles will exit the journey. ### Q. What is this intermediate stat on node stat? [](https://docs.clevertap.com/docs/faqs#q-what-is-this-intermediate-stat-on-node-stat) A. If you draw the same connector, such as 'Yes' multiple times from a node and connect it to multiple Segment nodes, the users will move after the first action. The stats for these Waiting users are displayed as an intermediate node on the connector. ![785](https://files.readme.io/e0d470f-Journeys_multiple_Yes_Build.png "Intermediate stat on node stat") Intermediate Node - Build ![1080](https://files.readme.io/960c1b8-Journeys_Multile_Yes_Node_stats.png "Multiple Yes node stats") Intermediate Node - Stats ### Q. How will I see the stats for the Phantom node? [](https://docs.clevertap.com/docs/faqs#q-how-will-i-see-the-stats-for-the-phantom-node) A. A Phantom node appears only when a _Viewed_ or _Clicked_ connector is drawn from an Engage node. The originating node will display the Sent count and the Phantom node will display the Clicked or Viewed count. For more information on Phantom nodes, see [Users waiting at Engage nodes](https://docs.clevertap.com/docs/journeys#section-users-waiting-at-segment-node) . ![1162](https://files.readme.io/af5a2ea-Journeys_Pseudo_Node.png "Phantom node stats for Journeys") Phantom Node - Build ![839](https://files.readme.io/8fac40f-Journeys_Pseudo_Node_Stats.png "Phantom node stats for Journeys") Phantom Node - Stats ### Q. What are the different journey types in the past behavior segment? [](https://docs.clevertap.com/docs/faqs#q-what-are-the-different-journey-types-in-the-past-behavior-segment) A. One Time Journey is the type of journey that runs only for one time at the start time of the journey. Here there is no option to re-enter for the users who have exited the journey through journey timeout, force exit, or Goal completed. New users will not be added after the journey ran its course on the start time. Multiple Dates Journey is the type of journey that will run on the multiple dates selected by you. You get to select the journey end time as per your use case for the journey. In this type of journey, the users can re-enter if the option of Allow users to re-enter the journey is selected. The recurring journey is the type of journey that will repeatedly run and allow entry to new users on the criteria selected by you under the Repeat section. The first run would be as soon as you publish the Journey. The next runs will be according to the selected criteria. Once exited, users can re-enter the journey if the option of Allow users to re-enter the journey is selected. ### Q. How Does a Past Behavior Segment Journey Work? [](https://docs.clevertap.com/docs/faqs#q-how-does-a-past-behavior-segment-journey-work) A. In a PBS Journey, there is a processing time between when users qualify and when the message is sent. The following is a sample recurring PBS Journey. ![Recurring Past Behaviour Segment Journey](https://files.readme.io/d5c50e9-image.png) Recurring Past Behaviour Segment Journey Consider an example where you [publish](https://docs.clevertap.com/docs/journey-concepts#journey-procedures-and-outcomes) a weekly recurring PBS Journey. You schedule the _Journey entry timelines_ to _Now_ and _every Tuesday_. Assume you also publish it at 5 p.m. on a Tuesday, and the push notification must be sent at 8 p.m. Let us now understand how a Journey works, how users qualify, and when the users receive the message. * The **[initial run](https://docs.clevertap.com/docs/journey-concepts#journey-procedures-and-outcomes) ** of the Journey occurs right after you publish it at 5 p.m. on Tuesday. Only users who meet the criteria up to 5:00 p.m. enter the journey at this time and receive the message at 8:00 p.m. on the same day, i.e., Tuesday. * The **second run** of the Journey happens on Wednesday at midnight. Any users who perform the event between 5:00 p.m. and 11:59 p.m. on Tuesday will only qualify at 12:00 a.m. on Wednesday. The message for this set of users is delivered at 8:00 p.m. on Wednesday. * The **[third run](https://docs.clevertap.com/docs/journey-concepts#journey-procedures-and-outcomes) ** of the Journey happens next Wednesday at 12:00 a.m., and this cycle continues. Any users who perform the event from this Wednesday to next week's Tuesday until 11:59 p.m. qualify at 12:00 a.m. next Wednesday. ![User Qualification in a PBS Journey](https://files.readme.io/d4645b5-PBSJourney_5.png) User Qualification in a PBS Journey ### Q: Why Do Users Who Failed To Meet the Inaction Criteria Move via the Node Timeout Path Instead of the No Path in a Journey? [](https://docs.clevertap.com/docs/faqs#q-why-do-users-who-failed-to-meet-the-inaction-criteria-move-via-the-node-timeout-path-instead-of-the-no-path-in-a-journey) A: Consider the inaction criteria defined as follows: Users performed action A but not action B within 2 minutes, with the node timeout set at 60 minutes. ![](https://files.readme.io/005adfb-image.png) The user flow is outlined as follows: * **Yes Path**: Users who completed A but not B within 2 minutes. * **No Path**: Users who completed both A and B or users who completed A but not B for more than 2 minutes. * **Node Timeout Path**: Users who did not complete A within the specified timeout. Think of the node timeout as a security check at the entrance to the airport (segment), and consider the Yes and No paths as the second security check inside the airport. ### When multiple segments are connected to an action node, through which path does the user qualify? [](https://docs.clevertap.com/docs/faqs#when-multiple-segments-are-connected-to-an-action-node-through-which-path-does-the-user-qualify) A. Let's consider a journey where the entry segment is an Action node connected to action segments that are defined in a mutually exclusive manner, as shown in the following image. In this case, when the user completes the action, they enter the respective segments. ![Journey with Multiple Segments ](https://files.readme.io/48eece1-image.png) Journey with Multiple Segments If the user fails to qualify for any connected segments, the path they should follow is determined by the node timeout connector associated with each segment. However, if multiple segments are connected simultaneously, creating competing paths, CleverTap does not support multiple node timeout connectors extending from parallel segments. Using only one node timeout connector is recommended for parallel segments because only one node timeout will apply to all parallel segments. ### Why is there a discrepancy between Via Sent count (Node Stats) and Sent count (Campaign Stats)? [](https://docs.clevertap.com/docs/faqs#why-is-there-a-discrepancy-between-via-sent-count-node-stats-and-sent-count-campaign-stats) A. Let's clarify: * A represents the **Via Sent** count in Node Stats. * B represents the **Sent** count in Campaign Stats. * C represents the **Inbox TTL Expired Error** count in Campaign Stats. * D represents all other errors on the Campaign Stats page, such as Unreachable, Failed, or Sent errors. ![Node Stats for Inbox](https://files.readme.io/36dce32ee171111185e0f33944127da6660dcd6a2eff68fc51e87e92b0c7174b-Node_Stats_for_Inbox.png) Node Stats for Inbox where, Via Sent count (A) = Sent count (B) + Inbox TTL Expired Error count (C) The **Via Sent** count (A) in Node Stats is calculated as the sum of the **Sent** count (B) and the **Inbox TTL Expired Error** count (C) in Campaign Stats. Therefore, it is expected to see a difference between these counts. Other errors (D), like Unreachable, Failed, or Sent errors, are accounted for in **Waiting users - At Node**. These errors affect the total count of users waiting at a node. ### Why are the Waiting users - At Node numbers so high? [](https://docs.clevertap.com/docs/faqs#why-are-the-waiting-users---at-node-numbers-so-high) A. High numbers in this category occur when users are stuck at a node. This happens because the path (Unreachable, Failed, or Sent path) is not defined for users to move to the next node. These users then wait at the node until a defined action occurs, such as a goal event or timeout. ### What happens when the scheduled message time in PBS and Action Journeys conflicts with the dwell time? [](https://docs.clevertap.com/docs/faqs#what-happens-when-the-scheduled-message-time-in-pbs-and-action-journeys-conflicts-with-the-dwell-time) If a user is scheduled to receive a push message in a PBS or Action journey at a specific time, for example, 12:00 PM. However, you have also set a dwell time for push messages that conflicts with this delivery time. Such users are marked as **Waiting users**, and the message delivery is attempted again in the next run. Updated about 2 months ago * * * Ask AI --- # Zapier Overview [](https://docs.clevertap.com/docs/zapier#overview) ================================================================ [Zapier](https://zapier.com/) , a workflow automation platform, automates repetitive work by connecting the applications with zero coding. The following are some of the scenarios where Zapier can prove to be a very useful platform: * Add responses from the survey conducted to the CleverTap dashboard * Update user profile information on the CleverTap dashboard Zapier allows you to transfer information collected in one app (the trigger) to another application (the action). Such a trigger/action combo is called a **Zap**. With this integration, you can create Zaps to do the following: * [Create/Update user information](doc:zapier#createupdate-user-information) * [Upload event](doc:zapier#upload-event) Prerequisites for Integration [](https://docs.clevertap.com/docs/zapier#prerequisites-for-integration) ========================================================================================================== The following are the prerequisites for CleverTap-Zapier integration: * A CleverTap Account Passcode * An active Zapier account to create the CleverTap app Create a Passcode on the CleverTap Dashboard [](https://docs.clevertap.com/docs/zapier#create-a-passcode-on-the-clevertap-dashboard) ======================================================================================================================================== CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Information [](https://docs.clevertap.com/docs/zapier#createupdate-user-information) =========================================================================================================== To create/update the user information: 1. Log in to the [Zapier dashboard](https://zapier.com/app/dashboard) and click **\+ Create Zap**. ![2852](https://files.readme.io/ddbe272-Create_a_Zap.png "Create a Zap on Zapier Dashboard") Create a Zap on Zapier Dashboard Zapier can connect different applications. We will use Google Sheets for this example. 2. **Set up a Trigger**. For this example, perform the following steps: a. Select _Google Sheets_ from the _App event_ section. This starts the Zap when a trigger event takes place in Google Sheets. b. Select _Event_ from the dropdown list. We will select _New Spreadsheet Row_ for this example and click **Continue**. d. Select the _Google Sheets account_ from the dropdown list. You can also connect a new account if your account does not appear in the dropdown. e. Click **Continue**. f. Set up a trigger event. For this example, select the Google sheet for which you want to set up an event. Also, select the _Worksheet_ from the Google sheet for which you want to set up a trigger and click **Continue**. ![1262](https://files.readme.io/04e1117-Set_up_Trigger_-_CreateUpdate_User.gif "Set up a trigger for Create/Update User zap") Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue**. 5. **Select the_Action_ that the zap must perform after the trigger event occurs.** For this example, perform the following steps: a. Select _CleverTap_ from the _App event_ dropdown. b. Select _Create/Update User Profile_ from the _Event_ dropdown. This implies that whenever a new row is added to the selected google sheet, a new user profile is created, or an existing user profile is updated with the new information. c. Click **Continue**. ![1262](https://files.readme.io/9aea22b-Set_up_Action_-_Create_User.gif "Set up Action for Create/Update User zap") Select Action for Zap d. Click **Choose account** and then click **\+ Connect a new account**. _Connect an account | Zapier_ window opens. Enter all the required details for connecting the CleverTap account. Enter the same passcode that you obtained in the [Create a Passcode on CleverTap Dashboard](doc:zapier#create-a-passcode-on-clevertap-dashboard) step. ![1280](https://files.readme.io/6e10990-Connect_CleverTap_account.gif "Select the account to connect CleverTap Account") Select Account to Connect the Account e. Click **Continue** after successfully connecting your account. f. Set up an action as shown in the following figure and click **Continue**: ![1280](https://files.readme.io/10679ae-Set_up_Action_-_CreateUpdate_User.gif "Set up an action for Create/Update User zap") Set Up an Action 6. Click **Test action** to test the zap. 7. Click **Publish Zap**. After publishing this zap, a new user is created, or an existing user is updated on the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. Upload Event [](https://docs.clevertap.com/docs/zapier#upload-event) ======================================================================== To upload an event: 1. Log in to the [Zapier dashboard](https://zapier.com/app/dashboard) and click **\+ Create Zap**. Zapier can connect different applications. We will use Google Sheets for this example. 2. **Set up a Trigger**. For this example, perform the following steps: a. Select _Google Sheets_ from the _App event_ section. This starts the Zap when a trigger event takes place in Google Sheets. b. Select _Event_ from the dropdown list. We will select _New Spreadsheet Row_ for this example. c. Click **Continue**. d. Select the _Google Sheets account_ from the dropdown list. You can also connect a new account if your account does not appear in the dropdown. e. Click **Continue**. f. Set up a trigger event. For this example, select the google sheet for which you want to set up an event. Also, select the _Worksheet_ from the google sheet for which you want to set up a trigger and click **Continue**. ![1254](https://files.readme.io/b59b2be-Setup_Trigger_-_Upload_Event_1.gif "Set up trigger event for Upload Event zap") Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue**. 5. **Select the_Action_ that the zap must perform after the trigger event occurs.** For this example, perform the following steps: a. Select _CleverTap_ from the _App event_ dropdown. b. Select _Upload Event_ from the _Event_ dropdown. This implies that whenever a new row is added to the selected google sheet, a new user profile is created, or an existing user profile is updated with the new information. c. Click **Continue**. d. Click **Choose account** and then click **\+ Connect a new account**. _Connect an account | Zapier_ window opens. Enter all the required details for connecting the CleverTap account. You can obtain this information by navigating to _Settings_ > _Project_ from the CleverTap dashboard. For more information about connecting the CleverTap account with Zapier, refer to the figure under _Step 5d_ of [Create/Update User Information](doc:zapier#createupdate-user-information) . ![1230](https://files.readme.io/db0607e-Set_up_Action_-_Upload_Events.gif "Select account to connect CleverTap account") Select Account to Connect e. Click **Continue** after successfully connecting your account. f. Set up an action as shown in the following figure and click **Continue**: ![1280](https://files.readme.io/8a09529-Set_up_Action_-_Upload_Event_Part_2.gif "Set up an action for Upload Events zap") Set Up an Action 6. Click **Test action** to test the zap. 7. Click **Publish Zap**. After publishing this zap, an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. Supported Date-Time Formats [](https://docs.clevertap.com/docs/zapier#supported-date-time-formats) ====================================================================================================== Supported date-time formats include: * **UNIX Epoch**: Tracks time as a running total of seconds. For example, **1521611063**. * **ISO 8601**: It is in the format **YYYY-MM-DDTHH:mm:ss. sssZ**. For example, 2018-03-05T15:16:0Z. * **Short Date**: It is in the format **YYYY-MM-DD HH:mm:ss**. For example, 2018-03-5 15:16:0. * **Long Date**: It is in the format **dddd, MMMM dd, yyyy HH:mm:ss**. For example, March 05, 2018 15:16:0. > 📘 > > ### > > UTC/GMT Date-Time Format > > [](https://docs.clevertap.com/docs/zapier#utcgmt-date-time-format) > > The timezone of the timestamp must be in UTC/GMT format. It can be obtained by adding Z at the end of the timestamp string. This is done so that the correct timezone (adjusted as per the local region) displays on the dashboard. Updated about 2 months ago * * * Ask AI --- # View Promo Campaigns Overview [](https://docs.clevertap.com/docs/view-promo-campaigns#overview) ============================================================================== The _Promo Campaigns_ list page allows you to view, manage, and track all your promo campaigns. It is accessible from the CleverTap dashboard under _Promotions_ > _Promo Campaigns_. ![View Promo Campaigns List](https://files.readme.io/6f437353f34188411ef6f31f204ba9b4808e5169839857f2934be165c7952aee-image.png) View Promo Campaigns List The following table provides an overview of key details available on the promo campaigns list page:: | Column Name | Description | | --- | --- | | **Name and ID** | Displays the campaign name along with the campaign ID. Clicking on the campaign name opens the campaign details view. | | **Status** | Indicates the current campaign status. Possible values include:

* **Draft**: Campaign is saved but not yet activated
* **Running**: Campaign is live and actively rewarding users.
* **Scheduled**: Campaign is set to start at a future date and time.
* **Stopped**: Campaign has been archived or manually deactivated.
* **Completed**: Campaign has ended based on the scheduled end time.
* **Approval Pending / Rejected**: Campaign is awaiting approval or has been rejected (if applicable). | | **Campaign Type** | Displays whether the campaign is a

_Live Behavior Campaign_

or

_Past Behavior Campaign_

. | | **Start Date** | Displays the scheduled or actual start date and time of the campaign. If unavailable, shows N/A. | | **Created By** | Displays the email ID of the user who created the campaign. | Updated about 2 months ago * * * Ask AI --- # Airtable Overview [](https://docs.clevertap.com/docs/airtable#overview) ================================================================== [Airtable](https://airtable.com/) is an intuitive platform for building and sharing relational databases online. With the CleverTap and Airtable integration, you can automatically send user data and event details from CleverTap to Airtable using webhook campaigns. This integration allows you to: * Store CleverTap user data centrally in Airtable. * Automate data transfer via Webhook campaigns. * Enrich external databases for further analysis or processing. Prerequisites for Integration [](https://docs.clevertap.com/docs/airtable#prerequisites-for-integration) ============================================================================================================ To integrate Airtable with CleverTap, ensure the following prerequisites are met: * Access to your Airtable dashboard and ability to create API tokens * Access to your CleverTap dashboard with permissions to configure webhooks and campaigns * Airtable Base and Table IDs available for the integration Integrate Airtable with CleverTap [](https://docs.clevertap.com/docs/airtable#integrate-airtable-with-clevertap) ==================================================================================================================== The integration process involves the following three major steps: 1. [Generate Airtable API Token](doc:airtable#generate-airtable-api-token) 2. [Set Up Webhook in CleverTap](doc:airtable#set-up-webhook-in-clevertap) 3. [Create a Webhook Campaign in CleverTap](doc:airtable#create-a-webhook-campaign-in-clevertap) Generate Airtable API Token [](https://docs.clevertap.com/docs/airtable#generate-airtable-api-token) -------------------------------------------------------------------------------------------------------- Generate a secure access token from your Airtable account, which will be used to authorize CleverTap API calls. To do so, follow these steps: 1. Log in to your [Airtable account](https://airtable.com/account) . 2. Click on your _Profile_ > _Builder Hub_ or visit `https://airtable.com/create/token`. 3. Click **Create token**. 4. Assign a token name and enable the following scope: * `data.records:write`: Create, edit, or delete records using API. 5. Define _Access_ based on your Airtable workspace requirements. 6. Click **Create token** and copy the token. Airtable will not display it again. ![Generate Airtable API Token](https://files.readme.io/74cda9fe9289d6e014578195e5696598dd52c698d31302c497ba62d0eb120336-image.png) Generate Airtable API Token > 🚧 > > ### > > Note > > [](https://docs.clevertap.com/docs/airtable#note) > > This token must be included in the authorization header for every CleverTap webhook call. To understand more about Airtable's supported authentication methods, refer to the [Airtable Authentication](https://airtable.com/developers/web/api/authentication) . Set Up Webhook in CleverTap [](https://docs.clevertap.com/docs/airtable#set-up-webhook-in-clevertap) -------------------------------------------------------------------------------------------------------- To begin the integration, you will first create a webhook in CleverTap. This webhook sends recipient and campaign-specific data to Airtable whenever the campaign is triggered. It ensures real-time delivery of user profile data to your Airtable base based on campaign actions. To do so, follow these steps: 1. Go to _Settings_ > _Channels_ > _Webhook_. 2. Click **\+ Add Webhook** and enter the following: | Field | Value | | --- | --- | | Name | Airtable | | HTTP Method | `POST` | | Endpoint URL | `https://api.airtable.com/v0/{baseId}/{tableIdOrName}` | > 📘 > > ### > > Retrieve your `baseId` and `tableIdOrName` from the Airtable URL. > > [](https://docs.clevertap.com/docs/airtable#retrieve-your-baseid-and-tableidorname-from-the-airtable-url) > > * Base ID starts with `app` > * Table ID starts with `tbl` > * View IDs starts with `viw` 3. Add the following key-value pair under _Headers_: | Key | Value | | --- | --- | | Authorization | `Bearer ` | | Content-Type | `application/json` | ![Create Webhook](https://files.readme.io/daad6532a73c1782054774b9d0a4b9927179df74923104ea0e65e54d527122ff-image.png) Create Webhook 4. Click **Save** to create the webhook. After saving the webhook, CleverTap will be ready to send user profile data directly to Airtable. Create a Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/airtable#create-a-webhook-campaign-in-clevertap) ------------------------------------------------------------------------------------------------------------------------------ Design and launch a webhook campaign in CleverTap to dynamically push selected user data to Airtable. To do so, follow these steps: 1. Go to _Campaigns_ > _\+ Campaign_ > _Webhook_. 2. Select the Webhook configured in [Set Up Webhook in CleverTap](doc:airtable#set-up-webhook-in-clevertap) . 3. In the _What_ section, under the _Webhook Content_ section, select the _Content Format_ as JSON and click the **Custom body** option. 4. Paste the following JSON payload: JSON { "records": [\ {\ "fields": {\ "Name": "{{ Profile.name | default: "-" }}",\ "Email": "{{ Profile.Email | default: "[email protected]" }}"\ }\ }\ ] } > ⚠️ > > ### > > Important > > [](https://docs.clevertap.com/docs/airtable#important) > > Ensure that the field names used in your payload (for example, Name, Email) exactly match the column names in your Airtable table. If the fields don't match, data will not be recorded. > > You can customize the payload to align with your table structure. Learn more about [Airtable request fields](https://airtable.com/developers/web/api/create-records#request-fields) > . Use the personalization toolbar (`{`, `{{`, or `@`) to insert dynamic user profile values. 5. Click **Preview and Test** to validate the integration. ![Preview and Test](https://files.readme.io/3e0e836c4f773875008b1ffda49c92e687036a7b12c9be47cef246a09149c558-image.png) Preview and Test 6. Open your Airtable base and verify that a new row has been created with the test data (for example, Name, Email). ![Test entry successfully reflected in Airtable](https://files.readme.io/dc42baa587a027785b71a6f956a9c926ee44bb0d66f9924b82c581ed4fea5a43-image.png) Test entry successfully reflected in Airtable 7. Once confirmed, click **Publish** in CleverTap. ![](https://files.readme.io/9199ed42c3d23f43d88e2e6fd042f2fa0fee0bb13221abf58885c34521060636-image.png) Integrating Airtable with CleverTap allows you to streamline your data operations and centralize analytics across platforms. Updated about 2 months ago * * * Ask AI --- # Create an IntelliNODE Journey Overview [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#overview) ========================================================================================== An IntelliNODE journey can have multiple variations. This allows you to run multiple A/B tests to check the journey's success and test your assumptions. Create an IntelliNODE Journey [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#create-an-intellinode-journey) ==================================================================================================================================== To create an IntelliNODE journey: 1. Create a new Journey. 2. Drag and drop **IntelliNODE** from the _Controllers_ section to create an IntelliNODE journey. ![1392](https://files.readme.io/8fe2d01f8119c3de6ed6c51058bee384a426c046ef578b03bc81307b21b57bf3-2025-04-14_14-11-39_1.gif "Drag and drop IntelliNODE controller to create a Journey") Create an IntelliNODE Journey 3. Click **IntelliNODE** in the canvas to set up the experiment. ![1514](https://files.readme.io/d3be1aa-InteliNODE_Set_Up.png "Setup user distribution for IntelliNODE Journeys") Setup IntelliNODE 4. Enter a name for the IntelliNODE and select whether you want the experiments configured manually or automatically. We recommend entering a simple name you can remember, such as _abandoned cart experiment_. * **Automated Mode**: This mode handles the distribution of qualifying users across all the connected paths. All paths start with equal distribution. However, the system automatically assigns a higher distribution to better-performing paths by re-evaluating the performance of each path every five minutes. The IntellNODE goal is used to determine the performance of each path. * **Manual Mode**: This mode gives you control over the user distribution for each path. You can monitor the performance of your experiment and then change the distribution percentages of each path in the live journey. > 📘 > > ### > > Switching between Automated and Manual Modes > > [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#switching-between-automated-and-manual-modes) > > You cannot switch modes in an IntelliNODE _after_ publishing the journey. 5. Click **+Path** to add paths to a user journey. You can add up to seven paths for the user journeys in the automated or manual mode. IntelliNODE Goals [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#intellinode-goals) ------------------------------------------------------------------------------------------------------------ An IntelliNODE goal is common for all the paths. The goal is used to calculate the conversion percentage. In automated mode, this conversion percentage determines the user distribution. To set up an IntelliNODE goal: 1. Enter the **IntelliNODE goal name**. The goal name must be easy to identify, for example, _cart abandon experiment_. 2. Define the preferred user action by using events and filters. 3. Click **+IntelliNODE Goal** to add more goals. You can add up to 3 goals. 4. Click _Save & Close_ to save the goal. ![1540](https://files.readme.io/5266944-InteliNODE_Goals.png "Setup goals for IntelliNODE Journey") Setup IntelliNODE Goals Publish [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#publish) ---------------------------------------------------------------------------------------- Click **Publish** to make the journey live. > 📘 > > ### > > Distribution changes in a manual mode > > [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#distribution-changes-in-a-manual-mode) > > For manual mode, only the latest ten edit logs are available. Monitor the [IntelliNODE stats](https://docs.clevertap.com/docs/intellinode-stats) to check if your journey is progressing as planned. Automated vs. Manual IntelliNODE [](https://docs.clevertap.com/docs/create-path-intellinode-journeys#automated-vs-manual-intellinode) ========================================================================================================================================= The automated IntelliNODE does the heavy lifting for you. It verifies the conversion rate and adjusts the user distribution accordingly. The user distribution is eventually shifted in favor of the best-performing path. However, the other paths still receive some user distribution to account for seasonality. This way, you are insured against any change in user behavior. You can stop the experiment at any moment by declaring a path as the winner. The winning path is then utilized to engage _all_ your users. ![](https://files.readme.io/9e0383b-AutoVSManual.png) The manual IntelliNODE gives you total control over user distribution. You can monitor the experiment's performance and change the user distribution for each path in a live journey. Updated about 2 months ago * * * Ask AI --- # Node Stats Overview [](https://docs.clevertap.com/docs/node-stats#overview) ==================================================================== The _Node Stats_ tab helps you track users' progress through each step of a journey. For every node on the canvas, you can view performance metrics such as the number of users who entered, where they dropped off, or whether they completed a goal. Each node is labeled with a unique ID visible on the top-right corner of the node block. This makes it easier to reference and interpret stats in context. You can select a specific date range from the calendar and view granular stats for each node type – Entry, Segment, Engage, or Force Exit. If your journey has multiple versions, use the version dropdown on the Node Stats tab to analyze each version independently. The stats shown reflect only those users who entered and moved through the selected version's structure, logic, and timing. This ensures the insights remain accurate, especially when versions differ in entry criteria, delays, goals, or node sequences. Viewing stats version-wise, you can meaningfully compare user movement, drop-offs, and conversion outcomes for each version. ![Node Stats](https://files.readme.io/6bd4e622a763638d65f35c1f7e167061aa82fad8da3fc8d62ef74f5a5ffe5797-Node_Stats.png) Node Stats Entry Node [](https://docs.clevertap.com/docs/node-stats#entry-node) ======================================================================== The _Entry_ node is the starting point of every journey and defines which users are eligible to enter. Each journey version can have only one Entry node, which must always be a Segment node. Entry criteria, such as segment conditions or trigger logic, may differ depending on the version, resulting in different sets of qualified users across versions. When analyzing the Node Stats, the Entry node provides insight into the number of users who met the entry criteria, the number who actually entered, and the number who were included in the control group. These stats also help compare the effectiveness of entry criteria across versions and identify if changes in qualification logic impacted journey inflow. ![Entry Node](https://files.readme.io/53a486bcfdb0d168359b16576f77015010e37eff2d252b2d9c8a9ccbb45dedb6-image.png) Entry Node Stats | Metric | Description | | --- | --- | | Qualified | The total number of users who qualified for the journey based on entry conditions. This is shown only on the Entry node and may vary by version.. | | Entered Journey | The number of users who entered the journey flow after qualifying. These users progress through node connectors, such as Yes or No. | | Control Group | The number of users randomly held back as part of a control group. These users do not receive journey campaigns, which allow you to measure uplift by comparing them against the treated cohort. | Segment Node [](https://docs.clevertap.com/docs/node-stats#segment-node) ============================================================================ The _Segment_ node evaluates users based on behavioral or profile conditions. It acts as a decision point that branches the journey based on whether users match defined segment criteria. Segment nodes can be used at any point in the journey, including as the entry node. In the case of multiple journey versions, the Node Stats tab reflects segment-level performance only for the currently selected version. Segment definitions may evolve across versions, affecting the number of users who qualify at that node or proceed forward. This allows you to assess how changes in segmentation (for example, segment criteria or order in the flow) impact the user movement, conversion, and drop-offs. ![316](https://files.readme.io/5a1ed63-Journeys_node_Segment.png "Segment node for Journeys") Segment node | Metric | Description | | --- | --- | | Entered Node | The total number of users who entered the node. It includes all users from Moved Forward, Waiting, Goal Met, and Journey Timeout. | | Moved forward | Users who have progressed via node connectors, such as Yes, No, or Node Timeout. | | Waiting users | The users waiting at a node to qualify. The users may wait for either of two reasons:

* Delay from a previous node
* Waiting to perform an action | | Goal Met | These users have performed the intended goal, such as viewing a movie or purchasing a product.

* **Before Node**: Indicates that the user achieved the goal while waiting on the delay path but did not get a message from the next node.
* _At Node_: If the _Failed_ connector is not connected, users who do not qualify for any path from the node are retained in the **At Node** state, as the next step is not defined for them. | | Journey timeout exits | These are the users who exited the Journey after the time duration set for the Journey, that is, Journey Timeout is complete. | Engagement Node [](https://docs.clevertap.com/docs/node-stats#engagement-node) ================================================================================== The _Engage_ node represents the campaign delivery points within a journey, where users receive messages via channels such as Push, SMS, Email, or WhatsApp. These nodes are critical for driving user actions, and the stats captured here help you assess how effectively your messages are reaching and engaging users. In the case of multiple journey versions, the Engage nodes may vary in their content, timing, or conditions across versions. ![315](https://files.readme.io/57fac94bf291066f54f862a5ac04c659ef9825711032e9cd8d033c8ddb5b637c-Push_Node_Stats.png "Engage nodes for Journeys") Engage Node | Stat | Description | | --- | --- | | **Entered Node** | The total number of users who entered the node. It includes the sum of all the users from Moved Forward, Waiting Users, Goal Met, and Journey Timeout. | | **Moved Forward** | Users who moved forward via node connectors, such as Sent, Viewed, Clicked, Failed, and Unreachable. **Unreachable** refers to profiles that lack identity (for example, email, phone, or device token is unavailable). | | **Waiting Users** | Users who are delayed in progressing. Two possible reasons:

* **Before Node**: Delay from a previous node or users marked as Unreachable (if Unreachable path is not connected).
* **At Node**: Users at this node without a defined outcome. For example, if the _Failed_ connector is not connected, users who do not qualify for any path from the node are retained in the **At Node** state, as the next step is not defined for them.. | | **Goal Met** | Users who fulfilled the journey goal condition.

* **Before Node**: Goal achieved while waiting, but did not receive the following message.
* **At Node**: Users currently at the node who have met the goal. If the _Failed_ connector is not connected, users who do not qualify for any path from the node are retained in the **At Node** state, as the next step is not defined for them. | | **Journey Timeout Exits** | Users who exited the journey due to reaching the overall journey timeout duration. In the case of multiple journey versions, users can exit an Engage node for the following reasons:

* **Journey Timeout**: The user did not take the expected action within the defined node delay window.
* **Version Change**: In the case of multiple journey versions, users may be forced to exit from older versions when a new version is published and the older version is stopped. The older journey version was stopped while the user was still in progress. These users are automatically exited when a new version is published and takes over. | You can view the campaign-level stats for every node. Click the **Engage** node to open the campaign-level stats. > 📘 > > ### > > Unique Users Converted > > [](https://docs.clevertap.com/docs/node-stats#unique-users-converted) > > If a user enters the journey and performs the conversation event twice, only one conversation event for that unique user is counted. Force Exit Node [](https://docs.clevertap.com/docs/node-stats#force-exit-node) ================================================================================== The _Force Exit_ node is used to remove users from the journey at a specific point manually. This node tracks only the number of users who were explicitly exited at that point in the journey flow. ![310](https://files.readme.io/200599b-Journeys_node_Force_exit.png "Force exit node for Journeys") Force Exit Node Updated about 2 months ago * * * Ask AI --- # Debugger > 📘 > > ### > > Public Beta > > [](https://docs.clevertap.com/docs/debugger#public-beta) > > This feature is released in Public Beta. For more information about this integration, contact your Success Manager or the [CleverTap Support](https://help.clevertap.com/hc/en-us/requests/new) > . Overview [](https://docs.clevertap.com/docs/debugger#overview) ================================================================== The CleverTap Debugger feature is a robust tool that simplifies integration and debugging with CleverTap. The primary objective is to improve the go-live process by assisting users in auditing integration and swiftly resolving errors directly on the CleverTap dashboard. Key Objectives [](https://docs.clevertap.com/docs/debugger#key-objectives) ============================================================================== The Debugger feature aims for the following: * Ensures data is correctly sent to CleverTap by visually confirming its ingestion. * Provides a single place from where you can view events and user properties of debug-enabled profiles. * Verifies the Reachability status. * Enables you to check the data and data types sent from the App to CleverTap on a single view along with timestamps. Prerequisites [](https://docs.clevertap.com/docs/debugger#prerequisites) ============================================================================ Before using the CleverTap Debugger feature, ensure you have the following: * Access to CleverTap Test or Production account. * Successfully integrated CleverTap SDK's debugger-supported version into your application or website. The following table lists the Debugger-supported SDK versions for different platforms: | Platform | Debugger-Supported Version | | --- | --- | | iOS | v5.2.1 or higher | | Android | v.5.2.1 or higher | | Cordova | v2.7.2. or higher | | Flutter | v1.9.1 or higher | | React Native | v1.1.2 or higher | | Unity | v.3.0.0 or higher | | Web | v.1.6.7 or higher | * Enabled the Debug Mode. The steps to enable this mode vary depending on your platform. Refer to the respective debugger documentation as listed below: * [iOS](https://developer.clevertap.com/docs/advanced-options-ios#debugging) * [Android](https://developer.clevertap.com/docs/android-advanced-features#debugging) * [Cordova](https://developer.clevertap.com/docs/cordova-advance-features#debugging) * [Flutter](https://developer.clevertap.com/docs/flutter-advanced-features#debugging) * [React Native](https://developer.clevertap.com/docs/react-native-advanced-features#debugging) * [Unity](https://developer.clevertap.com/docs/unity-advanced-features#debugging) * [Web](https://developer.clevertap.com/docs/web-quickstart-guide#debugging) Access the Debugger Feature [](https://docs.clevertap.com/docs/debugger#access-the-debugger-feature) ======================================================================================================== Click the ![](https://files.readme.io/28f71a8-Debugger_Icon_.png) _Debugger_ icon on the left pane of the CleverTap dashboard. The _Debugger_ page opens, displaying all the user profiles with their details. ![Accessing the Debugger Feature ](https://files.readme.io/b70d092-image.png) Accessing the Debugger Feature > 📘 > > ### > > Data Storage > > [](https://docs.clevertap.com/docs/debugger#data-storage) > > * Debug data remains accessible for a duration of _seven_ days from the time the data is fetched. > * Each account is equipped with the capacity to execute up to 1000 storage requests. > * The system can handle up to 100 incoming storage requests per minute. You can view the following details for the debugged user profile: | Field | Description | | --- | --- | | _Time_ | This field displays the exact date and time when the user interaction occurred. | | _Data_ | This field displays the raw data associated with a specific user interaction. It includes information about the actions taken, events triggered, and any relevant data points tied to the user's activity. | | _Category_ | This indicates if the data in the user profile is Events or User Property. | | _Identity_ | This field displays a unique user ID. | | _Device model_ | This field displays the device model that the user uses. This can be instrumental in identifying hardware-specific issues or compatibility problems. | | _Source_ | This field displays the SDK associated with the user profile. | Search [](https://docs.clevertap.com/docs/debugger#search) ============================================================== From the _Debugger_ page, you can search for a user profile in the search bar. You can also search for event name, _Identity_, _Device model_, or _Source_. ![Search Functionality](https://files.readme.io/5406366-Search_1.gif) Search Functionality Play/Pause for User Profile [](https://docs.clevertap.com/docs/debugger#playpause-for-user-profile) ======================================================================================================= You can use the _Play_ or _Pause_ icon to start or pause processes during debugging, making it easier to examine and control the execution of debugging sessions. This feature is available only at the user level. Refresh [](https://docs.clevertap.com/docs/debugger#refresh) ================================================================ Click the ![](https://files.readme.io/02c530b-Refresh_Icon.png) _Refresh_ icon to update the _Debugger_ page. This action displays the most recent data when a filter is applied, or you are not on the initial. ![Refresh Functionality](https://files.readme.io/0a962be-Debugger_refresh_1.gif) Refresh Functionality Access User Profile [](https://docs.clevertap.com/docs/debugger#access-user-profile) ======================================================================================== When troubleshooting user-specific issues or gaining deeper insights into user interactions, it is crucial to be able to delve into individual user profiles. Click on the individual user profile on the _Debugger_ page to view the details on the left pane. The following details appear on the left pane of the _Debugger_ page. User Profile [](https://docs.clevertap.com/docs/debugger#user-profile) -------------------------------------------------------------------------- This section provides a summary of the primary identifiers selected for the project. ![User Profile View](https://files.readme.io/ed2b1ec-image.png) User Profile View This summary typically includes: | Field | Description | | --- | --- | | _CleverTap ID_ | A unique identifier within the CleverTap system. | | _Phone Number_ | The user's registered phone number. | | _Email Address_ | The user's registered email address. | To view the user profile details: 1. Click the _Copy_ icon beside the respective fields to copy _CleverTap ID_, _Phone Number_, or _Email Address_. 2. Click the _View Profile_ icon to check the individual user profile details. The _Find People_\> _Profile_ page appears. For more information on user details, view Profile [Details](https://docs.clevertap.com/docs/find-people) . ![Refresh Functionality](https://files.readme.io/02eedf5-Debugger_View_Profile_1.gif) View Profile > 📘 > > ### > > User Profile states > > [](https://docs.clevertap.com/docs/debugger#user-profile-states) > > * **Identity Present**\- In this case, the user's identity is established, and the corresponding ID is displayed. If there is a profile push onto the profile, the data column displays Profile data, and the data type indicates whether it is a Profile property or identity. If both profile properties and identity are present, the profile property is shown. > * **Identity Absent**\- If identity is not set, then the field is empty. JSON Payload [](https://docs.clevertap.com/docs/debugger#json-payload) -------------------------------------------------------------------------- In the JSON payload section, you can view the JSON payload of data coming in from the SDK/JSON for an event or user property. ![Profile Property View](https://files.readme.io/98152ed-image.png) JSON Payload View > 📘 > > ### > > Reload Time > > [](https://docs.clevertap.com/docs/debugger#reload-time) > > If the JSON payload section does not load within 10 seconds, please refresh the page. Reachability [](https://docs.clevertap.com/docs/debugger#reachability) -------------------------------------------------------------------------- This allows you to verify if the user is reachable on the following channels: * Mobile Push * Email * SMS * Web Push ![Channels Reachability](https://files.readme.io/6d552bd-image.png) Channels Reachability Under the _Status_ column for individual channels, you can view the following state for the channels: | Status | Description | | --- | --- | | _Reachable_ | Indicates that the user is reachable on the respective channel. This is indicated by the green status icon. | | _Not Reachable_ | Indicates that the user is not reachable on the respective channel. This is indicated by the grey status icon. | Updated about 2 months ago * * * Ask AI --- # Engagement Stats Overview [](https://docs.clevertap.com/docs/engagement-stats#overview) ========================================================================== Engagement Stats provide a unified view of how each messaging node performs across all versions of a journey, helping marketers make data-driven decisions. For instance, a lifecycle marketing team may iterate on a welcome journey to improve user onboarding, testing different message sequences, timings, or channels in each version. With Engagement Stats, they can easily evaluate how each version performs in terms of overall engagement, delivery, and conversions, helping them identify the most effective strategy and continuously optimize user experiences across the funnel. View Engagement Stats [](https://docs.clevertap.com/docs/engagement-stats#view-engagement-stats) ==================================================================================================== To view engagement stats: 1. Go to **Journeys**. Click the desired Journey and click **Engagement Stats**. 2. Select the version from the Version dropdown to view the stats for the specific version of the Journey. ![Engagement Stats](https://files.readme.io/0695e07a69b4b1874f22fcef844ad3b9cfa2b57323547aa789b37a747ebac0cc-View_Engagement_Stats.png) Engagement Stats The following stats for each engagement node are displayed: | Columns | Description | | --- | --- | | **Engagement node name** | Name of the engagement node. | | **Node ID** | Unique identifier of the journey node. | | **Campaign ID** | Unique ID for the campaign. | | **Channel** | Type of messaging channel used. For example, SMS, Push, etc. | | **Engagement** | The engagement achieved by the channel varies based on different calculation rules for each channel. | | **Rate** | Rate of engagement for the node. For example, click percentage. | You can also view the campaign stats for each engagement node by hovering over the engagement and then clicking the ![](https://files.readme.io/ae4f09b7b09fc99539e01a77b22398ea2804e432ef51a052a5d491d9d3cba7b2-Screenshot_2025-07-02_at_1.13.57_PM.png)icon. To learn more about the stats of each messaging channel, refer to the Stats document for each channel. ![Campaign Stats](https://files.readme.io/a905ed06f6f180f2f88974da68b2aa66e741ba0a94e293aaabcee3c6ac5a47a3-Enagagement_Stats_-_Push_Message.png) Campaign Stats Manage Engagement Stats [](https://docs.clevertap.com/docs/engagement-stats#manage-engagement-stats) ======================================================================================================== This section provides steps for managing engagement statistics. It describes how to filter data, search data, edit columns, set pagination, and download data as a CSV file. Filter Engagement Stats [](https://docs.clevertap.com/docs/engagement-stats#filter-engagement-stats) -------------------------------------------------------------------------------------------------------- You can filter the engagement stats by channel. Click the **Filters** button at the top right corner and select the required channel. To clear the filter, click **Reset all**. ![Select the required channels](https://files.readme.io/6f244070021029f466db6eb3906e70a594fc1e2806c28d9b8bc9d5a28c816ab5-Filter_by_Channel.png) Select the Required Channels Search Engagement Stats [](https://docs.clevertap.com/docs/engagement-stats#search-engagement-stats) -------------------------------------------------------------------------------------------------------- Enter the name or the node ID to search for a particular engagement in the search box. ![Search by Node ID](https://files.readme.io/41654da889c7fad2db2a97f2277d5a89426aa7a8ea7d1ccb3e247eb4439ebdcd-Search_by_Node_ID.gif) Search by Node ID Edit Columns [](https://docs.clevertap.com/docs/engagement-stats#edit-columns) ---------------------------------------------------------------------------------- While the table layout is fixed by default, you can still sort and filter the data to focus on the metrics that matter most. To sort and manage the engagement data effectively, perform the following steps: 1. Click ![](https://files.readme.io/f68f358198ebefc6d706e68c697e962b7e4467d00b47510ce0a8fdb8bae85781-Edit_Columns_icon.png) in the top right corner. The _Edit Columns_ popup opens. 2. Toggle ON to show the required column on the Engagements tab page. 3. Drag and drop the columns to change their order. 4. Click **Apply Changes**. Download CSV for Engagement Stats [](https://docs.clevertap.com/docs/engagement-stats#download-csv-for-engagement-stats) ---------------------------------------------------------------------------------------------------------------------------- You can export engagement data from the Engagements tab of a Journey as a CSV file. The downloaded file includes key metrics such as Engagement Node Name, Node ID, Campaign ID, Channel, Impressions, Clicks, and Engagement Rate. This is useful for audits, offline analysis, or sharing performance reports. To download the engagement stats CSV: 1. Select the desired engagement nodes. 2. Click the ![](https://files.readme.io/dc353d489783c14e9f6fbb342fbbe86b1f4fa7da36ec311e770d3be748d4d8d9-download_icon_png.png) icon at the top of the table. The CSV file downloads automatically. All the columns displayed on the screen are included in the CSV file. ![CSV Download](https://files.readme.io/7b03dca97f806f68ea1bffef88aa97fb133f2e351374fbb306f4ce4c14d4c1ec-Download_a_CSV.png) CSV Download Updated 1 day ago * * * Ask AI --- # Compliance & Certifications Introduction [](https://docs.clevertap.com/docs/compliance-certifications#introduction) =========================================================================================== CleverTap is committed to complying with regulations for account security and here's a list of all regulatory compliances and certifications applicable to CleverTap along with a detailed description. Compliances [](https://docs.clevertap.com/docs/compliance-certifications#compliances) ----------------------------------------------------------------------------------------- | Compliances/Certifications | Status | | --- | --- | | ![CCPA](https://files.readme.io/f4dc1ff-CCPA.png) | CCPA - Compliant | | ![COPPA](https://files.readme.io/076bde1-coppa.png) | COPPA - Compliant | | ![GDPR](https://files.readme.io/bf096f9-gdpr.png) | GDPR - Compliant | | ![HIPAA](https://files.readme.io/4577365-HIPAA.png) | HIPAA - Compliant | | ![IS0 27001:2013](https://files.readme.io/c3ec77d-ISO_.png) | IS0 27001:2013 - Compliant & Certified | | ![SOC 2 Type 2](https://files.readme.io/acd5876-SOC_2.png) | SOC 2 Type 2 - Compliant & Certified | | ![Safe to Host](https://files.readme.io/3a06d20-safe_to_host.png) | Safe to Host - Certified | How CleverTap complies [](https://docs.clevertap.com/docs/compliance-certifications#how-clevertap-complies) =============================================================================================================== CCPA [](https://docs.clevertap.com/docs/compliance-certifications#ccpa) --------------------------------------------------------------------------- California Consumer Privacy Act (CCPA) is a state-wide data privacy law that regulates how businesses all over the world manage the personal information of California residents. CleverTap complies by: Providing an AWS data center locally to keep the data within the USA. For more information regarding compliance, see [CleverTap CCPA](https://clevertap.com/ccpa/) . COPPA [](https://docs.clevertap.com/docs/compliance-certifications#coppa) ----------------------------------------------------------------------------- Children’s Online Privacy Protection Act (COPPA), enforced by the Federal Trade Commission (FTC) in the US, outlines all measures that must be undertaken by website operators, marketers, and other providers of online services to protect online safety and privacy of minors. CleverTap complies by : 1. Ensuring that data sent about children below 13 years is done with the consent of the parent/guardian. 2. Providing the ‘opt-out’ handle on the SDK which can be used by the customers to not send data to CleverTap in case of no consent by the users. GDPR [](https://docs.clevertap.com/docs/compliance-certifications#gdpr) --------------------------------------------------------------------------- The General Data Protection Regulation (GDPR) is a legal framework that sets guidelines for the collection and processing of personal information of individuals who live in the European Union (EU). CleverTap is GDPR compliant. HIPAA [](https://docs.clevertap.com/docs/compliance-certifications#hipaa) ----------------------------------------------------------------------------- The Health Insurance Portability and Accountability Act of 1996 (HIPAA) is a federal law that was created to protect sensitive patient health information from being disclosed without the patient’s consent or knowledge. CleverTap is HIPAA compliant because we are listed as a _Business Associate_. Renewable Certifications [](https://docs.clevertap.com/docs/compliance-certifications#renewable-certifications) =================================================================================================================== ISO/IEC 27001:2013 [](https://docs.clevertap.com/docs/compliance-certifications#isoiec-270012013) ----------------------------------------------------------------------------------------------------- ISO/IEC 27001:2013 specifies the requirements for establishing, implementing, maintaining, and continually improving an information security management system within the context of the organization. ISO Certification is renewed every 4 years subject to a surveillance audit passed every year. CleverTap complies by being ISO/IEC 27001:2013 certified. SOC 2 Type 2 [](https://docs.clevertap.com/docs/compliance-certifications#soc-2-type-2) ------------------------------------------------------------------------------------------- A System and Organization Controls (SOC-2) audit report provides detailed information and assurance about a service organization’s security, availability, processing integrity, confidentiality, and/or privacy controls, based on their compliance with the Trust Services Criteria (TSC) of the American Institute of Certified Public Accountants (AICPA). SOC 2 Type 2 certification is renewed every year. As a service organization, CleverTap is SOC-2 certified and maintains strict internal controls over the information system that it provides to its users. Safe to Host [](https://docs.clevertap.com/docs/compliance-certifications#safe-to-host) ------------------------------------------------------------------------------------------- We conduct external Vulnerability Assessment and Penetration Testing (VAPT) every quarter to ensure that our platform is free from vulnerability or threats. The _Safe to Host_ certificate attests that VAPT is periodically conducted and that our platform is free of any potential vulnerabilities. View CleverTap Compliance and Certifications [](https://docs.clevertap.com/docs/compliance-certifications#view-clevertap-compliance-and-certifications) =========================================================================================================================================================== 1. Select Organization > Compliance and Certifications. This page lists the CleverTap compliance and certifications. ![727](https://files.readme.io/2a7e151-Compliance_dashboard.png "Compliance_dashboard.png") CleverTap Compliances 2. Select the Certifications tab. This page lists the certificates of compliance that CleverTap adheres to. You may download the compliance certificate if required. ![787](https://files.readme.io/aa0eb55-Certifications_dashboard.png "Certifications_dashboard.png") CleverTap Compliances and Certifications 3. If you want to view a certificate, click download and agree to the _Confidential Information_ terms and conditions. ![1000](https://files.readme.io/b2265d0-Download_certi.jpg "Download_certi.jpg") Confidential Information Updated about 2 months ago * * * Ask AI --- # Sinch Overview [](https://docs.clevertap.com/docs/sinch#overview) =============================================================== [Sinch India](https://sinch.com/in/) offers a powerful WhatsApp messaging solution that helps businesses engage customers with personalized and automated communication. By integrating Sinch India with CleverTap, you can: * Send just-in-time offers to customers to drive purchases. * Gather feedback on services to improve customer satisfaction. * Keep customers informed with real-time updates and notifications. Powered by Sinch India, This Integration is scalable and reliable for your conversations. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/sinch#support-for-integration) > > This integration is managed and continuously improved by Sinch India. The CleverTap and Sinch India integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Sinch India](https://docs.clevertap.com/cdn-cgi/l/email-protection#c8bbbdb8b8a7babce6aba588bba1a6aba0e6aba7a5) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/sinch#prerequisites-for-integration) ========================================================================================================= Check that you have the following: * The WhatsApp add-on enabled on the CleverTap account in addition to the Basic or Essentials Plan. * Ensure that WhatsApp onboarding for the phone number to be used with CleverTap is completed. * You must have Sinch India WhatsApp Business API. Integrate Sinch India with CleverTap [](https://docs.clevertap.com/docs/sinch#integrate-sinch-india-with-clevertap) ======================================================================================================================= This process involves the following three steps: 1. [Find Sinch India WhatsApp account credentials](doc:sinch#find-sinch-india-whatsapp-account-credentials) 2. [Configure CleverTap dashboard](doc:sinch#configure-clevertap-dashboard) 3. [Set up CleverTap callbacks in Sinch India platform](doc:sinch#set-up-clevertap-callbacks-in-sinch-india-platform) Find Sinch India WhatsApp account credentials [](https://docs.clevertap.com/docs/sinch#find-sinch-india-whatsapp-account-credentials) ----------------------------------------------------------------------------------------------------------------------------------------- We recommend that you keep the following information handy before starting with the configuration on the CleverTap dashboard: * HTTP Endpoint * Username and password Reach out to the Sinch India WhatsApp support team. Raise a request at **Sinch mobile email** and expect a response with - WhatsApp account details such as Username, Password, WhatsApp number. Configure CleverTap dashboard [](https://docs.clevertap.com/docs/sinch#configure-clevertap-dashboard) --------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the _Provider_ list. ![Provider Setup](https://files.readme.io/885f26f7e2110aab22dd2bda2eba90bc4c3e187863d865a407301bc495da3a4d-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Nickname | Enter the nickname as Sinch India or Sinch <10 digit phone number> for easy reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, 918889500122) | | Request Type | Ensure the Request Type is _POST_. | | HTTP End Point | Paste the URL received from the Sinch India team.
Check that the URL is in HTTPS format, that is, your URL must begin with **https://**. | | Headers | Click **Header** >
Enter the Key name as a user and enter the user value received from Sinch India.
Enter the second key name as the password and enter the value received from Sinch India. | 4. (Optional) Select _Mark this as default_ to make this service provider the default provider when sending a WhatsApp message via Sinch India. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 7. Send a Test WhatsApp notification: ![Send a test message on whatsapp](https://files.readme.io/c384922-sendtest.png "Send Test Message on WhatsApp") Send a Test Message on WhatsApp Set Up CleverTap Callbacks in Sinch India platform [](https://docs.clevertap.com/docs/sinch#set-up-clevertap-callbacks-in-sinch-india-platform) --------------------------------------------------------------------------------------------------------------------------------------------------- To set up CleverTap callbacks in Sinch India platform, follow the steps below: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Sinch_ from the CleverTap dashboard. You will find the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ under the _Provider Configuration_ page. 2. **Share Callback URLs with Sinch India**: Copy the Delivery and Inbound report callback URLs and send them to the Sinch India WhatsApp support team for configuration. ![Callback URLs](https://files.readme.io/17b2d251719811d51b3ba0ae7173be50be62ca9e7e716c2c445c2c6ed21362fb-image.png) Callback URLs Once configured, these webhooks ensure that message delivery reports and inbound messages sync correctly between CleverTap and Sinch India. > 📘 > > ### > > Note: > > [](https://docs.clevertap.com/docs/sinch#note) > > You have to get your templates approved on the Sinch dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. For more information and queries about the Sinch India integration, write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#8dfef8fdfde2fff9a3eee0cdfee4e3eee5a3eee2e0) > . Adding Message Templates [](https://docs.clevertap.com/docs/sinch#adding-message-templates) ----------------------------------------------------------------------------------------------- To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, follow these steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ in the CleverTap dashboard. 2. Select the _Templates_ option and click **+Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/sinch#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use the particular template name once within Phone\_1 and Phone\_2. 4. You can also choose the language in which you will display the message. 5. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 6. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 7. Enter the message content. 8. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 9. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/sinch#testing-a-message-template) --------------------------------------------------------------------------------------------------- For detailed instructions on testing a WhatsApp message template, refer to [Testing a Message Template](doc:whatsapp-message-templates#testing-a-message-template) . Create Campaign [](https://docs.clevertap.com/docs/sinch#create-campaign) ----------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp campaign using Sinch India as the provider, refer to [Create a WhatsApp Campaign](doc:create-message-whatsapp) . Creating a Journey [](https://docs.clevertap.com/docs/sinch#creating-a-journey) ----------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp journey using Sinch India as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Events Changelog Welcome to the Events changelog document for CleverTap. This changelog provides insights about the system event updates in CleverTap, ensuring you use CleverTap effectively and monitor your metrics with greater accuracy. We are dedicated to empowering businesses with advanced mobile marketing and analytics capabilities and delivering continuous improvements to meet our users' evolving needs. Stay tuned as we update this changelog regularly, informing our customers about any changes to existing system events or the introduction of new ones. February 2025 [](https://docs.clevertap.com/docs/events-changelog#february-2025) ==================================================================================== | Change Release Date | Event Name | Property Name | Update Type | Description | | --- | --- | --- | --- | --- | | February 5th, 2025 | Notification Delivered | | Others | Now, this event is raised for Email campaigns, indicating the successful delivery to the end user. For more information, refer to [Email Campaign Stats](doc:email-campaign-stats-delivered)
.

* \*Note\*\*: Delivered is currently released in Private Beta. Contact your Customer Success Manager to enable this for email campaigns. | October [](https://docs.clevertap.com/docs/events-changelog#october) ======================================================================== | Change Release Date | Event Name | Property Name | Update Type | Description | | --- | --- | --- | --- | --- | | October 11th, 2024 | Notification Failed | | Others | Now, this event also captures the errors that occur in email campaigns. For more information, refer to [Events](doc:events)
.

* \*Note\*\*: This event is currently in Private Beta. Contact your account manager to enable this event. | June [](https://docs.clevertap.com/docs/events-changelog#june) ================================================================== | Change Release Date | Event Name | Property Name | Update Type | Description | | --- | --- | --- | --- | --- | | June 19th, 2024 | Notification Failed | | Event Added | This event captures the errors that occurred in the campaign.

This event is currently in private beta and can be enabled upon request. Contact your account manager if you need access to this event. | | | | Campaign ID | | The property helps identify the specific campaign associated with the error. | | | | Campaign Type | | The property indicates the type of campaign (e.g., WhatsApp, SMS). | | | | Error | | The property describes the title of the error observed in the campaign. | | | | Label | | The property denotes the specific label associated with the error. | | | | Variant | | The property helps identify the errors for a specific campaign variant in the case of A/B, split delivery, or multi-variant campaigns. | May [](https://docs.clevertap.com/docs/events-changelog#may) ================================================================ | Change Release Date | Event Name | Property Name | Update Type | Description | | --- | --- | --- | --- | --- | | May 15, 2024 | Push Unregistered | | Properties Added | | | | | Source | | * **CT\_Push**: Indicating that the event is raised via silent Push. In this case, FCM returns a [404 Unregistered error](https://docs.clevertap.com/docs/events-changelog)
for stale tokens from devices that have not connected to FCM for 270 days or for users who have uninstalled the app.
* **CT\_SDK**: Indicating that the event is raised via OnUserLogin() method.
* **CT\_Target**: Indicating that the event is raised via campaigns or journeys. | | | | Token Value | | The property contains the actual value of the token. | | | | Token Type | | * FCM
* Baidu
* Huawei | | | | targetId | | The property denotes the ID of the campaign or journey. | April [](https://docs.clevertap.com/docs/events-changelog#april) ==================================================================== | Change Release Date | Event Name | Property Name | Update Type | Description | | --- | --- | --- | --- | --- | | April 2, 2024 | Notification Clicked | | Property Added | | | | | button\_id | | The property is visible for the event if the _Notification Clicked_ event is tracked for button clicks associated with the new Image Interstitial template. Therefore, the customers adopting this template will see this new property.

For more information, refer to [In-App Image Interstitial Template](doc:in-app-editor#image-interstitial)
. | Updated about 2 months ago * * * Ask AI --- # Create Promo Campaigns Overview [](https://docs.clevertap.com/docs/create-promo-campaigns#overview) ================================================================================ This document provides detailed instructions on creating and configuring a Promo Campaign using the Campaign Builder. It guides you through the key steps to set up your campaign, including defining your campaign goals, selecting the right target audience, choosing the campaign type, and customizing your settings. Create Promo Campaign [](https://docs.clevertap.com/docs/create-promo-campaigns#create-promo-campaign) ========================================================================================================== Go to _Promotions_ > _Promo Campaigns_ and click **Create Campaign**. The _New Promotion Campaign_ page opens. To create a Promo Campaign, perform the following five key steps: 1. [Define Qualification Criteria](doc:create-promo-campaigns#define-qualification-criteria) 2. [Select Target Segment](doc:create-promo-campaigns#select-target-segment) 3. [Set Up Reward](doc:create-promo-campaigns#set-up-reward) 4. [Set Up Delivery Preference](doc:create-promo-campaigns#set-up-delivery-preferences) 5. [Publish Campaign](doc:create-promo-campaigns#publish-campaign) Define Qualification Criteria [](https://docs.clevertap.com/docs/create-promo-campaigns#define-qualification-criteria) -------------------------------------------------------------------------------------------------------------------------- The _Start Here_ section is where you choose how users will qualify for the reward. The qualification criteria provide the following options: * **Past behavior/Custom list**: Target users based on actions performed in the past or a custom list uploaded to the CleverTap dashboard. For example, you can target users who have not done a transaction in the last 6 months, and offer them a 20% discount coupon. * **Live behavior**: Trigger rewards in real-time when a user performs or does not perform an event. For example, you can trigger a reward when a user adds items to their cart but does not complete the checkout process within a set timeframe. ![](https://files.readme.io/db8874c06fae7a9f98884e2d01a593742b44a052dc5bd6030f63527b1d42b607-image.png) Define Qualification Criteria Select Target Segment [](https://docs.clevertap.com/docs/create-promo-campaigns#select-target-segment) ---------------------------------------------------------------------------------------------------------- The _Who_ section allows you to define who should receive the reward using the rule builder. The _Target Segment_ rule builder lets you select users from an existing saved segment or create a new segment using event and property-based rules as follows: * **Find users from segment**: Select users from a saved segment or define a new one. * **Create rules based on events**: Build custom logic using event and property-based conditions * Users who **have done** specific events * Users who **have not done** certain events * Users who **have common user properties**, such as device type and location, are part of a particular segment, and so on. * Users who **have common interests** or share common behavioral traits or usage patterns, such as frequent shoppers or high-engagement users. * Option to enable **Constant event property**, which keeps event property values fixed during evaluation. It is useful when comparing multiple events with shared attributes. For example, you can lock the Product ID property across both events to find users who viewed and purchased the same product. ![](https://files.readme.io/c0f72135336ae3b88597f99adb1a424fad8b23e8c8d814927a28548d3ef4853c-image.png) Select Target Segment Set Up Reward [](https://docs.clevertap.com/docs/create-promo-campaigns#set-up-reward) ------------------------------------------------------------------------------------------ The **What** section allows you to define the **reward type** for your Promo Campaign. Depending on your selection, the configuration options vary. CleverTap supports the following reward types: * [Loyalty Points](doc:create-promo-campaigns#loyalty-points) * [Coupons](doc:create-promo-campaigns#coupons) * [Partner Vouchers](doc:create-promo-campaigns#partner-vouchers) * [Custom Rewards](doc:create-promo-campaigns#custom-rewards) Set Up Delivery Preferences [](https://docs.clevertap.com/docs/create-promo-campaigns#set-up-delivery-preferences) ---------------------------------------------------------------------------------------------------------------------- The _When_ section defines when the campaign starts and ends, and the controls available vary based on whether you select a _Past Behavior Segment (PBS)_ or a _Live Behavior Segment_. ### For Past Behavior Segments or Custom List (PBS) [](https://docs.clevertap.com/docs/create-promo-campaigns#for-past-behavior-segments-or-custom-list-pbs) When you select Past Behavior or Custom List Segment, the _When_ section shows the following options: | Option | Description | Example / Use Case | | --- | --- | --- | | **Send Now** | Launches the campaign immediately using the current timestamp and the **account timezone** (for example, GMT+05:30 Asia/Kolkata). | Run a flash-sale promotion as soon as it is configured. | | **Schedule for Later** | Let's you choose a **future start date and time**. You can also adjust the timezone if required. | Schedule a promo to start at 6:00 PM on a Friday evening to capture higher traffic. | ![](https://files.readme.io/f64c9ea54de2ed6ec5e1f42297e4005d60be73e4dd7e6e07dd3364c20127b795-image.png) Set Delivery Preferences in Past Behavior/Custom List Segments ### For Live Behavior Segments [](https://docs.clevertap.com/docs/create-promo-campaigns#for-live-behavior-segments) When you select Live Behavior Segment, the _When_ section shows the following options: | Option | Description | Example / Use Case | | --- | --- | --- | | **Start Date and Time** | Choose when the campaign should start.

* **Now**: Launches the campaign immediately after publishing.
* **On a Date/Time**: Launches the campaign at a scheduled date and time. | Start the live campaign immediately to capture ongoing cart abandonment events, or schedule it to go live on the morning of a sale day. | | **End Date and Time** | Choose when the campaign should stop.

* **Never**: Campaign keeps running until manually stopped.
* **On a Date/Time**: Campaign automatically ends at a chosen date/time. | End the campaign automatically at midnight on the final day of a seasonal sale. | ![](https://files.readme.io/ac5f953cd43599b7d06b8532535fe1ae8871b5e900f4559687d0b0fa8bba8dfb-image.png) Set Deliver Preference in Live Behavior Campaigns Publish Campaign [](https://docs.clevertap.com/docs/create-promo-campaigns#publish-campaign) ------------------------------------------------------------------------------------------------ Once you define all the above sections, click **Publish Campaign** to activate or schedule the campaign. ![](https://files.readme.io/208d31fed015df3703b4e35c6741ded52ecf1b99c62bfef9f5c085323a193ad1-image.png) Publish Campaign Reward Types [](https://docs.clevertap.com/docs/create-promo-campaigns#reward-types) ======================================================================================== Each reward type includes different configuration settings, described in the sections below: Loyalty Points [](https://docs.clevertap.com/docs/create-promo-campaigns#loyalty-points) -------------------------------------------------------------------------------------------- Use Loyalty Points to incentivize users with loyalty points that can be accumulated and redeemed within your app or platform. This option requires that wallets be pre-created in your CleverTap account. The following configuration options are available when Loyalty Points is selected: | Option | Description | Example / Use Case | Available In | | --- | --- | --- | --- | | **Loyalty wallet** | Select the wallet from the dropdown. Ensures that points are distributed to the correct wallet. | You can reward users based on context if you have multiple wallets (for example, Grocery vs. Food). | Past Behavior/Custom List + Live Behavior Segments | | **Points earning scheme** | Define how points are calculated when users qualify. Options include:

* **Flat**: A fixed number of points for each qualifying user.
* **Percentage**: Points calculated as a percentage of an event property (for example, order amount).
* **Proportional**: Points awarded per defined unit of an event property.
* **Random**: Points assigned from a defined range; exposes Value Range + Distribution Bias controls. | * **Flat**: Every eligible user earns 100 points regardless of order amount.
* **Percentage**: If set to 10% of the amount, a ₹500 purchase earns 50 points.
* **Proportional**: For every ₹100 spent, the user gets 10 points.
* **Random**: Users earn between 10 and 50 points, with distribution bias favoring the average. | * **Flat** and **Random**: Available in both Past Behavior/Custom List and Live Behavior segments.
* **Percentage** and **Proportional**: Available only in Live Behavior segments | | **Points value** | The input control for Points value changes based on the selected Points Earning Scheme:

* **Flat**: Enter a single fixed value of points/credits awarded to each qualifying user.
* **Percentage**: Define a percentage of a selected event property (for example, order amount) from the qualifying event (typically a Charged event).
* **Proportional**: Define "points per unit" of a selected event property (for example, for every X units of the property, award Y points).
* **Random**: Set a min–max range of points/credits; the system randomly selects a value within this range for each qualifying user (also supports Distribution Bias). | * **Flat**: Set to 100 means every qualifying user gets 100 credits.
* **Percentage**: Set to 10% means a purchase of ₹500 (as per selected event property) gives 50 credits.
* **Proportional**: Set to 10 credits for every Rs. 100 (per selected event property).
* **Random**: Set to a range of 10–100 means each qualifying user gets a random value between 10 and 100. | * **Flat** and **Random**: Available in both Past Behavior/Custom List and Live Behavior Segment.
* **Percentage** and **Proportional**: Available only in Live Behavior campaigns. | | **Distribution bias** (For Random scheme only) | Control distribution pattern that allows you to select the following options:

* **Favor Min**: Skews distribution toward the lower end of the range.
* **Favor Avg**: Skews distribution toward the midpoint of the range.
* **Favor Max**: Skews distribution toward the higher end of the range. | * **Favor Min**: For a range of 10–100 points, most users receive lower values (for example, 10–30), while fewer receive higher values.
* **Favor Avg**: For a range of 10–100 points, most users receive values around the midpoint (for example, ~55), with fewer at the extremes.
* **Favor Max**: For a range of 10–100 points, most users receive higher values (for example, 70–100), while fewer receive lower values. | Past Behavior/Custom List + Live Behavior Segments | | **Max points per reward** | Define the maximum number of points that can be awarded in a single transaction or instance. Applicable only when using **Percentage** or **Proportional** earning schemes in Live Behavior campaigns. Not available for **Flat** or **Random** schemes. | Cap points at 500 per purchase, even if the % calculation exceeds this value. | Live Behavior Segments | | **Maximum recurrence per user** | Control how many times a single user can receive the reward. Multiple limits can be combined (for example, total + per day/week/month). | If the total limit is 5 and the per-day limit is 2, the user can receive the reward up to two times per day until they reach a total of 5 rewards. | Live Behavior Segments only | | **Custom points validity** | Define the activation and expiry lifecycle of awarded points. | * **Activation**: Immediate (points instantly usable) OR Custom delay (for example, activate after 7 days).
* **Expiry**: Never, fixed date, or custom duration (for example, 30 days after activation). | Past Behavior/Custom List + Live Behavior Segments | | **Budget** | Define the budget to control how rewards are distributed. Budget can be set at two levels:

* **Per Campaign Budget**: Caps the total rewards that the campaign can distribute.
* **Per User Budget**: Caps the maximum rewards a single user can receive during the campaign.
Once the defined limit is reached (per user or for the entire campaign), no further rewards are issued. | If the Per Campaign Budget is 5,000 points, rewards stop once the campaign collectively distributes 5,000 points, even if more users qualify.
If the Per User Budget is 500 points, each user can only receive up to 500 points during the campaign, even if they continue qualifying. | Live Behavior Segments only | | **Custom metadata** | Add dynamic key–value pairs to pass additional data into the wallet points payload. Each row has two modes:

* **System Key**: Select from predefined system keys.
* **Custom Key**: Define your own key.
Duplicate keys are not allowed. | Add `{'{'}' "orderId": "12345", "promoType": "festival" {'}'}` as custom metadata to track order-related rewards. | Past Behavior/Custom List + Live Behavior Segments | > 📘 > > **Points to Consider** > > * Custom Activation does not check user behavior. It delays redemption so businesses can increase net profit on orders. > * Wallet must be pre-configured in your account. ![](https://files.readme.io/4d437eec9f1f394b546d51406d53ff000e37dfdcf458a6ec637b06d8f1ced0fb-image.png) Set Up Loyalty Points in Rewards Coupons [](https://docs.clevertap.com/docs/create-promo-campaigns#coupons) ------------------------------------------------------------------------------ Use Coupons to provide users with discount codes or special offers. Coupons must be pre-created in CleverTap and active. The following configuration options are available when Coupons is selected: | Option | Description | Example / Use Case | Available In | | --- | --- | --- | --- | | **Coupon Type** | Choose Single Code (shared) or Bulk Codes (unique). | * **Single Code:** A fixed 20% off coupon shared with all users.
* **Bulk Codes:** Each user gets a unique 10% off coupon. | Past Behavior/Custom List + Live Behavior Segments | | **Coupon code** | Select from available coupons that match the type. Coupon must be active and not fully redeemed. | Dropdown lists valid Single or Bulk codes. | Past Behavior/Custom List + Live Behavior Segments | | **Max coupons per user** | Defines how many times the coupon can be rewarded to the same user. This does not control redemption. If a user-level redemption limit is 2 and the same coupon is rewarded twice, user can redeem 4 times total. | Selecting _Limit = 1_ means each user can only be rewarded the coupon once. | Live Behavior Segments only | | **Max coupons per campaign** | Defines the total number of coupon codes that the campaign can distribute. | Selecting _Limit = 1000_ means the campaign stops distributing coupons after 1000 coupons are issued. | Live Behavior Segments | | **Coupon redemption activation** | Define when coupons can be redeemed, immediately or after a custom delay. | * **Immediate:** Flash sale means redeem instantly.
* **Custom:** Redeemable 48 hours after reward assignment. | Past Behavior/Custom List + Live Behavior Segments | ![Set Up Coupons in Rewards](https://files.readme.io/362ace8d3ea7a677c7c9a93f885bd75dbd8db80a5f74fc2fda32e1de4b2c66ca-image.png) Set Up Coupons in Rewards Partner Vouchers [](https://docs.clevertap.com/docs/create-promo-campaigns#partner-vouchers) ------------------------------------------------------------------------------------------------ Use Partner Vouchers to distribute unique codes provided by third-party providers integrated with your account. The following configuration options are available when Partner Vouchers is selected: | Option | Description | Example / Use Case | Available In | | --- | --- | --- | --- | | **Partner** | Select from integrated and active voucher providers. | Pick Amazon Gift Cards provider. | Past Behavior/Custom List + Live Behavior Segments | | **List tag** | Select the voucher batch (list tag) for distribution. Codes are auto-assigned uniquely to users. | Batch _Holiday2025_ with 10,000 gift codes. | Past Behavior/Custom List + Live Behavior Segments | | **Max codes per user** | Defines how many times the voucher can be rewarded to the same user. This does not control redemption. If a user-level redemption limit is 2 and the same voucher is rewarded twice, user can redeem 4 times total. | Selecting _Limit = 1_ means each user can only be rewarded the voucher once. | Live Behavior Segments only | | **Max codes per campaign** | Defines the total number of voucher codes that the campaign can distribute. | Selecting _Limit = 1000_ means the campaign stops distributing vouchers after 1000 vouchers are issued. | Live Behavior Segments | ![](https://files.readme.io/5ede864217cd7dc80e936bad3e1ea62efb4de25939eca23a041f1d8f2aa1126e-image.png) Set Up Partner Vouchers in Rewards > 📘 > > **Note** > > * Only active, unexpired voucher lists are displayed. > * No preview of voucher details is available. > * System ensures each user receives a unique, unused code. Custom Rewards [](https://docs.clevertap.com/docs/create-promo-campaigns#custom-rewards) -------------------------------------------------------------------------------------------- Use Custom Rewards to integrate external reward systems. When a user qualifies, CleverTap triggers a webhook call to your configured endpoint, enabling you to issue rewards such as third-party gift cards, credits, or custom incentives. The following configuration options are available when Custom Rewards is selected: | Option | Description | Example / Use Case | Available In | | --- | --- | --- | --- | | **Webhook endpoint (mandatory)** | Select a pre-configured webhook endpoint from the dropdown. If none exist, click the link provided to add a new configuration. | Connect to an external gift card provider API endpoint. | Past Behavior/Custom List + Live Behavior Segment | | **Custom reward type** | Select whether to issue Physical & digital rewards (tangible gifts) or Self-managed wallet credits (monetary/credit-based). | Physical & digital: Send a Bluetooth speaker as a gift.
Self-managed: Credit ₹200 to a user's wallet. | Past Behavior/Custom List + Live Behavior Segment | | **Physical & digital rewards** | Choose a reward that must be pre-created in your account. | Select "Amazon Voucher" or "Smartwatch". | Past Behavior/Custom List + Live Behavior Segment | | **Max recurrence per user** | Allows you to control how many rewards can be granted per user on a daily, weekly, or monthly basis. | Max per user = 1 reward in a week | Past Behavior/Custom List + Live Behavior Segment | | **Self-managed wallet credits** | Choose a wallet from the dropdown (must be pre-created). | Select a wallet to reward credits or money. | Past Behavior/Custom List + Live Behavior Segment | | **Credits earning scheme** (only for Self-managed wallet credits) | Choose how to define wallet credits. Options include:

* **Flat**: a fixed number of credits for each qualifying user.
* **Percentage**: credits calculated as a percentage of an event property (for example, order amount).
* **Proportional**: credits awarded per defined unit of an event property (for example, 10 credits per ₹100 spent).
* **Random**: credits assigned from a defined range; exposes Value Range + Distribution Bias controls. | * **Flat**: All qualifying users get 100 credits.
* **Percentage**: 10% of ₹500 purchase, i.e., 50 credits.
* **Proportional**: 10 credits for every ₹100 spent.
* **Random**: Users get between 10–100 credits. | * **Flat** and **Random**: Available in both Past Behavior/Custom List and Live Behavior segments.
* **Percentage** and **Proportional**: Only available in Live Behavior campaigns (not supported in PBS). | | **Value** | The input control for the credits value changes based on the selected credits Earning Scheme:

* **Flat**: Enter a single fixed value of credits awarded to each qualifying user.
* **Percentage**: Define a percentage of a selected event property (for example, order amount) from the qualifying event (typically a Charged event).
* **Proportional**: Define "credits per unit" of a selected event property (for example, for every X units of the property, award Y credits).
* **Random**: Set a min–max range of credits; the system randomly selects a value within this range for each qualifying user (also supports Distribution Bias). | * **Flat**: Set to 100 means every qualifying user gets 100 credits.
* **Percentage**: Set to 10% means a purchase of ₹500 (as per selected event property) gives 50 credits.
* **Proportional**: Set to 10 credits for every ₹100 (as per selected event property).
* **Random**: Set to a range of 10–100 means each qualifying user gets a random value between 10 and 100. | * **Flat** and **Random**: Available in both Past Behavior/Custom List and Live Behavior Segment.
* **Percentage** and **Proportional**: Available only in Live Behavior campaigns. | | **Distribution bias** (For Random scheme only) | Control distribution pattern that allows you to select the following options:

* **Favor Min**: skews distribution toward the lower end of the range.
* **Favor Avg**: skews distribution toward the midpoint of the range.
* **Favor Max**: skews distribution toward the higher end of the range. | * **Favor Min**: For a range of 10–100 credits, most users receive lower values (for example, 10–30), while fewer receive higher values.
* **Favor Avg**: For a range of 10–100 credits, most users receive values around the midpoint (for example, ~55), with fewer at the extremes.
* **Favor Max**: For a range of 10–100 credits, most users receive higher values (for example, 70–100), while fewer receive lower values. | Past Behavior/Custom List + Live Behavior Segments | | **Max credits per rewards** (only for Percentage and Proportional schemes) | Enter the maximum credits per reward. | Setting 100 means each user can get a maximum of 100 credits per reward. | Past Behavior/Custom List + Live Behavior Segment | | **Max recurrence per user** | Allows you to control how many rewards can be granted per user on a daily, weekly, or monthly basis. | Max per user = 1 reward in a day | Past Behavior/Custom List + Live Behavior Segment | | **Budget** | Defines how many rewards can be distributed.

* **Physical & digital rewards**: Supports campaign-level and time-based limits.
* **Self-managed wallet credits**: Supports per-campaign and per-user limits (varies by scheme).
* **Flat**: Supports Per Campaign budget only.
* **Percentage**: Supports both Per Campaign and Per User budgets.
* **Proportional**: Supports both Per Campaign and Per User budgets.
* **Random**: Supports both Per Campaign and Per User budgets. | * **Physical & digital rewards**:
Campaign limit = 5,000 vouchers; additionally, set 1,000 vouchers per month.
* **Self-managed wallet credits**:
* **Flat Credits**: Campaign limit = 10,000 credits.
* **Percentage Credits**: Campaign limit = 10,000 credits and per-user cap = 500 credits.
* **Proportional Credits**: Campaign limit = 10,000 credits and per-user cap = 500 credits.
* **Random Credits**: Campaign limit = 10,000 credits and per-user cap = 500 credits. | Past Behavior/Custom List + Live Behavior Segment | | **User identifiers key mapping** | Map CleverTap's default user identity fields (User ID, Email address, Phone number) to your webhook payload keys. Each field supports the following modes: System key (CleverTap's default field names) or Custom key (specify your own key names). | Map CleverTap's identity field to your external system's customerId or use default mapping for email and phone. | Past Behavior/Custom List + Live Behavior Segment | | **Custom metadata** | Add dynamic key-value pairs to include contextual data in the reward payload. Duplicate keys are not allowed. | Add `{'{'}' "orderType": "electronics", "promoType": "festival" {'}'}` as custom metadata to track order-related rewards. | Past Behavior/Custom List + Live Behavior Segments | | **Preview JSON Payload** | Displays a live JSON preview that includes reward metadata and configured key-value parameters. | For example, refer to [JSON Payload](doc:create-promo-campaigns#json-payload) | Past Behavior/Custom List + Live Behavior Segment | ![](https://files.readme.io/539ebea5210050327666ff4ed929383317200eb806d0ab85a7d1fa1ccd95f621-image.png) Set Up Reward in Custom Rewards > 📘 > > **Points to Consider** > > Before you begin: > > * Ensure you configure the webhook endpoint before creating the campaign. > * Verify that the endpoint can handle campaign volume, retries, and logging. > > During setup: > > * Physical & Digital Rewards and Self-managed Wallet Credits have separate configuration options; choose the appropriate type based on your use case. > * The reward payload is fully customizable and scales automatically with campaign volume. > * Custom Rewards give maximum flexibility but require your external system to handle issuance and redemption. ### JSON Payload for Custom Rewards [](https://docs.clevertap.com/docs/create-promo-campaigns#json-payload-for-custom-rewards) JSON { "user": { "userId": "12345", "email": "[email protected]", "phone": "+1234567890" }, "reward": { "type": "custom", "value": 100, "metadata": { "orderType": "electronics", "promoType": "festival" } } } Best Practices [](https://docs.clevertap.com/docs/create-promo-campaigns#best-practices) ============================================================================================ Maximize campaign effectiveness and avoid common pitfalls with the following best practices for setup, execution, and management: * **Use Segments Wisely**: Tailor rewards with meaningful segmentation. * **Test Before Scaling**: Start small to validate campaign performance. * **Set Limits**: Always define per-user and per-campaign limits. * **Reward Inventory**: Ensure sufficient reward stock throughout the campaign. Updated about 2 months ago * * * Ask AI --- # Edit a Journey Overview [](https://docs.clevertap.com/docs/edit-a-journey#overview) ======================================================================== You can now edit live journeys in CleverTap, helping you refine your user flows in real-time, whether you want to fix a campaign message or an error, add new touchpoints, or optimize engagement. This document provides information on how to edit journeys. There are two types of edits available: * **Partial Editing** Used when you want to make non-structural changes directly to the current version of a _Running_ journey. This includes modifying the following: _What_ section, User distribution in an IntelliNODE journey, and Service Provider. For more information, refer to [Edit What Section](doc:edit-a-journey#option-1-edit-what-section) . * **Full Editing** Used when you want to make structural or behavioral changes that require creating a new version of the journey. This allows you to evolve the journey logic while preserving continuity for in-progress users and maintaining a record of changes across versions. Selecting this option allows you to change all the journey components, such as: * Add, remove, or rearrange nodes * Change entry criteria, conversion goals, delays, paths, or conditions For more information, refer to [Make Structural Changes](doc:edit-a-journey#option-2-make-structural-changes) . Edit Journey [](https://docs.clevertap.com/docs/edit-a-journey#edit-journey) ================================================================================ To edit and publish an updated journey version, perform the following steps: 1. From the _Journeys_ section, select the journey you want to edit. 2. Click the ![](https://files.readme.io/83228df00854230893cae44b546618d79d0c2bf8bab434103b15fa2e4900a8cc-Edit_icon_-_Journeys.png) icon in the top-right of the canvas to edit a Journey. If the journey is not in _Draft_ state, the _Edit Journey_ popup opens with the following options: ![Edit Journey Popup](https://files.readme.io/cf8a4772101e6c5bef7811b3a9f6ea2b331267c40caf21488c6e13d7509dd0ca-Edit_Journey_Popup.png) Edit Journey Popup * **Partial editing (same version)**: Select this option if you just want to edit the message content or engagement settings. * **Full editing (create new version)**: Select this option if you want to change nodes, paths, or entry criteria. When you select this option, a new version of the current journey version is created, where you can make all the changes. 3. Click **Save** to retain work in draft, or **Publish** to make the new version live. During publishing, choose how to handle the current version: * Stop it completely and exit users from the older journey version. OR * Move it to Restricted, allowing current users to finish the flow. For more information, refer to the section below. How Journey Editing Works? [](https://docs.clevertap.com/docs/edit-a-journey#how-journey-editing-works) =========================================================================================================== Let us consider that you have launched a journey targeting users who added items to their cart but did not complete the purchase in the last 7 days. The goal here is to convert these users with timely nudges using push and email campaigns. ![Current Journey](https://files.readme.io/67fa67ddb149a7e651a22463f0ef087bf833f5903826755ced814fd763279133-Current_Journey_-_Purchase_in_last_7_days.png) Current Journey The journey is running, and users are progressing through the flow, as shown in the image above. After publishing the journey, you want to make some edits. Based on the type of change, CleverTap offers the following options: Option 1: Edit _What_ section [](https://docs.clevertap.com/docs/edit-a-journey#option-1-edit-what-section) --------------------------------------------------------------------------------------------------------------- In this case, you can make minor updates, such as modifying the message content, modifying the user distribution in an IntelliNODE journey, or changing the provider settings. You can still do that without impacting the users' progress in the journey. Once the changes are published, they are applied to new messages sent from this journey. Option 2: Make Structural Changes [](https://docs.clevertap.com/docs/edit-a-journey#option-2-make-structural-changes) ------------------------------------------------------------------------------------------------------------------------- In this case, you can make structural changes to the journey by creating a new version. You can also practically edit everything by creating a new draft version and making the changes to that version. For example, you want to add an IntelliNODE and split the journey into Push-led and Email-led variants. When you initiate the editing and publish the new versions, you have two options (refer to the following image): Restrict Previous Version and Stop Previous Version. ![Stop Old Journey to Publish New Version](https://files.readme.io/8103c7adbb4a6c74336aa7899550d4a9c6a33542fb16535742b04139fe3e74cb-image.png) Options When Publishing New Version ### Scenario 1: Restrict Previous Version [](https://docs.clevertap.com/docs/edit-a-journey#scenario-1-restrict-previous-version) When you publish the new version, you can choose to mark the older version as **Restricted**. * The existing users continue progressing in the original journey. * New users who meet the updated entry criteria are routed into the new version of the journey. ![Restricted State - Journey Workflow ](https://files.readme.io/7254c0ade86a85c9e7e3b153991364cbc04e85ae1b2765a39a54809e6f98912d-Restricted_state_-_Static_New_Journey.png) Restricted State - Journey Workflow This approach avoids disruption and allows a smooth switchover to the new version. This ensures a smooth switchover where live users are not force-exited, but all future activity happens in the updated version. Use this to preserve the experience for users already in progress, while activating new logic for upcoming users. ### Scenario 2: Stop Previous Version [](https://docs.clevertap.com/docs/edit-a-journey#scenario-2-stop-previous-version) If you want all users to move to the new logic immediately, you can stop the previous version while publishing the new one. * All users in the previous version are forced to exit the journey. * The new journey version transitions to the Scheduled state on Publish and automatically moves to the Running state after two hours. * The users who exited the previous version would be eligible to qualify for the new version. ![Stopped State - Journey Workflow](https://files.readme.io/98f98016b7614737330d4092365eda08609abbd6d986cf494a60b276a5b10cdd-Stopped_State_Edit_a_Journey.png) Stopped State - Journey Workflow This ensures that all future activity, including the users currently moving through the previous version, is governed by the new journey version. Editing Options by State [](https://docs.clevertap.com/docs/edit-a-journey#editing-options-by-state) ======================================================================================================== | **Journey State** | **Edit What Section** | **Create New Version** | **Notes** | | --- | --- | --- | --- | | **Draft** | Allowed | Not Required | Full editing allowed. All changes happen within the draft. | | **Scheduled** | Allowed | Not Allowed | Limited edits are allowed to the _What_ section of engagement nodes, such as message content, providers, and manual distribution percentages. | | **Running** | Allowed | Allowed | The older version can be stopped or moved to the Restricted state when creating a new version. Existing users continue to progress along the older journey. You choose what happens to the older version. | | **Paused** | Allowed | Allowed | The older version can be stopped or moved to the Restricted state when creating a new version. Existing users continue to progress along the older journey. You choose what happens to the older version. | | **Completed** | Not Allowed | Allowed | Once you publish a new version, you can:

* **Force exit from version**, if you want all users to immediately move to the new version.
* **Keep moving in the version** if you want to allow existing users to continue moving through it. The new users who meet the updated entry criteria are routed into the new version of the journey. | | **Stopped** | Not Allowed | Allowed | You can make changes to a stopped journey by creating a new draft version. This allows you to modify all aspects of the journey, including nodes, paths, goals, and qualification criteria. | | **Restricted** | Allowed | Allowed | Existing users continue to progress along the older journey. You choose what happens to the older version. | Version Management [](https://docs.clevertap.com/docs/edit-a-journey#version-management) ============================================================================================ Only one version of a journey can be in the **Running** state at any given time. Version 1 is automatically assigned when a journey is first created and published. Every time you create a new version by editing a journey not in the Draft state, the system increments the version number: Version 2, Version 3, ..., up to Version 10. When you publish a new version: * It becomes the active Running version that qualifies new users. * The previous version cannot remain running and must be transitioned to either: * Stopped: The previous version is fully deactivated, halting all user progress and entry. * Restricted: The previous version is active only for users already progressing inside the Journey, allowing them to complete it but preventing new entries. > 📘 > > ### > > **Version Limit** > > [](https://docs.clevertap.com/docs/edit-a-journey#version-limit) > > You can maintain up to **10 versions** of a single journey entity. If you want to edit this journey entity after reaching this limit, you must clone the desired version of the journey. You can view all the Journey versions by clicking **All Versions** from within the Journey canvas. ![](https://files.readme.io/1c7b4727cbe265a07649fc0b10082bf87461a7cd10123865d512dcb66ee1516a-View_All_Journey_Versions.png) Advantages of Editing Journey [](https://docs.clevertap.com/docs/edit-a-journey#advantages-of-editing-journey) ================================================================================================================== Editing a journey introduces flexibility and experimentation into Journey management. Each version: * Has its own flow configuration and conversion goals * Maintains entry/exit logic independently * Tracks node-level and engagement stats This allows you to test variations, optimize performance, and evolve journeys based on insights, without overwriting historical data or affecting the ongoing user flows. For example, a marketing team wants to change a Running journey that sends a single push notification after 3 days of inactivity. In the new version, they added a reminder email on day 2. By comparing the metrics across versions, they can determine which approach yields the higher reactivation rate. FAQs [](https://docs.clevertap.com/docs/edit-a-journey#faqs) ================================================================ Find answers to the following common questions about editing a Journey. ### What can I edit in a journey? [](https://docs.clevertap.com/docs/edit-a-journey#what-can-i-edit-in-a-journey) There are two ways to make edits: * **Partial Edit**: Using this option, you can make non-structural changes directly to the current version of a _Running_ journey. This includes modifying message content, user distribution in the IntelliNODE journey, and the service provider. * **Full Editing**: Using this option, you can make structural or behavioral changes requiring the creation of a new journey version. Selecting this option allows you to change all the journey components. This allows you to evolve the journey logic while preserving continuity for in-progress users and maintaining a record of changes across versions. For more information about editing, refer to [Edit a Journey](doc:edit-a-journey) . ### What happens to the old version and users in it when I publish a new one? [](https://docs.clevertap.com/docs/edit-a-journey#what-happens-to-the-old-version-and-users-in-it-when-i-publish-a-new-one) The previous version either moves to the Restricted or Stopped state. If you choose to move the older journey version to the Restricted state: * The users who had entered the journey continue progressing in the older journey version. No new users enter the restricted journey version, and user entry to this version is stopped. * New users who meet the updated entry criteria are routed into the new journey version. If you choose to move the older to the Stopped state: * All users in the previous version are forced to exit the journey version. * The new journey version transitions to the Scheduled state on Publish and automatically moves to the Running state after two hours. * The users who exited the older version could qualify for the new version. Journey versioning ensures that older versions, including their design and performance data, remain accessible for reference. Only one version can be in the _Running_ state at any given time. For more information, refer to [Journey States](doc:journey-states-edit-a-journey) . ### What happens to user entry and movement in the journey with the creation of a new version? [](https://docs.clevertap.com/docs/edit-a-journey#what-happens-to-user-entry-and-movement-in-the-journey-with-the-creation-of-a-new-version) In a journey entity with multiple versions: * Users entry is stopped in all the older versions in the Restricted or Paused state. * Users are allowed to enter only the latest running version per the entry criteria. For more information, refer to [Journey States](doc:journey-states-edit-a-journey) . ### How can I view Stats for a particular version? [](https://docs.clevertap.com/docs/edit-a-journey#how-can-i-view-stats-for-a-particular-version) Each journey version has its own set of stats. Use the Version dropdown in the journey stats view to toggle between versions and analyze performance metrics independently. You can compare outcomes across versions. ![Select Version to View Stats ](https://files.readme.io/a2c0b26710978fb399659fac7678116e176ebb9ff05daa580232f022bb808d22-Select_Version_from_Dropdown.png) Select Version to View Stats ### Will creating a version consume journey limits, and how many versions can be created for a journey? [](https://docs.clevertap.com/docs/edit-a-journey#will-creating-a-version-consume-journey-limits-and-how-many-versions-can-be-created-for-a-journey) Version creation consumes the journey limits. Journeys in _Paused_, _Running_, and _Restricted_ state consume the journey limit. You can create up to **10 versions** of a single journey entity. If you want to edit this journey entity after reaching this limit, you can clone the desired journey version. ### What would be the impact on reporting? [](https://docs.clevertap.com/docs/edit-a-journey#what-would-be-the-impact-on-reporting) Each journey version maintains its own set of reports and stats. You can choose to generate reports for: _All versions of the journey_, or _Selected versions only_. This flexibility ensures that you get precise, contextual insights, whether you analyze individual journey versions or compare performance across versions. For more information, refer to [View Journey Reports](doc:viewing-journey-reports-edit-a-journey) . ### What happens to user movement between versions? [](https://docs.clevertap.com/docs/edit-a-journey#what-happens-to-user-movement-between-versions) The user would remain in one version in a journey entity. The user would move between versions only when the user exits the previous version and qualifies for the new version entry criteria. For more information, refer to [Edit a Journey](doc:edit-a-journey) . ### What is the difference between Paused and Restricted journeys? [](https://docs.clevertap.com/docs/edit-a-journey#what-is-the-difference-between-paused-and-restricted-journeys) A journey in the Paused state is temporarily halted manually. It does not allow new user entries, but users who have already entered continue to progress through the journey as configured. You can resume the journey at any time to start accepting new users again. A journey in the Restricted state permanently stops the user's entry while allowing only in-progress users to continue and complete their journey flow; the journey cannot be changed to the Running state. For more information, refer to [Journey States](doc:journey-states-edit-a-journey) . ### Once we stop a journey version, how long does it take to move the new version to _Running_ state? [](https://docs.clevertap.com/docs/edit-a-journey#once-we-stop-a-journey-version-how-long-does-it-take-to-move-the-new-version-to-running-state) When you stop the previous version while publishing the new one, all users in the previous version are forced to exit the journey. The new journey version transitions to the Scheduled state on Publish and automatically moves to the Running state after two hours. For more information, refer to [Make Structural Changes](doc:edit-a-journey#option-2-make-structural-changes) . Updated about 2 months ago * * * Ask AI --- # Licensing Fee Overview [](https://docs.clevertap.com/docs/licensing-fee#overview) ======================================================================= Licensing Fee at CleverTap helps control and monitor the number of active users, ensuring compliance with the selected tier. This document provides insights into key concepts and considerations related to licensing, offering a comprehensive guide to understanding CleverTap's licensing structure. Key Concepts [](https://docs.clevertap.com/docs/licensing-fee#key-concepts) =============================================================================== The following are the fundamental concepts essential for comprehending CleverTap's licensing structure: * [User Tiers](doc:licensing-fee#user-tiers) * [Licensed User Calculation](doc:licensing-fee#licensed-user-calculation) * [Licensed Seat Usage](doc:licensing-fee#licensed-seat-usage) * [View and Download Licensed Users List](doc:licensing-fee#view-and-download-licensed-users-list) * [Breach of Licensed Seats](doc:licensing-fee#breach-of-licensed-seats) * [Fair Usage Policy (FUP)](doc:licensing-fee#fair-usage-policy-fup) User Tiers [](https://docs.clevertap.com/docs/licensing-fee#user-tiers) --------------------------------------------------------------------------- CleverTap offers various licensing tiers to accommodate businesses of different sizes and requirements. Users are categorized into tiers based on the number of licenses the organization purchases. The following are the CleverTap licensed seat tiers: * 20 seats * 50 seats **(next 30)** * 100 seats **(next 50)** * Unlimited seats The term **next 30** alongside 50 seats refers to an extra 30 seats beyond the initial tier of 20 seats. In contrast, the same term alongside 100 seats implies an additional 50 seats beyond their respective initial tier of 50 seats. This setup allows flexibility in scaling up the number of licensed seats within specific tiers after reaching the initial seat limits. Licensed User Calculation [](https://docs.clevertap.com/docs/licensing-fee#licensed-user-calculation) --------------------------------------------------------------------------------------------------------- CleverTap calculates the average count of licensed users per month by adding the daily counts together and dividing the total by the number of days in that month. This monthly average is used to determine the pricing tier. **Licensed Users = (Sum of Daily Licensed User Counts) / (Number of Days in the Month)**, that is, **Licensed Users = (U₁ + U₂ + ... + U₃₀) / 30** Where: * U₁ is the number of licensed users on Day 1 * U₂ is the number on Day 2 * U₃₀ is the number on Day 30 **Example** In a 30-day month: * For 10 days, there were 40 users each day * For the next 10 days, there were 80 users each day * For the remaining 10 days, there were 60 users each day The calculation would be as follows: * Licensed Users = \[(10×40) + (10×80) + (10×60)\] / 30 = (400 + 800 + 600) / 30 = **60** This ensures that the billing reflects user fluctuations across the month based on daily counts. > 📘 > > ### > > User Status > > [](https://docs.clevertap.com/docs/licensing-fee#user-status) > > Only users with an _Active_ status are counted as licensed users. Users with _Revoked_ or _Invited_ statuses do not count as licensed users. Licensed Seat Usage [](https://docs.clevertap.com/docs/licensing-fee#licensed-seat-usage) --------------------------------------------------------------------------------------------- CleverTap always informs you about license usage when you invite a new user, as shown in the following image: ![Licensed Seats Usage Alert](https://files.readme.io/cc3a7e3-Licencing_Usage_Alert.png) Licensed Seats Usage Alert If the license usage reaches 95%, CleverTap warns you about the limited availability of remaining license seats. ![Using 95% of the Licence Seats](https://files.readme.io/dabf76f-Breaching_License_Usage.png) Using 95% of the Licence Seats View and Download Licensed Users List [](https://docs.clevertap.com/docs/licensing-fee#view-and-download-licensed-users-list) --------------------------------------------------------------------------------------------------------------------------------- You can view a summary of licensed seat usage within your CleverTap dashboard and download a detailed CSV file containing individual licensed user information. ### View Licensed Users List [](https://docs.clevertap.com/docs/licensing-fee#view-licensed-users-list) View high-level _Licensed Seats Usage Details_ for each project in your organization. This view helps you track overall usage and identify projects that are close to their seat limits. #### To view licensed seat usage details [](https://docs.clevertap.com/docs/licensing-fee#to-view-licensed-seat-usage-details) 1. Go to _Organization_ > _Billing_ > _My Plan_ in your CleverTap dashboard. 2. Under the _Usage_ section, click _View licensed seats usage details_ in the _Licensed Seats Usage_ panel. 3. Select the desired Month and Year. * The screen displays the counts of _Daily Active Users_ and _Billable Seats_, along with _Project Details_ that show the user counts for each project. ![Licensed Seats Usage Details screen showing project-level usage summary](https://files.readme.io/b821dae4103cfcb0a2295ab274bad8adae5fb7271c1892d7e5f1dcad98e4af32-487fc9812b38812e458f7d8f30461349616d48acc37567d03185451177850b9e-image.png) Licensed Seats Usage Details screen showing project-level usage summary > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/licensing-fee#note) > > The on-screen view shows only project-level counts. To see user-level details, download the CSV file. ### Download Licensed Users List [](https://docs.clevertap.com/docs/licensing-fee#download-licensed-users-list) Download a CSV file to access detailed licensed user information, including email IDs and project assignments. #### To download the list [](https://docs.clevertap.com/docs/licensing-fee#to-download-the-list) 1. From the _Licensed Seats Usage Details_ view, click **Download CSV**. 2. The downloaded CSV file includes: * The total number of active and billable users. * Email IDs associated with each licensed user. * The user distribution across projects. ![Download Licensed Users List](https://files.readme.io/ae0c6c5978733ae18630e947f1c777be9524c40fb96b8d99c6da9574db497215-0b1ee0f4ee592a9b046026e231fad0e77bd3e83e521b4717ae67d29c4f6a4a69-image.png) Download Licensed Users List Breach of Licensed Seats [](https://docs.clevertap.com/docs/licensing-fee#breach-of-licensed-seats) ------------------------------------------------------------------------------------------------------- Breaching the set tier leads to additional charges based on the next tier. If you exceed the allotted seats of your license tier, CleverTap notifies you about the breach on the _Invite Users_ page. ![Licence Seats Usage](https://files.readme.io/5018b37-Invite_Users.png) Breaching Licensed Seat Usage Alert CleverTap informs you about the same on the dashboard's nag bar and via an email alert. Fair Usage Policy (FUP) [](https://docs.clevertap.com/docs/licensing-fee#fair-usage-policy-fup) --------------------------------------------------------------------------------------------------- CleverTap's Fair Usage Policy (FUP) ensures fair usage and adherence to the agreed licensing terms. For FUP, the maximum allowable licenses are capped at 10,000. Reaching the limit leads to restrictions on inviting new users. FAQs [](https://docs.clevertap.com/docs/licensing-fee#faqs) =============================================================== The following are the frequently asked questions for CleverTap's licensing fee structure: ### Q. Does CleverTap charge individually per seat, or does it operate exclusively on tier-based pricing? [](https://docs.clevertap.com/docs/licensing-fee#q-does-clevertap-charge-individually-per-seat-or-does-it-operate-exclusively-on-tier-based-pricing) A. Licensing fees are solely based on tiers; there are no per-seat charges. ### Q. How is the billing calculated if the seat consumption fluctuates during the month? [](https://docs.clevertap.com/docs/licensing-fee#q-how-is-the-billing-calculated-if-the-seat-consumption-fluctuates-during-the-month) A. Billing calculations are conducted monthly to accommodate scenarios with varying seat consumption. ### Q. Do licensing fees align with monthly usage or follow specific billing intervals? [](https://docs.clevertap.com/docs/licensing-fee#q-do-licensing-fees-align-with-monthly-usage-or-follow-specific-billing-intervals) A. Licensing fee aligns with monthly consumption. ### Q. Will accessing the CleverTap dashboard through Single Sign-On (SSO) utilize one of the licensed seats? [](https://docs.clevertap.com/docs/licensing-fee#q-will-accessing-the-clevertap-dashboard-through-single-sign-on-sso-utilize-one-of-the-licensed-seats) A. Using Single Sign-On (SSO) to access the CleverTap dashboard does contribute to the licensed seat count. ### Q. What should I do if I exceed the FUP limit? [](https://docs.clevertap.com/docs/licensing-fee#q-what-should-i-do-if-i-exceed-the-fup-limit) A. Maximize usage efficiency by revoking access for existing _Active_ or _Invited_ users if you surpass your account's FUP limit before inviting new users. Updated about 2 months ago * * * Ask AI --- # AiSensy Overview [](https://docs.clevertap.com/docs/aisensy#overview) ================================================================= [AiSensy](https://www.aisensy.com/) offers a native integration with CleverTap that enables businesses to send WhatsApp broadcasts directly from the CleverTap dashboard. This integration allows you to: * Trigger campaigns using pre-approved WhatsApp templates. * Automate user engagement based on behavioral events. * Track delivery and response metrics using CleverTap analytics. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/aisensy#support-for-integration) > > This integration is managed and continuously improved by AiSensy. The CleverTap and AiSensy integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [AiSensy](https://docs.clevertap.com/cdn-cgi/l/email-protection#91e2e4e1e1fee3e5d1f0f8e2f4ffe2e8bff2fefc) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/aisensy#prerequisites-for-integration) =========================================================================================================== Check that you have the following: * The WhatsApp Campaigns feature is enabled on your CleverTap account. * An active AiSensy account with WhatsApp Business API (WABA) access. * A provisioned WhatsApp number from AiSensy. > 📘 > > ### > > Enable the CleverTap add-on > > [](https://docs.clevertap.com/docs/aisensy#enable-the-clevertap-add-on) > > Check that you have enabled the CleverTap add-on in the AiSensy dashboard before proceeding with the integration. Integrate AiSensy with CleverTap [](https://docs.clevertap.com/docs/aisensy#integrate-aisensy-with-clevertap) ================================================================================================================= This process involves the following steps: 1. [Create a Passcode on the CleverTap Dashboard](doc:aisensy#create-a-passcode-on-the-clevertap-dashboard) 2. [Configure CleverTap Dashboard](https://docs.clevertap.com/docs/aisensy#configure-clevertap-dashboard) 3. [Set Up Callbacks in AiSensy](https://docs.clevertap.com/docs/aisensy#set-up-callbacks-in-aisensy) Create a Passcode on the CleverTap Dashboard [](https://docs.clevertap.com/docs/aisensy#create-a-passcode-on-the-clevertap-dashboard) ----------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to its REST API. Every CleverTap API call must include Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/aisensy#configure-clevertap-dashboard) ----------------------------------------------------------------------------------------------------------- To set up AiSensy as your WhatsApp provider from the CleverTap dashboard: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the Provider list. ![Provider Setup](https://files.readme.io/e451b36150e189f94b3d4082226e5ef5b9a8517791b6774746a9137ad43370e9-image.png) Provider Setup 3. Enter the following details: | **Field** | **Details** | | --- | --- | | Nickname | Enter the nickname as AiSensy\_WA for easy reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, +918889500122) | | Request Type | Ensure the Request Type is _POST_. | | HTTP Endpoint | Paste the following URL:`https://backend.aisensy.com/clever-tap/t1/messages`
Check that the URL is in HTTPS format, that is, your URL must begin with https// | | Delivery Report Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in AiSensy](doc:aisensy#set-up-callbacks-in-aisensy)
. | | Inbound Message Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in AiSensy](doc:aisensy#set-up-callbacks-in-aisensy)
. | 4. Add Headers from AiSensy. To do so, follow the steps to configure headers: 1. Go to _AiSensy Dashboard_ > _Integrations_ > _CleverTap_ > click **Regenerate Key**. 2. Copy the Authorization Headers. 3. Paste the headers into the Header section in CleverTap. ![Configure Headers](https://files.readme.io/0bdb0c80b88f1b3e9786dadf8dbc5219d4831ee6d9499066dc6aa6b73921b2bc-image.png) Configure Headers 5. (Optional) Select _Mark this as default_ to make the service provider the default provider for sending a WhatsApp message via AiSensy. 6. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 7. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 8. Test the integration and click **Save** to trigger a test message and automatically save your credentials. Set Up Callbacks in AiSensy [](https://docs.clevertap.com/docs/aisensy#set-up-callbacks-in-aisensy) ------------------------------------------------------------------------------------------------------- Callbacks ensure delivery reports and inbound user messages from WhatsApp are synced back to CleverTap, enabling accurate tracking and engagement workflows. To set up CleverTap callbacks with AiSensy, follow the steps below: 1. In the AiSensy dashboard, go to _Integrations_ > _CleverTap_. 2. Click **Regenerate Key** under _CleverTap Header Key_. 3. In the CleverTap dashboard, go to _Settings_ > _Channels_ > _WhatsApp_. The _Delivery Report Callback URL_ and _Inbound Message Callback URL_ are under the Provider Configuration page. Copy them. ![Callback URLs](https://files.readme.io/931f649e1d2a8e6a9c805ef928b38b661294cc92d1d2597d120df3702259a820-image.png) Callback URLs 4. Paste both callback URLs in AiSensy and click **Submit**. Once configured, check that message delivery reports and inbound messages sync correctly between CleverTap and AiSensy. You can now broadcast WhatsApp messages directly from the CleverTap dashboard using AiSensy. Add WhatsApp Message Templates [](https://docs.clevertap.com/docs/aisensy#add-whatsapp-message-templates) ============================================================================================================= WhatsApp message templates are reusable, pre-approved messages you can send to users at scale, such as alerts, reminders, or promotional campaigns. For detailed instructions on creating and testing WhatsApp message templates, refer to [WhatsApp Message Templates](doc:whatsapp-message-templates) . Create Campaign [](https://docs.clevertap.com/docs/aisensy#create-campaign) =============================================================================== For detailed instructions on creating a WhatsApp campaign using AiSensy as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) . Creating a Journey [](https://docs.clevertap.com/docs/aisensy#creating-a-journey) ===================================================================================== For detailed instructions on creating a WhatsApp journey using AiSensy as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Lifecycle Optimizer Overview [](https://docs.clevertap.com/docs/lifecycle-optimizer#overview) ============================================================================= Mobile marketing platforms often focus on the campaign and journey-level engagement. CleverTap developed the Lifecycle Optimizer to create a view of the entire user base. As the name suggests, CleverTap Lifecycle Optimizer provides you with a guided and end-to-end solution for your retention flow. Lifecycle optimizer enables you to : * Define lifecycle stages to understand users. * Connect with users to influence movement into the next stage. To move users forward, you can run engagement experiments, measure their impact, and apply the winning variation to all users in a stage to optimize the lifecycle. The stages for Lifecycle Optimizer are: 1. Map users to lifecycle stages based on qualifying actions to understand the entire user base. 2. Experiment and iterate with different approaches and roll out the winning Journey. 3. Engage users with relevant, timely messages to move them to the next stage You can choose from two frameworks to achieve your retention goals: AIC or AARRR. Lifecycle Optimizer Steps [](https://docs.clevertap.com/docs/lifecycle-optimizer#lifecycle-optimizer-steps) =============================================================================================================== ![Screenshot of the Lifecycle Optimizer dashboard, displaying the steps to get started.](https://files.readme.io/c88a2f0-LCO_Retention_Main_Steps.png "Get Started with Lifecycle Optimizer") Get Started with Lifecycle Optimizer The steps to optimize a Lifecycle: 1. [Setup Lifecycle](https://docs.clevertap.com/docs/lifecycle-optimizer#setup-lifecycle) 2. [Create Engagement](https://docs.clevertap.com/docs/lifecycle-optimizer#create-engagement) 3. Test, Iterate, and Rollout to All Users in a Stage Current Retention [](https://docs.clevertap.com/docs/lifecycle-optimizer#current-retention) =============================================================================================== Let us begin by viewing our current retention. This is a good starting point because it shows the current state of your retention. We can benchmark all our improvements against these statistics. Select Lifecycle Optimizer from the main dashboard. The key metrics overview displays the current retention state. ![Screenshot of the dashboard, displaying key metrics for all users across the customer lifecycle.](https://files.readme.io/a3bd720-LCO_Current_Retention.png "Key metrics overview for all users") Key Metrics Overview You will see the following trends with some presets. You can modify these presets by clicking edit![edit](https://files.readme.io/d0f481d-icon_edit.png). | Trend Name | Events mapped | Description | | --- | --- | --- | | Usage Rate | App Launched to App Launched | This indicates the app usage rate. It shows the percentage of active returning users. | | Current Conversion Rate | App Launched to Charged | This is your current conversion rate. It shows the percentage of active users who converted. | | Repeat Conversion Rate | Charged to Charged | This is your repeat conversion rate. It is the percentage of active users who converted again. | Setup Lifecycle [](https://docs.clevertap.com/docs/lifecycle-optimizer#setup-lifecycle) =========================================================================================== To set up a lifecycle model: 1. [Select a Framework](https://docs.clevertap.com/docs/lifecycle-optimizer#select-framework) 2. [Define Lifecycle Stages](https://docs.clevertap.com/docs/lifecycle-optimizer#define-lifecycle-stages) 3. [Choose Preferred values](https://docs.clevertap.com/docs/lifecycle-optimizer#choose-preferred-values) Select Framework [](https://docs.clevertap.com/docs/lifecycle-optimizer#select-framework) --------------------------------------------------------------------------------------------- Select a framework and click Next. ![Screenshot of the dashboard, displaying options to choose framework for the lifecycle.](https://files.readme.io/6f1756a-LCO_Setup_Framework_Select.png "Select a customer lifecycle framework.") Customer Lifecycle Framework ### AIC Framework [](https://docs.clevertap.com/docs/lifecycle-optimizer#aic-framework) Brands that choose the AIC framework tend to focus on the type of user actions. The core action or conversion event represents the most desirable user action and is generally used by Social Networking or Ad-based apps. This is a 3-stage customer lifecycle framework. | Sequence | Stage | Indicative User Events | User Insight | | --- | --- | --- | --- | | 1 | Acknowledge | App open | Action, low intent | | 2 | Interest | Search, add to cart, share app, and so on. | Investment in the app experience | | 3 | Convert | Book ride, post message, create board, and so on. | Complete core action | > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/lifecycle-optimizer#note) > > This table is indicative. You can edit this stage with data points within the framework to suit your business needs. ### AARRR Framework [](https://docs.clevertap.com/docs/lifecycle-optimizer#aarrr-framework) The acronym AARRR stands for Acquisition, Activation, Retention, Referral, and Revenue. The AARRR framework is based on customer lifecycle stages. You choose this framework if you look at users and their progression through defined stages to view clear revenue conversion events, and is generally used by eCommerce and Travel apps. This is a 5-stage customer lifecycle framework. | Sequence | Stage | Indicative User Events | User Insight | | --- | --- | --- | --- | | 1 | Acquisition | App open | Trackable acquisition event in CleverTap | | 2 | Activation | Register, likes, board created | Action that indicated likely continued app use | | 3 | Retention | Pin, wishlist, add to cart, view product | Core app activity, inherent to the app’s purpose | | 4 | Revenue | Purchase, subscribe | Revenue metrics | | 5 | Referral | Share content, invite to app, add rating | Indicates advocacy | > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/lifecycle-optimizer#note-1) > > This table is indicative. You can edit any stage within the framework to suit your business needs. [Setup Lifecycle](https://docs.clevertap.com/docs/lifecycle-optimizer#setup-lifecycle) Define Lifecycle Stages [](https://docs.clevertap.com/docs/lifecycle-optimizer#define-lifecycle-stages) ----------------------------------------------------------------------------------------------------------- Here you choose events that qualify users for each stage of the lifecycle. You can choose multiple events. Events are considered from the latest step. ### AIC Events [](https://docs.clevertap.com/docs/lifecycle-optimizer#aic-events) ![Screenshot of the dashboard, displaying options to choose AIC events that qualify users into each stage of the lifecycle.](https://files.readme.io/360d773-LCO_select_events_AIC.png "Choose AIC Events") Define Lifecycle Stages ### AARRR Events [](https://docs.clevertap.com/docs/lifecycle-optimizer#aarrr-events) ![Screenshot of the dashboard, displaying options to choose AARRR events that qualify users into each stage of the lifecycle.](https://files.readme.io/9b58a11-LCO_select_events_AARRR.png "Choose AARRR events") Define Lifecycle Stages [Setup Lifecycle](https://docs.clevertap.com/docs/lifecycle-optimizer#setup-lifecycle) Choose Preferred Values [](https://docs.clevertap.com/docs/lifecycle-optimizer#choose-preferred-values) ----------------------------------------------------------------------------------------------------------- The preferred value is the time period on which your model is based. The default value is 12 weeks. This period can be edited. However, changing this default value will also change the model accordingly. ![Screenshot of the dashboard, displaying the options to select qualifying time frame, usage interval, and control group.](https://files.readme.io/fee15f4-LCO_choose_preferred_values.png "Choose preferred values") Preferred-Value for Lifecycle Optimizer Select "Qualify users for different stages of customer lifecycle based on these preferred values" and save the setup. You can save the model as a draft or click Publish to publish the model. ![Screenshot of dashboard, displaying Lifecycle Optimizer model.](https://files.readme.io/780b17b-LCO_Dashboard_Main.png "Lifecycle optimizer dashboard") Lifecycle Optimizer Dashboard [Setup Lifecycle](https://docs.clevertap.com/docs/lifecycle-optimizer#setup-lifecycle) [Lifecycle Optimizer Steps](https://docs.clevertap.com/docs/lifecycle-optimizer#lifecycle-optimizer-steps) Create Engagement [](https://docs.clevertap.com/docs/lifecycle-optimizer#create-engagement) =============================================================================================== You can create engagement tailored to each stage. 1. Select _Lifecycle Optimizer_. 2. Under Engagement Snapshot, click _View Engagements_. The Engagements page appears. You can create engagement for your model from this page. ![Screenshot of the dashboard, displaying Engagement Stats.](https://files.readme.io/3003dba-LCO_Enagement_Create.png "Create engagement for each stage.") Create Engagement for Each Stage of the Lifecycle Define Engagement [](https://docs.clevertap.com/docs/lifecycle-optimizer#define-engagement) ----------------------------------------------------------------------------------------------- Define your engagement and roll it out to the selected percentage of users. ![Screenshot of the dashboard, displaying how to define engagement for users.](https://files.readme.io/db869fe-LCO_Engagment_Define.gif "Define engagement for users.") Define Engagement > 📘 > > ### > > Tip > > [](https://docs.clevertap.com/docs/lifecycle-optimizer#tip) > > Roll out this engagement to all users if you are confident that your engagement does not need improvement. However, if you wish to experiment first, you can experiment with a selected percent of users and then view the results. Rollout the engagement to all users if the results are satisfactory. Else, repeat the experiment. Define Engagement Modes [](https://docs.clevertap.com/docs/lifecycle-optimizer#define-engagement-modes) ----------------------------------------------------------------------------------------------------------- Create a Journey to engage your users in the selected stage. For example, create a Journey to onboard all your new users. To learn more, refer to [Journeys](https://docs.clevertap.com/docs/journeys) . After you create your Journey, you can save it as a draft or publish it. ![Screenshot of the dashboard, displaying how to define engagement node using a journey.](https://files.readme.io/57b756c-LCO_Journey.png "Create a journey") Create a Journey The journey operations available are: * Edit - You can edit a current Journey. * Stop - You can stop a Journey. However, a stopped Journey cannot be restarted. * Rollout to all users - If you are experimenting with a Journey and the results are good, then you can roll out the Journey to all of your users. To learn more, refer to [Journey Operations](doc:journey-operations) ### Journey Considerations [](https://docs.clevertap.com/docs/lifecycle-optimizer#journey-considerations) * Entry node is populated with the % of users in the stage. * Goals are populated with the qualification to a higher lifecycle stage. For instance, if you're creating engagement in the acknowledgment stage, then the interested or converted users who move to the next stage. * System Control Group cannot be changed Engagement Stats [](https://docs.clevertap.com/docs/lifecycle-optimizer#engagement-stats) ============================================================================================= Click _View Stats_ to view the engagement statistics. * Distribution Across Lifecycle Stages shows the current percentage of users across the Lifecycle Stages. ![Screenshot of the dashboard, displaying distribution of the users across the lifestyle stages.](https://files.readme.io/c7dfdb7-lifecycle_distribution_stages.png "Engagement statistics") Engagement Statistics * Change Over Time Shows the differential change in each stage. For example, if the Interest stage shows the user count at 17.41% on June 1st and 18.04 % on June 2nd, then the differential increase in user interest is : **(18.01 - 17.41) / 17.41 = 3.33%.** ![Screenshot of the dashboard, displaying change in user count between yesterday and the selected date.](https://files.readme.io/422bd93-LCO_Stats_Change_over_time.png "User change over time") User Change Over Time * Inter Stage Transition shows how the users transitioned to a particular stage from each of the Lifecycle stages. ![Screenshot of the dashboard, displaying how users transition across different stages.](https://files.readme.io/59aa509-LCO_Stats_Inter_stage_Transitions.png "Interstage transition of users") Inter Stage Transition of Users > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/lifecycle-optimizer#note-2) > > Hover over a stage in the chord diagram to see the user transitions. * Into a stage trend Shows the trend of users who transitioned from other stages into the selected stage. ![Screenshot of the dashboard, displaying daily user transition trends from other stages into the selected stage.](https://files.readme.io/f94b25d-LCO_Stats_into_a_stage.png "Daily user transition trends") Daily User Transition Trends From Other Stages into the Selected Stage * From a stage Shows the trend of users who transitioned to other stages from the selected stage. If the model is set up optimally, the users must transition from a lower stage to a higher stage. ![Screenshot of the dashboard, displaying daily user transition trends from selected stage into other stages.](https://files.readme.io/e10b9d6-LCO_Stats_from_a_stage.png "Daily user transition trends") Daily User Transition Trends From Selected Stage into the Other Stages [Lifecycle Optimizer Steps](https://docs.clevertap.com/docs/lifecycle-optimizer#lifecycle-optimizer-steps) Video Tutorial [](https://docs.clevertap.com/docs/lifecycle-optimizer#video-tutorial) ========================================================================================= For further information, you can watch the following video on lifecycle optimizer: By leveraging the Lifecycle Optimizer, you can segment users and create personalized campaigns. Learn more about maximizing engagement at each stage of the customer journey to improve [Customer Lifetime Value](https://clevertap.com/blog/customer-lifetime-value/) (CLV). You can also calculate the customer lifetime value using the CLV formula to boost retention. Updated about 2 months ago * * * Ask AI --- # Sheetlabs Overview [](https://docs.clevertap.com/docs/sheetlabs#overview) =================================================================== [Sheetlabs](https://sheetlabs.com/) is a platform that turns Google Sheets or Excel files into easy-to-use, RESTful APIs. When integrated with CleverTap, it enables you to use a spreadsheet as a lightweight customer data source or content manager for campaigns. With this integration, you can: * Pull dynamic content (for example, messages, titles) into your CleverTap campaigns using Linked Content. * Push user data from CleverTap into a Sheetlabs spreadsheet using Webhooks. Prerequisites for Integration [](https://docs.clevertap.com/docs/sheetlabs#prerequisites-for-integration) ============================================================================================================= The following are the prerequisites for integrating Sheetlabs with CleverTap: * Ensure you have a valid Sheetlabs account. * Ensure you have a spreadsheet in either **Google Sheets** or in **CSV/Excel format** * Ensure you have access to the CleverTap dashboard. Integrate Sheetlabs with CleverTap [](https://docs.clevertap.com/docs/sheetlabs#integrate-sheetlabs-with-clevertap) ======================================================================================================================= The integration process involves the following three major steps: 1. [Create an API in Sheetlabs](doc:sheetlabs#create-an-api-in-sheetlabs) 2. [Configure Linked Content API](doc:sheetlabs#configure-linked-content-api) . 3. [Create Personalized Campaign Using Linked Content](doc:sheetlabs#create-personalized-campaign-using-linked-content) . > 📘 > > ### > > Import Your Spreadsheet into Sheetlabs > > [](https://docs.clevertap.com/docs/sheetlabs#import-your-spreadsheet-into-sheetlabs) > > To use Sheetlabs as a content source, import your spreadsheet into Sheetlabs by uploading a CSV/Excel file or connecting your Google account to import a Google Sheet. You can optionally enable auto-sync to keep the data updated automatically. Create an API in Sheetlabs [](https://docs.clevertap.com/docs/sheetlabs#create-an-api-in-sheetlabs) ------------------------------------------------------------------------------------------------------- To programmatically access your imported table data from Sheetlabs, you must create an API. This allows you to fetch data dynamically and use it across external tools or platforms. To do so, perform the following steps: 1. From API section of your Sheetlabs dashboard, click **\+ New API**. 2. Select the _Data table_ you just imported. ![Create an API in Sheetlabs](https://files.readme.io/d71c8b3ff2263793e5ca9956fe0aff6d9e2fa9c01a05ece26fb8bb8d2bdf5a1d-image.png) Create an API in Sheetlabs 3. Name your API and optionally add a description. 4. Select _GET_ as the method to fetch data. 5. Copy the **Base URL** for the API. ![Copy Base URL](https://files.readme.io/4b9255b6eaac7989faca0e89c1aa00cb861be9fa6ec5465e87091d2d8eef7e72-image.png) Copy Base URL Configure Linked Content API [](https://docs.clevertap.com/docs/sheetlabs#configure-linked-content-api) ----------------------------------------------------------------------------------------------------------- Set up Linked Content in CleverTap to connect your Sheetlabs API and retrieve dynamic campaign content using user profile parameters. To do so, perform the following steps: 1. Go to _Settings_ > _Setup_ > _Linked Content_ in the CleverTap dashboard. 2. Click **\+ Linked Content**. ![Add Linked Content](https://files.readme.io/a06da6f0b7efc54f86dc7cf9f2af6c8dcfa0fe4b529b000e9c71bfa6615ff3f3-image.png) Add Linked Content 3. In the _URL_ field, paste the **Base URL** copied in _Step 5_ of [Create an API in Sheetlabs](doc:sheetlabs#create-an-api-in-sheetlabs) , and append the parameter `ID={{id}}` to personalize the request. #### Example: [](https://docs.clevertap.com/docs/sheetlabs#example) HTML ?ID={{id}} In this example, `ID` is used to identify the user, and the corresponding `Title` and `Message` fields from the sheet will be used in the campaign. `ID` acts as the lookup parameter for fetching personalized content. 4. Click **Test Linked Content** to verify if the data is being correctly retrieved based on the `ID` provided from the linked Google Sheet. #### Example API response: [](https://docs.clevertap.com/docs/sheetlabs#example-api-response) JSON [\ {\ "ID": 1234,\ "Title": "Hey",\ "Message": "How have you been?",\ "Button": "Buy Now!"\ }\ ] > 🚧 > > ### > > Auto-mapping > > [](https://docs.clevertap.com/docs/sheetlabs#auto-mapping) > > Auto-mapping of objects and labels is not supported for this type of array-based response from the Sheetlabs API. You need to manually iterate through the JSON response using [Liquid tags](doc:personalize-message-all) > to access specific values. 5. Click **Test and Save** to save this API. ![Save Linked Content](https://files.readme.io/2ce451f75d46a57624713c63a1533e9bdee811edab759c5367f5b57a2ae66b44-image.png) Save Linked Content Once the Sheetlabs data is available through Linked Content, you can use it in any CleverTap campaign that supports personalization, such as [Push Notifications](doc:create-message-push) or [Email Campaigns](doc:create-message-email) . Create Personalized Campaign Using Linked Content [](https://docs.clevertap.com/docs/sheetlabs#create-personalized-campaign-using-linked-content) ----------------------------------------------------------------------------------------------------------------------------------------------------- Use the Linked Content API inside a Push Notification campaign to personalize the message with Sheetlabs. To do so, perform the following steps: 1. Go to _Campaigns_ from the CleverTap dashboard and click **\+ Campaign**. 2. Select _Push Notification_ from the _Messaging Channels_ list. 3. Configure all the campaign settings and then go to the _What_ section: 1. Click **Personalization**. 2. Select the _Linked Content_ configured under [Configure Linked Content API](doc:sheetlabs#configure-linked-content-api) and click **Apply**. ![Personalization](https://files.readme.io/a3374c8a1e5bc30a31aa7a3a306e8af5223cd4605cae1af3d3fc8d4c420c545f-2025-05-09_19-59-27_1.gif) Personalization 4. Type `{`, `{{`, or `@` to view available personalization options. For more information about how to personalize a message using Linked Content, refer to [CleverTap Liquid tag](doc:personalize-message-all) . ![Create Personalized Message Using Linked Content](https://files.readme.io/0e57df8c5ec77404ebfa2a5b5faecc58e9f458eb839a86c673b71ce81058613e-image.png) Create Personalized Message Using Linked Content 5. Click **Preview and Test** to see if the campaign pushes the default values you configured. 6. Click **Publish** to launch the campaign. Verify that everything works as intended. Users will receive a push notification like the one below. ![Push Notifications](https://files.readme.io/5ed6bac92131b5b8ad3e32d420439690fb3f096c0b0cddc995afb4494b09bafb-image.png) Push Notifications Similarly, you can apply this setup to other CleverTap campaigns using linked content, such as [Email](doc:create-message-email) , [WhatsApp](doc:create-message-whatsapp) , or [Web Push](doc:create-message-web-push) . Updated about 2 months ago * * * Ask AI --- # Email Add-on Overview [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#overview) ==================================================================================================== The Email Add-on for the CleverTap Essentials Plan offers a built-in Email Service Provider (ESP) designed to simplify email communication. With this add-on, businesses can send emails directly from CleverTap without relying on third-party integrations. With features such as AMP for Email, Email on Acid API support, and detailed consumption tracking, the add-on empowers startups with advanced tools to enhance email campaigns and drive customer engagement efficiently. Features of the Email Add-on [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#features-of-the-email-add-on) -------------------------------------------------------------------------------------------------------------------------------------------- When you purchase the CleverTap Email Add-on, you gain access to the following features: | Feature | Description | | --- | --- | | **Monthly Email Quota** | 1,00,000 emails per month. | | **SendGrid Integration** | A SendGrid account, including one dedicated IP. | | **AMP for Email** | Create engaging, interactive email content with [AMP for Email](doc:ampforemail)
. | | **Email on Acid** | Test your email design and deliverability with up to 5 monthly API calls. | | **Rich Content Support** | Leverage [Linked Content](doc:linked-content)
and [Liquid Tags](doc:liquid-tags)
for dynamic personalization. | Pricing and Billing [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#pricing-and-billing) ========================================================================================================================== The Email Add-on comes with a fixed cost and a variable component based on overages for emails sent beyond the allotted quota. The following is the pricing structure for the Email Add-on: | Component | Details | | --- | --- | | **Add-on Price** | $50 per month + 10% of your CleverTap base plan cost | | **Overages** | $0.0005 per email sent beyond the allotted quota | Example Calculation [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#example-calculation) -------------------------------------------------------------------------------------------------------------------------- Suppose you are a CleverTap Essential customer with a base plan of $200 per month, and you have added the Email Add-on to enhance your email communication capabilities. If you send 10,000 emails over your allocated quota, your total monthly cost will be calculated as follows: | Calculation Step | Details | Amount | | --- | --- | --- | | **Base Plan Cost** | Monthly base plan cost | $200 | | **Add-on Price (A)** | $50 (fixed) + 10% of base plan ($200 x 10%) | $50 + $20 = $70 | | **Overage Cost (B)** | Additional 10,000 emails beyond allotted quota x $0.0005 | $5 | | **Total Monthly Cost (A+B)** | Add-on Price + Overage Cost | $70 + $5 = $75 | Enabling Add-on [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#enabling-add-on) ================================================================================================================== The following are the key steps to enable the Email Add-on feature in your project: 1. [Purchase the Email Add-on](doc:email-add-on-for-clevertap-essentials-plan#purchase-the-email-add-on) 2. [Configure Email Settings](doc:email-add-on-for-clevertap-essentials-plan#configure-email-settings) 3. [Warm Up Your IP](doc:email-add-on-for-clevertap-essentials-plan#warm-up-your-ip) Purchase the Email Add-on [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#purchase-the-email-add-on) -------------------------------------------------------------------------------------------------------------------------------------- 1. Log in to your CleverTap dashboard. 2. Navigate to _Organization > Billing > My Plan > Manage Add-ons_. 3. Locate the _CleverTap Email Add-on_ and click **Select**. 4. Click **Pay & Update Plan** to confirm the purchase. ![Purchase Email Add-on](https://files.readme.io/2410a02faf35ed8ad0b30971700e13d87ea5cbdfe1a986e7a6cb19a45982136f-2024-12-11_13-23-51_1.gif) Purchase Email Add-on 5. Submit the form and then wait for 72 hours. You will receive the API Key from CleverTap's onboarding team for the email configuration. > 📘 > > ### > > Email Configuration Process > > [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#email-configuration-process) > > Currently, the configuration process is manual and will be completed within a 72-hour standard licensed agreement (SLA) after filling the form. Configure Email Settings [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#configure-email-settings) ------------------------------------------------------------------------------------------------------------------------------------ After you receive the API Key from CleverTap's onboarding team: 1. Navigate to _Settings > Email > Provider_. 2. Select _CleverTap Email_ from the dropdown menu. 3. Enter the provider details shared by CleverTap's onboarding team and click **Save**. ![Configure CleverTap Email Provider](https://files.readme.io/bebe0bcff039e7f691edfd81ec278b7b61da3275a79539c41d44e0c8e479e961-Provider_Credentials.png) Configure CleverTap Email Provider For more information, refer to [Setup Provider](doc:sendgrid) . Warm Up Your IP [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#warm-up-your-ip) ------------------------------------------------------------------------------------------------------------------ Gradually increasing email volume is crucial to maintaining optimal email deliverability. This process, known as IP Warm-up, helps establish a strong IP reputation and avoids potential deliverability issues. To warm up your IP, follow the IP warm-up guide sent via email post-purchase or refer to [IP Warm-up](doc:ip-warmup) . The IP warm-up is a self-service process, requiring you to follow the provided documentation independently. After the IP warm-up, you can start creating Email campaigns. For more information, refer to [Create Message](doc:create-message-email) . FAQs [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#faqs) ============================================================================================ ### Q. What happens if I exceed my email quota? [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#q-what-happens-if-i-exceed-my-email-quota) A. You will be charged $0.0005 per email for overages. ### Q. How long does it take to activate the add-on? [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#q-how-long-does-it-take-to-activate-the-add-on) A. The activation process, including SendGrid account setup, is completed within 72 hours of filling out the form. ### Q. Can I use multiple email providers in CleverTap? [](https://docs.clevertap.com/docs/email-add-on-for-clevertap-essentials-plan#q-can-i-use-multiple-email-providers-in-clevertap) A. Yes, you can configure and use other providers simultaneously. Updated about 2 months ago * * * Ask AI --- # General Data Protection Regulation (GDPR) Introduction [](https://docs.clevertap.com/docs/gdpr#introduction) ====================================================================== The GDPR enforcement puts the control of personal data collected by businesses in the hands of the individuals it belongs to, protecting the rights of EU residents. The regulation delineates individuals’ rights to [access, rectify, and restrict](https://gdpr-info.eu/chapter-3/) the processing of personal data, among other key provisions, and aims to unify privacy and security laws for all organizations operating within the EU. In the context of this user document, we will be focused on how to implement the different rights once invoked by the Data Subjects. Nomenclature [](https://docs.clevertap.com/docs/gdpr#nomenclature) ====================================================================== * Data Subject: End Users * Data Controller: CleverTap Customers * Data Processor: CleverTap Contractual Obligations [](https://docs.clevertap.com/docs/gdpr#contractual-obligations) ============================================================================================ ### 1\. [Data Processing Agreement](https://clevertap.com/data-processing-agreement/) (DPA) [](https://docs.clevertap.com/docs/gdpr#1-data-processing-agreement-dpa) All customers of CleverTap have to sign the DPA. To account for this, on login for the first time, each user will have to go through our ToS, Privacy Policy, and DPA and accept the same. ### 2\. [Updated Terms of Service](https://clevertap.com/terms-service/) [](https://docs.clevertap.com/docs/gdpr#2-updated-terms-of-service) ### 3\. [Updated Privacy Policy](https://clevertap.com/privacy-policy/) [](https://docs.clevertap.com/docs/gdpr#3-updated-privacy-policy) Data Subject Rights [](https://docs.clevertap.com/docs/gdpr#data-subject-rights) ------------------------------------------------------------------------------------ Right to Erase [](https://docs.clevertap.com/docs/gdpr#right-to-erase) -------------------------------------------------------------------------- ### 1\. What is it? [](https://docs.clevertap.com/docs/gdpr#1-what-is-it) This right allows end users to delete all information about them from CleverTap servers. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/gdpr#note) > > CleverTap deletes all backups within 60 days of customer deleting the data ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation) a. API _/delete/profiles.json_ * Data Controllers can use this Rest API to delete all data of the mentioned profiles from the CleverTap servers by calling one of the 2 unique profile identifiers: * List of identities * List of GUIDs http://eu1.wzrkt.com/1/delete/profiles.json { "guid":"df2e224d90874887b4d61153ef3a2508" } OR { "identity":"[email protected]" } b. Dashboard Delete * Data Controllers can navigate to the profile page of the users whose profile has to be deleted. * On calling the delete button, the entire profile page will be unavailable for use and ALL profile and event information will be removed from our servers within 24 hours of calling this function. c. IMPORTANT NOTE When Profile of a user is Deleted, if the data subject also wants that their future data is also not captured, Data Controllers have to ensure that the Data Suppress flag (on the device) is set to enable on all devices owned by the said user. If this is not done, we will delete all data of the said user, BUT as soon as the same user logs in, we will create a new profile for the user and start capturing their data again ### 3\. Access Control [](https://docs.clevertap.com/docs/gdpr#3-access-control) Only Admin users have the right to erase user information. ### 4\. Implications [](https://docs.clevertap.com/docs/gdpr#4-implications) a. Customer will have to stop sending Future data of the profile thus suppressed * Once the user hits delete for a profile, all data coming from any device associated to the user will also have to be stopped. Hence, if the delete function is called, the data controller will have to set the optout flag to enable state (check right to suppress). b. Unreachable on Marketing Channels * Since the data of the user is deleted, there is no way to reach out to the user on marketing communication channels. Data controllers will have to opt the users out of ALL marketing channels. c. Dashboard Implications * You will not be able to view the profile page of the said user post delete. * You cannot roll back erase, once called. There is no way to get the information back, once delete function is invoked. * The delete happens immediately and cannot be rolled back. The actual delete of the profile will happen within 24 hours from across all our systems. * Funnels, cohorts, pivots and other analytics will be impacted as the numbers may show some data inconsistency for a small period due to data deletion. * Users cannot download the profile information of the said user from anywhere on the dashboard. ### 5\. Default state [](https://docs.clevertap.com/docs/gdpr#5-default-state) Profile will be erased only on explicitly calling it via API or dashboard delete. Right to Modify/Rectify [](https://docs.clevertap.com/docs/gdpr#right-to-modifyrectify) ------------------------------------------------------------------------------------------- ### 1\. What is it [](https://docs.clevertap.com/docs/gdpr#1-what-is-it-1) This right allows users to modify/rectify any profile data stored about them ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation-1) a. API CleverTap has provided this API which allows Data Controllers to upload profile information of their users. Hence, if a Data Subject requests for a profile change, the Data controller can upload the profile data of the user via the API b. csv Profile upload Under the settings section of your dashboard, we allow users to upload user profiles via a csv file.You will find it under Settings -> Manage -> My Uploads ### 3\. Access Control [](https://docs.clevertap.com/docs/gdpr#3-access-control-1) All non members have the right to csv upload ### 4\. Implication [](https://docs.clevertap.com/docs/gdpr#4-implication) The old profile information will be overridden with the new profile for the given user identifier. If the user identifier is not found, a new profile will be created ### 5\. Default State [](https://docs.clevertap.com/docs/gdpr#5-default-state-1) Profile will be modified only on explicitly calling it via API Right to Access [](https://docs.clevertap.com/docs/gdpr#right-to-access) ---------------------------------------------------------------------------- ### 1\. What is it [](https://docs.clevertap.com/docs/gdpr#1-what-is-it-2) This right allows users to access data which has been captured about them by the Data Processors ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation-2) a. Dashboard Download This allows Data Controllers to download data about their specific users as a csv file b. API Download This API allows users download data about specific users via identities and/or guids ### 3\. Access Control [](https://docs.clevertap.com/docs/gdpr#3-access-control-2) All non member users can download profile informations. All users with the key, can use the API download method ### 4\. Implication [](https://docs.clevertap.com/docs/gdpr#4-implication-1) Download will download the latest profile of the said user ### 5\. Default State [](https://docs.clevertap.com/docs/gdpr#5-default-state-2) Profile will be downloaded on explicitly calling the download function Right to Data Suppress (Opt Out) [](https://docs.clevertap.com/docs/gdpr#right-to-data-suppress-opt-out) ------------------------------------------------------------------------------------------------------------ ### 1\. What is it? [](https://docs.clevertap.com/docs/gdpr#1-what-is-it-3) This right allows users to opt out of sharing any data with Data Processors. ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation-3) a. New SDK version * We have released an update to the SDK which will allow you to hook a optout flag to the CTA on your app. * If the optout flag is set to disable, we will continue collecting data of the said user from the said device. * If the optout flag is set to enable, our SDK will stop sending any data from the said device onto our servers. Data is blocked at the SDK level itself. b. Multiple Devices * If the same user logs in from another device, the Data Controller will have to validate the optout flag of user and set the flag accordingly. * **Example** * User A has 2 devices, a1, a2. * By default, optout is set to disable on both devices. * A opts out of a1. In this case, optout will be set to enable on a1. The SDK will prevent any data from a1 to reach CleverTap servers going forward. * At this time, the Data Controller should set optout to enable for all devices associated to A. If this is not done, when the user logs in through a2, data will flow into CleverTap servers through a2 (which is in violation to GDPR). c. Multiple Profiles on the Same Device * If there are multiple users logging in to the same device where one of the profiles has set the optout flag to enable, CleverTap will suppress data coming from that device for that profile - refer onUserLogin on our developer docs. * **Example** * There are 2 users A and B who share the same device a1. * By default, optout is set to disable on a1. * A logs in to a1 and opts out of a1. In this case, optout will be set to true on a1. The SDK will prevent any data from a1 to reach CleverTap servers going forward. * A logs out of a1. * B logs in to a1 via ‘onUserLogin’ method, then CleverTap sets the optout to disable by default for B. * If login of B into a1 is handled by the app/data controller, CleverTap will continue suppressing the data coming from a1. Data Controller should reset the flag optout to disable when B logs in through the same device. If this is not done, B’s data will also be suppressed although B has not opted out of sharing data. ### 3\. Access Control [](https://docs.clevertap.com/docs/gdpr#3-access-control-3) If the SDK has been updated and the updated version app is being used by a user, all end users have this right to suppress. ### 4\. Implication [](https://docs.clevertap.com/docs/gdpr#4-implication-2) a. The profile page of the user who has opted out will be stale and will not have the latest events performed by the user. b. We will auto filter out all these users from all segment calculations and engagement (including, but not limited to estimate reach, etc.). c. All analytics data like funnels, flows, cohorts, etc. will not contain these users’ data. d. Campaigns will not be sent to these users (even though they qualify) as the data is stale. e. To validate the state of the optout, we will provide the flag as a profile variable on the profile page of each user. ### 5\. Default state [](https://docs.clevertap.com/docs/gdpr#5-default-state-3) a. By default, we will continue collecting profile and event data unless the SDK explicitly raises the flag. b. Default state: optout _:disable_ i.e. we will collect data from the device by default (to be compliant with GDPR, we recommend that users set this flag to enable by default which ensure no collection of data unless explicit permission provided by end users). Opt In [](https://docs.clevertap.com/docs/gdpr#opt-in) ---------------------------------------------------------- a. If the user who has opted out, chooses to opt back in, all data will be appended to the same profile if identified as an existing user. b. The user will be treated as the same user (we will not create a new profile for the user). Right to Marketing Opt Out [](https://docs.clevertap.com/docs/gdpr#right-to-marketing-opt-out) -------------------------------------------------------------------------------------------------- ### 1\. What is it [](https://docs.clevertap.com/docs/gdpr#1-what-is-it-4) GDPR provides the right to the user to opt out of marketing communication. ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation-4) a. Push opt out * Our SDK has a flag ‘MSG-push’ which if set to disable, will ensure that push notifications are blocked for the specific device. * Our SDK has a flag ‘MSG-push-all’ which if set to disable, will ensure that push notifications are blocked for ALL devices tagged to the said user. b. SMS opt out * Our SDK has a flag ‘MSG-sms’ which if set to disable, will ensure that no sms is received by the phone number associated to the logged in device. c. Email opt out * Our SDK has a flag ‘MSG-email’ which if set to disable, will ensure that no email is received by the email id associated to the logged in device. ### 3\. Access Control [](https://docs.clevertap.com/docs/gdpr#3-access-control-4) If the SDK has been updated and the updated app is being used by a user, all end users have this right to opt out of Marketing. ### 4\. Implication [](https://docs.clevertap.com/docs/gdpr#4-implication-3) a. If the data controller wants users to be opted out of marketing communication across ALL channels, all the above flags need to be explicitly moved to disable state for the said profile. b. Data Controllers need to be cognizant of sending transactional communication to the users who have opted out of marketing. ### 5\. Default state [](https://docs.clevertap.com/docs/gdpr#5-default-state-4) a. By default, we will continue marketing communication to said users, unless the SDK explicitly raises the flag. b. Default state: enable i.e. we will send marketing messages by default. Privacy by Design [](https://docs.clevertap.com/docs/gdpr#privacy-by-design) -------------------------------------------------------------------------------- Network Data [](https://docs.clevertap.com/docs/gdpr#network-data) ---------------------------------------------------------------------- ### 1\. What is it? [](https://docs.clevertap.com/docs/gdpr#1-what-is-it-5) Part of the privacy by design notion of GDPR. ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation-5) a. We have made an SDK release to allow Data controllers the capability to set 'enableDeviceNetworkInfoReporting' on individual devices. b. When the user launches app, the following data points WILL NOT be auto collected: * Android: Bluetooth, Wifi, Radio * iOS: Wifi, Radio ### 3\. Implications [](https://docs.clevertap.com/docs/gdpr#3-implications) a. If the 'enableDeviceNetworkInfoReporting' is set to disabled, CleverTap will not be able to determine the location of the users based on their IP information. b. This may affect sending out geo targeted campaigns. c. This may affect your ability to perform geo based analytics. d. The profile page of the user will not contain location information. e. If you are using our ‘setLocation’ method, we recommend that you enable 'enableDeviceNetworkInfoReporting'. ### 4\. Access Control [](https://docs.clevertap.com/docs/gdpr#4-access-control) If the SDK has been updated and the updated app is being used by a user, we will not collect network data for that user by default. ### 5\. Default State [](https://docs.clevertap.com/docs/gdpr#5-default-state-5) enabledevicenetworkinfo’: _disable_ i.e. we will not collect network data by default. ADID [](https://docs.clevertap.com/docs/gdpr#adid) ------------------------------------------------------ ### 1\. What is it? [](https://docs.clevertap.com/docs/gdpr#1-what-is-it-6) Part of the privacy by design notion of GDPR. ### 2\. CleverTap Implementation [](https://docs.clevertap.com/docs/gdpr#2-clevertap-implementation-6) a. We have made an SDK release to allow Data controllers the capability to set Advertisement Identifiers (ADID): 'CLEVERTAP\_USE\_GOOGLE\_AD\_ID' (for Android) and ‘CleverTapUseIFA’ (for iOS). b. If ADID is set to 0, when the user launches app, CleverTap will NOT use the Advertising Id to generate unique CleverTap id for the said user. c. If ADID is set to 1, when the user launches app, CleverTap will use the Advertising Id to generate unique CleverTap id for the said user. ### 3\. Implications [](https://docs.clevertap.com/docs/gdpr#3-implications-1) Data Controllers WILL NOT be able to search for specific profiles using the ADID. You will have to use the CleverTap generate unique identity to search for the said user. ### 4\. Access Control [](https://docs.clevertap.com/docs/gdpr#4-access-control-1) If the SDK has been updated and the updated version of the app is being used by any new user, no ADID will be shared with CleverTap for those user. ### 5\. Default State [](https://docs.clevertap.com/docs/gdpr#5-default-state-6) ADID: _disabled_ i.e we will not collect ADID by default. FAQs [](https://docs.clevertap.com/docs/gdpr#faqs) ------------------------------------------------------ How are profiles created on CleverTap - [](https://docs.clevertap.com/docs/gdpr#how-are-profiles-created-on-clevertap--) ---------------------------------------------------------------------------------------------------------------------------- 1. CleverTap's SDK picks up the Google ADID for every Android device and the IDFA for every iOS device to create the CleverTap ID. 2. In case the SDK is able to successfully able to pick up the ADID and IDFA respectively, the format of the CleverTap ID is as follows - _Android_ \_\_g(ADID stripped of hyphens) _iOS_ -g(IDFA stripped of hyphens) 3. The CleverTap ID is used to identify distinct devices. 4. Later, when the end user provides his/her identity by logging in/registering, CleverTap will assign this identity to the previously anonymous profile. What is GDPR? [](https://docs.clevertap.com/docs/gdpr#what-is-gdpr) ----------------------------------------------------------------------- 1. General Data Protection Regulation (GDPR) came into regulation in May 2018 - primarily to give more rights and power to the citizens of the EU to control their personal data and the information they share with businesses they deal with. Refer to [CleverTap GDPR](https://docs.clevertap.com/docs/gdpr) . 2. To elaborate a little more - in the current situation users of your app are the data subject, your app/business is the data controller while CleverTap acts as a data processor. 3. As a data processor - our SDK captures only two data points about the user - a) Advertising ID of the device - In case of Android, CleverTap's SDK captures the Google ADID and in case of iOS, the SDK captures the IDFA. We use this to create a hashed CleverTap ID in order to identify devices. b) Location - Based on the latest app launch of the user, using a reverse IP lookup powered by Maxmind, CleverTap is able to capture the city level location of the user. Since May 2018(SDK v3.1.9 and above), our SDK's are GDPR compliant, and we do not track the above two data points, unless explicitly enabled. Note that all our SDK's from 3.1.9 and above are GDPR compliant. How could this impact my user profiles on CleverTap? [](https://docs.clevertap.com/docs/gdpr#how-could-this-impact-my-user-profiles-on-clevertap) ----------------------------------------------------------------------------------------------------------------------------------------------------- 1. In case the user has uninstalled and installed the app again, and if the SDK is not picking up the ADID and IDFA, then there is no way for the SDK to identify the device as the same device. Hence, for every uninstall and re-install scenario - CleverTap ends up creating a new profile altogether. 2. App install attribution could potentially not work as expected in case your attribution provider received the ADID, but CleverTap doesn't. You wouldn't be able to carry out an analysis or segment basis the install source of the user. You will have to ensure if you have CleverTap GDPR compliant, then even your attribution partner is GDPR compliant Is GDPR applicable to me? [](https://docs.clevertap.com/docs/gdpr#is-gdpr-applicable-to-me) ----------------------------------------------------------------------------------------------- Under the GDPR, it is the location of the individual whose personal data is being processed that determines whether the concerned firm should comply. This means that the GDPR will apply to all organizations, whether within the EU or outside of it, that offer their product or service to individuals in the EU when their data is being collected. In addition, it is also recommended under the GDPR that your marketing communications be on a default opt-out. That said, your legal/compliance teams will be in a better position to answer if your app/business falls under the purview of GDPR regulations. GDPR doesn't apply to me. What next? [](https://docs.clevertap.com/docs/gdpr#gdpr-doesnt-apply-to-me-what-next) ------------------------------------------------------------------------------------------------------------------- If GDPR doesn't apply to you, then life continues as usual for profile creation. You can simply allow [CleverTap to track the ADID and location](https://developer.clevertap.com/docs/sdk-changes-for-gdpr-compliance) . GDPR applies to me. What next? [](https://docs.clevertap.com/docs/gdpr#gdpr-applies-to-me-what-next) -------------------------------------------------------------------------------------------------------- What your legal/compliance team needs to find out is if allowing CleverTap to track the above two data points (ADID & Location) is included in the purview of your GDPR compliance. If not, you can allow [CleverTap to track the ADID and location](https://developer.clevertap.com/docs/sdk-changes-for-gdpr-compliance) . However, if your app needs to be completely GDPR compliant, then you can disable the tracking by following the steps mentioned in the doc. What hygiene checks do I need to do? [](https://docs.clevertap.com/docs/gdpr#what-hygiene-checks-do-i-need-to-do) --------------------------------------------------------------------------------------------------------------------- Once you move to a GDPR-compliant SDK, you can perform some quick hygiene checks to ensure profiles are being created as per the GDPR norms applicable to you - a) In case you need to be GDPR compliant, your CleverTap ID's wouldn't start from **g or -g. b) In case you do not need to be GDPR compliant, your CleverTap ID's would continue to start from '**g' or '-g.' c) In case you need to be GDPR compliant, but your legal team says that ADID can be tracked by CleverTap's SDK, your CleverTap ID's would continue to start from \_\_g or -g. Updated about 2 months ago * * * Ask AI --- # Smashpops Overview [](https://docs.clevertap.com/docs/smashpops#overview) =================================================================== [SmashPops](https://www.smashpops.com/) provides gamified pop-ups to attract new subscribers and grow your customer base through your website or app. With coupons, weighted rewards, and customizable game rules, SmashPops helps brands increase engagement while collecting valuable customer data. Integrating SmashPops with CleverTap via Zapier enables you to: * **Sync User Profiles in Real Time**: Update user attributes in CleverTap whenever a game is played. * **Trigger Automated Engagement**: Fetch events from SmashPops to CleverTap to trigger journeys and personalized campaigns. * **Retarget Dormant Users**: Build custom CleverTap segments from SmashPops data and run win-back campaigns. Prerequisites for Integration [](https://docs.clevertap.com/docs/smashpops#prerequisites-for-integration) ============================================================================================================= The following are the prerequisites for this integration: * Access to your **SmashPops** account * Access to an active **Zapier** account * A CleverTap account with **Account ID** and **Passcode**. Integrate SmashPops with CleverTap Using Zapier [](https://docs.clevertap.com/docs/smashpops#integrate-smashpops-with-clevertap-using-zapier) ================================================================================================================================================= The integration involves the following four major steps: 1. [Create Passcode on CleverTap Dashboard](doc:smashpops#create-passcode-on-clevertap-dashboard) 2. [Create Game in SmashPops](doc:smashpops#create-game-in-smashpops) 3. [Connect SmashPops and CleverTap via Zapier](doc:smashpops#connect-smashpops-and-clevertap-via-zapier) 4. [Add Integration Code to Your Website](doc:smashpops#add-integration-code-to-website) Create Passcode on CleverTap Dashboard [](https://docs.clevertap.com/docs/smashpops#create-passcode-on-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create Game in SmashPops [](https://docs.clevertap.com/docs/smashpops#create-game-in-smashpops) --------------------------------------------------------------------------------------------------- Consider an example where you want to run a gamified pop-up on your website, collect emails, and sync those users into CleverTap for retargeting. To do so, perform the following steps: 1. Go to the SmashPops dashboard and create a game you want to display on your website. ![SmashPops Dashboard](https://files.readme.io/62c81ffa2e3d303de8115aba4db428370b1dd2d0bfadc1f9c70aca6ac7b1c1ed-image.png) SmashPops Dashboard 2. Configure game rules such as display settings, coupon codes, and reward weights. ![Configure Game](https://files.readme.io/19547a71155fda053868eafc9a114304d7f79a5aa575b8f3ee56c256481025f1-image.png) Configure Game 3. Go to the **Data Collection** section, click **\+ Link Another Integration**, and select **Zapier**. ![Link Another Integration](https://files.readme.io/88543d5857dea21b17dc4ae55e17c61d1292a9501281a3c10987a72bcbab1af1-image.png) Link Another Integration 4. You will be invited to Zapier. Click **Accept Invite & Build a Zap**. ![Accept Invite & Build a Zap](https://files.readme.io/51e7bcbea8255782dbb2b6159a106886118e12d733c39a2431095a99485a9df3-Screen_Recording_2025-06-30_at_11.26.40_AM_1.gif) Accept Invite & Build a Zap Once Zapier is integrated into Smashpops, it can connect to SmashPops with CleverTap via Zapier. Connect SmashPops and CleverTap via Zapier [](https://docs.clevertap.com/docs/smashpops#connect-smashpops-and-clevertap-via-zapier) --------------------------------------------------------------------------------------------------------------------------------------- Zapier acts as the automation bridge between SmashPops and CleverTap. Each time a user plays a game, SmashPops sends interaction data to CleverTap through Zapier. This enables businesses to either: * **Create or update user profiles** with player details such as email, coupons, or scores. OR * **Log each play as an event** to power segmentation, analytics, and personalized engagement campaigns. The integration supports two options depending on your use case: * [Create or Update User Profiles](doc:smashpops#create-or-update-user-profiles) * [Upload Event](doc:smashpops#upload-event) ### Create or Update User Profiles [](https://docs.clevertap.com/docs/smashpops#create-or-update-user-profiles) Consider an example where you want to sync game player data into CleverTap so that each new play updates or creates a user profile for personalized engagement. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. Zapier can connect different applications, such as SmashPops. ![Create a Zap on Zapier Dashboard](https://files.readme.io/830b60a9c8f926bca524bfae5fa8a9aa021dad3d7e712f438b95c0486994e000-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select SmashPops from the App section. This starts the Zap when a trigger event occurs on SmashPops. 2. Select _Trigger Event_ from the dropdown list and then select _New Data_ for this use case. 3. Select Account and sign in using your SmashPops account credentials. 4. Enter your SmashPops API key. A link is provided in the popup to help you locate the API key in your SmashPops dashboard. ![Set Up Trigger Event](https://files.readme.io/ad8a55ab9674b9af05c53fb362477d8cf45278ec5f3db21f95c172c923f8fbfa-Screen_Recording_2025-06-30_at_10.57.02_AM_3.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the correct account is connected and the trigger is set up correctly. > 📘 > > #### > > Skip Test if Trigger Fails > > [](https://docs.clevertap.com/docs/smashpops#skip-test-if-trigger-fails) > > If Zapier cannot pull sample data during the test, click **Skip Test**. The Zap will still run correctly once published and connected to live data. 4. Click **Publish**. 5. **Select the Action** that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Create/Update User Profile_ from the Action event dropdown. This implies that whenever new data is generated, a new user profile is created, or an existing user profile is updated with the new information on the CleverTap dashboard. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained during the [Create Passcode on CleverTap Dashboard](doc:smashpops#create-passcode-on-clevertap-dashboard) step. 4. Click **Continue** after your account is successfully connected. ![Select the Action for Zap](https://files.readme.io/6134aee716977c0b32583899e754ac14e80ea3375ec98bed30ee418e64f6428f-4ea42b86-ce46-4fd0-9dde-09becd5626dd.png) Select the Action for Zap 6. **Configure the Action**. Map SmashPops data fields to CleverTap fields as follows: | CleverTap Field | SmashPops Field | | --- | --- | | Identity | Email or unique user ID collected via the game. | | Object ID | Leave blank if Identity is provided. | | Creation Date | Date or time of gameplay. | | Profile Properties | Game data in JSON format (for example: `{"name": "Alex", "email": "[[email protected]](https://docs.clevertap.com/cdn-cgi/l/email-protection) ", "coupon": "WELCOME10"}`) | > 🚧 > > #### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/smashpops#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. 7. Click **Continue**, and click **Test Step** to test the Zap after mapping the fields. ![Test Zap](https://files.readme.io/6354738a5f26e47ce1cf2ca78e532e2759399140945b80179171586117f28f54-6fa41f8d-5816-4b2e-a294-d708b88257d2.png) Test Zap 8. Check the CleverTap dashboard to confirm the user profile has been created or updated. ![Verify on the CleverTap dashboard](https://files.readme.io/ef76ba31ab8daf8bb2c0918cb0e3b6a57e560712997a3f21b9cad1a129ee6125-image.png) Verify on the CleverTap dashboard 9. Once validated, click **Publish** to activate the Zap. ### Upload Event [](https://docs.clevertap.com/docs/smashpops#upload-event) Consider an example where you want to track game interactions in CleverTap as events, rather than updating user profiles. This ensures each play is logged for analytics, segmentation, and engagement campaigns. To do so, perform the following steps: 1. Follow _Step 1_ to _Step 4_ from [Create or Update User Profiles](doc:smashpops#create-or-update-user-profiles) to configure SmashPops as the trigger. 2. **Select the Action** that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Upload Event_ from the Action event dropdown. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained during the [Create Passcode on CleverTap Dashboard](doc:smashpops#create-passcode-on-clevertap-dashboard) step. 4. Click **Continue** after your account is successfully connected. ![Select the Action for Zap](https://files.readme.io/6134aee716977c0b32583899e754ac14e80ea3375ec98bed30ee418e64f6428f-4ea42b86-ce46-4fd0-9dde-09becd5626dd.png) Select the Action for Zap 3. **Configure the Action**. Map SmashPops data fields to CleverTap fields as follows: | CleverTap Field | SmashPops Field | | --- | --- | | User ID | Email or unique identifier. | | Event Name | Descriptive event name, such as `"Game Played"` or `"Reward Won"`. | | Creation Date | Date or time of gameplay. | | Event Properties | Event data in JSON format (for example, `{"reward": "10%OFF", "score": 450, "level": "Spin Wheel"}`). | > 🚧 > > #### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/smashpops#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. 4. Click **Continue** and click **Test Step** to test the zap after mapping the fields. 5. Click **Publish**. Once published, each SmashPops play will be logged as an event in CleverTap. Add Integration Code to Website [](https://docs.clevertap.com/docs/smashpops#add-integration-code-to-website) ----------------------------------------------------------------------------------------------------------------- For the integration to work as intended, you must add the SmashPops integration code to your website. To do so, perform the following steps: 1. In your SmashPops account, go to _Settings_ > _My Account_ > _Show Integration Code_. ![Integration Code](https://files.readme.io/e801dc33485473ddb448e22b0648267a6436412f11d3d1abe43d53582fda0943-image.png) Integration Code 2. Copy the snippet and paste it into your website’s HTML (`` or end of ``). Ensure the website URL you configure in SmashPops matches the domain where you deploy the snippet. SmashPops only works on the registered domain. 3. Once added, your game will display according to the rules you have configured, and user actions will be tracked in the CleverTap dashboard. ![Example workflow](https://files.readme.io/2f31702ceae16594ce4f72542b3446a15b78bc95c2567914481259dada02c93d-Screen_Recording_2025-06-30_at_11.20.27_AM_1.gif) Example workflow You can also set up coupon codes and configure weights or chances of each reward in the SmashPops game settings. FAQs [](https://docs.clevertap.com/docs/smashpops#faqs) =========================================================== ### Can I use SmashPops with CleverTap Email Campaigns? [](https://docs.clevertap.com/docs/smashpops#can-i-use-smashpops-with-clevertap-email-campaigns) Yes. You can sync users who played games in SmashPops with CleverTap and then target them through email, push notifications, or In-App campaigns. Updated about 1 month ago * * * Ask AI --- # Apxor Overview [](https://docs.clevertap.com/docs/apxor#overview) =============================================================== [Apxor](https://www.apxor.com/) is an app intelligence platform that enables mobile apps to deliver hyper-contextual In-App experiences such as walkthroughs, tooltips, coachmarks, spotlights, In-App messages, and surveys. By integrating Apxor with CleverTap, product and marketing teams can sync user segments from CleverTap to Apxor and trigger targeted, personalized In-App interactions for onboarding, feature adoption, activation, and announcements, driving measurable product-led growth. With this integration, for example, a product manager can identify users who have not tried a new feature in CleverTap, sync that segment to Apxor, and automatically launch a contextual walkthrough inside the app to encourage adoption. Prerequisites for Integration [](https://docs.clevertap.com/docs/apxor#prerequisites-for-integration) ========================================================================================================= Ensure you have the following before setting up the integration: * Access to the [Apxor Dashboard](https://apxor.com/) . * [Apxor Android SDK](https://guides.apxor.com/getting-started-with-apxor/sdk/android-x) is integrated into your app. * Access to your CleverTap account. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/apxor#support-for-integration) > > This integration is managed and continuously improved by Apxor. The CleverTap and Apxor integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Apxor](https://docs.clevertap.com/cdn-cgi/l/email-protection#f0939f9e84919384b09180889f82de939f9d) > for support and resolution. Integrate CleverTap with Apxor [](https://docs.clevertap.com/docs/apxor#integrate-clevertap-with-apxor) =========================================================================================================== To integrate Apxor with CleverTap, perform the following three major steps: 1. [Set Up Apxor for Integration](doc:apxor#set-up-apxor-for-integration) . 2. [Set Up Webhook in CleverTap](doc:apxor#set-up-webhook-in-clevertap) . 3. [Create Webhook Campaign in CleverTap](doc:apxor#create-webhook-campaign-in-clevertap) . Set Up Apxor for Integration [](https://docs.clevertap.com/docs/apxor#set-up-apxor-for-integration) ------------------------------------------------------------------------------------------------------- Ensure Apxor is fully set up to receive cohort data by completing its initial setup. Proper configuration at this stage helps guarantee a smooth, error-free sync when you connect the two platforms. To do so, follow these steps: 1. Log in to your [Apxor Dashboard](https://apxor.com/) . 2. Verify that the Android SDK integration is complete and active. If not, refer to [Apxor Android SDK](https://guides.apxor.com/getting-started-with-apxor/sdk/android-x) . 3. Locate your App ID, which will be required during the CleverTap setup. 4. (Optional) Review [Apxor API Guides](https://guides.apxor.com/getting-started-with-apxor/api-guides) for advanced customization. Set Up Webhook in CleverTap [](https://docs.clevertap.com/docs/apxor#set-up-webhook-in-clevertap) ----------------------------------------------------------------------------------------------------- To send data to your Apxor account, set up a webhook in CleverTap: 1. Go to _Settings_ > _Channels_ > _Webhooks_ from the CleverTap dashboard. 2. Click **Add Webhook** and provide a meaningful name for the webhook. 3. In the _Create webhook template_ popup, enter the following details: ![Create Webhook](https://files.readme.io/199136f60ef9126ef7335a1b29dbf260229ae1feb4defdf30beb972e0f3fad39-image.png) | Field | Description | | --- | --- | | Name | Enter the name for your webhook. | | HTTP Method | Set the HTTP Method to _POST_. | | Destination URL | Enter the following destination URL: `https://server.apxor.com/v1/track/external/clever-tap/sync/`

Replace with your Apxor App ID. For more information about your App ID, refer to [Apxor Application Identifier](https://guides.apxor.com/getting-started-with-apxor/adding-a-new-app#step-5-copy-the-application-identifier)
. | 4. Enable **Basic Authorization** and enter the username and password provided by Apxor. 5. Click **Save**. The webhook can now sync CleverTap segments with Apxor cohorts. Create Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/apxor#create-webhook-campaign-in-clevertap) ----------------------------------------------------------------------------------------------------------------------- Once the webhook is ready, configure a campaign to send user data to Apxor. 1. Go to _Campaigns_ on the CleverTap dashboard, click **\+ Campaign** and select _Webhook_ from the list of messaging channels. ![Create Webhook Campaign](https://files.readme.io/7385f799646e6e0bd1514d5f53cd2661f27b6c09e575a326990c9377a5f24e92-image.png) 2. Configure the following campaign settings: qualification criteria, target segment, and delivery preferences. 3. Under the _What_ section, select the webhook created in [Set Up Webhook in CleverTap](doc:apxor#set-up-webhook-in-clevertap) . 4. Click **Go to Editor**, select Custom Profile Attributes under the _Webhook Content_ and enter the following details: * Key: `apx_cohort_name` * Value: The name of the cohort in Apxor. You can also insert a dynamic variable (for example, `{'{{Cohort Name}}'}`) to send personalized cohort data. ![Webhook Content](https://files.readme.io/59c582a46fd495aa0bce988fe98ade7348351d12f55219a92109fc5a3711b525-image.png) 6. Click **Preview & Test** to validate that the data sync works correctly. 7. Once verified, click **Publish**. ![Publish](https://files.readme.io/fe0b1bc4f485eb6760fa965b93acec9c1fe00d55f360aeefe65ea099cc9a4caa-image.png) A dynamic cohort appears in your Apxor dashboard, ready to be targeted for In-App experiences. Completing this integration establishes a seamless connection between CleverTap's segmentation power and Apxor's personalization capabilities. This helps deliver the right experience to the right user at the right time. Updated about 2 months ago * * * Ask AI --- # Nexmo Introduction [](https://docs.clevertap.com/docs/nexmo-whatsapp#introduction) ================================================================================ The primary vendor CleverTap uses in the backend for WhatsApp communications is Nexmo. Contact our sales team at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#4a392b262f390a29262f3c2f383e2b3a64292527) to enable WhatsApp for your organization. CleverTap users can now leverage the following WhatsApp capabilities of [Nexmo](https://www.vonage.com/communications-apis/) to communicate with their customers: * Sending just-in-time offers to customers to drive purchases * Gathering feedback on the services * Keeping customers informed and more Prerequisites for Integration [](https://docs.clevertap.com/docs/nexmo-whatsapp#prerequisites-for-integration) ================================================================================================================== The following are the prerequisites: * You must have WhatsApp add-on enabled on the Clevertap account in addition to the essentials price plan. * Ensure that WhatsApp onboarding for the phone number to be used with CleverTap is completed. * Ensure that you have all the credentials from Nexmo handy. Integrate Nexmo with CleverTap [](https://docs.clevertap.com/docs/nexmo-whatsapp#integrate-nexmo-with-clevertap) ==================================================================================================================== This process involves the following three major steps: 1. Find Nexmo Details. 2. Configure CleverTap Dashboard. 3. Set up CleverTap callbacks in Nexmo. Find Nexmo Details [](https://docs.clevertap.com/docs/nexmo-whatsapp#find-nexmo-details) -------------------------------------------------------------------------------------------- We recommend that you keep the following information handy before starting with the configuration on the CleverTap dashboard: * **Mobile Number**: It is the mobile number on which the WhatsApp business account is activated. * **App ID** : To obtain the _App ID_, navigate to the _Build and Manage_ > _Applications_ page from the Nexmo dashboard. ![2866](https://files.readme.io/85c10c7-ct_test.png "Locate Nexmo Details") Nexmo Credentials If the application is not created, you can go to _Applications_ and click + _Create a new application_. * **Private Key:** A private key is downloaded automatically after you create a new application on the Vonage dashboard. Store this key as you may need this for future usage. ![Download Private Key](https://files.readme.io/5379bb9-private_key.png "Download Private Key") Download Private Key Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/nexmo-whatsapp#configure-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------ To configure the CleverTap dashboard: 1. Navigate to _Settings_ >_Channels_ > _WhatsApp_ from the CleverTap dashboard. 2. Click **\+ Add Provider**. The _Add WhatsApp provider_ screen displays. 3. Select _Nexmo_ from the dropdown displays. ![1142](https://files.readme.io/4595f55-nexmo_final_.png "Configure Nexmo Details on CleverTap") Configure Provider 4. Now, enter the following credentials obtained from the [Nexmo dashboard](https://docs.clevertap.com/docs/nexmo-whatsapp#find-nexmo-details) in the above step on the _Provider credentials_ screen: * Private Key * App ID 5. To send an automatic reply to users who message on WhatsApp, but are not tracked on the CleverTap dashboard, you can select the _Set auto-reply for users not tracked on CleverTap_ checkbox. 6. Send a Test WhatsApp notification: ![Send a Test WhatsApp Message](https://files.readme.io/c384922-sendtest.png "Send a Test WhatsApp Message") Send a Test WhatsApp Message To ensure that the integration is successful: a. Click the _Send Test WhatsApp_ hyperlink before you start creating WhatsApp campaigns and journeys. To begin with, activate the conversation window by following any one of the following methods: i. Save the business contact and send a WhatsApp message to that number. ii. Copy and share the link with the user you want to send the test notification to. Further, ask the user to click on the link and send a WhatsApp message to initiate a conversation. iii. If you want to send a test notification to yourself, you can click the link and initiate a WhatsApp conversation. b. Enter the following details: _**Country Code and Mobile Number**: Enter the country code and mobile number of the user to whom you want to send the test message. _ **Message**: Here, you can enter the sample text message you want to send to the test user. Once you click on _Send Test_, the success or failure response displays on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Gupshup team to debug the issue. 7. Click **Save** to save the details. Set up CleverTap Callbacks in Nexmo [](https://docs.clevertap.com/docs/nexmo-whatsapp#set-up-clevertap-callbacks-in-nexmo) ------------------------------------------------------------------------------------------------------------------------------ You must copy the _Inbound Message Callback URL_ and _Status Callback URL_ from the CleverTap _Provider credentials_ screen and paste them into the Nexmo dashboard. This helps you receive incoming messages and the delivery status of outgoing messages. To add/paste the callback URLs, login to your Nexmo dashboard > navigate to _Applications_ > Click **Edit** under the _Messages_ section as shown in the image below. ![Callback URLs](https://files.readme.io/6168c57-ct_test.png "Configure Callback URLs") Callback URLs > 📘 > > ### > > Callback Payload Version > > [](https://docs.clevertap.com/docs/nexmo-whatsapp#callback-payload-version) > > Ensure that you select the payload version as 0.1 in the Nexmo dashboard to receive the callbacks properly. Refer to the image below for a better understanding. ![2266](https://files.readme.io/1e1b478-payload_version.png "Nexmo Capablities") Capabilities Adding Message Template [](https://docs.clevertap.com/docs/nexmo-whatsapp#adding-message-template) ------------------------------------------------------------------------------------------------------ > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/nexmo-whatsapp#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as _Phone\_1, phone\_2_, you can use the same template name once within _Phone\_1 and Phone\_2_. To create WhatsApp campaigns, you need to have pre-approved WhatsApp message templates saved in the CleverTap dashboard. Follow the procedure below to add the templates. 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _Provider Nickname_ in the CleverTap dashboard. Further, select the _Templates_ option, and click **+Template**. ![2164](https://files.readme.io/302521b-nexmo_whatsapp_.png "Add a Message Template") Adding Message Template 2. Enter the namespace in the _Namespace_ field from your Facebook Business Manager dashboard. Refer to the screenshot below for a better understanding. You need to enter this only for the first template configuration. ![Template Namespace](https://files.readme.io/8c2bc47-template_name.png "Enter the namespace in the Namespace field") Template Namespace 3. Enter the template name from the Facebook Business Manager page in the _Template Name_ field. ![1825](https://files.readme.io/0c845a7-temp_name.png "Enter Template Name") Enter Template Name 4. Choose the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, and _Location_ 5. Enter the message content. 6. You can also choose to add a Footer text and a Button (Quick Reply or a Call To Action). 7. You can also choose the language in which you want to display the message. ![2160](https://files.readme.io/5a52036-nexmo_template.png "Enter Template Content") Define Template Body 8. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/nexmo-whatsapp#testing-a-message-template) ------------------------------------------------------------------------------------------------------------ You can send a test message using the saved templates from the CleverTap dashboard as follows: 1. Hover over the desired template for which you want to send a test notification. 2. Click _Send Test_. 3. Select the test profiles or manually enter the mobile number to whom you want to send the test message and click _Send Test_. ![1304](https://files.readme.io/fbf00f7-test_template.png "Test Message Template") Test Message Template The success or failure response is displayed on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Nexmo team to debug the issue, as shown in the following figure: ![728](https://files.readme.io/363a140-sendtest_campaign.png "Validate the Test Response") Validate the Test Response Create Campaign [](https://docs.clevertap.com/docs/nexmo-whatsapp#create-campaign) -------------------------------------------------------------------------------------- To create a WhatsApp campaign using Nexmo as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) for detailed instructions. Creating a Journey [](https://docs.clevertap.com/docs/nexmo-whatsapp#creating-a-journey) -------------------------------------------------------------------------------------------- To create a WhatsApp journey using Nexmo as the provider, refer to [Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) for detailed instructions. Updated about 2 months ago * * * Ask AI --- # 8X8 Overview [](https://docs.clevertap.com/docs/8x8-whatsapp#overview) ====================================================================== [8x8](https://www.8x8.com/) offers a WhatsApp Business API solution that enables businesses to reach their users with high-quality, real-time messaging. By integrating 8x8 with CleverTap, businesses can: * Send personalized WhatsApp campaigns using Meta-approved templates. * Trigger journeys and transactional messages based on user behavior. * Capture delivery and engagement metrics using CleverTap analytics. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/8x8-whatsapp#support-for-integration) > > This integration is managed and continuously improved by 8x8. The CleverTap and 8x8 integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#4625362727356b35333636293432067e3e7e6825292b) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/8x8-whatsapp#prerequisites-for-integration) ================================================================================================================ Check that you have the following: * The WhatsApp Campaigns feature is enabled on your CleverTap account. * An 8x8 account with WhatsApp Business (WABA) access. * A provisioned WhatsApp Business number from 8x8. To activate a new WhatsApp number via 8x8, contact your account manager or write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#d1b2a1b0b0a2fca2a4a1a1bea3a591e9a9e9ffb2bebc) . Integrate 8x8 with CleverTap [](https://docs.clevertap.com/docs/8x8-whatsapp#integrate-8x8-with-clevertap) ============================================================================================================== This process involves the following two steps: 1. [Configure CleverTap Dashboard](doc:8x8-whatsapp#configure-clevertap-dashboard) 2. [Set Up CleverTap Callbacks in 8x8](doc:8x8-whatsapp#set-up-clevertap-callbacks-in-8x8) Configure CleverTap dashboard [](https://docs.clevertap.com/docs/8x8-whatsapp#configure-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the _Provider_ list. ![Provider Setup](https://files.readme.io/885f26f7e2110aab22dd2bda2eba90bc4c3e187863d865a407301bc495da3a4d-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Nickname | Enter the nickname as 8x8 or `8x8_WA_India` for easy reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, +918889500122) | | Request Type | Ensure the Request Type is _POST_. | | HTTP Endpoint | Paste the following URL:`https://chatapps.8x8.com/api/v1/subaccounts/{{subaccountid}}/partners/clevertap/wa`
Check that the URL is in HTTPS format, that is, your URL must begin with `https//` | | Headers | Click **Header** >
Enter the Key name as a user and enter the user value received from 8x8.
Enter the second key name as the password and the value received from 8x8. | | Delivery Report Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in 8x8](doc:8x8-whatsapp#set-up-clevertap-callbacks-in-8x8)
. | | Inbound Message
Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in 8x8](doc:8x8-whatsapp#set-up-clevertap-callbacks-in-8x8)
. | 4. (Optional) Select _Mark this as default_ to make this service provider the default provider to send a WhatsApp message via 8x8. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 7. Send a Test WhatsApp notification (refer to the following image). ![Send a text message](https://files.readme.io/c384922-sendtest.png "Send Test Message on WhatsApp") Send a Test Message on WhatsApp Set Up CleverTap Callbacks in 8x8 [](https://docs.clevertap.com/docs/8x8-whatsapp#set-up-clevertap-callbacks-in-8x8) ------------------------------------------------------------------------------------------------------------------------ To set up CleverTap callbacks in 8x8, follow the steps below: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Interakt_ from the CleverTap dashboard. You will find the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ under the _Provider Configuration_ page. 2. **Share Callback URLs with Interakt**: Copy both URLs and send them to the 8x8 WhatsApp support team for configuration or email at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#cfacbfaeaebce2bcbabfbfa0bdbb8ff7b7f7e1aca0a2) . ![Callback URLs](https://files.readme.io/8422e19929f1eaab1b982d4d8a98785454eb8da322dcb9d4894562d55ce3dc5b-image.png) Callback URLs Once configured, these webhooks ensure that message delivery reports and inbound messages sync correctly between CleverTap and 8x8. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/8x8-whatsapp#note) > > You have to get your templates approved on the 8x8 dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. Adding Message Templates [](https://docs.clevertap.com/docs/8x8-whatsapp#adding-message-templates) ------------------------------------------------------------------------------------------------------ To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, follow these steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ in the CleverTap dashboard. 2. Select the _Templates_ option and click **+Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/8x8-whatsapp#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use the particular template name once within Phone\_1 and Phone\_2. 4. You can also choose the language in which you will display the message. 5. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 6. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 7. Enter the message content. 8. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 9. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/8x8-whatsapp#testing-a-message-template) ---------------------------------------------------------------------------------------------------------- For detailed instructions on testing a WhatsApp message template, refer to [Testing a Message Template](doc:whatsapp-message-templates#testing-a-message-template) . Create Campaign [](https://docs.clevertap.com/docs/8x8-whatsapp#create-campaign) ------------------------------------------------------------------------------------ For detailed instructions on creating a WhatsApp campaign using 8x8 as the provider, refer to [Create a WhatsApp Campaign](doc:create-message-whatsapp) . Creating a Journey [](https://docs.clevertap.com/docs/8x8-whatsapp#creating-a-journey) ------------------------------------------------------------------------------------------ For detailed instructions on creating a WhatsApp journey using 8x8 as the provider, refer to [Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Pipedream Overview [](https://docs.clevertap.com/docs/pipedream#overview) =================================================================== [Pipedream](https://pipedream.com/) is a developer-friendly, low-code platform that allows you to build workflows triggered by events, schedules, or app interactions, enhancing operational efficiency and flexibility. Integrating CleverTap with Pipedream automates workflows and streamlines processes by connecting multiple data sources. Pipedream transforms incoming data into the required format and sends it to CleverTap. This enables powerful actions such as updating user profiles or capturing events directly on the CleverTap dashboard, helping you achieve more with less effort. For example, with this integration, you can: * Capture sign-up data and trigger personalized welcome campaigns. * Record purchase events and send thank you emails or product recommendations. * Detect cart abandonment events and trigger re-engagement notifications or emails. Prerequisites for Integration [](https://docs.clevertap.com/docs/pipedream#prerequisites-for-integration) ============================================================================================================= The following are the prerequisites: * Ensure you have access to your Pipedream account. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/pipedream#support-for-integration) > > This integration is managed and continuously improved by Pipedream. The CleverTap and Pipedream integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Pipedream](https://pipedream.com/support) > for support and resolution. Integrate Pipedream with CleverTap [](https://docs.clevertap.com/docs/pipedream#integrate-pipedream-with-clevertap) ======================================================================================================================= To integrate Pipedream with CleverTap, you must add CleverTap as an action in your Pipedream workflow to connect your source data with CleverTap's engagement tools. This enables seamless synchronization and ensures real-time, accurate data power the user engagement strategies. To configure CleverTap Actions on Pipedream: 1. Click **+** in your workflow to _Add Action_. 2. Search for CleverTap in the action library 3. Select from the following for _Pre-built Actions_ to send pre-defined user properties to CleverTap: * [Create or Update User Data](doc:pipedream#create-or-update-user-data) , * [Upload User Events](doc:pipedream#upload-user-events) , or * [Select _Custom Actions_ to send custom user properties to CleverTap](doc:pipedream#build-any-clevertap-api-request-custom-user-properties) ![Set Actions](https://files.readme.io/4f8b540471f4694ed9730649868321fa833833e51d8a98e66ee916646066a8b3-set_action.gif) Add CleverTap as an Action on Pipedream Create or Update User Data [](https://docs.clevertap.com/docs/pipedream#create-or-update-user-data) ------------------------------------------------------------------------------------------------------- Select this action to link data from your source application to add or update user profiles in CleverTap. To do so, you must map key fields such as email, name, phone number, and unique identity to sync user data as follows: 1. Select the _Create or Update User_ action under the _Pre-built Actions_ section. 2. Click **Connect a CleverTap Account** and enter the required credential information as follows: | Field | Description | | --- | --- | | Account ID | Locate the Project ID under _Settings_ > _Project_ from the CleverTap dashboard. | | Account Passcode | Locate the Passcode under _Settings_ > _Project_ from the CleverTap dashboard. For more information, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode)
. | | Region | Locate _Region_ for the API endpoint you want to select under _Settings_ > _Project_. To find the API endpoint for your region, refer to [API endpoints based on your data center region](https://developer.clevertap.com/docs/idc#api)
. | ![](https://files.readme.io/4f748359cd0afd1db82d726670e794f8c829ec4a8e377d034a89578926045f72-image.png) 3. (Optional) Test the connection and click **Save** to establish the connection. 4. Map the following fields: | **Field** | **Description** | | --- | --- | | **Email** | Denotes email address of the user. | | **Name** | Denotes name of the user. | | **Phone Number** | Denotes phone number (for example, +15555555555). | | **Identity** | A unique identifier (for example, user\_id). | ![Configuring User Data](https://files.readme.io/84c85d8d7765edbbd68a1ff76e8c0b94e48a03313e8386be2fdc2215e31e35c8-image.png) Mapping Key Fields 4. Test and deploy the workflow to verify that user data is reflected in CleverTap and activates automatically whenever the trigger runs. ![Test and Deploy](https://files.readme.io/a55e5641a8e162935163dfe3b61325fe1a85dc4ed378f93e9c9e569afd646091-image.png) Test and Deploy You can verify if the user profile was created or updated by navigating to the _Segments_ page on the CleverTap dashboard. Upload User Events [](https://docs.clevertap.com/docs/pipedream#upload-user-events) --------------------------------------------------------------------------------------- Select this action to send user activity data to CleverTap, using pre-defined event names, to track actions and interactions for advanced analytics and engagement. To do so, follow these steps: 1. Select the _Upload User Events_ action under the _Pre-built Actions_ section. 2. Connect a CleverTap Account, refer to _Step 2_ of [Create or Update User Data](doc:pipedream#create-or-update-user-data) . 3. Configure the following event details: | **Field** | **Description** | | --- | --- | | **Event Name** | Select a custom or inbuilt event name (for example, Charged). | | **Identity** | Map the user’s unique identifier from the source. | | **Event Data** | Add key-value pairs for event-specific data. | Example Data: JSON { "Product Name": "Casio Watch", "Category": "Mens Watch" } > 📘 > > ### > > Supported Event Types > > [](https://docs.clevertap.com/docs/pipedream#supported-event-types) > > Both custom events and in-built events are supported when configuring CleverTap actions in Pipedream. Custom events refer to events you define, while in-built events are predefined in CleverTap (for example, Charged). ![Configuring Event Data](https://files.readme.io/7f98d8c7b4792ccecaf22dcc8d01b48589b86e4b21f2f88769ec48c8b87394ec-image.png) Configuring Event Data 3. Test and deploy the workflow to ensure the event data is uploaded to the CleverTap dashboard and is linked to the correct user profile. ![Test and Deploy](https://files.readme.io/a3fdbf8f373bb753bdcf4cd9a31bec591ef7a79e1239b27d437d6619a5f6c6b6-image.png) Test and Deploy To verify if the data is uploaded correctly, go to the _User Profiles_ or _Event Analytics_ page from the CleverTap dashboard. ![Event in CleverTap](https://files.readme.io/f3214ca3d83df5a3c8e9f630f36d2cb340664af2a2aabaa430411f3018bad03b-image.png) Event in CleverTap Build any CleverTap API request (Custom User Properties) [](https://docs.clevertap.com/docs/pipedream#build-any-clevertap-api-request-custom-user-properties) ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Select this action to send custom user properties to CleverTap to track user actions for advanced analytics and engagement. To do so, follow these steps: 1. Select _Build any CleverTap API request_ under the _Custom Actions_ section. 2. Configure Headers to connect the CleverTap Account: 1. _HTTP Method_: Set the method to POST to push the custom user properties to CleverTap. 2. _Base URL_: Enter the API endpoint based on the region of your CleverTap account. To identify the API endpoint for the region of your account, refer to [Region](https://developer.clevertap.com/docs/common-api-components#region) . JSON >.api.clevertap.com/1/upload iii. Add the following key-value pairs in the headers: | **Header Key** | **Description** | | --- | --- | | User-Agent | `pipdream/1` | | Content-Type | `application/json` | | X-CleverTap-Account-Id | Your CleverTap Account ID | | X-CleverTap-Passcode | Your CleverTap Passcode | ![Configure Headers](https://files.readme.io/74d89a821a36c70100113acb2766142faf6d22b3234783d48ae6aba10c2d4056-image.png) Configure Headers 3. Configure the Request Body. You can push user profiles with custom user properties. Use key-value pairs or raw JSON to map the data to the respective source fields. Click **Edit Raw JSON** to add JSON payload. ![Configure the Request Body](https://files.readme.io/72d915c82c34566e01018400d206697f30925ea0b19848a12784740080cfcb55-image.png) Configure Request Body The following is the sample payload you can add to the request body. In this example, `CustomerID` represents a custom user property that can be uploaded to CleverTap: JSON { "d": [\ {\ "Email": "{{steps.trigger.event.newRow[2]}} ",\ "type": "profile",\ "profileData": {\ "CustomerID" : "{{steps.trigger.event.newRow[4]}}"\ }\ }\ ] } //we can add custom properties and additional details about the user to this ![Edit Raw JSON](https://files.readme.io/84fb9099b93638e091abaf54cbb016066dcee30b19c801f3afb15663fb113ef4-image.png) Edit Raw JSON 4. Test and deploy the workflow to ensure the custom user properties and user profiles are uploaded to the CleverTap dashboard. ![Test and deploy](https://files.readme.io/3fd718dae6ea2bf08e9cf59aeeb3e305f6e840c43b6ec7c2040a925d90629e40-image.png) Test and deploy To verify if the custom user properties and user profiles are uploaded correctly, go to the _User Profiles_ or _Event Analytics_ page from the CleverTap dashboard. ![Custom User Properties](https://files.readme.io/0e7986ffdd0f7f541132add52da10a3d51c4a409d21c9b10f39aee1f5e67e6c6-image.png) Custom User Properties FAQs [](https://docs.clevertap.com/docs/pipedream#faqs) =========================================================== ### What use cases does Pipedream and CleverTap integration solve? [](https://docs.clevertap.com/docs/pipedream#what-use-cases-does-pipedream-and-clevertap-integration-solve) You can automate workflows such as updating user profiles, tracking custom events, and enhancing user engagement through personalized campaigns. ### Can I track custom events in CleverTap using Pipedream? [](https://docs.clevertap.com/docs/pipedream#can-i-track-custom-events-in-clevertap-using-pipedream) You can send custom events to CleverTap with event names and details, such as product information or user actions. Updated about 2 months ago * * * Ask AI --- # Interakt Overview [](https://docs.clevertap.com/docs/interakt#overview) ================================================================== [Interakt](https://www.interakt.ai/) is a WhatsApp Business platform that allows businesses to engage customers using automated notifications, product catalogs, and real-time messaging. Integrating Interakt enables businesses to send personalized WhatsApp campaigns powered by CleverTap's user segmentation and behavior analytics. Use this integration to: * Send personalized campaigns using Meta-approved templates. * Automate user communication with template-triggered journeys. * Track delivery and engagement using CleverTap’s reporting. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/interakt#support-for-integration) > > This integration is managed and continuously improved by Interakt. The CleverTap and Interakt integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Interakt](https://docs.clevertap.com/cdn-cgi/l/email-protection#c5ada0a9a9aa85acabb1a0b7a4aeb1eba4ac) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/interakt#prerequisites-for-integration) ============================================================================================================ Check that you have the following: * The WhatsApp Campaigns feature is enabled on your CleverTap account. * A WhatsApp Business account on Interakt. * An approved phone number is onboarded to WhatsApp Business via Interakt. * The API credentials shared by the Interakt support team. To activate a new WhatsApp Business number with Interakt, contact your Interakt Account Manager or write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#e088858c8c8fa0898e948592818b94ce8189) . Integrate Interakt with CleverTap [](https://docs.clevertap.com/docs/interakt#integrate-interakt-with-clevertap) ==================================================================================================================== This process involves the following two steps: 1. [Configure CleverTap Dashboard](doc:interakt#configure-clevertap-dashboard) 2. [Set Up CleverTap Callbacks in Interakt](doc:interakt#set-up-clevertap-callbacks-in-interakt) Configure CleverTap dashboard [](https://docs.clevertap.com/docs/interakt#configure-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------ To configure the CleverTap dashboard: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the _Provider_ list. ![Provider Setup](https://files.readme.io/885f26f7e2110aab22dd2bda2eba90bc4c3e187863d865a407301bc495da3a4d-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Nickname | Enter the nickname as Interakt or `Interakt91XXXXXXXXXX` for easy reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, +918889500122) | | Request Type | Ensure the Request Type is _POST_. | | HTTP Endpoint | Paste the following URL:`https://api.interakt.ai/v1/platform_integrations/clevertap/message/`
Check that the URL is in HTTPS format, that is, your URL must begin with `https//` | | Headers | Click **Header** >
Enter the Key name as a user and enter the user value received from Interakt.
Enter the second key name as password and enter the value received from Interakt. | | Delivery Report Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in Interakt](doc:interakt#set-up-clevertap-callbacks-in-interakt)
. | | Inbound Message
Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in Interakt](doc:interakt#set-up-clevertap-callbacks-in-interakt)
. | 4. (Optional) Select _Mark this as default_ to make this service provider the default provider when sending a WhatsApp message via Interakt. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 7. Send a Test WhatsApp notification: ![Send a test message on whatsapp](https://files.readme.io/c384922-sendtest.png "Send Test Message on WhatsApp") Send a Test Message on WhatsApp Set Up CleverTap Callbacks in Interakt [](https://docs.clevertap.com/docs/interakt#set-up-clevertap-callbacks-in-interakt) ------------------------------------------------------------------------------------------------------------------------------ To set up CleverTap callbacks in Interakt, follow the steps below: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Interakt_ from the CleverTap dashboard. You will find the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ under the _Provider Configuration_ page. 2. **Share Callback URLs with Interakt**: Copy the Delivery and Inbound report callback URLs and send them to the Interakt WhatsApp support team for configuration or email the URLs at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#6a020f0606052a03041e0f180b011e440b03) . ![Callback URLs](https://files.readme.io/8422e19929f1eaab1b982d4d8a98785454eb8da322dcb9d4894562d55ce3dc5b-image.png) Callback URLs Once configured, these webhooks ensure that message delivery reports and inbound messages sync correctly between CleverTap and Interakt. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/interakt#note) > > You have to get your templates approved on the Interakt dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. Adding Message Templates [](https://docs.clevertap.com/docs/interakt#adding-message-templates) -------------------------------------------------------------------------------------------------- To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, follow these steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ in the CleverTap dashboard. 2. Select the _Templates_ option and click **+Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/interakt#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use the particular template name once within Phone\_1 and Phone\_2. 4. You can also choose the language in which you will display the message. 5. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 6. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 7. Enter the message content. 8. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 9. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/interakt#testing-a-message-template) ------------------------------------------------------------------------------------------------------ For detailed instructions on testing a WhatsApp message template, refer to [Testing a Message Template](doc:whatsapp-message-templates#testing-a-message-template) . Create Campaign [](https://docs.clevertap.com/docs/interakt#create-campaign) -------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp campaign using Interakt as the provider, refer to [Create a WhatsApp Campaign](doc:create-message-whatsapp) . Creating a Journey [](https://docs.clevertap.com/docs/interakt#creating-a-journey) -------------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp journey using Interakt as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Gupshup Overview [](https://docs.clevertap.com/docs/gupshup#overview) ================================================================= CleverTap supports customers who send and receive WhatsApp messages using Gupshup as their provider. Once a provider is selected, the user must create a template before creating a WhatsApp campaign. Select Gupshup Provider [](https://docs.clevertap.com/docs/gupshup#select-gupshup-provider) ----------------------------------------------------------------------------------------------- Follow these steps to choose Gupshup as your messaging provider for WhatsApp. 1. Navigate to _Settings_ and select **Channels** from the CleverTap dashboard. 2. Select _WhatsApp_ > _WhatsApp Connect_. ![](https://files.readme.io/55c4289-non_CT_Provider_add_template.jpg) > 🚧 > > ### > > Note > > [](https://docs.clevertap.com/docs/gupshup#note) > > Only one WhatsApp Provider account is supported per CleverTap project. 3. Click **+Providers**, and select Gupshup from the Provider list. ![1094](https://files.readme.io/b567a1a-gupshup_new_ss.png "gupshup new ss.png") Provider Setup 4. Enter the following credentials: * Nickname: Enter the nickname for this set of credentials. * Inbound message callback URL: This is a non-editable field. Note that Gupshup must use the following payload format to configure incoming message callbacks on their end. JSON CleverTap_Sandbox Incoming Hits - Calling URL :: POST :: https://cb.wzrkt.com/gupshup/response?a=YOUR_ACCOUNT_ID ==> { "waNumber": "91XXXXXXXXXX", "mobile": "91XXXXXXXXXX", "name": "John Doe", "text": "incoming text", "type": "text", "timestamp": "1658261071000" } * Delivery reports callback URL: This is a non-editable field. > 📘 > > ### > > Delivery report, Generic, and Click tracking callback > > [](https://docs.clevertap.com/docs/gupshup#delivery-report-generic-and-click-tracking-callback) > > * Gupshup must utilize the following payload format to configure the DLR callback on their end. > * Gupshup can opt for either the Generic callback payload format or Click Tracking callback payload format based on their requirements. > > CleverTap supports click tracking integration with Gupshup. To enable the transmission of click data from Gupshup to CleverTap, please contact [Gupshup Support](https://www.gupshup.io/contact-us) > to activate Click Tracking for your account. Once CleverTap receives a valid payload from Gupshup, a [Notification Clicked](doc:events#system-events) > event will be triggered in your CleverTap dashboard account. Delivery report callback payload formatGupshup click callback payload formatGeneric Payload format 2022-02-25 01:22:30 ################ KEYVALUE Forwarding: https://cb.wzrkt.com/gupshup/status?a=YOUR_ACCOUNT_ID => headers: => body: [response:[{\ "srcAddr": "CLVTAP",\ "extra": "9|1658264893|20220720|9|0",\ "channel": "WHATSAPP",\ "externalId": "4687162516402008133-497817541934555810",\ "cause": "READ",\ "errorCode": "026",\ "destAddr": "+91XXXXXXXXXX",\ "eventType": "READ",\ "eventTs": 1658264959000\ }]] curl --location 'https://api.wzrkt.com/gupshup/status?a=YOUR_ACCOUNT_ID ' --header 'Content-Type: application/json' --data '{ "deviceType": "Desktop", "gsurl": "www.gsurl.com/abc2131",\\mandtory "mobile": "91XXXXXXXXXX", "clickTime": "2024-11-05 10:00:54",\\mandotry "originalURL": "https://docs.clevertap.com/docs/getting-started", \\mandotory "userId": "", "token": "********", "msg_id_or_blank": "testMsgid", "causeId": "5295633975448571957", "internalId": "TextInternalID", "carrier": "Reliance", "browser": "Chrome", "extra": "4930004|1731918555|20241118|4930004",\\mandatory "device": "Linux+Desktop" "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36" }' curl --location 'https://cb.wzrkt.com/gupshup/status?a=YOUR_ACCOUNT_ID' --header 'Content-Type: application/json' --data '{ "payloadVersion": 0.1, "statuses": [\ {\ "msgId": "264780|1733353166|20241205|264780|0", \\mandatory\ "status": "clicked", \\mandatory\ "timestamp": 1733298876,\ "url": "www.CleverTap.com", \\mandatory\ "shortUrl": "https://bit.ly/3OjG22B", \\mandatory\ "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"\ \ }\ ] }' * HSM account ID: Enter the HSM account user ID. * HSM account password: Enter the HSM account password. * Two-way account user ID: Enter the two-way account user ID. * Two-way account password: Enter the two-way account password. * Mobile Number: Enter either a Gupshup phone number or a shortcode. You can enter phone numbers or shortcodes under the Gupshup dashboard > Numbers > Your Numbers. > 📘 > > ### > > Non-Editable Fields > > [](https://docs.clevertap.com/docs/gupshup#non-editable-fields) > > The inbound message callback URL and delivery reports callback URL are non-editable fields. These values must be set up in your Gupshup account to allow CleverTap to receive inbound messages from end-users and delivery reports for messages sent through Gupshup. > 📘 > > ### > > Auto Reply Checkbox > > [](https://docs.clevertap.com/docs/gupshup#auto-reply-checkbox) > > Select the checkbox if you want to set auto-replies for users who are not tracked in CleverTap. If a message is received from a phone number for which a profile is not present with CleverTap, then this default message is sent to the user. 5. Send a Test WhatsApp notification: ![1488](https://files.readme.io/c384922-sendtest.png "sendtest.png") Send Test Message on WhatsApp To ensure that the integration is successful: a. Click the _Send Test WhatsApp_ hyperlink before creating WhatsApp campaigns and journeys. To begin with, activate the conversation window by following any one of the following methods: i. Save the business contact and send a WhatsApp message to that number. ii. Copy and share the link with the user to whom you want to send the test notification. Further, ask the user to click the link and send a WhatsApp message to initiate a conversation. iii. If you want to send a test notification to yourself, you can click the link and initiate a WhatsApp conversation. b. Enter the following details: _**Country Code and Mobile Number**: Enter the country code and mobile number of the user to whom you want to send the test message. _ **Message**: Here, you can enter the sample text message you want to send to the test user. Once you click on _Send Test_, the success or failure response displays on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Gupshup team to debug the issue. 6. Click **Save**. Select Template [](https://docs.clevertap.com/docs/gupshup#select-template) ------------------------------------------------------------------------------- 1. Refer to this guide on [how to create a WhatsApp template](https://docs.clevertap.com/docs/whatsapp-message-templates#create-whatsapp-template) . 2. The following are the template types for Gupshup on CleverTap: * [Basic Templates](https://docs.clevertap.com/docs/whatsapp-message-templates#basic-templates-1) * [Limited-Time Offer Templates](https://docs.clevertap.com/docs/whatsapp-message-templates#limited-time-offer-templates-1) * [Carousel Templates](https://docs.clevertap.com/docs/whatsapp-message-templates#carousel-templates) Testing a Message Template [](https://docs.clevertap.com/docs/gupshup#testing-a-message-template) ----------------------------------------------------------------------------------------------------- Refer to this [document](https://docs.clevertap.com/docs/whatsapp-message-templates#testing-a-message-template) to understand how to test a template. Create Campaign [](https://docs.clevertap.com/docs/gupshup#create-campaign) ------------------------------------------------------------------------------- To create a WhatsApp campaign using Gupshup as the provider, refer to [Creating a WhatsApp Campaign](https://docs.clevertap.com/docs/whatsapp#section-creating-a-whatsapp-campaign) for detailed instructions. Troubleshooting [](https://docs.clevertap.com/docs/gupshup#troubleshooting) ------------------------------------------------------------------------------- ### IP Whitelisting [](https://docs.clevertap.com/docs/gupshup#ip-whitelisting) Restricted IPs can cause errors during integration. Check that no IP restrictions are enabled on the Gupshup account. To check the IPs from the CleverTap dashboard, go to _Settings > Channels > WhatsApp_. The _FCM credentials\_section lists the IPs used to send WhatsApp requests. These IPs must be whitelisted on both the \_one-way \_and \_two-way_ account IDs of Gupshup. ![Restricted IPs](https://files.readme.io/622dcd4-ips_whatsapp.png "ips whatsapp.png") Restricted IPs Updated about 2 months ago * * * Ask AI --- # OneXtel Overview [](https://docs.clevertap.com/docs/onextel-whatsapp#overview) ========================================================================== CleverTap users can now leverage [OneXtel](https://docs.onextel.com/) WhatsApp capabilities to communicate with customers. Communications include: * Sending real-time, personalized offers to drive customer engagement and purchases. * Gathering feedback on the services. * Keeping customers updated about important information, such as promotions, service updates, or event alerts. Prerequisites for Integration [](https://docs.clevertap.com/docs/onextel-whatsapp#prerequisites-for-integration) ==================================================================================================================== The following are the prerequisites for OneXtel: * An active OneXtel WhatsApp account must be set up on [365cx.io.](https://365cx.io/) * WhatsApp add-on enabled on the CleverTap account in addition to the basic or essential price plan. * WhatsApp onboarding for the phone number used with CleverTap must be completed. > 🚧 > > ### > > Support for Integration: > > [](https://docs.clevertap.com/docs/onextel-whatsapp#support-for-integration) > > For creating a new account, resolving account-related queries, or addressing any integration issues, reach out to [OneXtel Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#45363035352a3731052a2b203d3120296b262a28) > . Integrate OneXtel with CleverTap [](https://docs.clevertap.com/docs/onextel-whatsapp#integrate-onextel-with-clevertap) ========================================================================================================================== This process involves the following two steps: 1. [Find OneXtel Details.](doc:onextel-whatsapp#find-onextel-details) 2. [Configure CleverTap Dashboard.](doc:onextel-whatsapp#configure-clevertap-dashboard) 3. [Set Up CleverTap Callbacks in OneXtel](doc:onextel-whatsapp#set-up-clevertap-callbacks-in-onextel) Find OneXtel Details [](https://docs.clevertap.com/docs/onextel-whatsapp#find-onextel-details) -------------------------------------------------------------------------------------------------- We recommend having the HTTP endpoint URL (which includes the Channel ID) readily available before configuring the CleverTap dashboard. Follow these steps to access the HTTP endpoint URL: 1. Navigate to _Channels_ in the OneXtel dashboard. 2. Click the **Integration** option on the right. To Create new Integration. ![Integration](https://files.readme.io/43fa274c04c453b81824d4f5a2235d10b4fd44a5bb9a9b8ad9104b2d5ca3917b-image.png) Integration 3. Enter the following details: | Step | Description | | --- | --- | | **Integration Name** | Enter a name for the integration. | | **Platform** | Select **CleverTap** as the platform. | | **Channel Type** | Select **WhatsApp** as the channel type. | | **Choose Channel** | Select the channel you want to integrate with **CleverTap**. | ![Create Channel Integration](https://files.readme.io/732508eb3fda5f99a9925933b90ecc6d7bfb7410ac80fbc3b08cb1a6a9f331c5-image.png) Create Channel Integration 4. Click **Submit**. You will be able to get the HTTP endpoint to paste into the CleverTap account. ![HTTP endpoint](https://files.readme.io/e967b40677b977c523c9bb7e49bf4e6d720824d7bfc52d332f5d1eb7694fa4b7-image.png) HTTP endpoint Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/onextel-whatsapp#configure-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Navigate to _Settings > Channels > WhatsApp > WhatsApp Connect_ from the CleverTap dashboard. 2. Click _\+ Add Provider_ and select Generic (Other) from the dropdown. ![Provider Setup](https://files.readme.io/5d276daba70a9156fe64ed69678d024e089edd77bd0bd7b4a7b102a5489ba456-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Provider | Generic (Other) | | Nickname | Enter the nickname as OneXtel | | Mobile Number | Enter the same WABA number along with the country code as mentioned on [365cx.io](https://365cx.io/)
(OneXtel) while creating the channel | | Request Type | Ensure the Request Type is _POST_ | | [HTTP Endpoint](doc:onextel-whatsapp#find-onextel-details) | Enter the HTTP endpoint from OneXtel. | 4. To make this service provider the default provider to send a WhatsApp message, select the _Mark this as default checkbox_. 5. To automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard, select the _Set auto-reply for users not tracked on CleverTap checkbox_. 6. (Optional) You can set the _Maximum Concurrent API requests_ anywhere between 30 to 1000 requests. Consider your requirement and the provider's limitations to define this value. 7. Click **Save**. Set Up CleverTap Callbacks in OneXtel [](https://docs.clevertap.com/docs/onextel-whatsapp#set-up-clevertap-callbacks-in-onextel) ------------------------------------------------------------------------------------------------------------------------------------ To set up the CleverTap callbacks: 1. Copy the _Delivery Report Callback URL_ from the CleverTap dashboard. You can find the Callback URLs under the Provider _Setup_ page under _Settings_ > _Channels_ > _WhatsApp_ > OneXtel ![Configure callback](https://files.readme.io/9721cd77f5e4365b8068059d7ca837208a637fb655b14042264981fa87820517-image.png) Configure callback 2. Go to OneXtel dashboard, go to _Channels_ > _Integrations_ and paste the same Delivery Report Callback URL. FAQs [](https://docs.clevertap.com/docs/onextel-whatsapp#faqs) ================================================================== #### How do I set up Throttling for better campaign performance? [](https://docs.clevertap.com/docs/onextel-whatsapp#how-do-i-set-up-throttling-for-better-campaign-performance) To set up campaign-level throttling, go to _Settings > Setup > Campaign Limits_, add the _WhatsApp_ channel, set the throttle limit to _1,00,000_ (recommended), and save the changes. Updated about 2 months ago * * * Ask AI --- # System-Triggered Alert Emails Overview [](https://docs.clevertap.com/docs/system-triggered-alert-emails#overview) ======================================================================================= This document lists all system-triggered alert emails automatically sent by the CleverTap platform. Each email is categorized by the following: * Email Sender * Triggering Scenario Email Categorization by Sender [](https://docs.clevertap.com/docs/system-triggered-alert-emails#email-categorization-by-sender) =================================================================================================================================== System-generated emails from the CleverTap platform are triggered by specific senders, each associated with distinct events or operational contexts: * [Account Notification Email](doc:system-triggered-alert-emails#account-notification-email) * [Billing Alert Email](doc:system-triggered-alert-emails#billing-alert-email) * [Other System Alerts](doc:system-triggered-alert-emails#other-system-alerts) Account Notification Email [](https://docs.clevertap.com/docs/system-triggered-alert-emails#account-notification-email) --------------------------------------------------------------------------------------------------------------------------- These are automated alerts triggered by platform events related to account setup, plan updates, or billing configuration. | Trigger Scenario | Email Subject (Example) | Feature | | --- | --- | --- | | Add-Ons Modified | "Add-Ons Updated Notification" | Add-Ons | | Payment Information Updated | "Payment Information Updated" | Billing | | Primary Plan Updated | "Primary Plan Updated" | Billing | | Billing Information Updated | "Billing Information Updated" | Billing | | Converted to Paid Account | "Converted to Paid Account" | Billing | **Feature Mapping** * **Billing**: Payment Information Updates, Primary Plan Changes, Billing Information Updates, Conversion to Paid Account * **Add-Ons**: Add-On Activation, Add-On Modifications Billing Alert Email [](https://docs.clevertap.com/docs/system-triggered-alert-emails#billing-alert-email) ------------------------------------------------------------------------------------------------------------- These emails are triggered by consumption-based events, such as Monthly Active User (MAU) threshold alerts and usage overages. | Trigger Scenario | Email Subject (Example) | Feature | | --- | --- | --- | | Overage Report | "Monthly Overage Report" | Consumption | | 80% MAU Usage | "MAU Usage at 80% Alert" | Consumption | | 100% MAU Usage | "MAU Usage at 100% Alert" | Consumption | | \> 100% MAU Usage | "MAU Usage Beyond 100% Alert" | Consumption | | Capacity Breach | "509 Capacity Usage Alert" | Consumption | **Feature Mapping** * **Consumption**: MAU Usage Alerts (80%, 100%, >100%), Monthly Overage Reports, 509 Usage Alerts Other System Alerts [](https://docs.clevertap.com/docs/system-triggered-alert-emails#other-system-alerts) ------------------------------------------------------------------------------------------------------------- These are non-standard alerts triggered through external partner submissions, internal test alerts, and manually triggered messages. | Sender Type | Email Subject (Example) | Trigger Scenario | | --- | --- | --- | | External (Partner) | "Contact Sales" | External Inquiry | | Internal Test Sender | "\[Test\] Subscription Renewal Notice" | QA/Test Email | | Internal Test Sender | "\[Test\] Critical Action Required" | QA/Test Email | Updated about 2 months ago * * * Ask AI --- # Haptik > 🚧 > > ### > > Support For Integration > > [](https://docs.clevertap.com/docs/haptik#support-for-integration) > > This integration is completed by Haptik, and they are dedicated to maintaining and enhancing it. The CleverTap and Haptik integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact Haptik for support and resolution. Introduction [](https://docs.clevertap.com/docs/haptik#introduction) ======================================================================== CleverTap users can now leverage the following WhatsApp capabilities of [Haptik](https://docs.haptik.ai/clevertap-integration/clevertap-integration) to communicate the following with their customers. * Sending just-in-time offers to customers to drive purchases * Gathering feedback on the services * Keeping customers informed and more Prerequisites for Integration [](https://docs.clevertap.com/docs/haptik#prerequisites-for-integration) ========================================================================================================== The following are the prerequisites: * You must have a WhatsApp add-on enabled on the Clevertap account in addition to the essentials price plan. * Ensure that WhatsApp onboarding for the phone number to be used with CleverTap is completed. * You must have Haptik's WhatsApp Business API Integrate Haptik with CleverTap [](https://docs.clevertap.com/docs/haptik#integrate-haptik-with-clevertap) ============================================================================================================== This process involves the following three steps: 1. [Find Haptik Credentials](doc:haptik#find-haptik-credentials) 2. [Configure CleverTap Dashboard](doc:haptik#configure-clevertap-dashboard) 3. [Set up CleverTap callbacks in Haptik](doc:haptik#set-up-clevertap-callbacks-in-haptik) Find Haptik Credentials [](https://docs.clevertap.com/docs/haptik#find-haptik-credentials) ---------------------------------------------------------------------------------------------- We recommend that you keep the _Callback URL_ and _Token_ details handy before starting with the configuration on the CleverTap dashboard: To find these credentials: 1. Navigate to your Haptik _Conversation Studio_ platform. 2. Open your bot account. 3. Navigate to _Business Manager_ > _Channels_ > _Platform Deployments_. 4. Select CleverTap from the _Platform_ drop-down. Copy the credentials for configuring the CleverTap dashboard: * Callback URL * Token ![2552](https://files.readme.io/95ffcb4-haptik_configuration.png "Locate Haptik Credentials") Haptik Credentials Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/haptik#configure-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and _Log in to Facebook_. ![Provider Setup](https://files.readme.io/23dde0f-Whatsapp_Common_Provider_Setup.png) Provider Setup 3. Enter the following details: | Field | Description | | --- | --- | | Provider | Select _Other (Generic)_ from the dropdown list. | | Nickname | Enter the nickname as _Haptik_ or Haptik <10 digit phone number> for easy reference. | | WhatsApp Business Number | Enter your phone number onboarded to WhatsApp API by Haptik. | | Request Type | Ensure the Request Type is _Post_ | | HTTP Endpoint | Paste the _Callback URL_ from Haptik's _Platform Deployments_ tab as illustrated in the previous step.

Ensure that the URL is in HTTPS format, i.e, your URL must begin with **https://**. | | Headers | Click _Header_ > and then Enter the Key name as _Token_ and paste the token value copied from Haptik's _Platform Deployments_ tab, as illustrated in the previous step. | > 📘 > > ### > > Callback URL > > [](https://docs.clevertap.com/docs/haptik#callback-url) > > While pasting the Callback URL from the Haptik dashboard to the CleverTap dashboard, ensure that the URL is in HTTPS format, i.e your URL must begin with **https://**. 4. Select the _Mark this as default_ checkbox to make this service provider the default provider to send a WhatsApp message. 5. To send an automatic reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard, select the _Set auto-reply for users not tracked on CleverTap_ checkbox. 6. (Optional) You can set the _Maximum Concurrent API requests_ anywhere between 30 to 1000 requests. Consider your requirement and the provider's limitations to define this value. 7. Click **Save** to save the details. Set Up CleverTap Callbacks in Haptik [](https://docs.clevertap.com/docs/haptik#set-up-clevertap-callbacks-in-haptik) ------------------------------------------------------------------------------------------------------------------------ To set up the CleverTap callbacks: 1. Copy the _Delivery Report Callback URL_ from the CleverTap dashboard. You can find the Callback URLs under the Provider _Setup_ page ( _Settings_ > _Channels_ > _WhatsApp_ > _Haptik_) ![938](https://files.readme.io/0479084-callback_haptik.png "Configure Callbacks") Configure Callbacks 2. Paste the callback URL: a. Open your Haptik bot account > navigate to _Business Manager_ > _Channels_ > _Platform Deployments_. b. Paste the callback URL under the _CleverTap Webhook URL_ as illustrated in the following image. ![2552](https://files.readme.io/4043bf8-haptik_configuration_callback.png "Paste the Callback") Configure Callbacks Finding Template Details [](https://docs.clevertap.com/docs/haptik#finding-template-details) ================================================================================================ You need to replicate the details of your pre-approved templates on CleverTap. To find the details of your pre-approved templates on Haptik, navigate to the _Template_ section from the Haptik dashboard, as shown below. ![1314](https://files.readme.io/bdae381-haptik_templates.png "Locate Template Details") Find Template Details The Green dot indicates the approved templates. You can replicate these pre-approved templates in CleverTap to start sending campaigns. Refer to the section below to understand how to add templates in CleverTap. Adding Message Template [](https://docs.clevertap.com/docs/haptik#adding-message-template) ============================================================================================== To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the message templates: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > WhatsApp Connect _\>\_Provider Nickname_ from the CleverTap dashboard. 2. Select the _Templates_ option, and click **+Template**. ![2174](https://files.readme.io/130b3f6-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name in the _Namespace_ field. 4. Choose the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, and _Location_. 5. You can choose to use the Limited Time Offer template for your message. For more information, refer to [Limited Time Offer Template.](https://docs.clevertap.com/docs/whatsapp-message-templates#limited-time-offer-templates) . 6. Enter the message content. 7. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). 8. Select the _Language_ in which you want to display the message. ![Define Template Content for Haptik](https://files.readme.io/9927992-Generic_template_create.jpg) Define Template Content 7. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/haptik#testing-a-message-template) ==================================================================================================== You can send a test message using the saved templates from the CleverTap dashboard as follows: 1. Right-click the ellipsis below the template. 2. Click _Send Test_. 3. Select the test profiles or manually enter the mobile number to whom you want to send the test message and click **Send Test**. ![1304](https://files.readme.io/fbf00f7-test_template.png "Test Message Template") Test a Message Template The success or failure response is displayed on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Haptik team to debug the issue, as shown in the following figure: ![Screen shows the format of a successful delivery response after sending a WhatsApp Message](https://files.readme.io/2fc576b-Whatsapp_Infobip_send_test.png "Successful Delivery Response") Successful Delivery Response Create Campaign [](https://docs.clevertap.com/docs/haptik#create-campaign) ============================================================================== To create a WhatsApp campaign using Haptik as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) for detailed instructions. Creating a Journey [](https://docs.clevertap.com/docs/haptik#creating-a-journey) ==================================================================================== To create a WhatsApp journey using Haptik as the provider, refer to [Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) for detailed instructions. Updated about 2 months ago * * * Ask AI --- # IntelliNODE Use Cases Overview [](https://docs.clevertap.com/docs/intellinode-use-cases#overview) =============================================================================== IntelliNODE is a clever system designed to provide your business with the benefit of optimum engagement and retention. IntelliNODE has a wide variety of industry applications. You can experiment with the messaging order, content, channel, timing, and frequency. Following are the cases where leading different industries are solving their most interesting problems. Use the below sample use cases to exceed customer expectations and increase ROI. FinTech [](https://docs.clevertap.com/docs/intellinode-use-cases#fintech) ----------------------------------------------------------------------------- The Fintech industry has its own unique set of challenges with customer engagement and retention. While you focus on innovation and service for your customers, we can help you automate and fulfill your engagement needs. Following are the use cases where you can test your approach: High drop off during the know your customer (KYC) process. ### High drop off during the _know your customer_ (KYC) process [](https://docs.clevertap.com/docs/intellinode-use-cases#high-drop-off-during-the-know-your-customer-kyc-process) KYC is a mandatory step before the user can make any worthwhile transactions on the application. A high drop-off at this stage means a wasted acquisition. ### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose) Find out the time of the day when the users are most likely to complete KYC. ### Assumptions [](https://docs.clevertap.com/docs/intellinode-use-cases#assumptions) Users are more likely to complete KYC registration if they are engaged at a specific time. ### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment) Use IntelliNODE to set up different experiments to engage users at different times. If this is a weekday journey, create multiple paths to engage users based on before, during, and after office hours. Given that office hours are from 10.00 AM to 6:00 PM, create four different paths to send a push message at 8.30 AM, 2.30 PM, 6.30 PM, and 8.30 PM. ![](https://files.readme.io/15c948e-small-Complete_KYC_Process.png) Best channel for sending coupon codes to incentivize users ### Coupon Codes for Users [](https://docs.clevertap.com/docs/intellinode-use-cases#coupon-codes-for-users) You can have higher app launches and more engagement and purchases if the users are incentivized with discounts. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-1) Make an informed decision to select two of the following channels: SMS, Email, or WhatsApp. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption) Users are more likely to use coupon codes from WhatsApp. A reminder from Email or SMS can be beneficial. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-1) Use IntelliNODE to experiment with a combination of two channels. Use the experiments for a cost-benefit analysis of the channels. For example, create three IntelliNODE paths: * **Path A**: SMS + Email * **Path B**: WhatsApp + Email * **Path C**: SMS + WhatsApp ![](https://files.readme.io/11c1e49-small-CouponCodeforHigherAppLaunch.png) Select the order of messaging to inform a user about an account transaction ### Select the order of the messaging channel [](https://docs.clevertap.com/docs/intellinode-use-cases#select-the-order-of-the-messaging-channel) Which is the best messaging order to inform users about a debit in their account? #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-2) Find out an order of messaging that balances speed and reach. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-1) The combination of messaging channels must have the highest reach. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-2) Create different paths with IntelliNODE and find the best messaging order between Push, SMS, and Email. For example, create six paths: * **Path A**: Push > Email > SMS * **Path B**: Push > SMS > Email * **Path C**: Email > Push > SMS * **Path D**: Email > SMS > Push * **Path E**: SMS > Push > Email * **Path F**: SMS > Email > Push ![](https://files.readme.io/c83e6ea-small-MessagingOrderforAccountDebit.jpg) Send the right market news at the right time ### Schedule stock market news based on views [](https://docs.clevertap.com/docs/intellinode-use-cases#schedule-stock-market-news-based-on-views) Do my users read investment news before the stock market opens or after it closes? #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-3) Select the time to engage your users. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-2) The following are the assumptions: * Articles about the long-term view of the market are most read after market hours. * News about global indices is read before market hours. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-3) Create different journeys for different times of the day. You can also experiment with different days of the week. For example, compare weekdays and weekends. You can run these two experiments simultaneously with two IntelliNODEs. Create the following push paths: _IntelliNODE 1 (Runs on weekdays only)_ * 8.30 AM - Long-term view articles * 8.30 AM - Global Indices News * 7.30 PM - Long-term view articles * 7.30 PM - Global Indices _IntelliNODE 2 (Runs on weekends only)_ * 8.30 AM - Long-term view articles * 8.30 AM - Global Indices News * 7.30 PM - Long-term view articles * 7.30 PM - Global Indices ![](https://files.readme.io/8fe39fd-Schedule_stock_market_.jpg) Best mode of communication to upload salary slips. ### The most preferred channel to upload salary slips [](https://docs.clevertap.com/docs/intellinode-use-cases#the-most-preferred-channel-to-upload-salary-slips) Find out the most cost-effective and preferred mode of communication for uploading salary slips. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-4) Select the most preferred communication channel by customers which is also economical. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-3) Customers prefer uploading salary slips by Email rather than WhatsApp. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-4) Create an IntelliNODE to find out the most preferred channel by customers but also provides economy of scale. Using IntelliNODE create a path for each, that is, Email and WhatsApp, to test your assumption. You can also add more channels to this mix. ![](https://files.readme.io/5ed7fbe-small-SalarySlipUploaded.png) E-commerce [](https://docs.clevertap.com/docs/intellinode-use-cases#e-commerce) ----------------------------------------------------------------------------------- While E-commerce is a buzzword today, it is also a challenging business to be in. The cost of customer acquisition and logistics, added to the high drop-off rates, is an interesting problem to solve. Customers today are more likely to buy from businesses that deliver a personalized experience. CleverTap has collated various use cases from players in this industry with similar challenges and how IntelliNODE is helping them win. Following are the use cases where you can test your approach: Users drop-off after adding an item to cart. ### Users drop off after adding to the cart [](https://docs.clevertap.com/docs/intellinode-use-cases#users-drop-off-after-adding-to-the-cart) Find the ideal time to engage with users to help them complete the purchase. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-5) Find out the message delay required to persuade users to complete the purchase. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-4) Users will likely purchase within two hours of adding an item to the cart. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-5) Set up different experiments to engage users at different delays. Set up multiple IntelliNODE paths to engage the user within the specified duration of the event. Set up paths for the first 15 minutes, 30 minutes, one hour, and two hours after the user abandons the cart. ![](https://files.readme.io/580166c-UserDropOff.jpg) Track shipments from multiple messaging channels. ### Track Product Shipment [](https://docs.clevertap.com/docs/intellinode-use-cases#track-product-shipment) Users must be able to track shipments from multiple messaging channels. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-6) Select a combination of any two channels from SMS, Email, or WhatsApp. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-5) Email is a channel that can give great engagement while being cost-effective. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-6) Use IntelliNODE to select a combination of two channels. Additionally, you can compare engagement costs for these channels too and drop the least economical channel combination. For example, create three IntelliNODE paths: * **Path A**: SMS + Email * **Path B**: SMS + WhatsApp * **Path C**: Email + WhatsApp ![](https://files.readme.io/f8b7a22-small-TrackProductShipment.png) Find out the optimum number of nudges that can be sent to convert users. ### Find out the optimum number of nudges [](https://docs.clevertap.com/docs/intellinode-use-cases#find-out-the-optimum-number-of-nudges) Find out the number of times a user must be nudged to add items to a cart for a discount campaign. If you nudge the user many times, you may cause them to unsubscribe. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-7) Find out the maximum number of push messages that are required to nudge a user to add items to the cart without causing unsubscribes. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-6) A user must be nudged three times to complete a purchase. However, if the user is nudged more than six times, it may cause an unsubscribe. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-7) Create an IntelliNODE experiment with different messaging frequencies for a channel. Create the following IntelliNODE paths for push messages over a period of 20 days: * **Path A**: Two push messages * **Path B**: Three push messages * **Path C**: Five push messages * **Path D**: Six push messages * **Path E**: Seven push messages ![](https://files.readme.io/79bb10e-small-AddToCart.jpg) Inform users about the products that are back in stock ### Inform users about the products that are back in stock. [](https://docs.clevertap.com/docs/intellinode-use-cases#inform-users-about-the-products-that-are-back-in-stock) * Inform customers about products that were out of stock but are available now. * Find the time when users are most likely to purchase the items that went out of stock. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-8) Select the time to engage your user. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-7) Users were looking for the product but could not purchase it because it was out of stock. Users are more likely to make such purchases during the evening hours. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-8) Create different journeys for different times of the day. You can also experiment with different days of the week. For example, compare weekdays and weekends. Create the following push paths: _IntelliNODE 1 (Runs on weekdays only)_ * 8.30 AM * 10.30 AM * 7.30 PM * 8.30 PM _IntelliNODE 2 (Runs on weekends only)_ * 8.30 AM * 10.30 AM * 7.30 PM * 8.30 PM ![](https://files.readme.io/2084255-ProductRestocked.jpg) Remind users to pre-register for a product launch ### Remind users to pre-register for a product launch [](https://docs.clevertap.com/docs/intellinode-use-cases#remind-users-to-pre-register-for-a-product-launch) Create a reminder campaign to pre-register users for an upcoming product launch. Find out the response for an upcoming product launch and enroll users who want to be notified when the product is available. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-9) Find out the most preferred channel by customers, which is also economical. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-8) Customers are more likely to enroll if they receive email reminders. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-9) Create different paths from IntelliNODE for each messaging channel. Use IntelliNODE to create multiple paths such as: * **Path A**: SMS reminders * **Path B**: Email reminders * **Path C**: WhatsApp reminders * **Path D**: Push reminders * **Path E**: App Inbox reminders * **Path F**: In-App reminders ![](https://files.readme.io/fcf9193-small-ProductLaunch.jpg) Media [](https://docs.clevertap.com/docs/intellinode-use-cases#media) ------------------------------------------------------------------------- The media industry can immensely benefit from better targeting, data-driven decision-making, better customer engagement, cross-promotion content, and increased audience retention. IntelliNODE can boost audience engagement to unprecedented levels, and boost revenue growth, through experimentation. Following are the use cases where you can test your approach: Users do not engage with messages about new movie releases ### Users do not engage with messages about new movie releases [](https://docs.clevertap.com/docs/intellinode-use-cases#users-do-not-engage-with-messages-about-new-movie-releases) Users do not click on the push messages that are sent to promote new movies. The viewership for new movies is low. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-10) Find out the time of the day when the users are most likely to engage with the messages. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-9) Sending push notifications during evening hours can increase conversion and help boost views. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-10) Create an IntelliNODE with paths that engage users at different times, such as: * **Path A**: 5.30 PM * **Path B**: 6.30 AM * **Path C**: 7.30 PM * **Path D**: 8.30 PM ![](https://files.readme.io/7376e93-small-MovieReleaseDates.jpg) Users drop-off while watching the content. ### Users drop off while watching the content [](https://docs.clevertap.com/docs/intellinode-use-cases#users-drop-off-while-watching-the-content) Users are most likely to lose interest if they do not resume watching the content immediately. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-11) The choice of messaging channels affects the conversion rate. In this case, you are finding the best messaging channel to nudge the users to resume watching content. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-10) The assumption is that the mobile Push, followed by Email and SMS, decreases the user drop-off rate. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-11) Use IntelliNODE to experiment to select the optimum combination of channels. Additionally, you can compare engagement costs for these channels too and drop the most expensive channel from the mix. Create different paths with IntelliNODE and find the best messaging order between Push, SMS, and Email. For example, create six paths: * **Path A**: Push > Email > SMS * **Path B**: Push > SMS > Email * **Path C**: Email > Push > SMS * **Path D**: Email > SMS > Push * **Path E**: SMS > Push > Email * **Path F**: SMS > Email > Push ![](https://files.readme.io/b448e24-small-ResumeWatchingShows.jpg) Constantly nudging users to convert from AVOD to SVOD users may cause them to unsubscribe ### Constant nudges for SVOD cause user unsubscribes [](https://docs.clevertap.com/docs/intellinode-use-cases#constant-nudges-for-svod-cause-user-unsubscribes) Constantly nudging users to convert from Advertising-based Video On Demand (AVOD) to Subscription Video On Demand (SVOD) may cause them to unsubscribe from Push, Email, or WhatsApp channels. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-12) The purpose is to identify how many nudges are too many that may cause a user to unsubscribe. Find out the maximum number of nudges suitable without causing unsubscribes. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-11) Too many nudges will drive users to unsubscribe, and too few nudges will not drive them to convert. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-12) Create an IntelliNODE experiment with different messaging frequencies for a channel. Create the following IntelliNODE paths for push messages over a period of 20 days: * **Path A**: Two push messages * **Path B**: Three push messages * **Path C**: Five push messages * **Path D**: Six push messages * **Path E**: Seven push messages ![](https://files.readme.io/f6d0871-small-AVODtoSVOD.jpg) Select the correct mix of channels to build anticipation ### The correct mix of channels to build anticipation [](https://docs.clevertap.com/docs/intellinode-use-cases#the-correct-mix-of-channels-to-build-anticipation) Build anticipation for upcoming series through the correct mix of channels. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-13) Select the order of the messaging channels. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-12) Messaging order influences the time to convert. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-13) Create different paths with IntelliNODE and find the best messaging order between Push, SMS, and Email. For example, create six paths: * **Path A**: Push > Email > SMS * **Path B**: Push > SMS > Email * **Path C**: Email > Push > SMS * **Path D**: Email > SMS > Push * **Path E**: SMS > Push > Email * **Path F**: SMS > Email > Push ![](https://files.readme.io/757daa2-small-MessageingOrderforAnticipation.jpg) Suggest genre by time of day ### Suggest genre by the time of day [](https://docs.clevertap.com/docs/intellinode-use-cases#suggest-genre-by-the-time-of-day) Users may be interested in different genres at a different time of the day. #### Purpose [](https://docs.clevertap.com/docs/intellinode-use-cases#purpose-14) Select the time to engage your users. #### Assumption [](https://docs.clevertap.com/docs/intellinode-use-cases#assumption-13) Sending the push notification at an optimum time can lead to an increase in conversion. #### Experiment [](https://docs.clevertap.com/docs/intellinode-use-cases#experiment-14) Create different journeys for different times of the day. You can also experiment with different days of the week. For example, compare weekdays and weekends. Create the following push paths: _IntelliNODE 1 (Runs on weekdays only)_ * 8.30 AM * 10.30 AM * 7.30 PM * 8.30 PM _IntelliNODE 2 (Runs on weekends only)_ * 8.30 AM * 10.30 AM * 7.30 PM * 8.30 PM ![](https://files.readme.io/f7ce12a-VideoGenre.jpg) You can add more variations by using IntelliNODE. For example, send exercise video programs in the morning and thriller series at night. Updated about 2 months ago * * * Ask AI --- # Message Archiving Overview [](https://docs.clevertap.com/docs/message-archiving#overview) =========================================================================== CleverTap’s Message Archiving feature stores a copy of each outgoing message sent through Campaigns or Journeys, such as Push Notifications, Emails, SMS, or WhatsApp messages, directly to your AWS S3, Azure Blob Storage, or GCP bucket. Storing copies of outgoing messages from Campaigns and Journeys across multiple channels in real time provides evidence of compliance. It also allows access to archived compliance, audit, or customer support communication. > 📘 > > ### > > Enable Message Archiving > > [](https://docs.clevertap.com/docs/message-archiving#enable-message-archiving) > > Message Archiving is a paid add-on. To enable it, contact your Customer Success Manager or [CleverTap Support](https://help.clevertap.com/hc/en-us/requests/new) > . Some of the key benefits of archiving your messages are: * **Audit Readiness:** Maintain a complete record of all user communications to meet compliance requirements. * **Real-Time Archiving:** Archive messages as they are sent, with minimal impact on delivery performance. * **Low Maintenance:** Requires minimal setup and ongoing upkeep. Supported Channels [](https://docs.clevertap.com/docs/message-archiving#supported-channels) =============================================================================================== Currently, Message Archiving is available for the following channels: * Email * Push notifications * SMS * WhatsApp Introduction to Message Archiving [](https://docs.clevertap.com/docs/message-archiving#introduction-to-message-archiving) ============================================================================================================================= When the Message Archiving feature is enabled, CleverTap archives every outgoing message in real time to your specified storage destination (AWS S3, Azure Blob Storage, or GCP bucket). Messages are sent through campaigns or journeys, and the archiving process ensures all records are stored before delivery. > 🚧 > > ### > > Message Delivery Lag > > [](https://docs.clevertap.com/docs/message-archiving#message-delivery-lag) > > Archiving occurs before delivery. This may introduce slight latency depending on the storage provider's rate limits and network performance. Archived File Structure [](https://docs.clevertap.com/docs/message-archiving#archived-file-structure) ========================================================================================================= Each archived message is stored as a compressed JSON file using the `.lz4` format. The file path follows a consistent structure to ensure easy lookup and retrieval. File Path Structure [](https://docs.clevertap.com/docs/message-archiving#file-path-structure) ------------------------------------------------------------------------------------------------- The archived messages are saved in your AWS S3 bucket, Azure Blob Storage, or GCP bucket using a specific key structure, helping organize and retrieve the files efficiently. The general structure of the file path is as follows: sent_messages/////message_id.json.lz4 where: <*> = folder = year, month // batchId( year, month, day) from the message = Push OR Sms OR Email or WhatsApp = MD5 encoded data of Device Identity if exists, else, Customer Identity for Push, Mobile Number in CountryCode format for Sms & Whatsapp, EmailId for Email channel message_id.json.lz4 is a lz4 compressed file representing one message. // support lz4 compression An example file path may look like this: sent_messages/WhatsApp/202409/1725435360/6e6d748a7cc752fbe4f72c777cc50a74/49482d489b871510eeff7db9a8ab443248ad1ea596e5108e02d16ab5b2ea47db.json.lz4 Sample JSON Payloads [](https://docs.clevertap.com/docs/message-archiving#sample-json-payloads) --------------------------------------------------------------------------------------------------- The archived files on the AWS contain a JSON payload representing the final message sent to the user. Below are examples of the JSON structures by channel. PushEmailSMSWhatsApp // Android Firebase Cloud Messaging (FCM) push notification payload { "to": "fcm:kahjszshdvbgfoqhkjahgsdfyp2nhri3oqsny26lpp26ylawiuhse84htexz", // platformId or pushToken. "payload": { "message": { "data": { "wzrk_pn": "true", // indicates a push notification. "wzrk_id": "1737624196_20250123", // unique identifier for the notification. "wzrk_pivot": "wzrk_default", // pivot point for message routing. "nt": "Exclusive Flash Sale - 50% Off!", // notification title. "nm": "Hurry! Limited-time offer just for you. Tap to claim your 50% discount before it expires!", // notification message body. "wzrk_ttl": "1737624843", // time-to-live (TTL) for the notification in epoch format. "wzrk_rnv": "true", // determines if the notification should be re-notified. "wzrk_push_amp": "false", // push amplification flag. "wzrk_dt": "FIREBASE", // delivery platform (for example, Firebase, APNS). "wzrk_pid": "1737624196", // push notification ID. "wzrk_cid": "", // campaign ID (if applicable). "wzrk_bc": "", // background color (if applicable). "wzrk_bi": "2", // badge icon reference (if applicable). "pr": "", // notification priority (if specified). "wzrk_acct_id": "YOUR_WZRK_ACCOUNT_ID", // account identifier. "wzrk_ck": "1400000001" // click tracking identifier. }, "token": "kahjszshdvbgfoqhkjahgsdfyp2nhri3oqsny26lpp26ylawiuhse84htexz", // device token for push delivery. "messageConfig": { "ttlInSeconds": "600s", // notification time-to-live in seconds. "priority": "HIGH" // priority level for push delivery. } }, "dryRun": false // indicates whether this message is a test notification. }, "platform": "Android", "message_id": "6f44a05d42a1e1d282ef3bf8bb6591ccf04e49f9c5c33f2438db6275cdc410fd", // Unique hash per message. "version": 1, // Numerical version of the json structure. "sent_at": 1737624243036, // Message Archiving epoch in millis. "campaign_id": 1737624196, // Unique hash per message. "user_id": 45142258, // CleverTap internal Device Identity if exists, else, Customer Identity. "campaign_name": "Flat Offer Sale Campaign", // the campaign Name for current campaign, will always exist. "identity": // custom identifier [\ "[email protected]"\ ] } // iOS Apple Push Notification Service (APNS) push notification payload { "to": "74bfe488e5b5e0139fc378ff9410ea4ce6a666d17603b49922a009a6383b56ee", // Device token for APNS push delivery. "payload": { "W$id": "1734938686_20241223", // Unique identifier for the notification. "wzrk_acct_id": "YOUR_WZRK_ACCOUNT_ID", // Account identifier. "W$rnv": true, // Determines if the notification should be re-notified. "W$dt": "APPLE", // Delivery platform (APNS for iOS). "aps": { "interruption-level": "active", // Defines the interruption level of the push. "relevance-score": 0.5, // Determines notification priority based on relevance. "alert": { "title": "Your Exclusive Discount Inside!", // Notification title. "body": "We've reserved a 50% OFF deal for you. Tap to unlock savings now!" // Notification body message. }, "mutable-content": 1 // Allows content modification before displaying. }, "W$pivot": "wzrk_default" // Pivot point for message routing. }, "token": "74bfe488e5b5e0139fc378ff9410ea4ce6a666d17603b49922a009a6383b56ee", // Device token for push delivery. "collapseId": "1734938686", // Used for collapsing multiple similar notifications. "expiration": 1734939302, // Expiration time in epoch format. "platform": "iOS", "message_id": "245eb2b120c2768d30c42cb343832d579e8413ef1bce25cb4837e91d60630e5b", // Unique hash per message. "version": 1, // Numerical version of the JSON structure. "sent_at": 1734938702745, // Message archiving epoch in milliseconds. "campaign_id": 1734938686, // Unique hash per message. "user_id": 45142253, // CleverTap internal Device Identity if exists, else, Customer Identity. "campaign_name": "Flat Offer Sale Campaign", // The campaign Name for the current campaign, will always exist. "identity": // Custom identifier used to uniquely associate a message archive record with an account. [\ "[email protected]" \ ] } { "to": "[email protected]", // Recipient email "subject": "🚀 Exclusive Offer: 50% Off Just for You!", // Engaging subject line "from_name": "RepeatFrequently", // Proper sender name "from_address": "[email protected]", // Sender email "html_body": "

Exclusive Deal Just for You!

Get 50% OFF on your next order. Hurry, limited-time offer!


Claim Your Offer
", // Optimized HTML email "plainText_body": "Exclusive Deal Just for You! Get 50% OFF on your next order. Hurry, limited-time offer! Claim your offer: https://www.yourlink.com", // Matching plain text "amp_body": "

Exclusive Deal Just for You!

Get 50% OFF on your next order. Hurry, limited-time offer!

Claim Your Offer", // AMP email version "headers": "From: RepeatFrequently <[email protected]>,To: [email protected],Subject: 🚀 Exclusive Offer: 50% Off Just for You!,MIME-Version: 1.0,Content-Type: multipart/alternative;", "message_id": "6c79694bee2f362fdbe14f7318e5706b26786b2008beca4490521e76c850f913", // Unique message identifier "version": 1, // JSON structure version "sent_at": 1713111244729, // Timestamp when the message was sent (epoch format) "campaign_id": 1653063304, // Unique campaign identifier "user_id": 17004116, // User identifier "campaign_name": "Flash Sale Email Campaign", // Updated campaign name "identity": // custom identifier [\ "+918112333333",\ "[email protected]",\ "Mani121"\ ] } { "to": "PhoneNumber", // ("15555555555") "body": "🚀 Exclusive Deal! Get 50% OFF on your next purchase. Use code: FLASH50. Hurry, offer ends soon! Tap here: www.yourlink.com", // SMS content "provider": "twilio", // SMS provider "message_id": "9f8c76ccdaf0895515f813af702670324d996296788652b50b3475d6fe6e719a", // Unique message identifier "version": 1, // JSON structure version "sent_at": 1712915161639, // Timestamp when the SMS was sent (epoch format) "campaign_id": 1712915111, // Unique campaign identifier "user_id": 17740451, // User identifier "campaign_name": "Flash Sale SMS Campaign", // Name of the SMS campaign "identity": // custom identifier [\ "+918468817470",\ "[email protected]",\ "chhayaArc121"\ ] } { "to": "PhoneNumber", // ("15555555555") "body": { "header": { "type": "location", "media": { "latitude": 25.25231501881499, "longitude": 86.98385572969912, "name": "DLH Park", "address": "7X2M+WFX, P&T Colony, Adampur, Bhagalpur, Bihar 812001, India" } }, "body": { "type": "text", "text": "Hi John! Thank you for registering for GMAT. Please refer to the link for your Exam Center location in Bhagalpur.", "replacements": ["John", "Bhagalpur"] }, "footer": null, "limited_time_offer": null, "buttons": [] }, "provider": "nexmo", // WhatsApp service provider (Vonage) "message_id": "b6e644a27196e6db63c552c8a3babb55f930dbc743bf5c35507621dee1c163cf", // Unique message identifier "version": 1, // JSON structure version "sent_at": 1712910207584, // Timestamp when the message was sent (epoch format) "campaign_id": 6153, // Unique campaign identifier "journey_id": 1255, // Journey ID if part of a sequence "user_id": 17633706, // User identifier "campaign_name": "My WhatsApp Message", // Name of the WhatsApp campaign "journey_name": "Check Journey", // Name of the journey "journey_node_id": 6, // Node identifier in the journey "identity": // custom identifier [\ "+918468817470",\ "[email protected]",\ "chhayaArc121"\ ] } Browse Archived Message From AWS S3 Bucket [](https://docs.clevertap.com/docs/message-archiving#browse-archived-message-from-aws-s3-bucket) ----------------------------------------------------------------------------------------------------------------------------------------------- The following image shows the steps to browse the archived messages on the AWS S3 bucket: ![Sample Message Archive](https://files.readme.io/6dbc6e767772b915a0d9db56f9a4484df2c91b36c829f06d6f781d2ad4721e99-AWS_Slow.gif) Sample Message Archive Set Up Message Archiving [](https://docs.clevertap.com/docs/message-archiving#set-up-message-archiving) =========================================================================================================== Prerequisites [](https://docs.clevertap.com/docs/message-archiving#prerequisites) ------------------------------------------------------------------------------------- Before setting up Message Archiving, check that you have the following: * An active CleverTap account. * An AWS S3 bucket, Azure Blob Storage, or GCP bucket in the same region as your CleverTap account region. Steps to Set Up Message Archiving [](https://docs.clevertap.com/docs/message-archiving#steps-to-set-up-message-archiving) ----------------------------------------------------------------------------------------------------------------------------- To set up message archiving, perform the following steps: 1. **Configure AWS S3 bucket, Azure Blob Storage, or GCP bucket on CleverTap dashboard**: Provide the necessary details for your AWS S3 bucket, including the bucket name and region. For more information, refer to [Configure AWS S3 Bucket on CleverTap Dashboard](doc:data-export-to-aws-s3#configure-s3-bucket-details-on-clevertap-dashboard) , [Configure Azure Blob Storage](doc:microsoft-azure) or [Configure GCP Bucket on CleverTap Dashboard.](doc:data-export-to-gcp#configure-clevertap-dashboard) Note that for setting up message archiving with AWS S3, configure the bucket with an appropriate IAM policy. For more information, refer to [Add IAM Policy to S3 Bucket](doc:data-export-to-aws-s3#add-iam-policy-to-s3-bucket-on-aws-console) . 2. **Configure Data Retention Policy**: You must set up the data retention policy for your AWS S3 bucket according to your organizational needs directly in the AWS S3 console. For more information and detailed configuration steps, refer to [Data Export to AWS S3](doc:data-export-to-aws-s3#create-an-aws-s3-bucket) , [Data Export to Azure](doc:microsoft-azure#create-a-new-data-export) , or [Data Export to GCP](doc:data-export-to-gcp#create-a-new-data-export) . Security and Data Protection [](https://docs.clevertap.com/docs/message-archiving#security-and-data-protection) =================================================================================================================== Clevertap is committed to safeguarding your data. We ensure the protection of your data by implementing the following measures: * **Data in Transit:** All data is transmitted using the HTTPS protocol, ensuring secure data transfer between CleverTap and your AWS S3 bucket, Azure Storage Blob, or GCP bucket. * **Data at Rest:** The security of data at rest within the AWS S3 bucket, Azure Storage Blob, or GCP bucket is the customer's responsibility. This includes ensuring that proper encryption and access controls are in place. FAQs [](https://docs.clevertap.com/docs/message-archiving#faqs) =================================================================== Explore concise troubleshooting tips and FAQs for Messaging Archival in this section. The following information provides helpful troubleshooting tips and common questions about Message Archiving. #### **Q: Is there a user interface for Message Archiving?** [](https://docs.clevertap.com/docs/message-archiving#q-is-there-a-user-interface-for-message-archiving) A: No, the Message Archiving feature operates without a user interface. Once enabled, it seamlessly archives messages to your AWS S3 bucket, Azure Storage Blob, or GCP bucket. We will provide a user interface in the future. #### **Q: How long is the data stored?** [](https://docs.clevertap.com/docs/message-archiving#q-how-long-is-the-data-stored) A: You define the data retention policy within your AWS S3 bucket, Azure Storage Blob, or GCP bucket settings. #### **Q: Who bears the cost of storage?** [](https://docs.clevertap.com/docs/message-archiving#q-who-bears-the-cost-of-storage) A: The customer bears all storage and data transfer costs associated with their AWS S3 bucket, Azure Storage Blob, or GCP bucket. #### **Q: Does archiving happen in real-time?** [](https://docs.clevertap.com/docs/message-archiving#q-does-archiving-happen-in-real-time) A: Yes, message archiving occurs in real-time, ensuring that all communications are promptly saved. #### **Q: What happens if my AWS credentials are invalid?** [](https://docs.clevertap.com/docs/message-archiving#q-what-happens-if-my-aws-credentials-are-invalid) A: If your AWS credentials become invalid, CleverTap cannot archive messages to your AWS S3 bucket or Azure Storage Blob, and no further campaign messages will be sent to your users. This is to ensure that every message that is sent out is archived first. #### **Q: How are retries handled?** [](https://docs.clevertap.com/docs/message-archiving#q-how-are-retries-handled) A: If the bucket is unreachable, we will retry up to three times for AWS errors (such as AccessDenied). CleverTap handles the AWS S3 rate limit errors. #### **Q: What happens if archiving fails ?** [](https://docs.clevertap.com/docs/message-archiving#q-what-happens-if-archiving-fails-) If the archiving fails after multiple retries, messages are marked as _Failed to Archive Message_. ![Failed to archive message](https://files.readme.io/4b8eca3f061741697bca2f07b0307f88efd5ee2f3b5600a1f70bbe72865356d1-image.png) Failed to archive message #### **Q: Why does my archive`sent at` timestamp differs slightly from the actual send time?** [](https://docs.clevertap.com/docs/message-archiving#q-why-does-my-archivesent-at-timestamp-differs-slightly-from-the-actual-send-time) A: The message is archived just before it is sent to the end user, due to which slight delays can occur. This may lead to minor differences in timestamps. #### **Q: How does CleverTap send archived data to customers?** [](https://docs.clevertap.com/docs/message-archiving#q-how-does-clevertap-send-archived-data-to-customers) A: CleverTap sends data in a compressed form to the customer's chosen location, such as the AWS S3 bucket, Azure Storage Blob, or GCP bucket. You can view the JSON format for each channel from [Sample Message Archiving JSON payloads](doc:messaging-archiving#sample-json-payloads) . #### **Q: What file format does CleverTap use for the message archive?** [](https://docs.clevertap.com/docs/message-archiving#q-what-file-format-does-clevertap-use-for-the-message-archive) A: The archived messages are stored as LZ4 compressed JSON files. #### **Q: How does CleverTap charge for data transfer to another AWS region or outside AWS (Azure/GCP)?** [](https://docs.clevertap.com/docs/message-archiving#q-how-does-clevertap-charge-for-data-transfer-to-another-aws-region-or-outside-aws-azuregcp) A: The cost is determined per the cloud provider's data transfer charges if a customer transfers data to another AWS region. Transfers outside AWS (Azure/GCP) are classified as data-out-to-internet and are charged based on the cloud provider's pricing model, which may include a base cost and tiered pricing. #### **Q: How does CleverTap handle message archiving for AMP emails?** [](https://docs.clevertap.com/docs/message-archiving#q-how-does-clevertap-handle-message-archiving-for-amp-emails) A: CleverTap archives every sent message, ensuring a comprehensive record of communication. #### **Q: Does CleverTap store attachments in archived messages?** [](https://docs.clevertap.com/docs/message-archiving#q-does-clevertap-store-attachments-in-archived-messages) A: CleverTap optimizes storage by archiving key details of Email and WhatsApp campaigns. #### **Q: How does CleverTap handle sensitive data in archived messages?** [](https://docs.clevertap.com/docs/message-archiving#q-how-does-clevertap-handle-sensitive-data-in-archived-messages) A: Archived messages may include CleverTap IDs (CTID) and the customer’s unique user ID. Customers can configure their campaigns based on their data privacy policies. #### **Q: How can customers access archived messages?** [](https://docs.clevertap.com/docs/message-archiving#q-how-can-customers-access-archived-messages) A: CleverTap ensures customers fully control their archived messages by delivering the messages to their preferred storage location. Customers can retrieve and manage their data according to their specific compliance and security policies. Updated about 2 months ago * * * Ask AI --- # CleverTap for Startups: Technology Partners Technology Partner Integration [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#technology-partner-integration) ================================================================================================================================================ Analytics [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#analytics) ------------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Name | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | --- | | Amplitude Export | Yes | Yes | Paid | Cloud Export | 10% of the Base Plan | [Amplitude Export](doc:amplitude-export) | | AmplitudeMixpanel Import | Yes | Yes | Free | N/A | N/A | [Mixpanel Import](doc:mixpanel-integration) | | Mixpanel Export | Yes | Paid | Cloud Export | 10% of the Base Plan | [Mixpanel Export](doc:mixpanel-export) | | Attribution Provider [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#attribution-provider) ---------------------------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | AppsFlyer | Yes | Yes | Free | N/A | [AppsFlyer](https://developer.clevertap.com/docs/appsflyer) | | Adjust | Yes | Yes | Free | N/A | [Adjust](https://developer.clevertap.com/docs/adjust) | | Airbridge | Yes | Yes | Free | N/A | [Airbridge](https://developer.clevertap.com/docs/airbridge) | | Branch | Yes | Yes | Free | N/A | [Branch](https://developer.clevertap.com/docs/branch) | | Singular (formerly known as Apsalar) | Yes | Yes | Free | N/A | [Singular](https://developer.clevertap.com/docs/singular-apsalar) | | Generic Attribution provider | Yes | Yes | Free | N/A | [Generic Attribution Provider](https://docs.clevertap.com/docs/generic-attribution-partner) | > 📘 > > ### > > Deep Linking > > [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#deep-linking) > > CleverTap supports deep linking that helps land the user on a particular part of your app. We have improved our [deep linking with Branch](doc:deeplinking-with-branch) > for Email. Contextual Location [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#contextual-location) -------------------------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Plot Projects | Yes | Yes | Free | N/A | [Plot Projects](doc:plot-projects) | Crash Analytics [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#crash-analytics) ------------------------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Apteligent | Yes | Yes | Free | N/A | [Apteligent](doc:apteligent) | Customer Data Platform [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#customer-data-platform) -------------------------------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | mParticle Export | Yes | Yes | Cloud Export | 10% of Base Plan | [mParticle Export](doc:mparticle-export) | | RudderStack | Yes | Yes | Free | N/A | [RudderStack](https://developer.clevertap.com/docs/rudderstack) | | Segment | Yes | Yes | Cloud Export | 10% of Base Plan | [Segment](https://developer.clevertap.com/docs/segment) | Data Warehouse [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#data-warehouse) ---------------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Name | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | --- | | Google Cloud | Yes | Yes | Paid | Cloud Export | 10% of Base Plan | [Google Cloud](doc:data-export-to-gcp) | | AWS Amazon S3 | Yes | Yes | Paid | Cloud Export | 10% of Base Plan | [AWS Amazon S3](doc:aws-s3-export) | | AWS Amazon EventBridge | Yes | Yes | Paid | Cloud Export | 10% of Base Plan | [AWS Amazon EventBridge](doc:amazon-eventbridge-overview) | | Microsoft Azure | Yes | Yes | Paid | Cloud Export | 10% of Base Plan | [Microsoft Azure](doc:microsoft-azure) | Dynamic Content [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#dynamic-content) ------------------------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Storyly | Yes | Yes | Free | N/A | [Storyly](doc:storyly) | E-commerce [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#e-commerce) -------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Shopify | Yes | Yes | Free | N/A | [Shopify](doc:shopify) | Email [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#email) ---------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Mandrill | Yes | Yes | Free | N/A | [Mandrill](doc:mandrill) | | Amazon SES | Yes | Yes | Free | N/A | [Amazon SES](doc:amazon-simple-email-service) | | SendGrid | Yes | Yes | Free | N/A | [SendGrid](doc:sendgrid) | | Postmark | Yes | Yes | Free | N/A | [Postmark](doc:postmark) | | Gmail/Google Apps | Yes | Yes | Free | N/A | [Gmail/Google Apps](http://gmail/Google%20Apps) | | Generic SMTP | Yes | Yes | Free | N/A | [Generic SMTP](doc:generic-smtp) | Email Validator [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#email-validator) ------------------------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Clearout | Yes | Yes | Free | N/A | [Clearout](doc:clearout) | Email Templates [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#email-templates) ------------------------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Add-on Cost | | --- | --- | --- | --- | --- | --- | | Stripo | Yes | Yes | Free | N/A | [Stripo](https://docs.clevertap.com/docs/stripo) | | Taxi for Email | Yes | Yes | Free | N/A | [Taxi for Email](https://docs.clevertap.com/docs/taxi-for-email) | Import [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#import) ------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Imports via SFTP | Yes | Yes | Free | N/A | [Imports via SFTP](https://developer.clevertap.com/docs/imports-via-sftp) | | CSV Upload | Yes | Yes | Free | N/A | [CSV Upload](doc:csv-upload) | > 📘 > > ### > > Data Import > > [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#data-import) > > You can use CleverTap APIs to push and retrieve data. For more information, refer to [CleverTap APIs](https://developer.clevertap.com/docs/api-overview) > . Loyalty [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#loyalty) -------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Talon.One | Yes | Yes | Free | N/A | [Talon.one](doc:talonone) | Messenger [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#messenger) ------------------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | LINE | Yes | Yes | Free | N/A | [LINE](doc:line-messenger) | Payments [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#payments) ---------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | RevenueCat | Yes | Yes | Free | N/A | [RevenueCat](doc:revenuecat) | Remarketing [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#remarketing) ---------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Name | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | --- | | Facebook Audience Network | Yes | Yes | Paid | Premium Channels | 10% of Base Plan | [Facebook Audience Network](doc:facebook-audience-network-1) | | Google Ads Remarketing | Yes | Yes | Paid | Premium Channels | 10% of Base Plan | [Google Ads Remarketing](doc:google-adwords-remarketing) | SMS [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#sms) ------------------------------------------------------------------------------------------ | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Twilio | Yes | Yes | Free | N/A | [Twilio](doc:twilio) | | Exotel | Yes | Yes | Free | N/A | [Exotel](doc:exotel) | | Nexmo | Yes | Yes | Free | N/A | [Nexmo](doc:nexmo) | | MSG91 | Yes | Yes | Free | N/A | [MSG91](doc:msg91) | | TextLocal | Yes | Yes | Free | N/A | [TextLocal](doc:generic-sms) | | Nimbus SMS | Yes | Yes | Free | N/A | [Nimbus SMS](doc:generic-sms) | | Plivo | Yes | Yes | Free | N/A | [Plivo](doc:generic-sms) | | SMS INDIAHUB | Yes | Yes | Free | N/A | [SMS INDIAHUB](doc:generic-sms) | | Netcore | Yes | Yes | Free | N/A | [Netcore](doc:netcore) | | Mitto | Yes | Yes | Free | N/A | [Mitto](doc:generic-sms) | | AWS Pinpoint | Yes | Yes | Free | N/A | [AWS Pinpoint](doc:generic-sms) | Support [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#support) -------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Zendesk | Yes | Yes | Free | N/A | [Zendesk](doc:zendesk) | WhatsApp [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#whatsapp) ---------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Name | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | --- | | CleverTap WhatsApp Business API | Yes | No | N/A | N/A | 10% of Base Plan | [CleverTap WhatsApp Business API](doc:clevertap-bsp) | | Gupshup | Yes | Yes | Paid | WhatsApp Connect | 10% of Base Plan | [Gupshup](doc:gupshup) | | Generic WhatsApp | Yes | Yes | Paid | WhatsApp Connect | 10% of Base Plan | [Generic WhatsApp](doc:generic-whatsapp) | | Nexmo | Yes | Yes | Paid | WhatsApp Connect | 10% of Base Plan | [Nexmo](doc:nexmo-whatsapp) | | Exotel | Yes | Yes | Paid | WhatsApp Connect | 10% of Base Plan | [Exotel](doc:exotel-whatsapp) | Workflow Automation [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#workflow-automation) -------------------------------------------------------------------------------------------------------------------------- | Partner Name | Integrates with CleverTap | Included in the Essentials Plan | Add-on | Add-on Cost | Integration process | | --- | --- | --- | --- | --- | --- | | Zapier | Yes | Yes | Free | N/A | [Zapier](doc:zapier) | Mobile Platforms [](https://docs.clevertap.com/docs/clevertap-for-startups-technology-partners#mobile-platforms) ==================================================================================================================== You can check out the integration capabilities and features of CleverTap through the following list of supported platforms and technologies. | Partner

Name | Integrates with CleverTap | Included in the Essentials Plan | Add-On | Add-On Cost | Integration Process | | --- | --- | --- | --- | --- | --- | | iOS | Yes | Yes | Free | N/A | [iOS SDK](https://developer.clevertap.com/docs/ios) | | Android | Yes | Yes | Free | N/A | [Android SDK](https://developer.clevertap.com/docs/android) | | Cordova | Yes | Yes | Free | N/A | [Cordova SDK](https://developer.clevertap.com/docs/cordova) | | Flutter | Yes | Yes | Free | N/A | [Flutter SDK](https://developer.clevertap.com/docs/flutter-sdk) | | Geofencing | Yes | Yes | Free | N/A | [Geofencing](https://developer.clevertap.com/docs/geofencing) | | React Native | Yes | Yes | Free | N/A | [React Native](https://developer.clevertap.com/docs/react-native) | | Unity | Yes | Yes | Free | N/A | [Unity](https://developer.clevertap.com/docs/unity) | | Xamarin | Yes | Yes | Free | N/A | [Xamarin](https://developer.clevertap.com/docs/xamarin) | | KaiOS | Yes | Yes | Free | N/A | [KaiOS](https://developer.clevertap.com/docs/kaios) | | Web | Yes | Yes | Free | N/A | [Web SDK](https://developer.clevertap.com/docs/web-overview) | | Google Tag Manager | Yes | Yes | Free | N/A | [Google Tag Manager](https://developer.clevertap.com/docs/google-tag-manager) | Updated about 2 months ago * * * Ask AI --- # Route Mobile Overview [](https://docs.clevertap.com/docs/route-mobile#overview) ====================================================================== [Route Mobile](https://routemobile.com/) is a global cloud communications platform that enables businesses to send messages via SMS, WhatsApp, RCS, and more. By integrating Route Mobile with CleverTap’s WhatsApp Business solution, you can send personalized, automated WhatsApp messages at scale using your Route Mobile-approved WhatsApp sender. With this integration, you can: * Trigger WhatsApp messages based on user actions or segments. * Personalize content using CleverTap's enriched user profiles. * Track delivery, read status, and user engagement directly in CleverTap. This setup combines Route Mobile’s reliable messaging infrastructure with CleverTap’s powerful engagement engine, enabling you to drive conversion-oriented conversations. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/route-mobile#support-for-integration) > > This integration is managed and continuously improved by Route Mobile. The CleverTap and Route Mobile integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Route Mobile](https://docs.clevertap.com/cdn-cgi/l/email-protection#90e3e5e0e0ffe2e4d0e2ffe5e4f5fdfff2f9fcf5bef3fffd) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/route-mobile#prerequisites-for-integration) ================================================================================================================ The following are the prerequisites for Route Mobile. * You must have the WhatsApp add-on enabled on the CleverTap account in addition to the Essentials Plan. * Ensure that WhatsApp onboarding for the phone number to be used with CleverTap is completed. * Ensure that you have the API URL and account credentials from Route Mobile. > 📘 > > ### > > Activating a New Phone Number via Route Mobile > > [](https://docs.clevertap.com/docs/route-mobile#activating-a-new-phone-number-via-route-mobile) > > If you want to activate a new phone number with WhatsApp Business API via Route Mobile, contact your Account Manager from Route Mobile. Integrate Route Mobile with CleverTap [](https://docs.clevertap.com/docs/route-mobile#integrate-route-mobile-with-clevertap) ================================================================================================================================ This process involves the following three steps: 1. [Find Route Mobile WhatsApp account credentials](doc:route-mobile#find-route-mobile-whatsapp-account-credentials) 2. [Configure CleverTap dashboard](doc:route-mobile#configure-clevertap-dashboard) 3. [Set Up CleverTap Callbacks with Route Mobile](doc:route-mobile#set-up-clevertap-callbacks-with-route-mobile) Find Route Mobile WhatsApp Account Credentials [](https://docs.clevertap.com/docs/route-mobile#find-route-mobile-whatsapp-account-credentials) -------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap recommends that you keep the following information handy before starting with the configuration on the CleverTap dashboard: * HTTP Endpoint * Username and password Contact the Route Mobile WhatsApp Support Team or raise a request at [Route Mobile](https://docs.clevertap.com/cdn-cgi/l/email-protection#b9caccc9c9d6cbcdf9cbd6cccddcd4d6dbd0d5dc97dad6d4) . The response will include the username, password, and WhatsApp number for your WhatsApp account. Configure CleverTap dashboard [](https://docs.clevertap.com/docs/route-mobile#configure-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard, perform the following steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the dropdown. ![Provider Setup](https://files.readme.io/885f26f7e2110aab22dd2bda2eba90bc4c3e187863d865a407301bc495da3a4d-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Nickname | Enter the nickname as Route Mobile <10-digit phone number> for easy
reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, 918889500122) | | Request Type | Ensure the Request Type is _POST_. | | HTTP Endpoint | Paste the URL received from the Route Mobile team.
Ensure that the URL is in HTTPS format, i.e., your URL must begin with **https://**. | | Headers | Click **Header** and enter the following key-value-pairs:

* Key: API-KEY
* Value:
Contact to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#0f7c7a7f7f607d7b4f7d607a7b6a62606d66636a216c6062)
for API key. | | Delivery Report Callback URL | This URL is generated automatically in the CleverTap dashboard. Share the URL with Route Mobile’s account manager to configure it with the WhatsApp account. | | Inbound Message
Callback URL | This URL is generated automatically in the CleverTap dashboard. Share the URL with Route Mobile’s account manager to configure it with the WhatsApp account. | 4. (Optional) Select _Mark this as default to make this service provider the default provider_ to send a WhatsApp message via Route Mobile. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 7. Send a Test WhatsApp notification (refer to the following image). ![1488](https://files.readme.io/c384922-sendtest.png "Send Test Message on WhatsApp") Send Test Message on WhatsApp Set Up CleverTap Callbacks with Route Mobile [](https://docs.clevertap.com/docs/route-mobile#set-up-clevertap-callbacks-with-route-mobile) ---------------------------------------------------------------------------------------------------------------------------------------------- To set up CleverTap callbacks with Route Mobile, perform the following steps: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ from the CleverTap dashboard. You will find the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ under the _Provider Configuration_ page. 2. **Share Callback URLs with Route Mobile**: Copy both URLs and the WhatsApp phone number used in CleverTap, send them to the Route Mobile WhatsApp support team for configuration. ![Callback URLs](https://files.readme.io/cc474e967352120cb3db115ee543e49e98dda60cbe05e91aa5cffc2978a6ccb2-image.png) Callback URLs Once configured, these webhooks ensure that message delivery reports and inbound messages sync correctly between CleverTap and Route Mobile. > 📘 > > ### > > Message Templates > > [](https://docs.clevertap.com/docs/route-mobile#message-templates) > > You have to get your templates approved on the Route Mobile dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. For more information and queries about the Route Mobile integration, write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#295a5c5959465b5d695b465c5d4c44464b40454c074a4644) > . Add Message Templates [](https://docs.clevertap.com/docs/route-mobile#add-message-templates) ------------------------------------------------------------------------------------------------ To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, perform the following steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ on the CleverTap dashboard. 2. Select _Templates_ and click **\+ Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/route-mobile#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use the a particular template name once within Phone\_1 and Phone\_2. 4. Select the language in which you want to display the message. 5. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 6. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 7. Enter the message content. 8. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 9. Click **Save Template**. Test a Message Template [](https://docs.clevertap.com/docs/route-mobile#test-a-message-template) ---------------------------------------------------------------------------------------------------- For detailed instructions on testing a WhatsApp message template, refer to [Testing a Message Template](doc:whatsapp-message-templates#testing-a-message-template) . Create Campaign [](https://docs.clevertap.com/docs/route-mobile#create-campaign) ==================================================================================== For detailed instructions on creating a WhatsApp campaign using Route Mobile as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) . Create a Journey [](https://docs.clevertap.com/docs/route-mobile#create-a-journey) ====================================================================================== For detailed instructions on creating a WhatsApp journey using Route Mobile as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # QuickReply Overview [](https://docs.clevertap.com/docs/quickreply#overview) ==================================================================== [QuickReply](https://quickreply.ai/) is a conversational commerce platform that helps brands automate WhatsApp communication at scale. By integrating QuickReply with CleverTap, you can send personalized, automated WhatsApp messages triggered by user behavior, leveraging QuickReply’s API and infrastructure. With this integration, you can do the following: * Send automated WhatsApp messages based on user actions or campaigns. * Personalize messages using CleverTap’s user profiles. * Track message delivery and user engagement within CleverTap. This setup combines QuickReply’s automation capabilities with CleverTap’s real-time engagement engine to drive relevant conversations and increase conversions. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/quickreply#support-for-integration) > > This integration is managed and continuously improved by QuickReply. The CleverTap and QuickReply integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [QuickReply](https://docs.clevertap.com/cdn-cgi/l/email-protection#c2aaa7aeb282b3b7aba1a9b0a7b2aebbeca3ab) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/quickreply#prerequisites-for-integration) ============================================================================================================== To integrate QuickReply with CleverTap: * You must have the WhatsApp add-on enabled on your CleverTap account in addition to the Essentials Plan. * WhatsApp onboarding for the phone number must be completed via QuickReply. * Check that you have the Project ID and Passcode from CleverTap and the Authorization Header from the QuickReply dashboard. Integrate QuickReply with CleverTap [](https://docs.clevertap.com/docs/quickreply#integrate-quickreply-with-clevertap) ========================================================================================================================== This process involves the following steps: 1. [Create a Passcode on the CleverTap Dashboard](doc:quickreply#create-a-passcode-on-the-clevertap-dashboard) 2. [Configure CleverTap dashboard](doc:quickreply#configure-clevertap-dashboard) 3. [Set Up CleverTap Callbacks with QuickReply](doc:quickreply#set-up-clevertap-callbacks-in-quickreply) Create a Passcode on the CleverTap Dashboard [](https://docs.clevertap.com/docs/quickreply#create-a-passcode-on-the-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to its REST API. Every CleverTap API call must include Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Configure CleverTap dashboard [](https://docs.clevertap.com/docs/quickreply#configure-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard, perform the following steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the dropdown. ![Provider Setup](https://files.readme.io/e5ea73360e548e7e9e865b5c4eee5d3de38df679e2e570c832c3c3d023bfa99e-image.png) Provider Setup 3. Enter the following details: | **Field** | **Details** | | --- | --- | | Nickname | Enter a name such as `QuickReply` for reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, 918889500122) | | Request Type | Ensure the Request Type is `POST`. | | HTTP Endpoint | Enter HTTP Endpoint as the following: `https://app.quickreply.ai/integrations/api/clevertap/WHATSAPP/send-message`. | | Delivery Report Callback URL | This URL is generated automatically in the CleverTap dashboard. Share the URL with the QuickReply account manager to configure it with the WhatsApp account. Refer to [Set Up CleverTap Callbacks in QuickReply](doc:quickreply#set-up-clevertap-callbacks-in-quickreply)
. | | Inbound Message
Callback URL | This URL is generated automatically in the CleverTap dashboard. Share the URL with the QuickReply account manager to configure it with the WhatsApp account. Refer to [Set Up CleverTap Callbacks in QuickReply](doc:quickreply#set-up-clevertap-callbacks-in-quickreply)
. | 4. Add Headers from QuickReply. To do so, follow the steps to configure headers: 1. Go to _Settings_ > _CleverTap Integration_ in QuickReply Dashboard. 2. Copy the _Authorization Headers_. 3. Paste the headers into the _Header_ section in CleverTap. ![Configure Headers](https://files.readme.io/b93b1972c649d1067acbbbdaa9b099db3261ac6f521a21de3fb1c5c1ded21576-image.png) Configure Headers 5. (Optional) Select _Markthis as default_ to make this service provider the default provider for sending a WhatsApp message via QuickReply. 6. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 7. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 8. Test the integration and click **Save** to trigger a test message and automatically save your credentials. Set Up CleverTap Callbacks in QuickReply [](https://docs.clevertap.com/docs/quickreply#set-up-clevertap-callbacks-in-quickreply) ------------------------------------------------------------------------------------------------------------------------------------ To set up CleverTap callbacks with QuickReply, follow the steps below: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ from the CleverTap dashboard. You will find the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ under the _Provider Configuration_ page. 2. **Share Callback URLs with QuickReply**: Copy both URLs and the WhatsApp phone number used in CleverTap, and send them to the QuickReply Account Manager or email [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#1179747d6151606478727a6374617d683f7078) . ![Callback URLs](https://files.readme.io/33695bf450091675cae04a63f9fcdc03d5b8a0fa04c6d77d7b8b718bbdb52b6b-image.png) Callback URLs Once configured, ensure that message delivery reports and inbound messages sync correctly between CleverTap and QuickReply. > 📘 > > ### > > Message Templates > > [](https://docs.clevertap.com/docs/quickreply#message-templates) > > You have to get your templates approved on the QuickReply dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. For more information and queries about the QuickReply integration, write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#147c7178645465617d777f667164786d3a757d) > . Add Message Templates [](https://docs.clevertap.com/docs/quickreply#add-message-templates) ---------------------------------------------------------------------------------------------- To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, perform the following steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _QuickReply_ on the CleverTap dashboard. 2. Select _Templates_ and click **\+ Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/quickreply#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use a particular template name once within Phone\_1 and then again on Phone\_2. 4. Select the language in which you want to display the message. 5. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 6. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 7. Enter the message content. 8. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 9. Click **Save Template**. Test a Message Template [](https://docs.clevertap.com/docs/quickreply#test-a-message-template) -------------------------------------------------------------------------------------------------- For detailed instructions on testing a WhatsApp message template, refer to [Testing a Message Template](doc:whatsapp-message-templates#testing-a-message-template) . Create Campaign [](https://docs.clevertap.com/docs/quickreply#create-campaign) ================================================================================== For detailed instructions on creating a WhatsApp campaign using QuickReply as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) . Create a Journey [](https://docs.clevertap.com/docs/quickreply#create-a-journey) ==================================================================================== For detailed instructions on creating a WhatsApp journey using QuickReply as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Kaleyra > 🚧 > > ### > > Support For Integration > > [](https://docs.clevertap.com/docs/kaleyra#support-for-integration) > > This integration is completed by Kaleyra, and they are dedicated to maintaining and enhancing it. The CleverTap and Kaleyra integration has undergone stringent testing to ensure seamless functionality. For any support or query resolution, contact Kaleyra. Introduction [](https://docs.clevertap.com/docs/kaleyra#introduction) ========================================================================= CleverTap users can leverage the following WhatsApp capabilities of Kaleyra to communicate with their customers to: * Send just-in-time offers to customers to drive purchases * Gather feedback on the services * Keep customers informed and more Prerequisites For Integration [](https://docs.clevertap.com/docs/kaleyra#prerequisites-for-integration) =========================================================================================================== Following are the prerequisites: * WhatsApp add-on enabled on the CleverTap account in addition to the essentials price plan. * WhatsApp onboarding for the phone number to be used with CleverTap is completed. * Kaleyra WhatsApp Business API. Integrate Kaleyra with CleverTap [](https://docs.clevertap.com/docs/kaleyra#integrate-kaleyra-with-clevertap) ================================================================================================================= This process involves the following three steps: 1. [Find Kaleyra Details](doc:kaleyra#find-kaleyra-details) . 2. [Configure CleverTap Dashboard](doc:kaleyra#configure-clevertap-dashboard) . 3. [Set Up CleverTap Callbacks in Kaleyra](doc:kaleyra#set-up-clevertap-callbacks-in-kaleyra) . Find Kaleyra Details [](https://docs.clevertap.com/docs/kaleyra#find-kaleyra-details) ----------------------------------------------------------------------------------------- We recommend keeping the _API key_ and _HTTP Endpoint_ handy before starting with the configuration on the CleverTap dashboard. To do so: 1. Get the CleverTap endpoint URL from the Kaleyra support team. 2. To get the _API keys_: i. Log into your Kaleyra account. ii. From the left menu bar, click **Developers**. The _API Keys_ page appears. iii. Hover over the API key to view the _API Key_ and the _SID_. iv. Click the ellipses icon **(...)** at the right end of the API Key list and click **Edit**. ![Kaleyra API View](https://files.readme.io/5f56045-Kaleyra_API_Key_View.png) Kaleyra API View You can view the following details: * **API Name** * **Whitelisted IP Addresses**: The whitelisted IP addresses for the API Key. * **API Domain**: The base URL to send the API requests. * **SID (Security Identifier)**: Unique SID of your kaleyra account. This value is the same for all your API Keys. * **API Key**: API key details. 3. Click the copy icon next to the _API Key_ to copy the API to the clipboard. ![1144](https://files.readme.io/d0eb9bd-copy_API_key.png "Copy Kaleyra API") Kaleyra API Keys Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/kaleyra#configure-clevertap-dashboard) ----------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Provider** and _Log in to Facebook_. ![Kaleyra Provider Setup](https://files.readme.io/735ebce-Whatsapp_Common_Provider_Setup.png) Kaleyra Provider Setup 3. Enter the following details: | Field | Description | | --- | --- | | Provider | Select _Generic (Other)_ from the dropdown list. | | Nickname | Enter the nickname as _Kaleyra_ to identify the provider easily. | | WhatsApp Business Number | Enter your approved WhatsApp number with your country code.

To view the approved WhatsApp number, navigate to _Channels_ > _WhatsApp Manage_ > _Configurations_ > filter by Approved Status from Kaleyra's Dashboard.

From the Number column, copy the mobile number with the country code. | | Request Type | Ensure that the _Request Type_ is _POST_. | | HTTP End Point | Enter the CleverTap endpoint URL provided by the Kaleyra support team. | | Headers | Select _Headers_ under the _Body_ section and add the following key-value pairs:

* In the _Key_ field, enter API key, and in the _Value_ field, enter the API Key value from your Kaleyra application. To get the API Key details, refer to [View API Key and SID.](https://developers.kaleyra.io/docs/view-api-key-and-sid)

* In the _Key_ field, enter sid; in the _Value_ field, enter the SID value retrieved from your Kaleyra application. To get the sid details, refer to [View API Key and SID](https://developers.kaleyra.io/docs/view-api-key-and-sid)
.

* In the _Key_ field, enter kaleyra-host, and in the _Value_ field, enter [](https://api.kaleyra.io/)
[https://api.kaleyra.io/](https://api.kaleyra.io/)
as API domain URL from your Kaleyra application.

* In the _Key_ field, enter inbound-message-callback-url, and in the _Value_ field, copy and paste the inbound message callback URL.

* In the _Key_ field, enter delivery-report-callback-url, and in the _Value_ field, copy and paste the delivery report callback URL. | 4. To make this service provider as the default provider to send a WhatsApp message, select the _Mark this as default_ checkbox. 5. To automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard, select the _Set auto-reply for users not tracked on CleverTap_ checkbox. 6. (Optional) You can set the _Maximum Concurrent API requests_ anywhere between 30 to 1000 requests. Consider your requirement and the provider's limitations to define this value. 7. Click **Save**. Set Up CleverTap Callbacks in Kaleyra [](https://docs.clevertap.com/docs/kaleyra#set-up-clevertap-callbacks-in-kaleyra) --------------------------------------------------------------------------------------------------------------------------- > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/kaleyra#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as _Phone\_1, phone\_2_, you can use the same template name once within _Phone\_1 and Phone\_2_. CleverTap callbacks are already configured in send message API request headers. You must enable a custom callback URL provided by the Kaleyra support team. To set up the custom callback URL: 1. Log into your Kaleyra.io account. 2. Click **user profile** in the top right bar, 3. Click **Settings**. ![1366](https://files.readme.io/0e9ea95-callback1.png "Navigate to Kaleyra ") Kaleyra Settings 4. Navigate to the _Settings_ tab ![1366](https://files.readme.io/b1cb895-callback_2.png "Navigate to Settings") Settings Tab 5. In the _Enable WhatsApp Callback URLs_ field, enter the HTTP Endpoint shared by the Kaleyra Support team to configure the WhatsApp Callback. 6. Click **Save**. ![1366](https://files.readme.io/7dde791-callback_3.png "Enter the HTTP Endpoint shared by the Kaleyra Support team") Enable WhatsApp Callbacks To enable incoming messages callback URL in Kaleyra: 1. Sign in to your Kaleyra.io account. 2. On Kaleyra's dashboard page, click **Channels** from the left menu bar. The Channels page appears. 3. From the _WhatsApp_ section, click **Manage**. The WhatsApp Dashboard page appears. ![1366](https://files.readme.io/c9f1832-incoming_message_URL_1.png "Navigate to Kaleyra Dashboard") Kaleyra Dashboard 4. Click **Configurations**. The _Configurations_ page appears. ![1366](https://files.readme.io/9799147-incoming_message_URL_2.png "Navigate to Kaleyra Configurations") Kaleyra Configuration 5. Locate the number you have configured in CleverTap > Click the ellipsis > click _Edit_. The _Edit Number_ pop-up appears. ![1137](https://files.readme.io/a0bf30c-incoming_message_URL_3.png "Kaleyra Configuration") Kaleyra Configuration 6. Enter the incoming message URL provided by the Kaleyra Support team in the _Incoming URL_ field. ![437](https://files.readme.io/e3468db-incoming_message_URL_5.png "Setup Incoming Callback URL") Setup Incoming Callback URL 7. Add the following two query parameters: * ? followed by _inbound\_message\_callback\_url=_ and paste the _Inbound Message Callback URL_ from the CleverTap's Provider page. * & followed by _payload\_version=_ and then enter the Payload Version in the Body section of the CleverTap's Provider page. Find Template Details [](https://docs.clevertap.com/docs/kaleyra#find-template-details) =========================================================================================== You need to add the details of your pre-approved templates on the CleverTap dashboard. To find the details of your pre-approved templates on Kaleyra, navigate to the _Template_ section from the Kaleyra dashboard. You can replicate these pre-approved templates in CleverTap to start sending campaigns. Refer to the section below to understand how to add templates in CleverTap. Add Message Template [](https://docs.clevertap.com/docs/kaleyra#add-message-template) ========================================================================================= To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved on the CleverTap dashboard. To add the message templates: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Enter the _Provider Nickname_ in the _Search_ field. 3. Select the _Templates_ tab, and click **+Template**. ![2174](https://files.readme.io/8e0cf22-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name in the _Namespace_ field. 4. Choose the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, and _Location_. 5. You can choose to use the Limited Time Offer template for your message. For more information, refer to [Limited Time Offer Template](https://docs.clevertap.com/docs/whatsapp-message-templates#limited-time-offer-templates) . 6. Enter the message content. 7. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). 8. Select the _Language_ in which you want to display the message. ![2036](https://files.readme.io/05f7706-whatsapp_template_addition.png "Define Template Content") Define Template Content 7. Click **Save Template**. Test Message Template [](https://docs.clevertap.com/docs/kaleyra#test-message-template) =========================================================================================== You can send a test message using the saved templates from the CleverTap dashboard as follows: 1. Right-click the ellipsis below the template. 2. Click **Send Test WhatsApp**. 3. Select the test profiles or manually enter the mobile number to whom you want to send the message and click **Send Test**. ![1304](https://files.readme.io/fbf00f7-test_template.png "Test a Message Template") Test a Message Template The success or failure response appears on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Kaleyra team to debug the issue, as shown in the following figure: ![Screen shows the format of a successful delivery response after sending a WhatsApp Message](https://files.readme.io/2fc576b-Whatsapp_Infobip_send_test.png "Successful Delivery Response") Successful Delivery Response Create Campaign [](https://docs.clevertap.com/docs/kaleyra#create-campaign) =============================================================================== To create a WhatsApp campaign using Kaleyra as the provider, refer to [Create a WhatsApp Campaign](doc:create-message-whatsapp) . Creating a Journey [](https://docs.clevertap.com/docs/kaleyra#creating-a-journey) ===================================================================================== To create a WhatsApp journey using Kaleyra as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Times Mobile Introduction [](https://docs.clevertap.com/docs/times-mobile#introduction) ============================================================================== Times Mobile(part of Times Internet Limited) is a leading communication platform that empowers businesses to connect with their users through SMS channels. This document highlights the integration of CleverTap and Times Mobile, empowering businesses to elevate their SMS communication using Times Mobile's infrastructure. CleverTap's integration with Times Mobile facilitates sending bulk SMS campaigns, receiving real-time delivery updates, and automating personalized texts for your sales and marketing engagement using Times Internet's auto-scalable infrastructure. For any queries or further assistance, contact [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#691a1c1919061b1d291d00040c1a04060b00050c470007) . Prerequisities for Integration [](https://docs.clevertap.com/docs/times-mobile#prerequisities-for-integration) ================================================================================================================== Before you begin with integration, ensure you have: * A CleverTap account with SMS setup enabled. * A Times Mobile SMS account with respective SMS Push API details. * The DLT-approved information, including templates and headers, if your account region is in India. Times Mobile Setup [](https://docs.clevertap.com/docs/times-mobile#times-mobile-setup) ========================================================================================== This process involves the following three significant steps: 1. [Configure Times Mobile dashboard](doc:times-internet#configure-times-internet-dashboard) . 2. [Add Times Mobile details to CleverTap dashboard](doc:times-internet#configure-clevertap-dashboard) . 3. [Send a test SMS](doc:times-internet#configure-clevertap-dashboard) . Configure Times Mobile Dashboard [](https://docs.clevertap.com/docs/times-mobile#configure-times-mobile-dashboard) ---------------------------------------------------------------------------------------------------------------------- Configuring the Times Mobile dashboard involves the following steps: obtaining SMS Push API credentials and setting up the CleverTap DLR Callback webhook. To configure the Times Mobile dashboard: 1. Log in to the Times Mobile Dashboard using your credentials. ![](https://files.readme.io/ce13378-Times_Internet_.png) 2. Navigate to _Sender ID Management_ > _Request Sender_ and click **Request For Sender** to request a new sender ID. 3. Enter the following DLT-approved header details: **Sender Name**, **Account Type** (either trans or pro), and **DLT Principal Entity Id**. **Sender Name** should be six characters or digits as per your account type. ![Configure Sender IDs ](https://files.readme.io/8dae093-Times_Internet_Request_Sender.png) Configure Sender IDs 4. After adding the header details, click **Create Sender Request** to create the sender request. 5. Navigate to _Bulk SMS_ > _HTTP_ from the Times Mobile dashboard to access your SMS Push API credentials. These credentials are required for configuration within the CleverTap platform. CleverTap recommends keeping these credentials handy before configuring them on the CleverTap dashboard. ![Configure CleverTap DLR Callback Webhook](https://files.readme.io/3d80859-SMS_Push_Credentials-_Times_internet.png) Obtain SMS Push API Credentials 6. Click **Username** > **Profile** from the Times Mobile Dashboard. 7. Under the **Delivery Report Post Back URL** section, configure the CleverTap DLR Callback Webhook for real-time SMS delivery updates. For more information, refer to the callback URL column in the [Configure CleverTap Dashboard](doc:times-internet#configure-clevertap-dashboard) section. ![Obtain SMS Push API Credentials](https://files.readme.io/a12ee6f-Times_Internet-_Delivery_Report_Post_Back_URL.png) Configure CleverTap DLR Callback Webhook If you encounter any issues while configuring, contact [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#1b686e6b6b74696f5b6f72767e6876747972777e357275) for further assistance. Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/times-mobile#configure-clevertap-dashboard) ---------------------------------------------------------------------------------------------------------------- To add Times Mobile details on the CleverTap dashboard: 1. From the CleverTap Dashboard, navigate to _Settings_ > _Engage_ > _Channels_ > _SMS_. 2. Click **+Add Provider**. The _Add SMS Provider_ page opens. ![Add SMS Provider](https://files.readme.io/090cf81-SMS_Add_Provider.png) Add SMS Provider 3. Select the _Setup_ tab and enter the following details: | Field | Description | | --- | --- | | _Provider_ | Select _Other(Generic)_ from the dropdown list. | | * _Nickname_ | Uniquely identifies the provider. | | * _Callback URL_ | Enter the callback URL with Times Mobile to post or update the Message Delivery Status to CleverTap. | | _Request Type_ | Select _GET_ or _POST_ based on the HTTP endpoint. | | _HTTP Endpoint_ | Enter the Times Mobile SMS Push endpoint along with its respective credentials. | | _Authentication_ | Select from the following authentication types:

* No Authentication\_ : For GET\_ endpoint, select this option.
* _Basic Authentication_ : For _POST_ endpoint, select this option. Also, provide Times Mobile API _Username_ and _Password_ details.
* _OAuth 2.0_: Enter client URL, client ID, secret key, and key-value pairs (optional). | | _Parameters_ | Select _x-www-form-unlenencoded_ or _JSON_ for _Type_ column.
For the _POST_ endpoint, select _JSON_ and enter the JSON payload structure. This field appears when you select _POST_ in the _Request Type_ column.
POST endpoint: `https://bsms.timesapi.in/ct/api/v1/message`
For more information, refer to the following:

* [Get endpoint](https://bsms.timesapi.in/ct/api/v1/send?username=%3Capiusername%3E&password=%3Capipassword%3E&unicode=false&from=%3Csenderid%3E&to=$$To&text=$$Body&dltContentId=$$TemplateID&corelationid=$$MessageID)

* [Post endpoint](https://bsms.timesapi.in/ct/api/v1/message)

* [Sample Payload](doc:times-internet#set-up-message-payload) | | _Headers_ | For the _POST_ endpoint, enter the following key-value pairs:

1. _Key_: Content-Type \| _Value_: application/JSON
2. _Key_: Accept \| _Value_: application/JSON | | _Custom Key-value pairs in campaign_ | Select this option to pass custom key-value pairs when sending your campaigns. | | _Mark this as default_ | Select _Mark this as default_ to make this SMS provider the default provider to send the SMS. | **\*The fields marked with asterisk mark (\*) are mandatory fields.** ![Add Times Internet as an SMS Provider](https://files.readme.io/7946b37-Times_Internet_Provider.png) Add Times Mobile as an SMS Provider 4. Click **Save** to save the details. Send a Test SMS [](https://docs.clevertap.com/docs/times-mobile#send-a-test-sms) ------------------------------------------------------------------------------------ To ensure that the integration is successful, send a test SMS as follows: 1. Click the _Send Test SMS_ option before creating SMS campaigns and journeys. 2. Enter the following details: * _Country Code_ and _Mobile Number_: Enter the country code and mobile number you want to send the message to. * _Message_: This is a test message. ![Send a Test SMS](https://files.readme.io/8543b05-Send_a_Test_SMS_.png) Send a Test SMS 3. Click **Send Test** to send the test campaign. Times Mobile Callbacks [](https://docs.clevertap.com/docs/times-mobile#times-mobile-callbacks) ================================================================================================== In the default setup, Times Mobile sends the information to CleverTap's callback URL as follows: 1. CleverTap generates the callback that customers need to set up on the Times Mobile dashboard. 2. TimesInternet sends the callback directly to CleverTap on the default URL. 3. CleverTap processes the callback. Upon receiving callbacks from Times Mobile, the comprehensive stats are displayed on the CleverTap dashboard. For more information, refer to the [Stats](doc:times-internet#stats) section. Set Up Message Payload [](https://docs.clevertap.com/docs/times-mobile#set-up-message-payload) -------------------------------------------------------------------------------------------------- This section provides information about the sample request payload sent to SMS providers. Stats [](https://docs.clevertap.com/docs/times-mobile#stats) ================================================================ CleverTap displays comprehensive stats such as Errors, Delivered, Clicked, and CTRs upon receiving callbacks from Times Mobile. After setting up the provider on the CleverTap dashboard, you can view these statistics from the following pages on the CleverTap dashboard: * For [SMS Stats](https://docs.clevertap.com/docs/sms-stats) , select the _Stats_ tab of the Campaigns. * For [Provider Stats](https://docs.clevertap.com/docs/sms-provider-operations) , select the _Stats_ tab under _Provider_ setup. Troubleshooting [](https://docs.clevertap.com/docs/times-mobile#troubleshooting) ==================================================================================== If you encounter issues when sending test messages or saving the configuration, check that the Times Mobile endpoint and parameters are correctly added. Endpoints are case-sensitive. If the issue persists, raise a support ticket with the CleverTap team to obtain error codes. Once you have the error codes, connect with the [Times Mobile Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#92e1e7e2e2fde0e6d2e6fbfff7e1fffdf0fbfef7bcfbfc) team. Frequently Asked Questions (FAQs) [](https://docs.clevertap.com/docs/times-mobile#frequently-asked-questions-faqs) ====================================================================================================================== Explore the FAQs for comprehensive insights and answers to common queries. ### Where can I check DLT guidelines for sending service/promotional SMS? [](https://docs.clevertap.com/docs/times-mobile#where-can-i-check-dlt-guidelines-for-sending-servicepromotional-sms) A. You can check the DLT guidelines for sending service/promotional SMS [here](https://docs.timesmobile.in/cpaas/DLT.pdf) . ### What are DLT-approved SMS templates, and what is the approval process? [](https://docs.clevertap.com/docs/times-mobile#what-are-dlt-approved-sms-templates-and-what-is-the-approval-process) A. You can find more details about DLT-approved SMS Templates [here](https://docs.timesmobile.in/cpaas/DLT.pdf) . ### What is a DLT-approved Header/Sender ID, and how do you get it approved? [](https://docs.clevertap.com/docs/times-mobile#what-is-a-dlt-approved-headersender-id-and-how-do-you-get-it-approved) A. You can find more details about DLT-approved Header/Sender ID [here](https://docs.timesmobile.in/cpaas/DLT.pdf) . Updated about 2 months ago * * * Ask AI --- # DataChannel Overview [](https://docs.clevertap.com/docs/datachannel#overview) ===================================================================== [DataChannel](https://www.datachannel.co/) is a cloud-based ETL platform that allows businesses to integrate and load data from various sources, such as CleverTap, into data warehouses such as Amazon Redshift, Google BigQuery, or Snowflake. With CleverTap and DataChannel integration, you can: * **360-Degree Customer View**: Sync CleverTap [user profiles](https://developer.clevertap.com/docs/concepts-user-profiles) (demographics, preferences, activity) with a data warehouse to unify customer data across multiple sources for better personalization. * **Behavioral Analytics & Funnel Optimization**: Export CleverTap [event data](https://developer.clevertap.com/docs/events) (app visits, purchases, drop-offs) to analyze user journeys, identify friction points, and optimize conversion funnels. * **Cross-Channel Attribution & Campaign Performance**: Merge CleverTap events (email opens, push notifications, in-app actions) with CRM and ad platform data to measure marketing impact and refine targeting. This powerful combination boosts customer engagement and drives impactful marketing and business results. Prerequisites for Integration [](https://docs.clevertap.com/docs/datachannel#prerequisites-for-integration) =============================================================================================================== The following are the prerequisites: * Ensure you have a DataChannel account. * Ensure you have a destination data warehouse (for example, Amazon Redshift, Google BigQuery, Snowflake) set up and accessible in DataChannel account. * Ensure you have a CleverTap account with a valid **Account ID**, **Passcode**, and **Region**. > 🚧 > > ### > > Support For Integration > > [](https://docs.clevertap.com/docs/datachannel#support-for-integration) > > This integration is managed and continuously improved by DataChannel. The CleverTap and DataChannel integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [DataChannel](https://www.datachannel.co/contact-us) > for support and resolution. Integrate DataChannel with CleverTap [](https://docs.clevertap.com/docs/datachannel#integrate-datachannel-with-clevertap) ============================================================================================================================= This process involves the following three major steps: 1. [Add CleverTap as a Source on DataChannel](doc:datachannel#add-clevertap-as-a-source-on-datachannel) 2. [Configure the Data Warehouse as a Destination on DataChannel](doc:datachannel#configure-the-data-warehouse-as-destination-on-datachannel) 3. [Create and Configure Data Pipelines](doc:datachannel#create-and-configure-data-pipelines) Add CleverTap as a Source on DataChannel [](https://docs.clevertap.com/docs/datachannel#add-clevertap-as-a-source-on-datachannel) ------------------------------------------------------------------------------------------------------------------------------------- To add CleverTap as a source in DataChannel for exporting data from CleverTap to Datachannel: 1. Go to _Exporte Connections_ from your DataChannel dashboard and search for _CleverTap_. 2. Click ![Edit Icon](https://files.readme.io/074d4735641e94db6a3a89bc2572d8d54d34ddf42f2fb15d4acf6afd45673103-2025-02-20_13-52-51.png) icon to create a new pipeline. ![Add CleverTap as a Source on DataChannel](https://files.readme.io/1aae59765891469cd4c260657ca8e8616271c70b17ea2a13b9f53fac98d590a4-image.png) Add CleverTap as a Source on DataChannel 3. Enter the following details: | Field | Description | | --- | --- | | Account ID | Locate the Project ID under _Settings_ > _Project_ from the CleverTap dashboard. | | Account Passcode | Locate the Passcode under _Settings_ > _Project_ from the CleverTap dashboard. For more information, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode)
. | | Region | Locate _Region_ for the API endpoint you want to select under _Settings_ > _Project_. To find the API endpoint for your region, refer to [API endpoints based on your data center region](https://developer.clevertap.com/docs/idc#api)
. | ![Connect CleverTap as a source](https://files.readme.io/063fc3d08049f1c072dcf87d0faf6381228639e2ac24713a98de1721b4281247-image.png) Connect CleverTap as a source 4. Click **Save** to add CleverTap as a source once the connection is verified. Configure the Data Warehouse as Destination on DataChannel [](https://docs.clevertap.com/docs/datachannel#configure-the-data-warehouse-as-destination-on-datachannel) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- After adding CleverTap as a source, configure the [data warehouse](https://docs.datachannel.co/getting-started/1.0.0/applications/cloud_application/clevertap/setup.html) to store the extracted data from CleverTap. To do so, follow these steps: > ❗️ > > ### > > Data Warehouse selection > > [](https://docs.clevertap.com/docs/datachannel#data-warehouse-selection) > > Data Warehouse once selected cannot be changed. 1. Navigate to the _Connect Your DataSource_ section in DataChannel. 2. Select your preferred Data Warehouse from the available options (for example, [Amazon Redshift](https://docs.datachannel.co/getting-started/1.0.0/destinations/redshift.html) , [Google BigQuery](https://docs.datachannel.co/getting-started/1.0.0/destinations/bigquery.html) , [Snowflake](https://docs.datachannel.co/getting-started/1.0.0/destinations/snowflake.html) , [Azure Synapse](https://docs.datachannel.co/getting-started/1.0.0/destinations/azure-synapse.html) , and [MySQL](https://docs.datachannel.co/getting-started/1.0.0/destinations/mysql.html) ). ![Connect DataSource](https://files.readme.io/c0c8f8b7d9147c7ff513b9ec5481c2eb74c9f28ff749a441d6e3dd4de4e2ad64-image.png) Connect DataSource 3. Add your data warehouse as a destination by providing the required connection details and click **Continue**. Create and Configure Data Pipelines [](https://docs.clevertap.com/docs/datachannel#create-and-configure-data-pipelines) --------------------------------------------------------------------------------------------------------------------------- Once CleverTap is connected and the data warehouse is set up, configure data pipelines to determine what data should be extracted from CleverTap and sent to the data warehouse. Considering a use case to create and configure data pipelines: **Tracking User Engagement Trends:** To illustrate the process, consider a business that wants to track daily user engagement trends from CleverTap and store them in [Google BigQuery](https://docs.datachannel.co/getting-started/1.0.0/destinations/bigquery.html) for analysis. To do so, follow these steps: 1. Define Data Sources: Select a data pipeline that suits your use case, and refer to [List of Available](https://docs.datachannel.co/getting-started/1.0.0/applications/cloud_application/clevertap/pipelines.html) . In this use case, we will select **[Trend Analysis - Daily](https://docs.datachannel.co/getting-started/1.0.0/applications/cloud_application/clevertap/pipelines/trend-analysis-daily.html) ** to track daily user engagement trends from CleverTap ![Define Data Sources](https://files.readme.io/bf6407952e653d3789c78c26b0fa1e57074660824aa8e4a8ae02ab859cc1fccf-Screen_Recording_2025-01-07_at_3.46.27_PM_1.gif) Define Data Sources 2. Report Details Configuration: This pipeline can be used to request and retrieve the details of user events from CleverTap. Enter the following details: | **Parameters** | **Description** | | --- | --- | | Event Name | The event type needed includes both standard and custom events. | | Number of Days | The number of days for which you wish to get the data in each run. | | Insert Mode | UPSERT will insert only new records or records with changes; APPEND will insert all fetched data at the end; REPLACE will drop the existing table and recreate a fresh one. | ![Report Details Configuration](https://files.readme.io/e1c709d9f4d022f864ec970f07b65a357642e0b27f43234166a776ccfe92465f-image.png) Report Details Configuration 3. [Schedule Data Sync](https://docs.datachannel.co/getting-started/1.0.0/set-up/scheduling.html) : Choose a schedule for running the data pipeline: * [Manual Run](https://docs.datachannel.co/getting-started/1.0.0/set-up/scheduling.html#_manual_run) : Manually trigger the pipeline whenever required. * [Scheduled Run](https://docs.datachannel.co/getting-started/1.0.0/set-up/scheduling.html#_scheduled_run) : Select a predefined schedule from the dropdown options. ![Schedule Data Sync](https://files.readme.io/91aff1bc2a0fd6ef0dc09200a5015ba49e871fda995caa4ab49d27eb8ca714ee-image.png) Schedule Data Sync 4. [Entering Dataset Details](https://docs.datachannel.co/getting-started/1.0.0/set-up/naming_syncs.html) : 1. Provide a Name for the dataset. 2. (Optionally) Add a Description for better identification. 3. Check mark the _Run after save_ to save the integration. ![Finalize Setup](https://files.readme.io/4bd7cbae70657595fb0dd625366b8d83dcc578850617ff3f662e1b80ec129a6b-Screenshot_2025-01-07_at_4.28.32_PM.png) Finalize Setup 5. Click **Submit** to finalize the setup and run the data export. 6. Select _Numbers of Runs_ to monitor the pipeline and check the status of your pipeline in the dashboard. The statuses include: * Running * Successful * Error (if there are issues) ![Monitor the pipeline](https://files.readme.io/a047673546c5bc35b97183fedd7a64caf7291d78ed78e6696ac5927d2e07f92a-image.png) Monitor the Pipeline 7. Select _Data Preview_ to preview the data once the pipeline has successfully run. ![Data Preview](https://files.readme.io/58f48d341c6547bd17ad9d0b1429ce790815d4f07f37c45778564a186a751fd9-image.png) Data Preview FAQs [](https://docs.clevertap.com/docs/datachannel#faqs) ============================================================= ### What should I do if my data is not syncing properly? [](https://docs.clevertap.com/docs/datachannel#what-should-i-do-if-my-data-is-not-syncing-properly) If your data is not syncing, try the following steps: 1. **Check Pipeline Status** – Ensure the data pipeline is active. 2. **Verify Destination Setup** – Confirm that the data warehouse is correctly configured. 3. **Review Logs** – Check logs in DataChannel for errors or failures. 4. **Confirm API Access** – Make sure CleverTap API access is enabled. 5. **Check Sync Schedule** – Ensure the pipeline is running at the scheduled time. If the issue persists, contact **[DataChannel Support](https://www.datachannel.co/contact-us) ** for assistance. Updated about 2 months ago * * * Ask AI --- # Pingbix Overview [](https://docs.clevertap.com/docs/pingbix#overview) ================================================================= [Pingbix](https://pingbix.com/) is a WhatsApp Business Service Provider (BSP) that helps businesses automate and scale customer communication through WhatsApp. It supports features such as campaign management, real-time delivery tracking, and secure message routing via WhatsApp’s Cloud API. When integrated with CleverTap, Pingbix enables you to do the following: * Track message delivery via Pingbix’s callback system. * Combine WhatsApp messaging with CleverTap’s segmentation and personalization. * Use pre-approved templates for transactional and promotional campaigns. * Send WhatsApp messages directly from the CleverTap dashboard. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/pingbix#support-for-integration) > > This integration is managed and continuously improved by Pingbix. The CleverTap and Pingbix integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Pingbix](https://pingbix.com/contact) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/pingbix#prerequisites-for-integration) =========================================================================================================== Check that you have the following: * WhatsApp Campaigns feature is enabled on your CleverTap account. * Active Pingbix WABA (WhatsApp Business Account) credentials. * Pingbix API key and message delivery callback URLs. Integrate Pingbix with CleverTap [](https://docs.clevertap.com/docs/pingbix#integrate-pingbix-with-clevertap) ================================================================================================================= This process involves the following two steps: 1. [Configure CleverTap Dashboard](doc:pingbix#configure-clevertap-dashboard) 2. [Set Up CleverTap Callbacks in Pingbix](doc:pingbix#set-up-clevertap-callbacks-in-pingbix) Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/pingbix#configure-clevertap-dashboard) ----------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard for Pingbix: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the _Provider_ list. ![Provider Setup](https://files.readme.io/885f26f7e2110aab22dd2bda2eba90bc4c3e187863d865a407301bc495da3a4d-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Nickname | Enter the nickname as Pingbix or the `<10-digit phone number>` for easy reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, +918889500122) | | HTTP End Point | Paste the URL received from the Pingbix team.
Check that the URL is in HTTPS format, that is, your URL must begin with **https://**. | | Request Type | Ensure the Request Type is _POST_. | | Headers | Click **Header**
Enter the first key name as a user and enter the user value received from Pingbix.
Enter the second key name as the password, and enter the value received from Pingbix. | | Delivery Report Callback URL | This URL is generated automatically on the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in Pingbix](doc:pingbix#set-up-clevertap-callbacks-in-pingbix)
. | | Inbound Message
Callback URL | This URL is generated automatically in the CleverTap dashboard. Refer to [Set Up CleverTap Callbacks in Pingbix](doc:pingbix#set-up-clevertap-callbacks-in-pingbix)
. | 4. (Optional) Select _Mark this as default_ to make Pingbix as the default provider when sending a WhatsApp messages. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to a WhatsApp message from users not tracked on the CleverTap dashboard. 6. (Optional) Set the _Maximum Concurrent API requests_ to any value between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. 7. Send a Test WhatsApp notification to verify if the configuration is successful. ![Send a test message on whatsapp](https://files.readme.io/8218fbb75f9546083d2e6bdcfdd5ad32895514885569383c9ec157e337176e2d-image.png) Send a Test Message on WhatsApp Set Up CleverTap Callbacks in Pingbix [](https://docs.clevertap.com/docs/pingbix#set-up-clevertap-callbacks-in-pingbix) --------------------------------------------------------------------------------------------------------------------------- To set up CleverTap callbacks in Pingbix, follow the steps below: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Pingbix_ from the CleverTap dashboard. You will find the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ under the _Provider Configuration_ page. 2. **Share Callback URLs with Pingbix team**: Copy the Delivery and Inbound report callback URLs and send them to the Pingbix WhatsApp support team for configuration. ![Callback URLs](https://files.readme.io/17b2d251719811d51b3ba0ae7173be50be62ca9e7e716c2c445c2c6ed21362fb-image.png) Callback URLs Once configured, these webhooks ensure that message delivery reports and inbound messages sync correctly between CleverTap and Pingbix. > 📘 > > ### > > Note: > > [](https://docs.clevertap.com/docs/pingbix#note) > > Your templates must be approved on the Pingbix dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. For more information and queries about the Pingbix integration, write to [Pingbix Support](https://pingbix.com/contact) > . Adding Message Templates [](https://docs.clevertap.com/docs/pingbix#adding-message-templates) ------------------------------------------------------------------------------------------------- To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, follow these steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ in the CleverTap dashboard. 2. Select the _Templates_ option and click **+Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 3. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/pingbix#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use the particular template name once within Phone\_1 and Phone\_2. 4. You can also choose the language in which you will display the message. 5. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 6. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 7. Enter the message content. 8. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 9. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/pingbix#testing-a-message-template) ----------------------------------------------------------------------------------------------------- For detailed instructions on testing a WhatsApp message template, refer to [Testing a Message Template](doc:whatsapp-message-templates#testing-a-message-template) . Create Campaign [](https://docs.clevertap.com/docs/pingbix#create-campaign) ------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp campaign using Pingbix as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) . Creating a Journey [](https://docs.clevertap.com/docs/pingbix#creating-a-journey) ------------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp journey using Pingbix as the provider, refer to [Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Infobip Introduction [](https://docs.clevertap.com/docs/infobip#introduction) ========================================================================= CleverTap users can now leverage the WhatsApp capabilities of Infobip to communicate with their customers: * Sending just-in-time offers to customers to drive purchases * Gathering feedback about services * Keeping customers informed and more > 🚧 > > ### > > Support For Integration > > [](https://docs.clevertap.com/docs/infobip#support-for-integration) > > This integration is completed by Infobip, and they are dedicated to maintaining and enhancing it. The CleverTap and Infobip integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact Infobip for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/infobip#prerequisites-for-integration) =========================================================================================================== The following are the prerequisites: * You must enable a WhatsApp Connect add-on on the Clevertap account in addition to the essentials price plan. * The WhatsApp onboarding must be completed for the phone number to be used with CleverTap. * You must have Infobip's user credentials. * The Infobip API endpoint - _[https://clevertap-whatsapp.ibintegrations.com/api/sendmessage](https://clevertap-whatsapp.ibintegrations.com/api/sendmessage) _. Integrate Infobip with CleverTap [](https://docs.clevertap.com/docs/infobip#integrate-infobip-with-clevertap) ================================================================================================================= This process involves the following three steps: 1. [Find Infobip Details](https://docs.clevertap.com/docs/infobip#find-infobip-details) . 2. [Configure CleverTap Dashboard](https://docs.clevertap.com/docs/infobip#configure-clevertap-dashboard) . 3. [Set Up CleverTap callbacks in Infobip](https://docs.clevertap.com/docs/infobip#set-up-clevertap-callbacks-in-infobip) . Find Infobip Details [](https://docs.clevertap.com/docs/infobip#find-infobip-details) ----------------------------------------------------------------------------------------- We recommend that you keep the _API endpoint_ and _Login Credentials_ handy before starting with the configuration on the CleverTap dashboard: To find these credentials: 1. Navigate to your Infobip dashboard. 2. [Create a new user](https://www.infobip.com/docs/essentials/manage-users#create-a-user) from _Account_ > _User profile_. We recommend creating a separate user for the Infobip-CleverTap WhatsApp integration. Use these user credentials to authenticate the [Infobip API](https://clevertap-whatsapp.ibintegrations.com/api/sendmessage) and provide basic authentication on the CleverTap dashboard. For more information about user management, refer to [Manage Infobip Users](https://www.infobip.com/docs/essentials/manage-users) . ![The New User screen on the Infobip dashboard to create a new user ](https://files.readme.io/5c05b2b-Whatsapp_Infobip_create_user.png "Create a New User") Infobip Dashboard 3. Navigate to _Channels and Numbers_ > _WhatsApp_ > _Senders_ tab to find the WhatsApp number. 4. Copy the WhatsApp phone number and keep it handy for further use. ![The sender tab on the Infobip dashboard shows the WhatsApp Number](https://files.readme.io/778ac61-Whatsapp_Infobip_phone_number.png "Copy WhatsApp Phone Number") Copy WhatsApp Phone Number Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/infobip#configure-clevertap-dashboard) ----------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and _Login to Facebook._ ![Add a WhatsApp Provider](https://files.readme.io/29282ee-Whatsapp_Common_Provider_Setup.png) Add a WhatsApp Provider 3. Enter the following details: | Field | Description | | --- | --- | | Provider | Select _Other (Generic)_ from the dropdown list. | | Nickname | Enter the nickname as _Infobip_ or Infobip <10-digit phone number> for easy reference. | | Mobile Number | Enter your phone number onboarded to WhatsApp API by Infobip. | | Request Type | Ensure the Request Type is _Post_. | | HTTP Endpoint | Enter HTTP Endpoint as the following: _[https://clevertap-whatsapp.ibintegrations.com/api/sendmessage](https://clevertap-whatsapp.ibintegrations.com/api/sendmessage)
_ | | Authentication | Select _Basic Authentication_ and enter the _Username_ and _Password_ for the user. | | Delivery Report Callback URL | This URL is generated automatically. Share the URL with your Infobip account manager. | | Inbound Message Callback URL | This URL is generated automatically. Share the URL with your Infobip account manager. | 4. (Optional) Select _Mark this as default_ to make this service provider the default provider to send a WhatsApp message. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) You can set the _Maximum Concurrent API requests_ anywhere between 30 to 1000 requests. Consider your requirement and the provider's limitations to define this value. 7. Click **Save** to save the details. Set Up CleverTap Callbacks in Infobip [](https://docs.clevertap.com/docs/infobip#set-up-clevertap-callbacks-in-infobip) --------------------------------------------------------------------------------------------------------------------------- You can find the Callback URLs on the CleverTap dashboard under the Provider _Setup_ page. Naviagte to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ >_Infobip_. To set up the CleverTap callbacks, share the following with your Infobip account manager: * Delivery Report Callback URL * Inbound Message Callback URL * The WhatsApp phone number that will be used in CleverTap ![Callback URLs](https://files.readme.io/b61e35f-Whatsapp_provider_credentials.png) Callback URLs Find or Create Templates [](https://docs.clevertap.com/docs/infobip#find-or-create-templates) ================================================================================================= You can find or create WhatsApp templates from the Infobip dashboard. To do so: 1. Navigate to _Channels and Numbers_ from the left menu as shown below: ![Screen shows the WhatsApp Tile that must be clicked to configure WhatsApp details on Infobip](https://files.readme.io/9169034-Whatsapp_Infobip_Integration.png "Set up WhatsApp on Infobip") Set up WhatsApp on Infobip 2. Select _WhatsApp_ and click the _Senders_ tab. 3. From the _Action_ menu, click **View Templates.** ![Screen shows the hamburger action menu on the sender tab. Click menu to show the view templates and edit configuration options](https://files.readme.io/62a8cd2-Whatsapp_Infobip_view_template.png "View WhatsApp Templates") View WhatsApp Templates 3. From the list of templates, search for your template. Expand the template that you want to save in the CleverTap Dashboard. ![Screen shows a list of available templates. Click the expand icon to expand the required template](https://files.readme.io/16fd59e-Whatsapp_Infobip_sample_template_list.png "Expand WhatsApp Template") Expand a WhatsApp Template 4. Export and save the template on your machine. ![Screen shows how to expand, select and export a WhatsApp Template and save it on your local machine](https://files.readme.io/e8125e5-Whatsapp_Infobip_export_template.png "Export WhatsApp Template") Export WhatsApp Template > 📘 > > ### > > Exporting a Template > > [](https://docs.clevertap.com/docs/infobip#exporting-a-template) > > The Infobip dashboard does not display all the details for the selected template. We recommend exporting the template and keeping the details handy. You can copy and paste the values from the exported template to the CleverTap dashboard to ensure you are not missing any field. For more information, refer to [Adding a WhatsApp Template in CleverTap](doc:infobip#adding-message-template) > . Add Message Template [](https://docs.clevertap.com/docs/infobip#add-message-template) ========================================================================================= > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/infobip#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as _Phone\_1, phone\_2_, you can use the same template name once within _Phone\_1 and Phone\_2_. To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the message templates: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ >_Provider Nickname_ from the CleverTap dashboard. 2. Select the _Templates_ option, and click **+Template**. ![The screen shows multiple pre-approved message templates for WhatsApp](https://files.readme.io/66956a6-non_CT_approved_templates.jpg "Pre-Approved Message Templates") Add Pre-Approved Message Template 3. Enter the template name in the _Namespace_ field. 4. Choose the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, and _Location_. 5. You can choose to use the Limited Time Offer template for your message. For more information, refer to [Limited Time Offer Template](https://docs.clevertap.com/docs/whatsapp-message-templates#limited-time-offer-templates) . 6. Enter the message content. 7. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). 8. Select the _Language_ in which you want to display the message. ![Define Template content for Infobip](https://files.readme.io/2939b98-Generic_template_create.jpg) Define Template Content 7. Click **Save Template**. Test a Message Template [](https://docs.clevertap.com/docs/infobip#test-a-message-template) =============================================================================================== You can send a test message using the saved templates from the CleverTap dashboard as follows: 1. Right-click the ellipsis below the template. 2. Click _Send Test_. 3. Select the test profiles or manually enter the mobile number to whom you want to send the test message and click **Send Test**. ![Screen shows how to preview and test a WhatsApp message from the CleverTap dashboard](https://files.readme.io/fbf00f7-test_template.png "Test WhatsApp Message") Test WhatsApp Message The success or failure response is displayed on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Infobip team to debug the issue, as shown in the following figure: ![Screen shows the format of a successful delivery response after sending a WhatsApp Message](https://files.readme.io/2fc576b-Whatsapp_Infobip_send_test.png "Successful Delivery Response") Successful Delivery Response Create Campaign [](https://docs.clevertap.com/docs/infobip#create-campaign) =============================================================================== To create a WhatsApp campaign using Infobip as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) for detailed instructions. Creating a Journey [](https://docs.clevertap.com/docs/infobip#creating-a-journey) ===================================================================================== To create a WhatsApp journey using Infobip as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) for detailed instructions. Updated about 2 months ago * * * Ask AI --- # MSG91 Overview [](https://docs.clevertap.com/docs/msg91-whatsapp#overview) ======================================================================== [MSG91](https://msg91.com/in) offers robust WhatsApp messaging solutions that enable businesses to engage with customers through rich media messages, feedback collection, and automated processes. By integrating MSG91 with CleverTap, you can enhance your customer communication strategies by: * Sending engaging carousels and interactive messages to deliver dynamic content to captivate your audience. * Collecting valuable customer feedback to gain insights to improve your services. * Building automated flows and enabling seamless payment processes to streamline operations and enhance user experience. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/msg91-whatsapp#support-for-integration) > > This integration is managed and continuously improved by MSG91. The CleverTap and MSG91 integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [MSG91](https://docs.clevertap.com/cdn-cgi/l/email-protection#394a4c4949564b4d79544a5e0008175a5654) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/msg91-whatsapp#prerequisites-for-integration) ================================================================================================================== The following are the prerequisites: * You must have WhatsApp add-on enabled on the CleverTap account in addition to the Basic or Essentials Plan. * Ensure that WhatsApp onboarding for the phone number to be used with CleverTap is completed. If you want to activate a new phone number with WhatsApp Business API via MSG91, contact your Account Manager or send an email to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#473726353329223534072a34207e766924282a) . * Ensure that you have the API URL and credentials from MSG91. Integrate MSG91 with CleverTap [](https://docs.clevertap.com/docs/msg91-whatsapp#integrate-msg91-with-clevertap) ==================================================================================================================== This process involves the following two steps: 1. [Configure CleverTap Dashboard](doc:msg91-whatsapp#configure-clevertap-dashboard) . 2. [Set Up CleverTap Callbacks in MSG91](doc:msg91-whatsapp#set-up-clevertap-callbacks-in-msg91) . Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/msg91-whatsapp#configure-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------ To configure the CleverTap dashboard: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select _Generic (Other)_ from the dropdown. ![Provider Setup](https://files.readme.io/885f26f7e2110aab22dd2bda2eba90bc4c3e187863d865a407301bc495da3a4d-image.png) Provider Setup 3. Enter the following details: | Field | Details | | --- | --- | | Nickname | Enter the nickname as _MSG91_ or MSG91 <10-digit phone number> for easy reference. | | Mobile Number | Add your WhatsApp Integrated number with country code (for example, 918889500122) | | Request Type | Ensure the Request Type is _POST_. | | HTTP End Point | Enter HTTP Endpoint as the following:[https://api.msg91.com/api/v5/whatsapp//outbound/clevertap/](https://api.msg91.com/api/v5/whatsapp//outbound/clevertap/) | | Authentication | Select Basic Authentication and enter the Username of your MSG91 account. | 4. (Optional) Select _Mark this as default to make this service provider the default provider_ to send a WhatsApp message via MSG91. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) Set the _Maximum Concurrent API requests_ between 30 and 1000. Consider your requirements and the provider's limitations when defining this value. Set Up CleverTap Callbacks in MSG91 [](https://docs.clevertap.com/docs/msg91-whatsapp#set-up-clevertap-callbacks-in-msg91) ------------------------------------------------------------------------------------------------------------------------------ To set up CleverTap callbacks in MSG91, follow the steps below: 1. **Locate Callback URLs in CleverTap**: Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _MSG91_ from the CleverTap dashboard. You will find the required Callback URLs on the _Provider Configuration_ page. ![Callback URLs](https://files.readme.io/223edc0dd9395b8efbd83593933324956c2341e18a79097859d8ff3285b8efbf-image.png) Callback URLs 2. **Configure Inbound Message Callback in MSG91**: Copy the _Inbound Message Callback URL_ from the CleverTap dashboard and paste it into the _Inbound Messages_ section of the webhook in the MSG91 panel. ![Configure Inbound Message Callback in MSG91](https://files.readme.io/0983f272d9b7981e56f98dd7f2af74f3a3f09d10f46cd2e14f51169021033d33-image.png) Configure Inbound Message Callback in MSG91 3. **Configure Outbound Message Callback in MSG91**: Copy the _Delivery Report Callback URL_ from the CleverTap dashboard and paste it into the _Outbound Messages_ section of the webhook in the MSG91 panel. ![Configure Outbound Message Callback in MSG91](https://files.readme.io/8117a35d118ccfe4b13d8c780341fcc7d162eac2027a4345a32ab7f3c49cb8fb-image.png) Configure Outbound Message Callback in MSG91 4. Add the following header values to your webhook configuration in the CleverTap dashboard: | Field | Details | | --- | --- | | Authkey | Enter your MSG91 Authkey. This is a unique key used to authenticate API requests. Refer to the [MSG91 Auth](https://msg91.com/help/api/where-can-i-find-my-authentication-key)
key to obtain your Authkey. | | Content-type | Set this to `application/json` to indicate that the request body is in JSON format. | | Accept | Set this to `application/json` to specify that the response should be in JSON format. | ![Configure Headers](https://files.readme.io/e47df80c73ea34c89ba02cbd904cf9c685e08845c768ae77ae8b75ad0d96734e-image.png) Configure Headers 5. Enable the CleverTap toggle in the MSG91 panel's WhatsApp number settings before clicking the **Save** button. 6. Test the integration, then click **Save** to finalize the setup. > 📘 > > ### > > Note: > > [](https://docs.clevertap.com/docs/msg91-whatsapp#note) > > You have to get your templates approved on the MSG91 dashboard. Once approved, add the same templates in the CleverTap dashboard for sending out messages. For more information and queries about the MSG91 integration, write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#91e2e4e1e1fee3e5d1fce2f6a8a0bff2fefc) > . Adding Message Templates [](https://docs.clevertap.com/docs/msg91-whatsapp#adding-message-templates) -------------------------------------------------------------------------------------------------------- To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the templates, follow these steps: 1. Go to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ in the CleverTap dashboard. Further, Select the _Templates_ option and click **+Template**. ![Create a New Template](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 2. Enter the template name. > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/msg91-whatsapp#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as Phone\_1 and Phone\_2, you can use the a particular template name once within Phone\_1 and Phone\_2. 3. You can also choose the language in which you want to display the message. 4. Select the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, or _Location_. 5. Create a [Limited Time Offer Template](doc:whatsapp-message-templates#limited-time-offer-templates) , if required. 6. Enter the message content. 7. Select _Footer_ to add a footer text and a button (Quick Reply or a Call To Action). ![Define Template Content](https://files.readme.io/5bd5090-Generic_template_create.jpg) Define Template Content 8. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/msg91-whatsapp#testing-a-message-template) ------------------------------------------------------------------------------------------------------------ You can send a test message using the saved templates from the CleverTap dashboard as follows: 1. Right-click the ellipsis below the template. 2. Click **Send Test**. 3. Select the test profiles or manually enter the mobile number to whom you want to send the test message and click **Send Test**. ![1304](https://files.readme.io/fbf00f7-test_template.png "Test a Message Template") Test a Message Template The success or failure response is displayed on the dashboard. If the message is not delivered, you can copy the response payload and share it with the MSG91 team to debug the issue, as shown in the following figure: ![Screen shows the format of a successful delivery response after sending a WhatsApp Message](https://files.readme.io/2fc576b-Whatsapp_Infobip_send_test.png "Successful Delivery Response") Successful Delivery Response Create Campaign [](https://docs.clevertap.com/docs/msg91-whatsapp#create-campaign) -------------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp campaign using MSG91 as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) . Creating a Journey [](https://docs.clevertap.com/docs/msg91-whatsapp#creating-a-journey) -------------------------------------------------------------------------------------------- For detailed instructions on creating a WhatsApp journey using MSG91 as the provider, refer to [Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) . Updated about 2 months ago * * * Ask AI --- # Exotel > 🚧 > > ### > > Note > > [](https://docs.clevertap.com/docs/exotel-whatsapp#note) > > This integration is completed by Exotel and they are dedicated to maintaining and enhancing it. The CleverTap <> Exotel integration has undergone stringent testing to ensure its seamless functionality. In the event of any questions or issues, users must rely on Exotel for support and resolution. Introduction [](https://docs.clevertap.com/docs/exotel-whatsapp#introduction) ================================================================================= CleverTap users can now leverage the following WhatsApp capabilities of [Exotel](https://exotel.com/) to communicate with their customers. Communications include: * Sending just-in-time offers to customers to drive purchases * Gathering feedback on the services * Keeping customers informed and more Prerequisites for Integration [](https://docs.clevertap.com/docs/exotel-whatsapp#prerequisites-for-integration) =================================================================================================================== The following are the prerequisites: * You must have WhatsApp add-on enabled on the Clevertap account in addition to the essentials price plan. * Ensure that WhatsApp onboarding for the phone number to be used with CleverTap is completed. * Ensure that you have the infra URL and credentials from Exotel. If you want to activate a new phone number with WhatsApp business API via Exotel, contact your account manager or email [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#c1a9a4adadae81a4b9aeb5a4adefa8af) . Integrate Exotel with CleverTap [](https://docs.clevertap.com/docs/exotel-whatsapp#integrate-exotel-with-clevertap) ======================================================================================================================= This process involves the following three steps: 1. Find Exotel Details 2. Configure CleverTap Dashboard 3. Set up CleverTap callbacks in Exotel Find Exotel Details [](https://docs.clevertap.com/docs/exotel-whatsapp#find-exotel-details) ----------------------------------------------------------------------------------------------- We recommend that you keep the following information handy before starting with configuration on the CleverTap dashboard: * **API Credentials**: To obtain the _API KEY_, _API TOKEN_, and _Account sid_, log in to your Exotel account and navigate to the _Settings_ > _API Settings_ page from the Exotel dashboard. ![2874](https://files.readme.io/e388cc6-API_Settings_page.png "Locate Exotel Details") Exotel Credentials Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/exotel-whatsapp#configure-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select Generic (Other) from the dropdown. ![Provider Setup](https://files.readme.io/a7e44c5-Whatsapp_Common_Provider_Setup.png) Provider Setup 3. Enter the following details: | Field | Description | | --- | --- | | Provider | Select _Other (Generic)_ from the dropdown list. | | Nickname | Enter the nickname as _Exotel_ | | WhatsApp Business Number | Enter your phone number onboarded to WhatsApp API by Exotel. | | Request Type | Ensure the Request Type is _Post_ | | HTTP Endpoint | Enter
HTTP Endpoint as: [https://api.in.exotel.com/v2/accounts/Exotel/messages/clevertap/whatsapp](https://api.in.exotel.com/v2/accounts/Exotel/messages/clevertap/whatsapp)

Ensure that you replace Exotel with your **Account SID.** | | Authentication | Select _Basic Authentication_ and enter the Username and Password (From step 1) | 4. Select the _Mark this as default_ checkbox to make this service provider the default provider to send a WhatsApp message. 5. To send an automatic reply to users who message on WhatsApp, but are not tracked on the CleverTap dashboard, you can select the _Set auto reply for users not tracked on CleverTap_ checkbox. 6. (Optional) You can set the _Maximum Concurrent API requests_ anywhere between 30 to 1000 requests. Consider your requirements and the provider's limitations to define this value. 7. Send a Test WhatsApp notification: ![1488](https://files.readme.io/c384922-sendtest.png "Send Test Message on WhatsApp") Send Test Message on WhatsApp To ensure that the integration is successful: a. Click the _Send Test WhatsApp_ hyperlink before you start creating WhatsApp campaigns and journeys. To begin with, activate the conversation window by following any one of the following methods: i. Save the business contact and send a WhatsApp message to that number. ii. Copy and share the link with the user you want to send the test notification to. Further, ask the user to click on the link and send a WhatsApp message to initiate a conversation. iii. If you want to send a test notification to yourself, you can click the link and initiate a WhatsApp conversation. b. Enter the following details: _**Country Code and Mobile Number**: Enter the country code and mobile number of the user to whom you want to send the test message. _ **Message**: Here, you can enter the sample text message you want to send to the test user. Once you click on _Send Test_, the success or failure response displays on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Gupshup team to debug the issue. 7. Click **Save** to save the details. Set up CleverTap Callbacks in Exotel [](https://docs.clevertap.com/docs/exotel-whatsapp#set-up-clevertap-callbacks-in-exotel) --------------------------------------------------------------------------------------------------------------------------------- Further, share the following details of your WhatsApp-enabled phone number with Exotel support at \*[\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#224f47515143454b4c450f524f0f5647434f62475a4d56474e0c4b4c) for enabling WhatsApp integration with Clevertap. * URL: Exotel.abc.net port XXXX * Username: Abcorp * Password: XXXXXXXX * Phone number: 734550771X * Account SID: Abc\_1 * Delivery Report Callback URL * Inbound Message Callback URL You can copy the _Delivery Report Callback URL_ and _Inbound Message Callback URL_ from the CleverTap dashboard. ![Setup Callbacks](https://files.readme.io/7b30b47-generic_Whatsapp_Provider_configuration.jpg) Setup Callbacks Upon receiving the request, the support team configures the callbacks with your WhatsApp phone number, and the integration is confirmed (within 24 hours) post which you can proceed with creating campaigns. > 🚧 > > ### > > Note: > > [](https://docs.clevertap.com/docs/exotel-whatsapp#note-1) > > To use templates whitelisted on the META business manager dashboard provided by Exotel, you need to add them to the Clevertap dashboard. For more information and queries about the Exotel integration, you can write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#472f222b2b2807223f2833222b6924282a) . Adding Message Template [](https://docs.clevertap.com/docs/exotel-whatsapp#adding-message-template) ------------------------------------------------------------------------------------------------------- > 📘 > > ### > > Naming WhatsApp Templates > > [](https://docs.clevertap.com/docs/exotel-whatsapp#naming-whatsapp-templates) > > Template names and language variants must be unique for each provider configuration. This means that you can use the same template name once for each provider configuration. > > For example, if you have multiple provider configurations, such as _Phone\_1, phone\_2_, you can use the same template name once within _Phone\_1 and Phone\_2_. To create WhatsApp campaigns, you need to have pre-approved WhatsApp message templates saved in the CleverTap dashboard. Follow the procedure below to add the templates. 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ > _Provider Nickname_ in the CleverTap dashboard. Further, Select the _Templates_ option and click **+Template**. ![2174](https://files.readme.io/70d1653-non_CT_approved_templates.jpg "Create a New Template") Create a New Template 2. Enter the template name in the _namespace_ field. 3. Choose the type of template header (Text or Media). For Media headers, you can use _Image_, _Video_, _Document_, and _Location_. 4. You can choose to use the **Limited Time Offer** template for your message. For more information, refer to [Limited Time Offer Template.](https://docs.clevertap.com/docs/whatsapp-message-templates#limited-time-offer-templates) . 5. Enter the message content. 6. You can also add a Footer text and a Button (Quick Reply or a Call To Action). 7. You can also choose the language in which you want to display the message. ![Define Template content for Exotel](https://files.readme.io/641e6d5-Generic_template_create.jpg) Define Template Content 7. Click **Save Template**. Testing a Message Template [](https://docs.clevertap.com/docs/exotel-whatsapp#testing-a-message-template) ------------------------------------------------------------------------------------------------------------- You can send a test message using the saved templates from the CleverTap dashboard as follows: 1. Right-click the ellipsis below the template. 2. Click _Send Test_. 3. Select the test profiles or manually enter the mobile number to whom you want to send the test message and click _Send Test_. ![1304](https://files.readme.io/fbf00f7-test_template.png "Test a Message Template") Test a Message Template The success or failure response is displayed on the dashboard. If the message is not delivered, you can copy the response payload and share it with the Exotel team to debug the issue, as shown in the following figure: ![Screen shows the format of a successful delivery response after sending a WhatsApp Message](https://files.readme.io/2fc576b-Whatsapp_Infobip_send_test.png "Successful Delivery Response") Successful Delivery Response Create Campaign [](https://docs.clevertap.com/docs/exotel-whatsapp#create-campaign) --------------------------------------------------------------------------------------- To create a WhatsApp campaign using Exotel as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) for detailed instructions. Creating a Journey [](https://docs.clevertap.com/docs/exotel-whatsapp#creating-a-journey) --------------------------------------------------------------------------------------------- To create a WhatsApp journey using ValueFirst as the provider, refer to [Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) for detailed instructions. Updated about 2 months ago * * * Ask AI --- # CleverTap Overview [](https://docs.clevertap.com/docs/clevertap-bsp#overview) ----------------------------------------------------------------------- CleverTap is an official WhatsApp Business Service Provider (BSP). You can access WhatsApp business API directly from the CleverTap dashboard and create WhatsApp campaigns within a few minutes after WhatsApp onboarding. CleverTap's WhatsApp Business API removes the dependency of having any external WhatsApp BSP integration to use the WhatsApp channel with the CleverTap dashboard. > 📘 > > ### > > Engagement using CleverTap as BSP > > [](https://docs.clevertap.com/docs/clevertap-bsp#engagement-using-clevertap-as-bsp) > > By subscribing to CleverTap's BSP, you can gain access to our Campaigns, Journey, and Conversation features. CleverTap BSP is not available for the [Essentials](https://clevertap.com/clevertap-for-startups-features/) > plan. If you wish to leverage CleverTap's BSP for your user engagement, please contact our sales team at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#a4d7c5c8c1d7e4c7c8c1d2c1d6d0c5d48ac7cbc9) > . Prerequisites For WhatsApp Onboarding [](https://docs.clevertap.com/docs/clevertap-bsp#prerequisites-for-whatsapp-onboarding) --------------------------------------------------------------------------------------------------------------------------------- Listed below are the prerequisites to get started with WhatsApp onboarding with CleverTap BSP. * You need a verified Facebook Business Manager page to access advanced WhatsApp features. To verify your account, you must submit a few vital documents. [Click here](https://en-gb.facebook.com/business/help/159334372093366) for more information about the list of documents required at a country level for account verification. For non-verified pages, businesses can still have restricted access for up to 30 days. > 🚧 > > ### > > Admin Access > > [](https://docs.clevertap.com/docs/clevertap-bsp#admin-access) > > It is mandatory for the user proceeding with the WhatsApp onboarding on CleverTap to have admin access to the Facebook Business Manager page. * Ensure you provide a dedicated WhatsApp number for long-term use, as this number can not be changed later. This number must be a new number and should not be active on personal WhatsApp or Business WhatsApp applications. * Ensure that your WhatsApp number is active, as you will receive an OTP for verification during the onboarding process. * While onboarding, ensure that you enter your display name the same as the one used on the Facebook business manager page (also known as the legal name). If the display name doesn't match the business name, you must provide a web URL showing proof of association in the header/footer. * Lastly, ensure that your business meets Facebook's [commerce policy](https://www.facebook.com/policies_center/commerce/) . > ❗️ > > ### > > Unique WhatsApp Number > > [](https://docs.clevertap.com/docs/clevertap-bsp#unique-whatsapp-number) > > You must use a distinct WhatsApp number for each CleverTap project. Integrate WhatsApp using CleverTap BSP [](https://docs.clevertap.com/docs/clevertap-bsp#integrate-whatsapp-using-clevertap-bsp) ----------------------------------------------------------------------------------------------------------------------------------- To integrate WhatsApp using CleverTap BSP, follow the steps below: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Direct_ from the CleverTap dashboard. 2. Click **\+ Provider** and select _CleverTap BSP_ from the _Provider_ dropdown. 3. Read all the prerequisites and click **Continue with Facebook**. 4. To register and connect your WhatsApp business account with CleverTap: i. Create or select your Meta and WhatsApp Business Account. ii. Create your WhatsApp Business profile. iii. Verify your WhatsApp Business number. After completing the registration, your business is reviewed within 24 hours for compliance with WhatsApp's commerce policy. 5. After your onboarding is successful, you must complete the setup on the CleverTap dashboard. ![1134](https://files.readme.io/9ee5198-bsp.png "CleverTap BSP Setup") CleverTap BSP Setup 6. Select your _WABA Name_, _Nickname_, and mobile number to complete the setup. 7. Click **Save and Complete Setup** > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/clevertap-bsp#note) > > After completing the WhatsApp onboarding process, businesses can immediately: > > * Send business-initiated conversations to 250 unique customers in a rolling 24-hour period. > * Register up to two phone numbers until the WABA display name is approved. Once the display name is approved you can add up to 50 numbers. Creating WhatsApp Message Templates [](https://docs.clevertap.com/docs/clevertap-bsp#creating-whatsapp-message-templates) ----------------------------------------------------------------------------------------------------------------------------- CleverTap BSP customers can easily create WhatsApp Message Templates directly from our platform. There's no need to create the template in Meta first and then recreate it on the CleverTap dashboard. CleverTap automatically syncs the status of your templates with the Meta dashboard, ensuring that your templates always have the latest status in CleverTap. If required, you can manually [refresh the status of the templates](doc:whatsapp-message-templates#edit-delete-or-refresh-whatsapp-message-templates) . You can [import the templates from Meta into CleverTap](doc:whatsapp-message-templates#import-templates) if you want to sync the actual templates To create different WhatsApp message templates on CleverTap, refer to this detailed document on [Creating WhatsApp Templates](doc:whatsapp-message-templates#create-whatsapp-template) . Create a Campaign [](https://docs.clevertap.com/docs/clevertap-bsp#create-a-campaign) ----------------------------------------------------------------------------------------- To create a WhatsApp campaign using CleverTap BSP, refer to this detailed document on [How to create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) . Create a Journey [](https://docs.clevertap.com/docs/clevertap-bsp#create-a-journey) --------------------------------------------------------------------------------------- To create a WhatsApp journey using CleverTap BSP, refer to this detailed document on [How to Create a WhatsApp Journey](https://docs.clevertap.com/docs/engagement-nodes-whatsapp) . Creating WhatsApp Message Templates (in Meta) [](https://docs.clevertap.com/docs/clevertap-bsp#creating-whatsapp-message-templates-in-meta) ----------------------------------------------------------------------------------------------------------------------------------------------- If you have trouble creating message templates from your CleverTap account, you can create them directly from your Meta account and import them. To get started with template creation in your WhatsApp Business Manager Account provided by Facebook, follow the steps: 1. Log in to your [Facebook Business Manager account](https://business.facebook.com/) . ![2868](https://files.readme.io/3f97347-FB_Manager.png "Log in to your Facebook Business Manager account.") WhatsApp Manager 2. Open the hamburger menu at the top of the page and select **WhatsApp Manager**. The WhatsApp Business accounts page opens. 3. Click **Message templates** from the left navigation menu under _Account tools_ as shown below. The list of templates is displayed, where you can see all of your existing templates, their status, and quality ratings. ![2618](https://files.readme.io/57c5e4b-image_19.png "Navigate to Message Template") Message Templates 4. Click **Create Template**. The template creation page opens. ![2716](https://files.readme.io/be1b049-image_22.png "Complete the Template Configuration") Template Configuration 4. Select the Category, Name, and Language : * _Category_: Select the type of template you want to create. You can hover over the template types to view details for each template. > 📘 > > ### > > Unsupported Template Categories > > [](https://docs.clevertap.com/docs/clevertap-bsp#unsupported-template-categories) > > The **Marketing (Product Messages)** and **Authentication templates** are not supported. We recommend not creating these templates in the WhatsApp Manager Account as they can cause compatibility issues. * _Name_: Enter the template's name in lowercase letters, numbers, and underscores only. * _Language_: Select the languages for your message template. You can delete or add more languages in the next step. 5. Click **Continue** after filling up all the required details. 6. Configure the template per your requirement and provide a contextual sample for each custom variable added to the template. ![Define Template Content](https://files.readme.io/1212308--92-WhatsApp-Manager.png) Define Template Content 7. (Optional) Enhance user interactions with messages by incorporating **interactive buttons**. The following information allows you to create and utilize _Call to action (CTA)_ and _Quick Reply_ buttons within your templates: * **Call to Action (CTA) Buttons:** * Meta supports the following CTA buttons: _Call Phone_ and _Visit Website_. * WhatsApp supports only two CTA buttons with Templates. You can include one _Call Phone CTA_ button and one _Visit Website CTA_ button in your templates. * The _Visit Website CTA button_ supports static and dynamic redirection URLs. * For static redirection URLs, enter the complete URL for redirection (for example, [https://www.example.com/gp/bestsellers](https://www.example.com/gp/bestsellers) ). * For dynamic redirection URLs, enter the domain of the URL along with a variable (for example, [https://www.example.com/{{1}}](https://www.example.com/%7B%7B1%7D%7D) ). > 📘 > > ### > > Tracking Clicks With _Visit Website_ CTAs > > [](https://docs.clevertap.com/docs/clevertap-bsp#tracking-clicks-with-visit-website-ctas) > > To track clicks in the CTA, we recommend selecting dynamic URLs. Use the following URLs as the Website URL based on your CleverTap account region: > > EU1:[https://ct1.io/{{1}}](https://ct1.io/%7B%7B1%7D%7D) > > IN1: [https://ct3.io/{{1}}](https://ct3.io/%7B%7B1%7D%7D) > > SG1: [https://ct4.io/{{1}}](https://ct4.io/%7B%7B1%7D%7D) > > US1: [https://ct5.io/{{1}}](https://ct5.io/%7B%7B1%7D%7D) * **Quick Reply Buttons:** * Quick Reply buttons allow the users to choose from predefined response options. For more information about Quick Reply buttons, refer to [WhatsApp Quick Replies](https://faq.whatsapp.com/1791149784551042/?helpref=uf_share) . * WhatsApp supports up to three _Quick Reply buttons_ in templates, allowing users to select a suitable option quickly. 8. (Optional) Click **Add Sample** to add an optional content example for your template. This helps in understanding the type of message you want to send during the review and approval process. > ❗️ > > ### > > Sample Content for Template > > [](https://docs.clevertap.com/docs/clevertap-bsp#sample-content-for-template) > > Ensure that the sample content that you add does not include any actual user or customer information. 9. Click **Submit**. Your template is now sent for review. The status of your template is visible under _Message templates_. After your message is approved, you can copy the message template and paste it into the CleverTap dashboard. To learn more about the template creation process, refer to this [detailed document](https://www.facebook.com/business/help/2055875911147364?id=2129163877102343) by Facebook. > 📘 > > ### > > Pre-Approved Message Templates > > [](https://docs.clevertap.com/docs/clevertap-bsp#pre-approved-message-templates) > > Facebook offers some pre-approved WhatsApp message templates for testing. You can use these templates in the CleverTap dashboard to start sending test messages as soon as you complete WhatsApp onboarding. FAQs [](https://docs.clevertap.com/docs/clevertap-bsp#faqs) --------------------------------------------------------------- ### Onboarding [](https://docs.clevertap.com/docs/clevertap-bsp#onboarding) **Q. What is Facebook business manager account verification?** A. As the [prerequisite](doc:clevertap-bsp#prerequisites) for WhatsApp onboarding explains, your Facebook business manager account needs to be verified to get full WABA access. Facebook business verification is the way for Facebook to know that your business is a legitimate organization. Your business must be registered as per the business registration process of your country. **Q. Do I need to verify the Facebook manager account again if it is already verified?** A. Facebook business verification is also required for other purposes, along with getting WABA access. Given this, there are chances that you have already verified your business manager account. You do not have to go through the verification process if your account is verified. **Q. How do I check if my Facebook business manager account is verified or not?** A. To check if your Facebook business manager account is verified, open your Facebook business manager account and navigate to _Settings_. Scroll down and click _Security Settings_. If your Business manager account is verified, the "Security Center" section displays as follows: **Q. What are the requirements for business verification?** A. To verify the business manager account, you must fill in the business details. Ensure that the information provided aligns with the details registered with local authorities. As long as Facebook can verify your organization from the given information, there is no need to provide supporting documents for verification. To check the exact requirements for verification in your country, refer to the [detailed documentation](https://www.facebook.com/business/help/159334372093366) **Q. My Facebook business manager is not verified; how do I get it verified?** A. Follow the steps given in this [document](https://www.facebook.com/business/help/2058515294227817?id=180505742745347) to understand the steps required for getting your Facebook business manager account verified. **Q. How long does Facebook take to verify the business manager account?** A. Facebook takes a few weeks to verify the business manager account. This is subjective to how soon Facebook can verify your documents and can take longer in some cases. **Q. What happens if I complete WhatsApp onboarding without business verification?** A. Previously, businesses could not send any messages before completing the account verification. This meant if verification took a few weeks, they had to wait that long to start using the WhatsApp Business APIs. While waiting for verification, businesses can use the unverified trial experience (sandbox) to test the functionality. During the trial experience, businesses are allowed to initiate a conversation with a limited number of users, but the business can respond to unlimited incoming chats. [Read more](https://www.facebook.com/business/help/2640149499569241) . **Q. Are there any repercussions if I do not verify the Facebook business manager account?** A. It is important to start your Facebook Business verification as soon as possible. In most cases, the account is verified the same day as the process starts, but in some cases, this may take some time. If the business is not verified by Facebook or approved as per WhatsApp commerce and display name policy within 30 days, the number goes offline. **Q. What are the best practices for WhatsApp display names?** A. Do not add extra words, spaces, or special characters to your company or brand name used in the business display name. To learn more, refer to the [document](https://www.facebook.com/business/help/338047025165344) . **Q. I have completed onboarding; how do I check if my WABA account/display name is approved?** A. Display approval happens after your business is verified, so if you have not verified your business yet, start the verification at the earliest. To check your display number approval status, open your Facebook business manager account and navigate to _WhatsApp business manager_ from the hamburger icon in the left navigation bar. Now, select the WhatsApp account associated with the number for which you want to check the display name approval status, and then click _Phone numbers_ from the left navigation bar under _Account tools_. ![1852](https://files.readme.io/f1f512a-waba.png "Check the Approval Status") Display Number Approval Status Now, click _View_ under Certificate. If your display name is approved, the Display name has an _Approved_ tag in front of it, as shown below: ![1358](https://files.readme.io/1a38601-approved.png "Check the Approval Status Tag") Approval Status **Q. How do I check my current messaging limit?** A. To check your current messaging limits, open your Facebook business manager account and navigate to WhatsApp business manager from the hamburger icon in the left navigation bar. Further, select the WhatsApp account associated with the number for which you want to check the Display name approval status and then click _Phone numbers_ from the left navigation bar under _Account tools_. Your messaging limit appears under _Messaging limit_ in the phone numbers table. ![2876](https://files.readme.io/19a0128-mess_limit.png "Check Messaging Limit") Check Messaging Limit **Q. How do I increase the messaging limit?** A. To learn about the messaging limit levels, refer to this [detailed document by Meta](https://developers.facebook.com/docs/whatsapp/messaging-limits#messaging) . **Q. How do I check my Whatsapp message usage ?** A. You can check your WhatsApp usage for the current month from your Meta Business Manager account. To view your usage: 1. Login to your account and select WhatsApp Manager from the Tools shortcuts or under Engage Customers > WhatsApp Manager. ![login to meta business account](https://files.readme.io/1345c2e-meta_business_login.png) Meta Business Login Your WhatsApp accounts and onboarded numbers are displayed. ![WhatsApp Insights View](https://files.readme.io/1287cd8-WhatsApp_numbers.png) WhatsApp Insights View 2. Select any of the numbers to view usage and charges. 3. Go to Account Tools > Insights. 4. Select the date range to display usage. ![View usage by date range](https://files.readme.io/777c470-WhatsApp_numbers_and_their_stats.png) View usage by date range ### Message Templates [](https://docs.clevertap.com/docs/clevertap-bsp#message-templates) **Q. What are message templates?** A. As explained earlier, there are two types of conversations - user-initiated and business-initiated. In the case of user-initiated conversations, you can send any text to end-users. However, if your business initiates the conversation, you can only send the message reviewed and approved by Facebook. These approved text messages are called Message templates. **Q. How much time does Facebook take to review the templates?** A. It can take up to 24 hours for approval. Once approved, a notification appears in your WhatsApp Manager, and we send an email to your Business Manager admins. In addition, we also send a webhook notification if you subscribe to message template status changes. Learn more about [Monitoring Status Changes](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#monitoring-status-changes) . **Q. Are there any best practices for message templates?** A. Facebook expects you to create templates for genuine use cases and not violate their [policy](https://www.whatsapp.com/legal/business-policy/?fbclid=IwAR3dL90AcNa3qrmGiyDvsWjfhk0dpACCfAMzo5jUrt82CMjxPempfxYl1Dg) . There is no single correct approach to creating templates but following these basic guidelines will help in getting your templates approved quickly and customers also enjoy interaction with your business. 1. Templates should be short, simple, and have only the necessary text to pass on the required information to the customer. 2. Templates must not have any grammatical or spelling mistakes. Templates that include major spelling or grammatical mistakes are likely to be rejected. Templates with minor punctuation errors or grammatical inconsistencies may be approved but should be avoided. 3. Be mindful of formatting errors. Ensure that you are not missing any sequence in variables ie. {{1}},{{3}},{{4}} or used the curly braces properly in dynamic variables. 4. Title of the template should explain how the template is going to be used. for example, if you are creating a template for sending booking information, the title should be booking\_update. Also, note that the title can not be changed later so name the templates in such a way that it is easier to identify your templates easily. 5. If you plan to use any redirection URLs, ensure that you provide full URLs. Using short URLs in templates might cause templates to be rejected. 6. Use the same language in the template content you chose in the template language field. For example, if you chose Arabic as the template language, then write template content in Arabic. Refer to these detailed documents by [Facebook](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#quality-rating-and-template-status) to learn more about the best practices for WhatsApp message templates. **Q. How do I create new templates?** A. Refer to the [Add Message Template](doc:clevertap-bsp#add-message-template) section. **Q. What are the common reasons for template rejection?** A. Listed below are the common reasons for template rejections: * Variable parameters are missing or have mismatched curly braces. The correct format is {{1}}. * Variable parameters contain special characters such as a #, $, or %. * Variable parameters are not sequential. For example, {{1}}, {{2}}, {{4}}, {{5}} are defined but {{3}} does not exist. * The message template contains content that violates [WhatsApp's Commerce Policy](https://www.whatsapp.com/legal/commerce-policy?l=et) . * The message template contains content that violates [WhatsApp's Business Policy](https://www.whatsapp.com/legal/business-policy/?lang=en) . * The content contains potentially abusive or threatening content, such as threatening a customer with legal action or threatening to shame them publicly. * The message template is a duplicate of an existing template. If a template is submitted with the same content in the body and footer of an existing template, the duplicate template is rejected. A rejection email notification, including the rejection reason that appears in _Account Quality_ on WhatsApp Manager, is sent. You may refer to the Account Quality notification to see the name and language of the existing template with the same content as the rejected duplicate template. You may also choose to edit the template and resubmit. Please note that this check does not apply to OTP templates. **Q. Can I edit the templates after they are approved?** A. You can edit a template using the WhatsApp Manager or the [Message Template](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates#edit-a-message-template) endpoint. Note that if you edit a message template and resubmit it for approval, its status changes to _In Review_ and cannot be sent to customers until its status changes to _Active_. **Q. What is template quality, and how do I check the quality of my templates?** A. To check the quality rating of your templates, open your Facebook business manager account and navigate to _WhatsApp business manager_ from the hamburger icon in the left navigation bar. Further, select the WhatsApp account associated with the number for which you want to check the template quality rating, and then click on _Message templates_ from the left nav bar under account tools. **Q. What are common template statuses?** A. Templates can have the following statuses: * In-Review: This indicates that the template is still under review. Review can take up to 24 hours. * Rejected: Indicates that the template has been rejected during the review process. [Learn more](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#appeals) . * Active - Quality pending: Indicates that the message template is yet to receive quality customer feedback. Message templates with this status can be sent to customers. Learn more about [Quality Rating](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#quality-rating) . * Active - High Quality: Indicates that the template has received little or no negative customer feedback. Message templates with this status can be sent to customers. Learn more about [Quality Rating](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#quality-rating) . * Active - Medium Quality: Indicates that the template has received negative feedback from multiple customers but may soon become paused or disabled. Message templates with this status can be sent to customers. Learn more about [Quality Rating](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#quality-rating) . * Active - Low Quality: Indicates that the template has received negative feedback from multiple customers. Message templates with this status can be sent to customers but are in danger of being paused or disabled soon, so we recommend that you address the issues that customers report. Learn more about [Quality Rating](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#quality-rating) . * Paused: Indicates that the template has been paused due to recurring negative customer feedback. Message templates with this status cannot be sent to customers. Learn more about [Template Pausing](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#template-pausing) . * Disabled: Indicates that the template has been disabled due to recurring negative customer feedback or for violating one or more of our policies. Message templates with this status cannot be sent to customers. You may be able to edit a disabled message template and request an appeal. [Learn more](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#appeals) . * Appeal Requested: Indicates that an appeal has been requested. [Learn more](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/#appeals) ### Number Quality [](https://docs.clevertap.com/docs/clevertap-bsp#number-quality) **Q. What is number quality and connection status?** A. Your quality rating indicates how template messages have been received by your users in the last 24 hours. There are three different states of messaging quality: * Green: High quality * Yellow: Medium quality * Red: Low-quality If your Quality rating remains Red for seven or more days, your number's connection status changes to _Flagged_ or _Restricted_. * Flagged: Indicates that the quality rating has reached a low state. Businesses can not upgrade messaging limit tiers during the Flagged phase. If the message quality improves to a high or medium state by the seventh day from when your status was moved to Flagged, the status changes to _Connected_. If the quality rating does not improve, the status still changes to Connected, but you are placed in a lower messaging limit tier. * Restricted: Indicates that you have reached your messaging limit. During a Restricted phase, you can not send any notification messages until the 24-hour window is reset. However, you can respond to any messages that customers initiate. [Learn more](https://www.facebook.com/business/help/896873687365001) . **Q. How do I check my number quality?** A. Navigate to Facebook business manager and open WhatsApp business manager. Further, click _Phone number_ under _Account tools_. This will show you the number quality and status of your numbers. ![1910](https://files.readme.io/a6f98eb-message.png "View the Number Quality") Number Quality **Q. What to do if the number quality is Red? How to improve Quality Rating?** A. Follow the guidelines below to improve your Quality Rating: * Reduce the WhatsApp campaigns for a week and send only important notifications and target your champion user base only. * Ensure that your templates comply with the WhatsApp Business Policy. * Ensure that your messages are clear, personalized, and useful to users. * Avoid sending open-ended welcome or introductory messages. * Only send template messages to users that have opted in to receive messages on that specific topic. For example, if a user opted-in for COVID updates but starts receiving other health updates, they may respond negatively because they did not opt-in for that specific communication. * Be mindful of your messaging frequency. Avoid sending users too many notifications in a day. * Be thoughtful of informational messages, and optimize the content and the message length. * Check if your organization has added and sent a new template within the last 7 days. This may help determine a problematic template(s). ### Number Migration [](https://docs.clevertap.com/docs/clevertap-bsp#number-migration) **Q. I want to migrate my number from CleverTap to external BSP; what is the process?** A. Please contact your account manager to seek support for the migration process or raise a ticket with our support team from your CleverTap dashboard. **Q. I want to migrate numbers from external BSP to CleverTap BSP; how do I get this done?** A. Please contact your account manager to seek support for the migration process. Also, refer to this [document](https://developers.facebook.com/docs/whatsapp/business-management-api/guides/migrate-phone-to-different-waba/) to know more about the migration process. Updated about 2 months ago * * * Ask AI --- # Branded Domain Overview [](https://docs.clevertap.com/docs/branded-domain#overview) ======================================================================== Branded Domains in CleverTap help you apply your brand to tracking across Email, SMS, WhatsApp, and RCS campaigns. * For **SMS**, **WhatsApp**, and **RCS campaigns**, it is used to generate short, trackable links. * For **Email campaigns**, it is used to brand links and open-tracking pixels using a custom domain. Using branded domains improves user trust and can boost engagement rates. > 📘 > > #### > > Private Beta > > [](https://docs.clevertap.com/docs/branded-domain#private-beta) > > This feature is currently released in Private Beta. If you want to access the feature, contact your Customer Success Manager. Domain Types [](https://docs.clevertap.com/docs/branded-domain#domain-types) ================================================================================ CleverTap supports two types of branded domains: | Domain | Description | Supported Channels | | --- | --- | --- | | System Domain | Provided by CleverTap, where you can customize the system-generated short links with your brand's prefix for easy integration without the need for DNS configuration. | WhatsApp, SMS & RCS | | Custom Domain | Enables you to use your own subdomain for complete control over your branding and tracking. To use a custom domain, you will need to configure DNS records with your domain provider for proper verification and campaign tracking. | Email, WhatsApp, SMS & RCS | Both options allow you to define specific settings, such as the URL structure and 404 error page, ensuring your branded domain is set up to suit your needs. Add Domain [](https://docs.clevertap.com/docs/branded-domain#add-domain) ============================================================================ This section provides information about creating a branded system and a custom domain for your campaigns. To add a domain, perform the following steps: 1. Go to _Settings_ > _Set Up_ > _Branded Domain_. 2. Click **Add Domain** and select the channel. 3. Enter the details you are prompted to provide based on the selected channel. For more information, refer to [System Domain](doc:branded-domain#add-system-domain) and [Custom Domain](doc:branded-domain#add-custom-domain) . ![](https://files.readme.io/e3b88c267d2ff3601ff7e683443c73d9339f2eabce70810a1a9ad7c3522277ed-Add_Domain.png) Add Domain 3. Click **Save**. * For a System Domain, the status is set to Active immediately. * For a Custom Domain, the status is set to Pending Verification, and DNS records are generated for you to configure with your domain provider. Add System Domain [](https://docs.clevertap.com/docs/branded-domain#add-system-domain) ------------------------------------------------------------------------------------------ You can create a system domain to quickly start using branded links in your WhatsApp/SMS & RCS campaigns without DNS configuration. To add a system domain, enter the following details: ![](https://files.readme.io/e3ebb61fb60d716b8bf202001ecf73288241023274516357412e960838056f86-Add_System_Domian_for_WASMS__RCS.png) Add System Domain for WhatsApp/SMS & RCS | Field | Description | | --- | --- | | Nickname | Provide a name to identify the domain (for example, "Marketing"). | | Channel | Displays the channel for which the branded domain is being created. | | Domain Type | A CleverTap-provided system domain that can be customized with your brand prefix. No DNS setup required. This is available only for WhatsApp/SMS & RCS channels. | | Domain | The base domain used for branding and tracking. When adding a system domain, this is auto-filled based on your account region. For more information, refer to _Domain and Account Region Mapping for WhatsApp/SMS & RCS_ below the table. | | Branded URL Schema | Defines the structure of the branded tracking URL. This is available for WhatsApp/SMS & RCS channels and is required for adding a system domain.

URL Structure: `domain/adjoiner/Shortkey`

This includes the following:

* **Domain**: The domain entered above is prepopulated here.
* **Adjoiner**: A brand-specific path separator that connects the Domain and Shortkey, helping personalize and group URLs. The **Adjoiner** can only contain lowercase letters, numbers, and hyphens. It must not start or end with a hyphen, and cannot contain special characters such as `@`, `#`, `&`, and so on.
* **Shortkey**: A unique, auto-generated code added to the branded domain, helping track clicks on links within campaigns.

For example, `ct3.io/clevertap/abc123` | | Error Page | The page users see if a tracking link is invalid or has expired. You can use CleverTap’s system error page or provide a custom URL to maintain brand consistency even in error scenarios. Click _Preview Error Page_ to view and verify the error before the domain becomes active. | Once you enter all the details, click **Save**. The status is set to **Active** immediately > 📘 > > #### > > Domain and Account Region Mapping for WhatsApp/SMS & RCS > > [](https://docs.clevertap.com/docs/branded-domain#domain-and-account-region-mapping-for-whatsappsms--rcs) > > | Dashboard URL | Region | System Domain | Example URL | > | --- | --- | --- | --- | > | eu1.dashboard.clevertap.com | EU | ct1.io | ct1.io/25AlJz | > | in1.dashboard.clevertap.com | IN | ct3.io | ct3.io/52KlAz | > | sg1.dashboard.clevertap.com | SG | ct4.io | ct4.io/25ZlAz | > | us1.dashboard.clevertap.com | US | ct5.io | ct5.io/52ZlKa | > | mec1.dashboard.clevertap.com | Middle East | ct8.io | ct8.io/25ZaJz | > | aps3.dashboard.clevertap.com | Indonesia | ct9.io | ct9.io/52KJz | Add Custom Domain [](https://docs.clevertap.com/docs/branded-domain#add-custom-domain) ------------------------------------------------------------------------------------------ Use your own subdomain (for example, `sales.yourbrand.com`) for maximum brand visibility. This option allows you to fully control the branding and tracking for your campaigns. ![](https://files.readme.io/8d921a0e9d530293aae02e8a11a57cb149a0cbec5a2e240c0d66704ff999bbb6-Add_Email_Custom_Domain.png) Add Custom Domain for Email ![](https://files.readme.io/f45e4906647bd7da1393c6e5433801296310555e301bf619b8e8d22e1825d782-Add_Custom_Domain_for_WASMS__RCS.png) Add Custom Domain for WhatsApp/SMS & RCS | Field | Description | | --- | --- | | Nickname | Provide a name to identify the domain (for example, "Marketing"). | | Channel | The channel this branded domain will be used for. | | Domain Type | Your own subdomain (for example, links.yourbrand.com) that requires DNS configuration. | | Domain | Enter your own subdomain to be used for branding and tracking | | Branded URL Schema | This is available for WhatsApp/SMS & RCS channels and is required for adding a custom domain. It defines the structure of the branded tracking URL. | | Error Page | Optional field. Available only for WhatsApp/SMS & RCS channels. Provide the page you want users to see if a tracking link is invalid or has expired. You can use CleverTap’s system error page or provide a custom URL to maintain brand consistency even in error scenarios. Click _Preview Error Page_ to view and verify the error before the domain becomes active. | Once you enter all the details, click **Save & Generate DNS**. The domain status is set to **Pending Verification** immediately, and DNS Records are generated to configure it on your Domain provider dashboard. The generated records include two CNAME records and one TXT record ![](https://files.readme.io/6d90a8eaa27f1d56aae290b66bf962fcd1b1ee164bddfe3bc0779a7a310d4f48-image.png) DNS Records Generated for Email ![](https://files.readme.io/36972d396aadc92d070754a236802c008846a6a5f96c0b64a8b08268fc9eb8b3-DNS_Verification_for_WASMS__RCS.png) DNS Records Generated for WhatsApp/SMS & RCS > 📘 > > #### > > Custom Domain > > [](https://docs.clevertap.com/docs/branded-domain#custom-domain) > > You can add up to 5 unique custom domains per account per channel. ### Verify Custom Domain [](https://docs.clevertap.com/docs/branded-domain#verify-custom-domain) After DNS records are generated, verify them so the domain becomes active and available for use. To do so, perform the following steps: 1. Go to the domain provider dashboard and configure the following DNS records. When configuring DNS records with your domain provider, enter only the prefix part in the Name field. The prefix is the part that precedes the main domain. For example, if the CNAME is `_c58ebcb5c******5f03bb6b174349.track.yourdomain.com`, enter `_c58ebcb5c******5f03bb6b174349.track` in the Name field. | Type | Description | | --- | --- | | CNAME | Used for domain ownership verification. | | CNAME | Redirects branded links to CleverTap's short URL service for WhatsApp/SMS & RCS campaigns. For Email campaigns, it supports click and open tracking. | | TXT | Verifies domain association with CleverTap. | 2. Once your DNS records are saved, go back to the **Branded Domain** page on the CleverTap dashboard. 3. Click the ![](https://files.readme.io/36be013543cabc562d762f02fd1eebc007f2caad03f95519a37dfff4f6e4c7ed-Refresh_icon.png) icon next to your domain to verify your domain and refresh the status on the CleverTap dashboard. DNS verification may take up to 24 hours to complete. If verification fails, check your DNS configuration with your domain provider to ensure it is accurate. If the settings are correct, try refreshing after some time. Best Practices for Adding Domain in CleverTap [](https://docs.clevertap.com/docs/branded-domain#best-practices-for-adding-domain-in-clevertap) ================================================================================================================================================== Here are some tips to ensure your branded domain setup is effective and compliant: * **For System Domains** (like `ct3.io/yourbrand/abc123`): * Choose a short and meaningful **Adjoiner** that clearly represents your brand or campaign type. * Use lowercase letters and hyphens (`-`) if needed (for example, `/clevertap/`, `/new-user/`, `/sale2024/`). * Keep it concise: Aim for 5–8 characters in the **Adjoiner** (excluding the slashes) to avoid long URLs in campaigns. * Avoid vague terms like `/track/` or `/link/` — use something unique to your brand. * **For Custom Domains** (like `links.yourbrand.com`): * Use a subdomain such as **links.**, **click.**, or **promo.** (for example,`links.yourbrand.com`, `click.yourbrand.com`). * Keep the **Subdomain** short, relevant, and easy to remember. * Avoid complex words, long phrases, or special characters in the **Subdomain** name. * Ensure you configure **DNS records** exactly as shown after setup to avoid delays in verification. * Avoid the following: * Using more than 20 characters in the **Adjoiner** or **Subdomain**. * Starting or ending **Adjoiners** with hyphens. * Using non-brand-specific generic terms. > 📘 > > #### > > Pro Tip: Buy New Short Domain for Campaigns > > [](https://docs.clevertap.com/docs/branded-domain#pro-tip-buy-new-short-domain-for-campaigns) > > If your existing domain is long or complex, consider purchasing a new, short domain for marketing messages. Ideally, the domain must be 5–8 characters long and phonetically similar to your brand name. This improves: > > * Link trustworthiness > * User recall and voice-based sharing (for example, over phone or radio) > * Visual clarity in messages and notifications > > **Examples**: > > * If your brand name is long (for example, **ExampleStore**), consider short domain options like **exstr.in**, **exsto.co**, or **exst.co**. > * For multi-word brand names (for example, **Example Food Market**), you could use shortened versions such as **exfdmr.com**, **efmkt.in**, or **xfmk.co**. Manage Branded Domains [](https://docs.clevertap.com/docs/branded-domain#manage-branded-domains) ==================================================================================================== The Domain Listing page allows you to view and manage all your configured domains. You can easily edit domain settings, view DNS records, and make any necessary updates to check if your domains are correctly set up and functioning. Go to _Settings_ > _Set Up_ > _Branded Domains_. You can see a list of all your domains (system or custom), including the following details: ![](https://files.readme.io/2fbb49c4e3a18c0744338f8f2db30ae4f28a3babf5c0f3eb1289f175dc099f41-Branded_Domain_Listing_Page.png) Branded Domains Page | Column | Description | | --- | --- | | _Nickname_ | A user-defined name to help you identify the domain (for example, "Sales Campaign"). | | _Domain URL_ | Displays the full URL of the branded domain being used for tracking links in the case of WhatsApp/SMS & RCS campaigns (for example, `ct3.io/clevertap/abc123`). Displays the branded domain being used for email campaigns (for example, `track.yourdomain.com`). | | _Created By_ | The email address of the user who created the domain. | | _Status_ | The current status of the domain. It can be:

* **Active**: Domain is verified and ready to be used in campaigns.
* **Pending Verification**: Domain is awaiting DNS verification and cannot be used until verified.
* **Failed**: Domain verification failed due to incorrect or missing DNS records. | | _Last Updated On_ | The timestamp when the domain settings were last updated. | After adding the domain, you can perform the following operations by hovering it: ![](https://files.readme.io/a4ad7fef6b3c58d079a57876f5c3d45be43447b1298499d715bdf28d0e2dbafd-Manage_Branded_Domains.gif) Manage Branded Domains * **Set as Default**: You can set one verified domain as the default for WhatsApp, SMS, and RCS, and a different verified domain as the default for Email. This domain is automatically used for wrapping and tracking links in SMS, WhatsApp, RCS, and Email campaigns (including template buttons). You can override it per campaign when creating new ones. * **Edit**: You can edit the nickname of the domain. Additionally, for WhatsApp/SMS & RCS campaigns, you can set a custom 404 error page (except for system defaults). * **Verify Domain**: You can manually verify the domain by checking the status. If the verification fails, you can click the ![](https://files.readme.io/af7a9009c220dbcfb129f0528f3669b976d0d7f0de86557dca6e52c1444d6aed-Refresh_icon.png) icon next to the domain to retry after making the necessary corrections. * **View DNS Records**: You can access and review the DNS settings associated with your domain. This includes details such as CNAME and TXT records, which are essential for domain verification and proper tracking. By viewing these records, you can ensure that the domain is correctly configured with your DNS provider for seamless integration and functionality. FAQs [](https://docs.clevertap.com/docs/branded-domain#faqs) ================================================================ ### Can I switch between path-based and query-based adjoiners? [](https://docs.clevertap.com/docs/branded-domain#can-i-switch-between-path-based-and-query-based-adjoiners) No, you must choose one format per domain — either **path-based** (`/yourbrand/`) or **query-based** (`?key=yourbrand`). You cannot mix both formats in a single domain configuration. ### What happens if my custom domain becomes unverified? [](https://docs.clevertap.com/docs/branded-domain#what-happens-if-my-custom-domain-becomes-unverified) If a branded domain used for Email moves from Active to Pending Verification or Failed: * CleverTap sends an email alert to inform you of the status change * CleverTap automatically falls back to the system domain for email click and open tracking * Email campaigns continue to send without interruption Once the domain is verified again, it can be reused in future campaigns. ### Will old campaigns use the new branded domain? [](https://docs.clevertap.com/docs/branded-domain#will-old-campaigns-use-the-new-branded-domain) No. Campaigns created before you set up a branded domain will continue using the **System Domain** unless you manually edit or recreate them with the new branded domain. ### I configured the DNS records, but my domain has still not been verified. What should I do? [](https://docs.clevertap.com/docs/branded-domain#i-configured-the-dns-records-but-my-domain-has-still-not-been-verified-what-should-i-do) Check the following: * **DNS records** are entered exactly as shown in the CleverTap dashboard. * You’ve entered only the required prefix in the **Key** field (for example, short, not short.clevertap.com) * Wait up to 24 hours, then try refreshing again ### When will a link preview be shown for my branded domain link? [](https://docs.clevertap.com/docs/branded-domain#when-will-a-link-preview-be-shown-for-my-branded-domain-link) A link preview is generated when the messaging platform (such as SMS, WhatsApp, or RCS) scans the URL included in your message and detects the required Open Graph metadata on the destination page. The following tags must be present and properly configured in the page’s HTML: * `` * `` * `` If these tags are available and valid, the platform may display a visual preview containing a title, description, and image. A preview may not be shown in the following cases: * The Open Graph tags are missing or incorrectly implemented * The domain is blocked by `robots.txt` or firewalls * The page is inaccessible to external crawlers To validate whether your Open Graph metadata is implemented correctly, use any metadata testing tool or Open Graph debugger. ### How do link previews work on iOS devices, and why might they not appear? [](https://docs.clevertap.com/docs/branded-domain#how-do-link-previews-work-on-ios-devices-and-why-might-they-not-appear) iOS devices running version 10 or above support link previews in the native Messages application. These previews may still appear for SMS-based messages, but several conditions must be met for reliable rendering. **Preview Requirements** * Only one link should be included in the message. Messages with multiple links will not generate a preview. * The link must be the final element in the message. No text, punctuation, or symbols should follow the link. * The domain must be served over HTTPS and use a valid SSL certificate. Self-signed, expired, or incomplete certificates will block preview generation. * The recipient must tap _Tap to Load Preview_ for metadata to be fetched. **iOS-specific Behaviors and Limitations** * iOS delays metadata fetching until after the message is delivered, and in some cases, until the user interacts with the message. * Devices may display cached metadata even after updates have been made to the page’s Open Graph tags. * Certain third-party messaging apps may block previews by default, unless they are explicitly enabled in the settings. These constraints can lead to inconsistent preview rendering on iOS devices, even when metadata is correctly configured. Updated about 1 month ago * * * Ask AI --- # Segments Overview [](https://docs.clevertap.com/docs/segments#overview) ================================================================== A segment in CleverTap is a group of users that share the same characteristics such as actions performed, actions not performed, or user profile properties based on the defined criteria. For example, a segment can be users who launched the app for the first time in the past 30 days. A more complex segment could be users who live in New York, were acquired via a Facebook campaign in April, transacted three or more times in May and June, and have not transacted in the past two weeks. The _Segments_ page lets you create segments, perform different operations on the segments, and view segment trends over time to understand how a segment behaves in response to your marketing initiatives. The entire CleverTap dashboard can be filtered by any segment you create, including any of our analytics features. ![Segment List](https://files.readme.io/5a2d5bd-Segment_List_Page.gif) View List of Created Segments | Field | Description | | --- | --- | | Segment details | Displays the details like segment name, ID, and email ID of the user who created the segment. | | Type | Displays the type of segment. The following are the options available:

* Past Behavior Segment
* Live User Segment
* Custom List Segment
* Partner Segment (where Partner Name can be Amplitude, Mixpanel) | | Created on | Displays the date on which the segment was created. | | Updated on | Displays the date on which the segment was last updated. | | Updated by | Displays the email ID of the user who last updated the segment. | | Goals | Displays the number of goals that are running on the segment. | | IBS Goals | Displays the number of goals running with Intent-Based Segment. | | Engagement | * Displays the number of active and scheduled customer engagements such as campaigns and journeys that use the segment within [include/exclude](doc:segments#include-and-exclude-segments)
filters.
* On clicking the number, it displays the list of campaigns and journeys where the segment is being used. You can also click on a particular campaign/journey from this list to view the campaign details. | | Dependent Segments | * Displays the number of other segments that include or exclude the selected segment.
* On clicking the number, it displays the list of segments that include/exclude the selected segment. You can also click on a particular segment from this list to view the segment details. | System User Segments [](https://docs.clevertap.com/docs/segments#system-user-segments) ========================================================================================== Before creating any segment on the CleverTap dashboard, there are default system segments already present on the dashboard. The following are the system-defined user segments that are available for your use: * **All Users**: This user segment contains all the users added to your project. * **Test Users**: The Test User segment is a default user segment in CleverTap that businesses can use to test their campaigns, journeys, and product experiences before sending them to actual users. This segment allows businesses to experiment with new features, messaging, and campaigns in a safe and controlled environment. Using Test Users helps businesses measure the effectiveness of their ideas before rolling them out to a larger audience. Test Users can be manually created from the CleverTap dashboard or imported through a CSV file and segmented based on various criteria. For more information, refer to [Mark a User Profile as a Test Profile](doc:user-profiles#mark-a-user-profile-as-a-test-profile) . Types of Segments [](https://docs.clevertap.com/docs/segments#types-of-segments) ==================================================================================== There are three types of segments in CleverTap, which are explained in the following sections: * [Past Behavior Segments](doc:segments#past-behavior-segments) * [Live User Segments](doc:segments#live-user-segments) * [Custom List Segments](doc:segments#custom-list-segments) Past Behavior Segments [](https://docs.clevertap.com/docs/segments#past-behavior-segments) ---------------------------------------------------------------------------------------------- Past behavior segments include users grouped by their actions in the past. You can group users based on a single activity or do complex combinations of actions, inactions, and user properties. For example, you can create a segment of users from California, who are females, launched the application in the last 30 days, and have not purchased anything from the app. Past behavior segments can be based on: * **Actions**: Add users to a segment if they have performed an event. For example, users who added a product to the cart in the past 30 days. * **Inaction**: Add users to a segment if they have performed an event but did not perform another event within a certain time. For example, users who added a product to the cart but did not purchase in the last 30 days. * **Actions with user properties**: Add users to a segment if they did or did not perform an event and have a common user property. For example, platinum-level users who added a product to the cart but did not purchase in the last 30 days. Live User Segments [](https://docs.clevertap.com/docs/segments#live-user-segments) -------------------------------------------------------------------------------------- While past behavior segments let you evaluate users based on historic criteria, live user segments let you track what is happening in your app right now. When you define a set of behaviors of interest, CleverTap monitors for these behaviors as they happen in your app and immediately adds a user to a segment the moment their behavior matches your action criteria. You can create live user segments for the following: * **Single action**: Add users to a segment as soon as they perform an event. For example, users who booked a movie ticket from your app. * **Inaction within time**: Add users to a segment when they perform a particular event but did not perform another event within a certain time. For example, users who have added a product to the cart but did not purchase it within 10 minutes of adding the product to the cart. * **On a date/time**: Add users to a segment based on date and time property value. For example, users who have an appointment five days from the current date. * **Page visit**: Add users to a segment as soon as they visit a specific URL on your website. For example, users who have visited the Resources page of your website. * **Referrer entry**: Add users to a segment based on a referring website or campaign. For example, users who have visited your website via a specific external referrer URL. * **Page count**: Add users to a segment based on the number of pages visited by them. For example, users who have visited five web pages on your website. Custom List Segments [](https://docs.clevertap.com/docs/segments#custom-list-segments) ------------------------------------------------------------------------------------------ A custom list segment is a list of users from any source, including third-party tools or internal databases. You can deliver personalized messages to these users based on their past or real-time behavior in the app. For more information, refer to [Custom List Segment](doc:custom-list-segments) . Create Segments [](https://docs.clevertap.com/docs/segments#create-segments) ================================================================================ The steps vary based on the type of segment you want to create. Create Past Behavior Segments [](https://docs.clevertap.com/docs/segments#create-past-behavior-segments) ------------------------------------------------------------------------------------------------------------ In this example, we can create an action-based segment where users will qualify if they have applied for a payment offer at least one time in the past 30 days. To create a past behavior segment, perform the following steps: 1. Navigate to _Segments_ > _Segments_ from the dashboard. 2. Click **+Segment**. ![Create a New Segment](https://files.readme.io/b89f6b6-Create_Segments.png) Create a New Segment 3. Select the box _Actions_ underneath _Past behavior segments_ from the main segment creation page. ![Past Behavior Segments](https://files.readme.io/e12f3df-Past_Behavior_Segments.png) Past Behavior Segments 4. Define the segment rule as shown below on the segment query page. ![1228](https://files.readme.io/6f6d353-Segments_PSB_Create_New.png "Set Up Segment Options to Create a Past Behavior Segment") Create a Past Behavior Segment 5. Click **Save segment** and name the segment. You can now view your new segment on the _Segment List_ page. Create Live User Segments [](https://docs.clevertap.com/docs/segments#create-live-user-segments) ---------------------------------------------------------------------------------------------------- In this example, we can create an _Inaction within time_ segment for which users will qualify in real-time as soon as they add a product to their cart but do not purchase the product within 10 minutes. > 📘 > > ### > > Golden Window for Mobile Transactions > > [](https://docs.clevertap.com/docs/segments#golden-window-for-mobile-transactions) > > The golden window within which most users transact on our iOS and Android app platforms is within 10 minutes. To create a live segment with CleverTap, perform the following steps: 1. From the dashboard, navigate to _Segments_ > _Segments_. 2. Click **\+ Segment**. 3. Under _Live user segments_, select the _Inaction within time_ box. ![Create Live User Segment](https://files.readme.io/21b8b4d-Inaction_Within_Time_Segment.png) Live User Segments 4. Select the appropriate properties for your live user segment. You may choose to select the _Filter on past user behavior and common properties_ checkbox to apply past action, inaction, or common user property filters. ![1403](https://files.readme.io/033db1c-2_set_up_Live_user_segment_-_Inaction_within_time.png "Set Up Segment Options and Click Save Segment") Create a Live User Segment 5. Click **Save segment** and name the segment. > 📘 > > ### > > Segment Naming Best Practices > > [](https://docs.clevertap.com/docs/segments#segment-naming-best-practices) > > Convey the core meaning of the segment while keeping the name brief. You can now see your new segment in the main section as _Added to cart but no charge within 10 minutes_. View Segment Details [](https://docs.clevertap.com/docs/segments#view-segment-details) ========================================================================================== To view segment details, navigate to _Segments_ > _Segments_, search for the segment you are looking for and then click on it. On clicking, segment details are displayed. At the top of the page, you can click _View segment definition_ to understand more about the underlying query. Past Behavior Segment Details [](https://docs.clevertap.com/docs/segments#past-behavior-segment-details) ------------------------------------------------------------------------------------------------------------ The top portion of the past behavior user segment report consists of a way to first view the segment definition to understand its underlying query. There are graphs on the left-hand side showing the plot of the number of users who qualified for the segment going forward from the first complete day post-segment creation. The list on the right-hand side shows the sample list of users who qualified for the segment on this day. ![1204](https://files.readme.io/1225063-report.png "View Segment Trend Report") Segment Trend The past behavior segment statistics are computed daily. However, when these segments are used in campaigns, the users who qualify for these segments are computed in real time. This ensures that users meeting the segment criteria during campaign execution reflect the most recent user activity data. The lower portion of the past behavior segment report consists of reachability percentages for these users within each messaging channel. The lower-most part of the report shows you how to do more with this segment by either filtering relevant analytics dashboard views by this particular user segment or reaching out to this segment via relevant messaging channels. ![1206](https://files.readme.io/8f416de-lower_report.png "View Segment Size and Reachability Report") Segment Size and Reachability Live User Segment Details [](https://docs.clevertap.com/docs/segments#live-user-segment-details) ---------------------------------------------------------------------------------------------------- To view a live user segment report, perform the following steps: 1. From the dashboard, navigate to _Segments_ > _Segments_. 2. Search for the segment you are looking for, then click on it. At the top of the report, you can click _View segment definition_ to understand more about the underlying query. The two graphs describe the following: * The left-hand side shows the plot of the number of users who qualified for the segment going forward from the first complete day after creating the segment. * The right-hand side shows the real-time rate at which users are qualifying for the segment vs. all user activity on your app/website. ![1272](https://files.readme.io/821380f-4a_top_report.png "View Live User Segment Reports") Segment Reports * The lower portion of the live user segment report consists of a list of sample users trickling into your segment in real time on the right-hand side. It also shows the reachability percentages for these users within each messaging channel on the left-hand side. ![1269](https://files.readme.io/25d5194-4b_middle_report.png "View Segment Size and Reachability") Segment Size and Reachability * The lower-most part of the report shows how to do more with this segment by either filtering relevant analytics dashboard views by this particular user segment or reaching out to this segment via relevant messaging channels. ![1266](https://files.readme.io/44308a1-4c_bottom_report.png "View Sample Users for an Event") Sample Users Export Users in a Segment [](https://docs.clevertap.com/docs/segments#export-users-in-a-segment) ==================================================================================================== CleverTap allows you to export the users from any segment in the CSV format. To do so: 1. From the _Segments_ page, select the segment from which you may want to export the users. You can also filter out the segments using the _Type_ and _Goals_ filters. The page opens where all the segment details are displayed. 2. Scroll down and navigate to the _Sample users_ section and click **Download**. ![Download Sample Users](https://files.readme.io/00397d4-small-Download_All_Users.png) Download Sample Users 3. Select the fields you want to export and click **Proceed**. ![Select the User Details](https://files.readme.io/4cab592-small-Include_the_Required_Fields_and_Click_Proceed.png) Select the User Details > 📘 > > ### > > Mismatch in Segment Size and Number of Users Exported to CSV File > > [](https://docs.clevertap.com/docs/segments#mismatch-in-segment-size-and-number-of-users-exported-to-csv-file) > > The number of users displayed under the _Segment size and reachability_ section may vary from the number of users exported to the CSV file. This variation is due to the inclusion of blacklisted users under the _Segment size and reachability_ section. View Analytics Filtered by Segment [](https://docs.clevertap.com/docs/segments#view-analytics-filtered-by-segment) ====================================================================================================================== Under the _Do more with this segment section,_ you have the option to view an analytics report. This is for the chosen segment alone and not your entire user base. Real-time dashboard views such as the _Today_ dashboard only enable filtering by live user segments. Analytics based on past behavior such as mobile app, revenue, funnels, cohorts, trends, and events will only enable filtering their stats by past behavior segments. Create Campaigns for a Chosen Segment [](https://docs.clevertap.com/docs/segments#create-campaigns-for-a-chosen-segment) ============================================================================================================================ Under the _Do more with this segment_ section, under _Engage_, you have the option to create a campaign to message a specific segment. This immediately takes you to the messaging channel with your segment criteria pre-populated in the target. ![617](https://files.readme.io/3c7905e-Segments_Do_More_Campaign.png "Click Campaign from the Do More with this Segment option") Create a Campaign from the Segment Include and Exclude Segments [](https://docs.clevertap.com/docs/segments#include-and-exclude-segments) ========================================================================================================== You can simplify complex queries by including or excluding the existing user segments. Create segments with complex conditions once and then reuse them in different scenarios. You can create powerful segmentation that is valid for a variety of scenarios. ![715](https://files.readme.io/30d054b-0fd3c96-Find_people_include_exclude_segments.png "Create Segments with Complex Conditions") Include and Exclude Segments Exclude Segments [](https://docs.clevertap.com/docs/segments#exclude-segments) ---------------------------------------------------------------------------------- There may be instances when you want to exclude some users based on specific criteria. For example, you want to offer discounts to all the users who have expressed interest by adding the product to the cart in the past 30 days; however, you want to save your engagement dollars by excluding the power users. The parameters for these power users can be the following: * Users who have charged three times in the past three months, and * Users who have launched the app 15 times in the past month, and * Users who rated a product 10 times in the past year Now, you can create a segment with these criteria called _Power Users_ and use it every time rather than creating a complex query each time. You can save all these parameters in a segment called _Power Users_ and exclude them from the discount message. The following is a campaign query for an e-commerce app that excludes the _Power Users_ segment. ![1050](https://files.readme.io/2fb7f6a-exclude_segments_campaign.png "Set Up the Options to Exclude a Segment from Campaign") Exclude Segments Include Segments [](https://docs.clevertap.com/docs/segments#include-segments) ---------------------------------------------------------------------------------- There may be instances when you want to include some users based on specific criteria. Consider the example of a ride-hailing app. You want to nudge your users to enroll for a monthly pass as soon as they open the app. The parameters for these users can be the following: * The users must be power users, and * The users have booked more than five rides in a month, and * They belong to select cities in the country Now, you can create a segment with these criteria called _Power Users_ and using it repeatedly rather than creating a complex query each time. The following is a campaign query for a ride-hailing app that includes the _Power Users_ segment. ![1067](https://files.readme.io/f9f341a-include_segments_campaign.png "Set Up the Options to Include a Segment from Campaign") Include Segment > 📘 > > ### > > Include and Exclude Segments > > [](https://docs.clevertap.com/docs/segments#include-and-exclude-segments-1) > > * You can include and exclude segments in the same query. It is considered as an _AND_ condition between the Included and the Excluded segments. > * The include and exclude segments are currently unavailable for bulletins and A/B Testing. > * The segments available for including or excluding users can only be of the type [PBS](doc:segments#section-past-behavior-segments) > segment. Additional AND By Behavior Filters [](https://docs.clevertap.com/docs/segments#additional-and-by-behavior-filters) ====================================================================================================================== _AND By behavior_ filters provide customers the ability to segment users based on the count, average, or total sum of a property value. ### Count [](https://docs.clevertap.com/docs/segments#count) The count filter allows customers to filter users by event count. The query finds all users who performed a _Charged_ event greater than 5 times in the past 30 days. ![1192](https://files.readme.io/0678593-2020-11-24_17-51-01_Count.png "Select Count to Filter Users by Count") Count Filter ### Average of Property Filter [](https://docs.clevertap.com/docs/segments#average-of-property-filter) The _Average of property_ filter allows customers to filter users by the average of a chosen event property. The query finds all users who performed a _Charged_ event such that the average _Revenue_ event property per event is greater than $10. The _Average of property_ filter allows averaging the value of the selected event property. For example, you can find out the average revenue earned from all users who performed purchases worth $10 or less. Let us assume that 5 users charged for each for $3, $5, $7, $2, and $8. The average value of all the purchases lower than $10 is ($ 3+ 5 +7+2+8)/5 events = 25/5= $5 per event. Let us assume that the value for 2 charged events is missing. The charged event values received are $3, $5, and $7. The value of the missing events will be considered as 0. The average of property is now ($3 + 5 +7 +0 +0)/5 events = 15/5 =$3 per event. If you want to exclude all the events that do not have event properties, you can select the property that exists a condition in the _Filter by_ section. ![1192](https://files.readme.io/09c3239-2020-11-24_17-52-22_Average_of_property.png "Select Average of Property Filter") Average of Property Filter ### Total Sum of Property [](https://docs.clevertap.com/docs/segments#total-sum-of-property) The _Total sum of property_ filter allows customers to filter users by the sum of a chosen event property. The query finds all users who performed a _Charged_ event such that the _Revenue_ event property is greater than $10. ![1194](https://files.readme.io/d973ab4-2020-11-24_17-53-50_Total_sum_of_property.png "Select Total Sum of Property Filter") Total Sum of Property Filter > 📘 > > ### > > Include Users Who Did Not Do the Event > > [](https://docs.clevertap.com/docs/segments#include-users-who-did-not-do-the-event) > > If the query is to find people who performed the charged event fewer than five times, by default, the users who have not performed the charged event are not included in the result set. Only the users who did the charged event but did it fewer than five times are included; however, if the checkbox for _Include users who didn’t do the event_ is selected, those users are also included in the result set. The same is true for sum and average. ![1187](https://files.readme.io/db44a26-2020-11-24_17-56-46_Checkbox_message.png "Select the Checkmark to Include Users Who Did Not Do an Event") Include Users Who Did Not Do an Event Segment Operations [](https://docs.clevertap.com/docs/segments#segment-operations) ====================================================================================== You can perform different actions on the segments from the _Segments_ page. Each of them is explained in the sections to follow Search Segment [](https://docs.clevertap.com/docs/segments#search-segment) ------------------------------------------------------------------------------ You can search segments by their Name or ID from the _Segments_ page. ![2396](https://files.readme.io/1251882-Search_Segment.png "Search Segment.png") Search a Segment Copy Segment Name and ID [](https://docs.clevertap.com/docs/segments#copy-segment-name-and-id) -------------------------------------------------------------------------------------------------- To copy segment name and ID: 1. From _Segments_ page, hover on the _name_ or _ID_ of the required segment. 2. Click the ![Copy](https://files.readme.io/0e1c106-Copy_icon.png) icon against the respective segment. ![2402](https://files.readme.io/0455ea5-Copy_Segment_name_and_ID_.png "Copy Segment name and ID .png") Copy a Segment Name and ID Engage with Segment [](https://docs.clevertap.com/docs/segments#engage-with-segment) ---------------------------------------------------------------------------------------- To engage with a segment directly from the _Segments_ page: 1. Click ![Ellipses](https://files.readme.io/b15093f-ellipses_icon.png) icon displayed against the segment name under the _Segment details_ column and click **Engage**. ![2394](https://files.readme.io/e73666c-Engage_from_Segments_page.png "Engage from Segments page.png") Engage with a Segment On clicking, _Messaging Channels_ popup displays. 2. Select the _Messaging Channel_. ![2376](https://files.readme.io/6d679c6-Messaging_Channels_popup.png "Messaging Channels popup.png") Select a Messaging Channel On selecting the channel, you are navigated to the messaging channel with your segment criteria pre-populated under the _Who_ section of the _New Campaign_ page. ![2752](https://files.readme.io/4ebf6d1-Who_section_prepopulated.png "Who section prepopulated.png") Create a Campaign Clone a Segment [](https://docs.clevertap.com/docs/segments#clone-a-segment) -------------------------------------------------------------------------------- This operation helps to create a new segment from an already existing segment with minor or no modifications to the qualification criteria of the segment. To clone a segment directly from the _Segments_ page: 1. Click the ![Ellipses](https://files.readme.io/b15093f-ellipses_icon.png) icon displayed against the segment name under the _Segment details_ column and click **Clone**. ![2394](https://files.readme.io/d3fba76-Clone_Segment.png "Clone Segment.png") Clone a Segment On clicking, the _Create New_ page opens with prepopulated qualification criteria. 2. Make the necessary modifications to the qualification criteria, if required. 3. Click **Save segment**. 4. Enter the _Segment name_ and click **Save**. Delete [](https://docs.clevertap.com/docs/segments#delete) -------------------------------------------------------------- There may be times when you may need to delete unused segments. To delete the unused segments: 1. Click![Ellipses](https://files.readme.io/b15093f-ellipses_icon.png) icon displayed against the segment name under the _Segment details_ column and click **Delete**. ![2394](https://files.readme.io/c9ab0c2-Delete_Segment.png "Delete Segment.png") Delete a Segment On clicking, the _Delete Segment?_ popup is displayed on the right side of the screen. 2. Click **Delete** to confirm your action. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/segments#note) > > If your account's total number of segments exceeds 1000, you can view up to 500 segments on a single page and delete a maximum of 500 segments at a time. If the number of segments is less than 1000, you can view up to 50 segments on a single page and delete a maximum of 50 segments at a time. Sort [](https://docs.clevertap.com/docs/segments#sort) ---------------------------------------------------------- You can sort segments based on the following columns under _Segments_ page by clicking the arrows against the respective columns : * Segment details * Created on * Updated On * Engagement * Dependent Segments ![1188](https://files.readme.io/ab3b2c8-Sort_Segments.gif "Sort Segments.gif") Sort Segments Filter Segments [](https://docs.clevertap.com/docs/segments#filter-segments) -------------------------------------------------------------------------------- You can filter out segments based on the following fields by clicking the ![Filter](https://files.readme.io/9cb6680-Filter_icon.png) icon: * Type: Indicates the type of segment. * Goals. Indicates the goals running on the segment. * Created by: Indicates the name of the user who created the segment. * Updated by: Indicates the name of the user who last updated the segment. ![1196](https://files.readme.io/2382971-Filter_Segments.gif "Filter Segments.gif") Filter Segments You can also filter segments based on the date on which the segments were created. To do so, select the date range, available at the top, for which you want to view the segment. ![2398](https://files.readme.io/6a92678-Filter_Segments_by_creation_date.png "Filter Segments by creation date.png") Filter Segments by Date Updated about 2 months ago * * * Ask AI --- # Generic WhatsApp Overview [](https://docs.clevertap.com/docs/generic-whatsapp#overview) ========================================================================== CleverTap supports any WhatsApp provider via integration. CleverTap has recently made its WhatsApp API and standard callback formats accessible to WhatsApp service providers globally. Now, BSPs and customers are no longer required to rely on CleverTap to build the native WhatsApp integration. Instead, they can utilize these APIs to build the integration themselves independently. > 📘 > > ### > > For CleverTap Customers > > [](https://docs.clevertap.com/docs/generic-whatsapp#for-clevertap-customers) > > This feature is helpful to customers in the following ways: > > * Customers can build middleware between CleverTap and BSP and create their own endpoint. They can start using WhatsApp functionality in CleverTap with the BSP of their choice. > * Customers can request their BSPs to build the CleverTap integration. This will allow customers to use the provider with CleverTap without any development. > 📘 > > ### > > For WhatsApp BSPs > > [](https://docs.clevertap.com/docs/generic-whatsapp#for-whatsapp-bsps) > > Providers who wish to pursue the partnership must follow the integration steps outlined in this document and send an email to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#f990978d9c9e8b988d9096978ab99a959c8f9c8b8d9889d79a9694) > or [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#8fffeefdfbe1eafda2e6e1fbeae8fdeefbe6e0e1fccfece3eaf9eafdfbeeffa1ece0e2) > to include their names in the supported provider's list. Supported Business Service Providers [](https://docs.clevertap.com/docs/generic-whatsapp#supported-business-service-providers) ---------------------------------------------------------------------------------------------------------------------------------- The following Business Service Providers have built ready-to-use WhatsApp integration with CleverTap using CleverTap's generic integration. * [Exotel](https://docs.clevertap.com/docs/exotel-whatsapp) * [Haptik](https://docs.clevertap.com/docs/haptik) * [Kaleyra](https://docs.clevertap.com/docs/kaleyra) You can use this generic API documentation for other providers to establish an integration between CleverTap and your business service provider. Alternatively, you can ask your provider to create a ready-to-use integration with CleverTap based on this documentation. Partner Acceptance Criteria [](https://docs.clevertap.com/docs/generic-whatsapp#partner-acceptance-criteria) ---------------------------------------------------------------------------------------------------------------- Any WhatsApp partner can integrate with our open APIs. However, to become a supported partner with CleverTap, they must share the following with CleverTap: * Production API endpoint for sending Template and Freeform notifications via a single endpoint. * Production API credentials for two test accounts so the CleverTap team can test the integration. * Providers must provide dashboard access so the CleverTap team can create or share approved templates to test the campaign flow. * Providers must add CleverTap's callback URL to the test accounts. This helps CleverTap check whether the callbacks are received in the correct format. * Providers are required to publish a CleverTap integration guide in their user documentation. This will enable CleverTap to cross-reference the integration guide from our documents. * Partners must provide the contact details of their dedicated support and product team so that CleverTap can contact them in case of any issues. * Providers must support a minimum of 1500 concurrent API requests for each customer using the integration. * Partners must test integration with a few customers at scale. * Partners are responsible for maintaining the integration and proactively resolving any issues. Test Partner Integration [](https://docs.clevertap.com/docs/generic-whatsapp#test-partner-integration) ========================================================================================================== Partners must test their integration in the CleverTap sandbox environment to validate message delivery, callbacks, and two-way communication. The following steps outline the required configuration and testing flow. * Any partner can request access to the CleverTap sandbox account by writing to our partnership teams. * Partners must develop the middleware connecting CleverTap and their platform. This should enable partners to receive message payloads (both freeform and template messages) from CleverTap and send the Delivery Receipts (DLRs) and Incoming Message Opt-Out (IMO)Callback per the payload structure published by CleverTap. * Partners must save their messaging endpoints in the CleverTap sandbox account and configure CleverTap DLR and incoming message [callback URLs](https://docs.clevertap.com/docs/generic-whatsapp#2-set-up-clevertap-callbacks-with-provider) at their end. This requires that partners accept our endpoint [validation payload](https://docs.clevertap.com/docs/generic-whatsapp#validation-payload-1) and return a \[200 OK\] success API response. * Partners must [save the template](https://docs.clevertap.com/docs/haptik#adding-message-template) and send a test notification to ensure template messages are delivered to the end user. * Once the messaging endpoints and templates have been saved and tested successfully, the partner can [create a WhatsApp campaign](https://docs.clevertap.com/docs/create-message-whatsapp) . The campaigns must target a large user base to scale-test the integration. * Once the Campaign has been published and completed successfully, check the [WhatsApp campaign stats](https://docs.clevertap.com/docs/whatsapp-stats) and ensure the following: * Sent, Delivered, and Viewed counts are captured successfully and match your platform count. * The campaign error count is per expectation, and errors are categorized correctly. * Test campaigns for different combinations of templates, such as media headers, footers, CTA, quick replies, and so on. This test is required to ensure that all templates are working as expected. * Once the campaign has been tested successfully, go to [conversations](https://docs.clevertap.com/docs/conversations) and check whether incoming responses are being shown correctly for all the users who are replying. * Respond to users from [agent chat](https://docs.clevertap.com/docs/conversations#role-based-access-agent-role) with different combinations ( text, media, location, documents, and so on) and check whether the messages are being delivered to end users correctly. * Similarly, to the previous step, send different types of messages from end-user devices on WhatsApp and check whether all messages are being captured and shown in CleverTap conversations. Troubleshooting and FAQs for Generic Integration [](https://docs.clevertap.com/docs/generic-whatsapp#troubleshooting-and-faqs-for-generic-integration) ========================================================================================================================================================== These are some of the frequent issues that partners usually face when testing the integration. Q. Provider setting is not being saved in the CleverTap dashboard [](https://docs.clevertap.com/docs/generic-whatsapp#q-provider-setting-is-not-being-saved-in-the-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Whenever a provider setting is saved in the CleverTap dashboard, we send out a [dummy messaging payload](https://docs.clevertap.com/docs/generic-whatsapp#validation-payload-1) to verify that your endpoint is up and returning a success response. If we do not receive the expected success response within one second, we display an error showing the API request and response received from your endpoint. ![](https://files.readme.io/3cda454-image.png) Failed API response Partners can use the request shown in the above pop-up in Postman to debug the issue further. Q. Why am I unable to save the templates in the CleverTap dashboard? [](https://docs.clevertap.com/docs/generic-whatsapp#q-why-am-i-unable-to-save-the-templates-in-the-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ CleverTap validates the Template that is saved in the dashboard by trying to deliver the Template message to a dummy number. This is required to ensure that customers don't save the incorrect templates and run into issues later when creating an actual campaign. To validate the Templates, we send the payload according to the template saved to the message endpoint which is saved in provider settings. If we receive the success response from the partner's endpoint within a second, we save the templates else, we display an error showing the request body and the API response. ![](https://files.readme.io/29696e4-image.png) Partners can use the request body in Postman to debug the issue in detail at their end. Q. Why is the Template Message not being delivered to the end user ? [](https://docs.clevertap.com/docs/generic-whatsapp#q-why-is-the-template-message-not-being-delivered-to-the-end-user-) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ CleverTap is only responsible for sending the messaging payloads to the partners. Final delivery is owned by partners. Check the messaging payload received at the partner's end & ask them to resolve the issue. Having mentioned this, there could be many issues for messaging not delivering to end users, such as Template mismatch, Template deleted, or paused by META, and so on. To eliminate this issue as a possible cause, try different templates. If none of the templates are being delivered, then this might happen because of integration issues. Partners can get the template payload by [testing the templates](https://docs.clevertap.com/docs/haptik#testing-a-message-template) and comparing the payload to find the mismatch and resolve the issue. Q. Getting lots of generic miscellaneous errors in the campaign [](https://docs.clevertap.com/docs/generic-whatsapp#q-getting-lots-of-generic-miscellaneous-errors-in-the-campaign) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Generic miscellaneous errors in the campaign come primarily for three reasons. * We received the error code **2004** in response to the messaging API request. * We received the error code **1009** in the status callback. * Messaging API requests timed out because we didn't receive the API success response within the defined timeout limits(one second). This usually happens when Partner's API endpoint cannot support the concurrency limit at which CleverTap sends the messaging requests. Q. Why is the incoming response not recorded? [](https://docs.clevertap.com/docs/generic-whatsapp#q-why-is-the-incoming-response-not-recorded) -------------------------------------------------------------------------------------------------------------------------------------------------- Two issues can cause this: * The phone number used to send the WhatsApp message has never been targeted via CleverTap's WhatsApp campaigns. Create a sample campaign for the number that sends incoming messages. * Incoming message callbacks are not coming in expected callback formats. Test with our [sample payload](https://docs.clevertap.com/docs/generic-whatsapp#api-payload-for-template-message) . Q. Why is the WhatsApp campaign not live? [](https://docs.clevertap.com/docs/generic-whatsapp#q-why-is-the-whatsapp-campaign-not-live) ------------------------------------------------------------------------------------------------------------------------------------------ Check that the account is not dormant. A dormant account is an account that does not receive any data for more than 15 days. [Upload a sample event](https://developer.clevertap.com/docs/upload-events-api#overview) to resume using the account. CleverTap marks an account as dormant if the account does not receive any data in 15 days. Campaigns will not go live in the dormant account because there is no data to target. To activate the account, partners must [Upload a sample event](https://developer.clevertap.com/docs/upload-events-api#overview) . Q. Why don't I have access to WhatsApp campaigns & conversations? [](https://docs.clevertap.com/docs/generic-whatsapp#q-why-dont-i-have-access-to-whatsapp-campaigns--conversations) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Enable the WhatsApp Connect Add-on and contact us at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#fc8c9d8e8892998ed1959288999b8e9d889593928fbc9f90998a998e889d8cd29f9391) . Q. Why don't I have access to campaigns creation? [](https://docs.clevertap.com/docs/generic-whatsapp#q-why-dont-i-have-access-to-campaigns-creation) --------------------------------------------------------------------------------------------------------------------------------------------------------- Before creating a campaign to target users, you must have a few users already added to your CleverTap project. If there are no users added to your project, you will see the following screen when you try to access the campaigns: ![](https://files.readme.io/602a7cf-image.png) Campaigns First Time Screen There are multiple ways to add users to a CleverTap project. 1. **Via CSV upload**: CSV uploads are easy way to add test users in a CleverTap Project. The following are the conditions for updating the flags: 1. The objectId or identity must be the first column in the uploaded CSV file. 2. The Phone column is mandatory, and phone numbers must have the country code. For example, +14155551234. Following is a table that displays the CSV columns: | Identity | Email | Phone | MSG-whatsapp | MSG-sms | | --- | --- | --- | --- | --- | | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#670d080f0949030802270d080f090308024904080a) | | +14155551234 | TRUE | TRUE | | 14155551235 | | | TRUE | TRUE | | 14155551234 | | +14155551234 | TRUE | TRUE | | 234853412 | [\[email protected\]](https://docs.clevertap.com/docs/generic-whatsapp) | +14155551234 | TRUE | TRUE | 2. **Via User upload APIs** CleverTap offers APIs that enable you to send the values of subscription flags programmatically. This method is useful for automating the subscription management process and integrating CleverTap with your existing systems. For more information, see [upload user profiles](https://developer.clevertap.com/docs/upload-user-profiles-api) . Following is an example of subscribing a user for WhatsApp messaging: **Base URLs** Here is an example base URL for an account in the India region: [https://in1.api.clevertap.com/1/upload](https://in1.api.clevertap.com/1/upload) | Region | API Endpoint | | --- | --- | | India | in1.api.clevertap.com | | Singapore | sg1.api.clevertap.com | | United States | us1.api.clevertap.com | | Indonesia | aps3.api.clevertap.com | | Middle East (UAE) | mec1.api.clevertap.com | | Europe (default region) | api.clevertap.com | **Headers** The API headers are used while processing the API request. The following headers are required when you use CleverTap APIs: The X-CleverTap-Account-Id and X-CleverTap-Passcode authenticate the request. | Header | Description | Type | Example Value | | --- | --- | --- | --- | | X-CleverTap-Account-Id | Your CleverTap Account ID | string | "X-CleverTap-Account-Id: ACCOUNT\_ID" | | X-CleverTap-Passcode | Your CleverTap Account Passcode. | string | "X-CleverTap-Passcode: PASSCODE" | | Content-Type | Request content-type is always set to application/json. | string | "Content-Type: application/json" | Refer to the [API Authentication](https://developer.clevertap.com/docs/authentication) to obtain the header values. To understand the common queries and concerns related to CleverTap APIs, refer to [API FAQs](https://developer.clevertap.com/docs/api-faqs) . **Sample JSON Payload** Following is a sample JSON payload to upload a user profile: JSON { "d": [\ {\ "identity": "1189549", \ "type": "profile",\ "profileData": {\ "Name": "Jack Montana",\ "Email": "[email protected]",\ "Phone": "+14155551234",\ "Gender": "M",\ "MSG-sms": true,\ "MSG-email":true,//called when email must be subscribed \ "MSG-whatsapp": true,\ "Customer Type": "internal test user"\ }\ }\ ] } To know more about user upload APIs, refer to [Upload User Profiles](https://developer.clevertap.com/docs/upload-user-profiles-api) . Integration Steps for CleverTap Customers using Generic Integration [](https://docs.clevertap.com/docs/generic-whatsapp#integration-steps-for-clevertap-customers-using-generic-integration) ================================================================================================================================================================================================ CleverTap Customers must get endpoint and authentication details from their WhatsApp providers before starting the integrations. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/generic-whatsapp#note) > > 1. BSPs might have a dedicated endpoint (different from their standard endpoint) for CleverTap integration. Given this, you must get the API details for CleverTap integration from your provider. > 2. Please note that your WhatsApp providers are responsible for final message delivery and sending DLR and IMOs back to Clevertap. In case of any issue with these, You will have to ask your providers to resolve these issues. This process involves the following steps: 1. [Set Up WhatsApp Provider In CleverTap Dashboard](doc:generic-whatsapp#1-set-up-whatsapp-provider-in-clevertap-dashboard) 2. [Set Up CleverTap Callbacks with Provider](doc:generic-whatsapp#2-set-up-clevertap-callbacks-with-provider) 3. [Adding Message Template](doc:generic-whatsapp#3-adding-message-template) 4. [Create a Campaign](doc:generic-whatsapp#4-create-a-campaign) 5. [Creating a Journey](doc:generic-whatsapp#5-creating-a-journey) 1\. Set Up WhatsApp Provider In CleverTap Dashboard [](https://docs.clevertap.com/docs/generic-whatsapp#1-set-up-whatsapp-provider-in-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_\> _WhatsApp Connect_ from the CleverTap dashboard. 2. Click **\+ Add Provider** and select Generic (Other) from the dropdown. ![](https://files.readme.io/29282ee-Whatsapp_Common_Provider_Setup.png) Add a WhatsApp Provider 3. Enter the following details: | Field | Description | | --- | --- | | Provider | Select _Other (Generic)_ from the dropdown list. | | Nickname | Enter the nickname <10-digit phone number> for easy reference. | | Mobile Number | Enter your phone number onboarded to WhatsApp API by your BSP. | | Request Type | Ensure the Request Type is _Post_. | | HTTP Endpoint | Enter HTTP Endpoint as provided by your BSP. | | Authentication | Select _Basic Authentication_ and enter the _Username_ and _Password_ for the user. | | Delivery Report Callback URL | This URL is generated automatically. Share the URL with your BSP account manager. It is your BSP's responsibility to integrate this URL in their dashboard. | | Inbound Message Callback URL | This URL is generated automatically. Share the URL with your BSP account manager. It is your BSP's responsibility to integrate this URL in their dashboard. | 4. (Optional) Select _Mark this as default_ to make this service provider the default provider to send a WhatsApp message. 5. (Optional) Select _Set auto-reply for users not tracked on CleverTap_ to automatically reply to users who message on WhatsApp but are not tracked on the CleverTap dashboard. 6. (Optional) You can set the _Maximum Concurrent API requests_ anywhere between 30 to 1000 requests. Consider your requirements and the provider's limitations to define this value. 7. Send a Test WhatsApp notification: ![](https://files.readme.io/c384922-sendtest.png "Send a Test WhatsApp Message") Send a Test WhatsApp Message 8. Click **Save** to save the details. 2\. Set Up CleverTap Callbacks with Provider [](https://docs.clevertap.com/docs/generic-whatsapp#2-set-up-clevertap-callbacks-with-provider) ------------------------------------------------------------------------------------------------------------------------------------------------ You can find the Callback URLs on the CleverTap dashboard under the Provider _Setup_ page. Naviagte to _Settings_ > _Channels_ > _WhatsApp_ . To set up the CleverTap callbacks, share the following with your BSP account manager: * Delivery Report Callback URL * Inbound Message Callback URL * The WhatsApp phone number that will be used in CleverTap ![](https://files.readme.io/b61e35f-Whatsapp_provider_credentials.png) Callback URLs 3\. Adding Message Template [](https://docs.clevertap.com/docs/generic-whatsapp#3-adding-message-template) -------------------------------------------------------------------------------------------------------------- To create WhatsApp campaigns, you must have pre-approved WhatsApp message templates saved in the CleverTap dashboard. To add the message templates: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ >_Provider Nickname_ from the CleverTap dashboard. 2. Select the _Templates_ option, and click **+Template**. For more information, refer to adding a [generic message template](https://docs.clevertap.com/docs/haptik#adding-message-template) ### Import Templates [](https://docs.clevertap.com/docs/generic-whatsapp#import-templates) The Import Template functionality allows importing WhatsApp message templates from a vendor into CleverTap without manually recreating them. This eliminates the need to duplicate template content field by field and helps reduce errors caused by formatting mismatches. The import will be successful only if the vendor supports template import functionality. In such cases, the vendor will provide the required API endpoint, authentication credentials, and additional configuration details such as import limits and click-tracking domains. Imported templates must follow [Meta’s template import format](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/#best-practices-for-marketing-templates) . To set up the import, configure the following fields: 1. Navigate to _Settings_ > _Channels_ > _WhatsApp_ > _WhatsApp Connect_ >_\+ Provider Configuration_ from the CleverTap dashboard. 2. Select _Generic (other)_ from the list, and then select the **Template import setup** check box. ![](https://files.readme.io/3687cd7cbba725b02a5dbe0753dc02dc11ebd53d4801e4df53197a75e2e0c0ec-2025-07-20_18-18-40.png) Import Template 3. Select _Request Type_: Select **GET** from the _Request Type_ list. This is the supported method for importing templates via an external endpoint. 4. Specify _HTTP Endpoint_: Enter the _HTTP endpoint_ URL provided by the vendor. This is the URL to which CleverTap will send the **GET** request to fetch the templates for import. CleverTap expects the vendor to return a response that matches this structure exactly. The following is an example of the request and response formats: **API Call Example**: JSON curl --location 'https://vendor-api.XXXX.com/templates/import?limit=50' \ --header 'Authorization: Bearer ********************' **Second Request**: If the number of templates exceeds the defined limit, CleverTap uses the `after` cursor returned in the first response to fetch the next batch of templates. This ensures all available templates are retrieved in sequential pages. JSON curl --location 'https://vendor-api.XXXX.com/templates/import?limit=500&after=MgZDZD"' \ --header 'Authorization: Bearer ********************' **Expected Response for Basic Template**: JSON { "data": [\ {\ "name": "dashboard_track_order",\ "message_send_ttl_seconds": 30,\ "previous_category": "MARKETING",\ "parameter_format": "POSITIONAL",\ "components": [\ {\ "type": "BODY",\ "text": "Hey {{1}}, Your order is out for delivery. Track your order here",\ "example": {\ "body_text": [\ ["Sample"]\ ]\ }\ },\ {\ "type": "BUTTONS",\ "buttons": [\ {\ "type": "URL",\ "text": "Track Order",\ "url": "https://XXXX/{{1}}",\ "example": ["https://XXXX/test"]\ }\ ]\ }\ ],\ "language": "en",\ "status": "APPROVED",\ "category": "UTILITY",\ "id": "83383905XXXX"\ }\ ], "paging": { "cursors": { "before": "MAZDZD", "after": "MgZDZD" }, "next": "https://vendor-api.XXXX.com/templates/import?limit=500&after=MgZDZD" } } **Expected Response for LTO Templates**: JSON { "data": [\ {\ "name": "lto_template_import",\ "message_send_ttl_seconds": 86400,\ "parameter_format": "POSITIONAL",\ "components": [\ {\ "type": "HEADER",\ "format": "VIDEO",\ "example": {\ "header_handle": [\ "https://XXXXXX/v/t61.29466-34/XXXX.mp4"\ ]\ }\ },\ {\ "type": "BODY",\ "text": "Celebrate Diwali with a sparkle!\nHey {{1}},\nOur exclusive Diwali Sale is here for a limited time—enjoy massive discounts on your favorite products. Don't miss your chance to brighten up your celebrations and save big. Shop now before the best deals disappear. Explore the Diwali magic with us—tap to unlock your special offer.",\ "example": {\ "body_text": [\ ["sample"]\ ]\ }\ },\ {\ "type": "LIMITED_TIME_OFFER",\ "limited_time_offer": {\ "text": "Buy Now",\ "has_expiration": true\ }\ },\ {\ "type": "BUTTONS",\ "buttons": [\ {\ "type": "COPY_CODE",\ "text": "Copy offer code",\ "example": ["HAPPYDIWALI"]\ },\ {\ "type": "URL",\ "text": "Dynamic Button",\ "url": "https://XXXX/{{1}}",\ "example": ["https://XXXX/test"]\ },\ {\ "type": "URL",\ "text": "Click tracking",\ "url": "https://XXXX/{{1}}",\ "example": ["https://XXXX/test"]\ },\ {\ "type": "PHONE_NUMBER",\ "text": "Call us",\ "phone_number": "+91XXXXXXX"\ },\ {\ "type": "QUICK_REPLY",\ "text": "Show More"\ },\ {\ "type": "QUICK_REPLY",\ "text": "Coupon Code"\ },\ {\ "type": "QUICK_REPLY",\ "text": "STOP"\ }\ ]\ }\ ],\ "language": "en",\ "status": "APPROVED",\ "category": "MARKETING",\ "id": "27152845XXXX"\ }\ ], "paging": { "cursors": { "before": "MAZDZD", "after": "MgZDZD" }, "next": "https://vendor-api.XXXX.com/templates/import?limit=500&after=MgZDZD" } } **Expected Response for Carousel Template** JSON { "data": [\ {\ "name": "carousel_test_01",\ "message_send_ttl_seconds": 54000,\ "parameter_format": "POSITIONAL",\ "components": [\ {\ "type": "BODY",\ "text": "hello {{1}}, Welcome to CleverTap",\ "example": {\ "body_text": [\ [\ "Deepa"\ ]\ ]\ }\ },\ {\ "type": "CAROUSEL",\ "cards": [\ {\ "components": [\ {\ "type": "HEADER",\ "format": "VIDEO",\ "example": {\ "header_handle": [\ "https://XXXXXX/v/t61.29466-34/XXXX.mp4"\ ]\ }\ },\ {\ "type": "BODY",\ "text": "dsd"\ },\ {\ "type": "BUTTONS",\ "buttons": [\ {\ "type": "URL",\ "text": "dsds",\ "url": "http://www.example.com/"\ }\ ]\ }\ ]\ },\ {\ "components": [\ {\ "type": "HEADER",\ "format": "VIDEO",\ "example": {\ "header_handle": [\ "https://XXXXXX/v/t61.29466-34/XXXX.mp4"\ ]\ }\ },\ {\ "type": "BODY",\ "text": "dsd"\ },\ {\ "type": "BUTTONS",\ "buttons": [\ {\ "type": "URL",\ "text": "dsds",\ "url": "http://www.example.com/"\ }\ ]\ }\ ]\ }\ ]\ }\ ],\ "language": "bg",\ "status": "APPROVED",\ "category": "MARKETING",\ "id": "1498361544XXXXXX"\ }\ ], "paging": { "cursors": { "before": "MAZDZD", "after": "MgZDZD" }, "next": "https://vendor-api.XXXX.com/templates/import?limit=500&after=MgZDZD" } } 5. Specify _Import Limits & Pagination_: Define the number of templates to retrieve in each request (recommended: 50 to 500) and configure how pagination is handled. Vendors may use page numbers, cursors, or tokens to return additional results. These values are provided by the vendor and must be configured accurately to ensure full template retrieval. 6. Configure _Authentication_ (optional): Add the appropriate authentication headers if the vendor’s API requires authorization. CleverTap supports Basic Authentication and custom header-based tokens. For more details on authentication methods (including _Basic Authentication_), refer to the [Set Up Webhooks documentation](https://docs.clevertap.com/docs/setup-webhooks#basic-authentication) . 7. Set _Track Clicks_ (optional): This field enables click tracking on imported templates that contain buttons using a click-tracking domain. Since Meta does not natively support click tracking, vendors may implement it by using a dynamic button configured with a custom tracking domain. If the vendor supports click tracking through such a solution, provide the relevant domain in this field. During import, CleverTap will identify templates containing this domain and tag the associated buttons for click tracking. For more information, refer to the [Click Tracking section in WhatsApp Stats](https://docs.clevertap.com/docs/whatsapp-stats#clicked) . 8. Once the configuration is complete and saved, navigate to the _Templates_ tab. 4\. Create a Campaign [](https://docs.clevertap.com/docs/generic-whatsapp#4-create-a-campaign) -------------------------------------------------------------------------------------------------- To create a WhatsApp campaign using your BSP as the provider, refer to [Create a WhatsApp Campaign](doc:whatsapp#section-creating-a-whatsapp-campaign) for detailed instructions. If your users reply to notifications sent from CleverTap, incoming messages appear under the _Conversation_ section of the dashboard. Businesses can reply to incoming messages by selecting the chat. 5\. Creating a Journey [](https://docs.clevertap.com/docs/generic-whatsapp#5-creating-a-journey) ---------------------------------------------------------------------------------------------------- To create a WhatsApp journey using Infobip as the provider, refer to [Create a WhatsApp Journey](doc:engagement-nodes-whatsapp) for detailed instructions. Generic WhatsApp Integration Terminology [](https://docs.clevertap.com/docs/generic-whatsapp#generic-whatsapp-integration-terminology) ========================================================================================================================================== Messaging API Endpoint [](https://docs.clevertap.com/docs/generic-whatsapp#messaging-api-endpoint) ------------------------------------------------------------------------------------------------------ BSPs are requested to create an endpoint where CleverTap can send the notification payload for campaigns and free-form messages. Customers must ask BSPs to share the API endpoint that can accept the CleverTap Payload to save the provider in CleverTap Dashboard. API Authentication [](https://docs.clevertap.com/docs/generic-whatsapp#api-authentication) ---------------------------------------------------------------------------------------------- The CleverTap's REST API supports basic authentication or custom headers for authentication. Providers must share these credentials with customers so that customers can save these credentials with an endpoint. IMO(Incoming Message) & DLR (Status) Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#imoincoming-message--dlr-status-callbacks) ------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap creates unique DLR callbacks for each customer. WhatsApp providers/customers have to configure the [DLR and IMO](https://docs.clevertap.com/docs/generic-whatsapp#message-status-callbacks) callbacks at their end to send the Messages status and incoming messages to CleverTap. Status and incoming messages will only be captured if these are sent in CleverTap's expected payload structure. Template Message Payload [](https://docs.clevertap.com/docs/generic-whatsapp#template-message-payload) ---------------------------------------------------------------------------------------------------------- CleverTap has published the [Template Message payload formats](https://docs.clevertap.com/docs/generic-whatsapp#api-payload-for-template-message) that will be sent to messaging endpoint whenever a template message is sent from CleverTap Dashboard. Freeform Message Payload [](https://docs.clevertap.com/docs/generic-whatsapp#freeform-message-payload) ---------------------------------------------------------------------------------------------------------- CleverTap has published the [Freeform Messsage payload formats](https://docs.clevertap.com/docs/generic-whatsapp#api-payload-for-freeform-message) that will be sent to messaging endpoint whenever a freeform message is sent from CleverTap Dashboard. Validation Payload [](https://docs.clevertap.com/docs/generic-whatsapp#validation-payload) ---------------------------------------------------------------------------------------------- CleverTap sends a [dummy message payload API endpoint](https://docs.clevertap.com/docs/generic-whatsapp#validation-payload-1) , and credentials are configured in the CleverTap dashboard. This is required since at the time of saving provider in CleverTap doesn't have templates to test the credentials. API Concurrency [](https://docs.clevertap.com/docs/generic-whatsapp#api-concurrency) ---------------------------------------------------------------------------------------- By default, CleverTap hits the generic messaging API endpoint at 1500 concurrency ie. 1500 concurrent messaging requests are sent to messaging endpoint whenever a campaign is created in the CleverTap dashboard. Messaging & Callback Payloads [](https://docs.clevertap.com/docs/generic-whatsapp#messaging--callback-payloads) =================================================================================================================== Messaging API Specification [](https://docs.clevertap.com/docs/generic-whatsapp#messaging-api-specification) ---------------------------------------------------------------------------------------------------------------- CleverTap sends outbound message payloads into two categories: * Templates messages: These are preapproved messages templates needed to initiate a conversation with conversation. * Freeform messages: These are free text messages that can be sent to end user in response to their incoming messages. CleverTap sends either of the payloads depending on the type of message sent by the dashboard user. CleverTap sends the`isTemplate` key to helping BSPs understand whether this is a templatized message or a freeform message. > 📘 > > ### > > Single Endpoint > > [](https://docs.clevertap.com/docs/generic-whatsapp#single-endpoint) > > CleverTap does not support different endpoints for different types of messages, so BSPs must provide just one endpoint to process freeform and template messages. ### API Payload for Template Message [](https://docs.clevertap.com/docs/generic-whatsapp#api-payload-for-template-message) CleverTap sends this payload for sending the template message notification. The outgoing template message payload can be broken down into the following three sections: * User & notification information * Template information includes template name, namespace, template language, and so on. * Content information > 📘 > > ### > > Payload Essentials > > [](https://docs.clevertap.com/docs/generic-whatsapp#payload-essentials) > > The message payload is encoded into UTF-8 (Unicode Transformation Format) before being sent to the provider's endpoint. > > Values with $$ ($$To,$$BusinessWabaNumber) are dynamic values and change for each request. > > CleverTap does not support templates with contacts currently, so contact objects are not sent with payload. > > CleverTap does not support Name, Address, or URL key in location object. > > `msg_id` is a unique parameter for each message sent from CleverTap and must be present in callbacks sent by BSP to CleverTap. #### Payload Description for Template Message [](https://docs.clevertap.com/docs/generic-whatsapp#payload-description-for-template-message) | Parameter | Description | Data Type | Example Values | | --- | --- | --- | --- | | payloadVersion | Version of the payload being used. | Float | 0.1 | | to | Recipient's phone number | String | "919876543210", "+919876543210" | | wabaNumber | WhatsApp Business Account number | String | "1234567890" | | isTemplate | Indicates if the message is a template | Boolean | TRUE | | msgId | Unique identifier for the message | String | "i\|campaignID\|batchID\|j\|campaign\_variant" | | template.namespace | Identifier for the template in CleverTap Dashboard | String | "my\_template\_namespace" | | template.languageCode | Language and locale code for the template | String | "en\_US" | | components.type | Type of component, like header, body, button, and so on. | String | "header", "body", "button" | | header.type | Type of header like text, video, image, file, location | String | "text", "video", "image", "file", "location" | | header.text.text | Text content for text header | String | "Hello, World!" | | header.video.mediaURL | URL to the video media file | String | [http://example.com/video.mp4](http://example.com/video.mp4) | | header.image.mediaURL | URL to the image media file | String | [http://example.com/image.jpg](http://example.com/image.jpg) | | header.file.mediaURL | URL to the file media | String | [http://example.com/document.pdf](http://example.com/document.pdf) | | header.file.filename | Filename for the file | String | "document.pdf" | | header.location.longitude | Longitude for location header | String | "74.0060" | | header.location.latitude | Latitude for location header | String | "40.7128" | | header.location.name | Name for the location | String | "Central Park" | | header.location.address | Address for the location | String | "New York, NY 10024" | | body.text | Body text of the message | String | "Your order is ready for pickup." | | footer | Footer text for the message | String | "Thank you for choosing us!" | | button.subType | Specific type of button like dynamicUrl, staticUrl, quickReply, callPhone | String | "dynamicUrl", "staticUrl" | | button.buttonText | Text displayed on the button | String | "Click Here", "Copy Offer Code" | | button.index | Position of the button | Integer | 1, 2 | | button.parameters | Parameters for the button, like URL suffix, phone number, and so on. | Array | Depends on button.type | | customProps | Custom key-value pairs defined at the time of creating campaigns | Array | \[
{
"key1": "Value1"
},
{
"Key2": "Value2"
}
\] | #### Payload Samples for Template Message [](https://docs.clevertap.com/docs/generic-whatsapp#payload-samples-for-template-message) Text Template with FooterImage Template with Dynamic URL CTA buttonsSimple Text TemplateMedia TemplateLimited Time Offer TemplateMulti Button TemplatesCarousel TemplateTemplate with Custom Key-Value { "payloadVersion":0.1, "to": "919999999999", "wabaNumber": "91999999XXXX", "isTemplate": true, "msgId": "25596363|1639561857|20220227|25596363", "template": { "namespace": "Namespace:sample", "languageCode":"en(uk)" }, "components": [\ \ {\ "type": "body",\ "body": {\ "text":"This is sample body",\ "parameters": [\ {\ "type": "text",\ "text": "Sample"\ }\ ]}},\ {\ "type": "footer",\ "footertext":"this is footer"\ \ }\ ]} { "payloadVersion": 0.1, "to": "919999999999", "wabaNumber": "919999999999", "isTemplate": true, "msgId": "i|campaignID|batchID|j", "template": { "namespace": "Namespace:sample", "languageCode": "en" }, "components": [\ {\ "type": "header",\ "header": {\ "type": "image",\ "image": {\ "mediaURL": "httpa://www.example.com/image.png"\ }\ }\ },\ {\ "type": "body",\ "body": {\ "text": "This is sample body",\ "parameters": [\ {\ "type": "text",\ "text": "sample"\ }\ ]\ }\ },\ {\ "type": "button",\ "index": 0,\ "subType": "dynamicUrl",\ "buttonText": "Sample CTA TEXT",\ "parameters": [\ {\ "type": "text",\ "text": "https://www.example.com"\ }\ ]\ }\ ] } { "payloadVersion": 0.1, "to": "+9199XXXXXXX", "wabaNumber": "+91999999999", "isTemplate": true, "msgId": "1|2|3|4|5", "template": { "namespace": "Sample_Template",// Template name saved in CleverTap Dashboard "languageCode": "en(UK)" }, "components": [\ \ {\ "type": "body",\ "body": {\ "text": "Hey User, This is Body",\ "parameters": [\ {\ "type": "text",\ "text": "user"\ }\ ]\ }\ }\ ] } { "payloadVersion": 0.1, "to": "+9199XXXXXXX", "wabaNumber": "+91999999999", "isTemplate": true, "msgId": "1|2|3|4|5", "template": { "namespace": "Sample_Template",// Template name saved in CleverTap Dashboard "languageCode": "en(UK)" }, "components": [\ {\ "type": "header",\ "header": {\ "type": "image",\ "image": {\ "mediaURL": "example.com/image.png"\ }\ }\ \ {\ "type": "body",\ "body": {\ "text": "Hey User, This is Body",\ "parameters": [\ {\ "type": "text",\ "text": "user" \ }\ ]\ }\ },\ { \ "type": "button",\ "index": 0,\ "subType": "dynamicUrl",\ "buttonText": "Check-out cart",\ "parameters": [\ {\ "type": "text",\ "text": "cart"\ }\ ]\ },\ {\ "type": "button",\ "index": 0,\ "subType": "callPhone",\ "buttonText": "Call support",\ "parameters": [\ {\ "type": "text",\ "text": "+91994876856"\ }\ ]\ }\ ] } { "payloadVersion": 0.1, "wabaNumber": "919999999999", "to": "+919999999244", "isTemplate": true, "template": { "namespace": "Test_template", "languageCode": "en" }, "components": [\ {\ "type": "header",\ "header": {\ "type": "image",\ "image": {\ "mediaURL": "https://hatrabbits.com/wp-content/uploads/2017/01/random.jpg"\ }\ }\ },\ {\ "type": "body",\ "body": {\ "text": "Hey 0, Welcome to CleverTap.",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ }\ ]\ }\ },\ {\ "type": "limited_time_offer",\ "text": "Buy 1 Get 1 Free",\ "parameters": [\ {\ "type": "limited_time_offer",\ "limited_time_offer": {\ "expiration_time_ms": 1712081380237\ }\ }\ ]\ },\ {\ "type": "button",\ "index": 0,\ "buttonText": "Copy offer code",\ "subType": "copy_code",\ "parameters": [\ {\ "type": "coupon_code",\ "coupon_code": "SAMPLECODE"\ }\ ]\ },\ {\ "type": "button",\ "index": 1,\ "buttonText": "Check Out Now",\ "subType": "dynamicUrl",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ }\ ]\ },\ {\ "type": "button",\ "index": 2,\ "buttonText": "Call support",\ "subType": "callPhone",\ "parameters": [\ {\ "type": "text",\ "text": "+91999999999"\ }\ ]\ },\ {\ "type": "button",\ "index": 3,\ "buttonText": "Yes",\ "subType": "quickReply"\ },\ {\ "type": "button",\ "index": 4,\ "buttonText": "No",\ "subType": "quickReply"\ },\ {\ "type": "button",\ "index": 5,\ "buttonText": "Show More",\ "subType": "quickReply"\ }\ ], "msgId": "0|0|0|0" } { "payloadVersion": 0.1, "wabaNumber": "9407178156", "to": "+9198574656", "isTemplate": true, "template": { "namespace": "Test_Template", "languageCode": "en" }, "components": [\ {\ "type": "header",\ "header": {\ "type": "file",\ "file": {\ "mediaURL": "http://www.clevertap.com/~offer/pdf/new_offer.pdf",\ "filename": "New_offer"\ }\ }\ },\ {\ "type": "body",\ "body": {\ "text": "Hey 0, This is a test template",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ }\ ]\ }\ },\ {\ "type": "footer",\ "footer": "Please reply \"stop\" to optout"\ },\ {\ "type": "button",\ "index": 0,\ "buttonText": "Copy offer code",\ "subType": "copy_code",\ "parameters": [\ {\ "type": "coupon_code",\ "coupon_code": "SAMPLECODE"\ }\ ]\ },\ {\ "type": "button",\ "index": 1,\ "buttonText": "Visit App",\ "subType": "dynamicUrl",\ "parameters": [\ {\ "type": "text",\ "text": "https://www.clevertap.com/{{1}}"\ }\ ]\ },\ {\ "type": "button",\ "index": 2,\ "buttonText": "Check Out Now",\ "subType": "staticUrl",\ "parameters": [\ {\ "type": "text",\ "text": "https://www.clevertap.com"\ }\ ]\ },\ {\ "type": "button",\ "index": 3,\ "buttonText": "Show more",\ "subType": "quickReply"\ },\ {\ "type": "button",\ "index": 4,\ "buttonText": "Not Now",\ "subType": "quickReply"\ },\ {\ "type": "button",\ "index": 5,\ "buttonText": "STOP",\ "subType": "quickReply"\ }\ ], "msgId": "0|0|0|0" } { "payloadVersion": 0.1, "wabaNumber": "+919930079420", "to": "+91999645754", "isTemplate": true, "template": { "namespace": "carousel_test_1", "languageCode": "en" }, "components": [\ {\ "type": "body",\ "body": {\ "text": "hello main body 0",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ }\ ]\ }\ },\ {\ "type": "carousel",\ "cards": [\ {\ "components": [\ {\ "type": "header",\ "header": {\ "type": "image",\ "image": {\ "mediaURL": "https://hatrabbits.com/wp-content/uploads/2017/01/random.jpg"\ }\ }\ },\ {\ "type": "body",\ "body": {\ "text": "Hello card1 0, how are you?? 1",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ },\ {\ "type": "text",\ "text": "1"\ }\ ]\ }\ },\ {\ "type": "button",\ "index": 0,\ "buttonText": "Shop Now",\ "subType": "dynamicUrl",\ "parameters": [\ {\ "type": "text",\ "text": "wa/5xu5auQ"\ }\ ]\ },\ {\ "type": "button",\ "index": 1,\ "buttonText": "Dynamic",\ "subType": "dynamicUrl",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ }\ ]\ }\ ]\ },\ {\ "components": [\ {\ "type": "header",\ "header": {\ "type": "image",\ "image": {\ "mediaURL": "https://hatrabbits.com/wp-content/uploads/2017/01/random.jpg"\ }\ }\ },\ {\ "type": "body",\ "body": {\ "text": "Hello card2 0, how are you?? 1",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ },\ {\ "type": "text",\ "text": "1"\ }\ ]\ }\ },\ {\ "type": "button",\ "index": 0,\ "buttonText": "Shop Now",\ "subType": "staticUrl",\ "parameters": [\ {\ "type": "text",\ "text": "https://www.clevertap.com"\ }\ ]\ },\ {\ "type": "button",\ "index": 1,\ "buttonText": "Dynamic",\ "subType": "dynamicUrl",\ "parameters": [\ {\ "type": "text",\ "text": "0"\ }\ ]\ }\ ]\ }\ ]\ }\ ], "msgId": "0|0|0|0" } { "payloadVersion": 0.1, "wabaNumber": "9407178156", "to": "7658734869", "isTemplate": true, "template": { "namespace": "sample_template", "languageCode": "en" }, "components": [\ {\ "type": "header",\ "header": {\ "type": "file",\ "file": {\ "mediaURL": "https://d1510fwumr3byl.cloudfront.net/dist/1400000001/i/f90291d5c12140b1b36a9047c407ad75.pdf?v=1724156050",\ "filename": "OctoberCM2"\ }\ }\ },\ {\ "type": "body",\ "body": {\ "text": "Hey User, This test templates",\ "parameters": [\ {\ "type": "text",\ "text": "User"\ }\ ]\ }\ },\ {\ "type": "footer",\ "footer": "Please reply \"stop\" to optout"\ },\ {\ "type": "button",\ "index": 0,\ "buttonText": "Copy offer code",\ "subType": "copy_code",\ "parameters": [\ {\ "type": "coupon_code",\ "coupon_code": "BLACKFRIDAY20"\ }\ ]\ },\ {\ "type": "button",\ "index": 1,\ "buttonText": "Visit App",\ "subType": "staticUrl",\ "parameters": [\ {\ "type": "text",\ "text": "https://www.clevertap.com"\ }\ ]\ },\ {\ "type": "button",\ "index": 2,\ "buttonText": "Check Out Now",\ "subType": "staticUrl",\ "parameters": [\ {\ "type": "text",\ "text": "https://www.clevertap.com"\ }\ ]\ },\ {\ "type": "button",\ "index": 3,\ "buttonText": "Show more",\ "subType": "quickReply"\ },\ {\ "type": "button",\ "index": 4,\ "buttonText": "Not Now",\ "subType": "quickReply"\ },\ {\ "type": "button",\ "index": 5,\ "buttonText": "STOP",\ "subType": "quickReply"\ },\ {\ "customProps": [\ {\ "Key1": "$$Value1"\ },\ {\ "key2": "$$Value2"\ }\ ]\ }\ ], "msgId": "0|0|0|0" } API Payload for Freeform Message [](https://docs.clevertap.com/docs/generic-whatsapp#api-payload-for-freeform-message) -------------------------------------------------------------------------------------------------------------------------- CleverTap will send this payload for sending the Freeform message notification. Freeform message API payload has the user information about the targetted users, media URLs, and text. > 📘 > > ### > > Payload Essentials > > [](https://docs.clevertap.com/docs/generic-whatsapp#payload-essentials-1) > > * Values with $$ (for example $$To,$$BusinessWabaNumber) are dynamic values and change for each request. > > * Dynamic Reply Button, interactive lists, and product catalog, contacts, and locations are not currently supported in the CleverTap platform. This is why these objects are not mentioned in the payload. > > * CleverTap does not support Name, Address, or URL key in location object. > > * `msg_id` is a unique parameter for each message sent from CleverTap and must be present in callbacks sent by BSP to CleverTap. > #### Payload Description for Freeform Message [](https://docs.clevertap.com/docs/generic-whatsapp#payload-description-for-freeform-message) | Parameter | Description | Example Value | | | | | --- | --- | --- | --- | --- | --- | | to | Targeted user’s phone number | 9199XXXXXXXX | | | | | "payloadversion" | Version of the payload being sent to CleverTap | 0.1 | | | | | wabaNumber | Business’s WABA number | 9189XXXXXXXX | | | | | isTemplate | Used to highlight the whether the payload being sent is for templates or freeform | true/false | | | | | msgId | Unique identifier for message being sent and expected to be present in callback payloads | 25596363\\ | 1639561857\\ | 20220227\\ | 25596363 | | audio.mediaURL | Media URL of the file | [www.example.com/audio.mp3](http://www.example.com/audio.mp3) | | | | | file.mediaURL | Media URL of the file | [www.example.com/document.pdf](http://www.example.com/document.pdf) | | | | | file.caption | Message body | “This is message body” | | | | | file.filename | Title of the file | “sample\_document.pdf” | | | | | image.mediaURL | Media URL of the file | [www.example.com/image.png](http://www.example.com/image.png) | | | | | image.caption | Message body | “This is message body” | | | | | video.mediaURL | Media URL of the file | [www.example.com/video.mp4](http://www.example.com/video.mp4) | | | | | video.caption | Message body | “This is message body” | | | | #### Payload Samples For Freeform Message [](https://docs.clevertap.com/docs/generic-whatsapp#payload-samples-for-freeform-message) Message Template with AudioMessage Template with ImageMessage with documents { "payloadVersion":0.1, "to": "919999999999", “msg_id”:"25596363|1639561857|20220227|25596363", "wabaNumber": "91999999XXXX", "type": "audio", "isTemplate": false, "audio": { "mediaURL": "www.example.com/audio.mp3" } } { "payloadVersion":0.1, "to": "919999999999", "wabaNumber": "91999999XXXX", “msg_id”:"25596363|1639561857|20220227|25596363", "type": "image", "isTemplate": false, "image": {"mediaURL": "www.example.com/image.png","caption": "This is body"} } { "payloadVersion":0.1, "to": "919999999999", "wabaNumber": "91999999XXXX", “msg_id”:"25596363|1639561857|20220227|25596363", "type": "file", "isTemplate": false, "file": { "mediaURL": "www.example.com/document.pdf", "caption": "This is body", "filename": "sample.pdf" } } Expected API Response [](https://docs.clevertap.com/docs/generic-whatsapp#expected-api-response) ---------------------------------------------------------------------------------------------------- ### Validation Payload [](https://docs.clevertap.com/docs/generic-whatsapp#validation-payload-1) CleverTap sends the following payload to validate the Messaging endpoint and API credentials saved in the dashboard. We expect success response within a second to save the endpoint. If the format is incorrect, we throw an error showing the API request and response we received from the endpoint. ### Error Objects [](https://docs.clevertap.com/docs/generic-whatsapp#error-objects) CleverTap expects partners to return any of the following responses depending on whether the request was successful. CleverTap will read the response body if the API request status code is _200 OK_, so notification processing-related errors and codes can be sent in the response body. Read the following for expected error codes: > 📘 > > ### > > Error Object > > [](https://docs.clevertap.com/docs/generic-whatsapp#error-object) > > The error object for the following error code needs to be specified only if there are errors in the send message API request: > > * 2000 → Invalid credentials > * 2001 → Invalid template parameters > * 2002 → Invalid phone number > * 2003 → Phone number not subscribed > * 2004 → Other ### HTTPS Codes [](https://docs.clevertap.com/docs/generic-whatsapp#https-codes) 200 Successful API callCode 200Code 500Code 429Code 403 { "status": "success | failure", } { "status": "failure", "error" : { "code" : 2000, "message" : "Invalid Credentials" } } { "status": "failure", "error" : { "message" : "Unable to process the request" } } { "message" : "Too many requests to process"} { "message" : "Bad Request"} WhatsApp Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#whatsapp-callbacks) ---------------------------------------------------------------------------------------------- CleverTap automatically creates unique callback URLs for each customer. These callback URLs are available under the _Provider_ setup section. BSPs are expected to add these callbacks at their end and forward the incoming messages to CleverTap’s callback URL in the specified format. CleverTap creates separate callback URLs for message status and incoming messages. Both these callbacks must be configured at the BSP's end. ### Callback Authentication [](https://docs.clevertap.com/docs/generic-whatsapp#callback-authentication) CleverTap creates unique callback URLs for each customer and does not need any authentication. CleverTap accepts the callbacks if the callbacks are sent in the expected format. ### Incoming Message Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#incoming-message-callbacks) BSPs must add CleverTap's incoming message callback URL at their end and forward the incoming message in the following format. #### Payload Description for Incoming Message Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#payload-description-for-incoming-message-callbacks) | Parameter | Description | Example Value | | | | | --- | --- | --- | --- | --- | --- | | from | Source number for incoming message | “9199XXXXXXXX” | | | | | payloadVersion | version of the callback payload being sent to CleverTap | “0.1“ | | | | | wabaNumber | Destination business WABA number to which message was sent | “9199XXXXXXXX” | | | | | timestamp | Timestamp when the message was sent | “1647441774” | | | | | type | Type of incoming message | “text/audio/video/image” | | | | | context.id | `Msg_id` of the message to which the user has responded | 25596363\\ | 1639561857\\ | 20220227\\ | 25596363 | | text.body | Text received from end user | “Hey, This is message” | | | | | location.lattitude | Latitude of the location shared | 2.457476548 | | | | | location.Longitude | Longitude of the location shared | 1.565867657 | | | | | location.name | Name of the location shared | Joe’s House | | | | | location.address | Address of the location shared | 102, Parker street, USA | | | | | location.url | Address URL | [www.example.com](http://www.example.com/) | | | | | image.mediaURL | Media File URL | [www.example.com/image.png](http://www.example.com/image.png) | | | | | image.mimetype | Media file mime type | .png/.jpeg | | | | | image.caption | Image caption | “This is caption” | | | | | file.mediaURL | Media File URL | [www.example.com/file.pdf](http://www.example.com/file.pdf) | | | | | file.mimetype | Media file mime type | .pdf | | | | | file.caption | Image caption | “This is caption” | | | | | audio.mediaURL | Media File URL | [www.example.com/audio.mp3](http://www.example.com/audio.mp3) | | | | | video.mimetype | Media file mime type | .mp3 | | | | | video.mediaURL | Media File URL | [www.example.com/image.png](http://www.example.com/image.png) | | | | | video.mimetype | Media file mime type | .mp4 | | | | | video.caption | Image caption | “This is caption” | | | | #### Sample Payload for Incoming Message Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#sample-payload-for-incoming-message-callbacks) Incoming message with DocumentIncoming message with location { "payloadVersion":"0.1", "from": "919999999999", "wabaNumber": "9199999998888", "timestamp": "1647441774", "type": "file", "context": { "id": "25596363|1639561857|20220227|25596363" }, "document": { "mediaURL": "www.example.com/document.pdf", "caption": "This is body", "mimeType": ".pdf" } } { "payloadversion":"0.1", "from": "919999999999", "wabaNumber": "9199999998888", "timestamp": "1647441774", "type": "location", "context": { "id": "25596363|1639561857|20220227|25596363" }, "location": { "address": "107, baker street", "latitude": "2.457476548", "longitude": "2.457476548", "name": "Johns office", //optional "url": "www.johnsoffice.com" // optional } } ### Message Status Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#message-status-callbacks) BSPs must add CleverTap's message status callback URL at their end and forward the message statuses (DLR callback) in the following format. CleverTap uses these callbacks to populate the campaign statistics. > 📘 > > ### > > Provider Click Tracking > > [](https://docs.clevertap.com/docs/generic-whatsapp#provider-click-tracking) > > Click-tracking data is accessible only when the **Provider Click Tracking** button is utilized in the campaign templates. Sent Status CallbackDelivered Status CallbackRead Status CallbackFailed Status CallbackClicked Status Callback { "payloadVersion": $$paypoadVersion, "statuses": [\ {\ "msgId": "$$customMessageID",\ "status": "sent",\ "timestamp": "$$timestamp", //Event timestamp\ }\ ] } { "payloadVersion": $$paypoadVersion, "statuses": [\ {\ "msgId": "$$customMessageID",\ "status": "delivered",\ "timestamp": "$$timestamp", //Event timestamp\ }\ ] } { "payloadVersion": $$paypoadVersion, "statuses": [\ {\ "msgId": "$$customMessageID",\ "status": "read",\ "timestamp": "$$timestamp", //Event timestamp\ }\ ] } { "payloadVersion": $$paypoadVersion, "statuses": [\ {\ "msgId": "$$customMessageID",\ "status": "failed",\ "timestamp": "$$timestamp", //Event timestamp\ "error": {\ "code": "$$errorcode",\ "title": "$$errordescription"\ }\ }\ ] } { "payloadVersion": "0.1", "statuses": [\ {\ "msgId": "4930004|1731583253|20241114|4930004",\ "status": "Clicked"\ "url": "www.google.com/19nov",\ "shortUrl": "https://bit.ly/3Oj42219",\ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"\ }\ ] } #### Payload Description for Message Status Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#payload-description-for-message-status-callbacks) | Parameter | Description | Example Value | | | | | --- | --- | --- | --- | --- | --- | | payloadversion | Version of the payload being sent to CleverTap | 0.1 | | | | | statuses\[X\].status | Notification status | “sent/delivered/read/failed/clicked” | | | | | statuses\[X\].timestamp | Timestamp of the event | “1647441774” | | | | | statuses\[X\].msgId | Unique identifier for message being sent and expected to be present in callback payloads | 25596363\\ | 1639561857\\ | 20220227\\ | 25596363 | | statuses\[X\].error.code | Failure Error code | 1001 | | | | | statuses\[X\].error.title | Description of error | Message specified does not match with any template. | | | | #### Sample Payload for Message Status Callbacks [](https://docs.clevertap.com/docs/generic-whatsapp#sample-payload-for-message-status-callbacks) Successful Delivery PayloadFailure Delivery PayloadGeneric Click Callback Payload { "payloadVersion":"0.1", "statuses": [{\ "msgId": "25596363|1639561857|20220227|25596363", // same as outbound message ID\ "status": "delivered",\ "timestamp": "1647441774", //Event timestamp\ }] } {"paytloadVersion":"0.1", "statuses": [{\ "msgId": "25596363|1639561857|20220227|25596363",\ "status": "failed",\ "timestamp": "1647441774", //Event timestamp\ "error": {\ "code": 1004,\ "title": "Invalid phone number."\ }}] } { "payloadVersion": "0.1", "statuses": [\ {\ "msgId": "4930004|1731583253|20241114|4930004",\ "status": "Clicked",\ "ts": 1435322805,\ "url": "www.google.com/19nov",\ "shortUrl": "https://bit.ly/3Oj42219",\ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"\ }\ ] } ### Callback Error Codes [](https://docs.clevertap.com/docs/generic-whatsapp#callback-error-codes) > 🚧 > > ### > > Callback Error Codes > > [](https://docs.clevertap.com/docs/generic-whatsapp#callback-error-codes-1) > > Listed below are the expected callback error codes: > > * 1000 → Invalid credentials > * 1001 → Invalid template parameters > * 1002 → Invalid phone number > * 1003 → The phone number is no longer active > * 1004 → Too many send requests to phone numbers > * 1005 → The phone number is temporarily unavailable or not in the provider network > * 1006 → Phone number is blacklisted > * 1007 → User device can’t receive the message > * 1008 → This message is sent outside of the WhatsApp chat window > * 1009 → Other > * 1010 → WhatsApp Message Blocked by Meta Creating/Uploading User Base [](https://docs.clevertap.com/docs/generic-whatsapp#creatinguploading-user-base) ================================================================================================================= You can upload a CSV file to upload a set of internal users by going to _Settings_ > _CSV uploads_. The following is the sample CSV format for uploading user data. | Identity | Name | Email | Phone | Gender | MSG-WhatsApp | Upload Name | | --- | --- | --- | --- | --- | --- | --- | | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#18727770767c777d587b747d6e7d6a6c7968367b7775) | John Doe | | +9199\*\*\*\*\*420 | M | TRUE | Sample Upload | Accepted Message Formats [](https://docs.clevertap.com/docs/generic-whatsapp#accepted-message-formats) ---------------------------------------------------------------------------------------------------------- CleverTap currently has limitations on the types of WhatsApp messages supported on the dashboard. We are working on adding support for the new message types as soon as possible but for the time being, only the following message types are supported. **Freeform Messages** This message type supports the following format: * Simple text * Audio * Video * Images * Document **Template messages** The elements of the Template message include a header, footer, simple text, and buttons. The header section supports the following formats: * Text * Image * Videos * Locations * Audios * Documents FAQs [](https://docs.clevertap.com/docs/generic-whatsapp#faqs) ================================================================== **Q. My WhatsApp provider has shared the API credentials with me. Can I save the provider in the CleverTap dashboard and start creating WhatsApp campaigns?** **Ans:** Ensure that your WhatsApp service provider is there in the list of integrated partners. If yes, ensure that you are using the custom API endpoint that your partner has created for CleverTap integration. Updated 23 days ago * * * Ask AI --- # Features and Add-ons Overview [](https://docs.clevertap.com/docs/features-add-ons#overview) ========================================================================== The Essentials plan offers features and add-ons that are essential for early-stage businesses to maximize retention and customer lifetime value. Read on to find out what's included. Features [](https://docs.clevertap.com/docs/features-add-ons#features) ========================================================================== Behavioral Analytics [](https://docs.clevertap.com/docs/features-add-ons#behavioral-analytics) -------------------------------------------------------------------------------------------------- Gain deep user insights with the following powerful data analysis tools: * [Boards](https://docs.clevertap.com/docs/simple-reports?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : In CleverTap, we have pre-built dashboards to help you answer general questions about your app usage. * [Funnels](https://docs.clevertap.com/docs/funnels?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Funnels are defined as a series of events that a user performs in a particular order. Funnels show users progress through defined paths in your app and pinpoint where they drop off between steps. * [Cohorts](https://docs.clevertap.com/docs/cohorts?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Cohort analysis is a way to group users who are similarly based on who or what they have done and track their behavior over time. * [Trends](https://docs.clevertap.com/docs/trends?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Trends provide you with the capability to understand how users are using the platform. * [Pivots](https://docs.clevertap.com/docs/pivots?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Pivot is a valuable tool for marketers dealing with large volumes of data. It helps them create concise summaries and view custom reports to obtain user insights effectively. * [Flows](https://docs.clevertap.com/docs/flows?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Flows provide the capability to understand the ways a user navigates through an application giving a broad view of the common paths users take as well as where they get stuck. * [Analyze Events](https://docs.clevertap.com/docs/events-analytics?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Analyzing events helps to understand your audience's behavior comprehensively, whether you want to view which countries use your app the most or what hours of the day they might stream a show. * [Real Impact](https://docs.clevertap.com/docs/real-impact?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Real Impact is a reporting dashboard that shows how and to what extent users respond to your CleverTap marketing campaigns—everything from the revenue generated to churn. * [Session Analytics](https://docs.clevertap.com/docs/session-analytics?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) : Session Analytics helps track the events that users perform within a session. Analyzing session length is a great way to measure engagement for certain apps, such as video or music streaming, news, and so on. Messaging Channels [](https://docs.clevertap.com/docs/features-add-ons#messaging-channels) ---------------------------------------------------------------------------------------------- The following channels are available for CleverTap for Startups: * [Push Notifications](https://docs.clevertap.com/docs/push?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [Web Push](https://docs.clevertap.com/docs/web-push?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [In-App](https://docs.clevertap.com/docs/in-app?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [Web Pop-up](https://docs.clevertap.com/docs/web-pop-up?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [App Inbox](https://docs.clevertap.com/docs/app-inbox?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [SMS](https://docs.clevertap.com/docs/sms?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [Email](https://docs.clevertap.com/docs/email?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [WhatsApp](https://docs.clevertap.com/docs/whatsapp-direct-add-on) * [Journey](https://docs.clevertap.com/docs/journeys?utm_source=C4S&utm_medium=doc&utm_id=KB) * [Webhooks](https://docs.clevertap.com/docs/webhooks-overview?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) You can integrate with Email, SMS, and WhatsApp service providers of your choice as part of the plan. CleverTap does not impose any extra charges on the plan, as the cost is directly settled between you and the service provider. You also get four additional messaging channels available as an add-on in the Essentials plan. [Campaigns](https://docs.clevertap.com/docs/campaign-approval-workflow?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) [](https://docs.clevertap.com/docs/features-add-ons#campaigns) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CleverTap campaigns communicate with your users at scale. Make use of the 13 different messaging channels. The campaign feature provides you with a Preview & Test button to test it before you send it to the end users. It enables you to do A/B testing on messages, which you can create using the built-in editor. [Journey Orchestration](https://docs.clevertap.com/docs/journeys?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) [](https://docs.clevertap.com/docs/features-add-ons#journey-orchestration) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A Journey is a visual campaign builder that lets you create omni-channel messaging experiences for your users. Journeys are ideal for engaging users across the lifecycle of your application. Depending on how they act or fail to act, we can nudge users further ahead through Journeys. [Segmentation](https://docs.clevertap.com/docs/find-people?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) [](https://docs.clevertap.com/docs/features-add-ons#segmentation) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The Segment feature can be used to group users based on their actions performed, actions not performed, or user profile properties that match a set of defined criteria. There are three types of Segments in CleverTap: * Live user * Psychographic * Past behavior To access additional information, refer to the [FAQ](https://staging.docs.user.clevertap.net/docs/features-add-onscopy?utm_source=C4S&utm_medium=doc&utm_id=KB#faqs) section for details on commonly encountered queries. Add-ons [](https://docs.clevertap.com/docs/features-add-ons#add-ons) ======================================================================== As a part of the Essentials plan, a few of the features available in the Enterprise plans are available as additional add-ons. These add-ons must be added to your billing to be able to use them. The add-ons are billed at 10% of your base plan, determined by your initial MAU requirements. For more information about the Add-ons offered by CleverTap, refer to [CleverTap for Startup Features](https://clevertap.com/clevertap-for-startups-features?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . | Add-ons | Feature | Description | Price | | --- | --- | --- | --- | | Advanced Analytics | Behavioral Analytics | 1. Get access to [Pivots](https://docs.clevertap.com/docs/pivots?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
and [Flows](https://docs.clevertap.com/docs/flows?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
for better insight into data.
2. Use [Custom Formulas](https://docs.clevertap.com/docs/trends#custom-formula?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB%22)
to analyze data.
3. Combine events into a single [Composite Event](https://docs.clevertap.com/docs/composite-events?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
.
4. Advanced [Cohort](https://docs.clevertap.com/docs/cohorts#unbounded?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
features like Unbounded Retention, Custom Bracket, Custom Metrics, and any Event. | 10% of the base plan | | Premium Channels | Messaging Channels | Use remarketing via [Facebook Audiences](https://docs.clevertap.com/docs/facebook-audiences?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
and [Google Ads](https://docs.clevertap.com/docs/google-adwords?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
to re-engage with users outside of your app or website. Native Display shows a banner inside the app in a coded banner placement. | 10% of the base plan | | [WhatsApp Connect](https://docs.clevertap.com/docs/whatsapp?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) | Messaging Channels | Use our new WhatsApp channel add-on to connect with your users directly from CleverTap. | 10% of the base plan | | [WhatsApp Direct](https://docs.clevertap.com/docs/whatsapp-direct-add-on) | Messaging Channels | Use the WhatsApp Direct Add-on to engage with customers on WhatsApp without bringing your own Business Solution Provider (BSP). | 20% of the base plan (excluding credits purchased) | | [CleverTap Email](doc:email) | Messaging Channels | Seamlessly manage your email campaigns within CleverTap without integrating an external Email Service Provider. | $50 + 10% of the base plan | | Content Personalization | Campaign Optimization | Create user-specific campaigns using [Liquid Tags](https://docs.clevertap.com/docs/liquid-tags?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
, [Linked Content](https://docs.clevertap.com/docs/linked-content?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
, [Bulletins](https://docs.clevertap.com/docs/bulletins?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
, [Catalog Send-Time Personalization](https://docs.clevertap.com/docs/catalog-send-time-personalization?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
, [Constant Event Property Campaign](https://docs.clevertap.com/docs/constant-property?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
, and [Geofence](https://docs.clevertap.com/docs/geofencing?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)
. | 10% of the base plan | | Cloud Export | Data Management | Export event and user data through:

1. [GCP Export](https://docs.clevertap.com/docs/data-export-to-gcp?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)

2. [Batch Data Export through to AWS S3](https://docs.clevertap.com/docs/data-export-to-aws-s3?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)

3. [AWS Eventbridge](https://docs.clevertap.com/docs/amazon-eventbridge?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)

4. [Bulk Export to Mixpanel](https://docs.clevertap.com/docs/mixpanel-export?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)

5. [Bulk Export to Amplitude](https://docs.clevertap.com/docs/amplitude-export?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB)

6. [Bulk Export to mParticle](doc:mparticle-export)

7. [Bulk Export to Segment](doc:segmentcom)

8. [Bulk Export to Azure](doc:microsoft-azure) | 10% of the base plan | | [Custom List Segment](doc:custom-list-segments) | Segmentation | Create a custom list segment by uploading user lists via the dashboard or API. | 20% of the base plan | | [Promotions](doc:promo-campaigns) | Promo Campaigns | Use [Promo Campaigns](doc:promo-campaigns)
to reward users based on how they engage with your brand. Distribute [Coupons](doc:coupons)
to incentivize purchases. Set up [Loyalty Wallets](doc:loyalty-wallets)
to distribute points for actions like purchases or referrals. Distribute [Partner Vouchers](doc:partner-vouchers)
to delight existing users and attract new ones. | 20% of the base plan | After you create an account, you can find in-depth information about the platform features, their functioning, and setup through the following resources on your CleverTap dashboard: * [CleverTap University](https://academy.clevertap.com/catalog?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) * [Upskill with CleverTap](https://eu1.dashboard.clevertap.com/x/upskil?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) FAQs [](https://docs.clevertap.com/docs/features-add-ons#faqs) ================================================================== ### When will my add-on removal take effect? [](https://docs.clevertap.com/docs/features-add-ons#when-will-my-add-on-removal-take-effect) Product add-ons removal will be effective at the end of your current billing period. You can cancel the removal request anytime. ### Can we run A/B tests on Clevertap? [](https://docs.clevertap.com/docs/features-add-ons#can-we-run-ab-tests-on-clevertap) To run A/B tests on the messaging you send in campaigns, A/B Multivariate Testing can be used. More details can be found [here](https://docs.clevertap.com/docs/ab-multivariate-testing?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . ### Does CleverTap help in tracking the source of acquisition? [](https://docs.clevertap.com/docs/features-add-ons#does-clevertap-help-in-tracking-the-source-of-acquisition) CleverTap integrates with many attribution partners, such as Appsflyer, Branch, and so on, to track app installations, measure attribution with third-party sources, and view reports on the CleverTap dashboard. Check out the complete list of attribution partners [here](https://docs.clevertap.com/docs/attribution?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . ### Does CleverTap have a feature to analyze the time spent per user each day? [](https://docs.clevertap.com/docs/features-add-ons#does-clevertap-have-a-feature-to-analyze-the-time-spent-per-user-each-day) You can utilize CleverTap's Session Analytics to track user events within a session, despite the absence of a usage time tracking mechanism. A session is a period of continuous activity by the user. Analyzing session length is a great way to measure engagement for certain apps, such as video or music streaming, news, and so on. You can read more [here](https://docs.clevertap.com/docs/session-analytics?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . ### What is the delivery rate for Push Notifications sent via CleverTap? [](https://docs.clevertap.com/docs/features-add-ons#what-is-the-delivery-rate-for-push-notifications-sent-via-clevertap) Reachability of 100% is possible only for iOS for the opted-in users. In the case of Android, it is usually impossible due to the battery optimization features of Chinese OEMs like One Plus, Xiaomi, so on. With CleverTap, you can achieve a delivery rate of over 80%. More details regarding increasing the push delivery rate can be found [here](https://clevertap.com/blog/push-deliverability?utm_source=C4Sdoc&utm_medium=doc&utm_campaign=KB) . Updated about 2 months ago * * * Ask AI --- # Control Groups Overview [](https://docs.clevertap.com/docs/control-groups#overview) ======================================================================== Marketing teams typically run various campaigns and journeys to onboard, convert, and retain their users. However, it is hard to measure the efficacy of these campaigns and journeys independently. For example, was the purchase increase today due to the reminder email we sent last night, or could it have been that those users would have bought anyway without the reminder? A control group is a set of users marked to be excluded from all marketing campaigns. You can measure the effectiveness of your initiatives by comparing this group with the target group of users who received your campaigns. CleverTap allows you to measure and track the performance of your engagement efforts by comparing it to the Control Group You can create 4 different types of Control Groups:- * System Control Group * System Control Group is created on your entire user base * You can create one System Control per account * You can create a system control group of size between 2% to 5% * Custom Control Group * Custom Control Group is created on your entire user base * You can create up to 10 Custom Control Groups per account * You can create a custom control group of size between 2% to 5% * Custom Control Groups are generally created for short-duration strategies For example, determining engagement impact for Christmas campaigns * Campaign Control Group * Campaign Control Group is created on the user base that qualifies for the campaign. * You can create a campaign control group at the time of campaign creation. * You can create a campaign control group of size between 2% to 99% * Journey Control Group * Journey Control Group is created on the user base that qualifies for the journey. * You can create a journey control group at the time of journey creation. * You can create a journey control group of size between 2% to 99% Control Group Qualification [](https://docs.clevertap.com/docs/control-groups#control-group-qualification) ============================================================================================================== * When a Control Group is created, it is created from all the users who are a part of the application at the given time. For example, if a 5% Control Group is created, then every 1 in 20 users will be a part of the Control Group. * This selection of users who are a part of the Control Group is completely random. We do not introduce any bias for qualification * For all new users coming to the application after creating the control group, qualification to the Control Group will be based on the size of the control group. For example, if a 5% Control Group is created, every 1 in 20 new users will be a part of the Control Group Creating a System Control Group [](https://docs.clevertap.com/docs/control-groups#creating-a-system-control-group) ====================================================================================================================== 1. You can create a system control group from _Settings_ > _Control Group_. Here, you can create a System Control Group ![1001](https://files.readme.io/cdfc1f4-Screenshot_2020-06-09_at_4.35.14_PM.png "Create a System Control Group in CleverTap dashboard.") Create a System Control Group 2. You can choose to apply the Control Group to existing running campaigns and journeys by checking the box to _Apply to all current campaigns and journeys_. > 🚧 > > **Important Note** > > After you make this selection, you cannot change it. ![703](https://files.readme.io/1af5b41-Screenshot_2020-06-09_at_4.36.00_PM.png "Apply System Control Group to all Journeys and Campaigns.") Apply System Control Group to All Journeys and Campaigns 3. Now, you will be able to see the details of the system control group you created ![763](https://files.readme.io/7fc7693-Screenshot_2018-12-28_at_4.01.09_PM.png "View System Control Group details on CleverTap dashboard.") System Control Group Details Creating a Custom Control Group [](https://docs.clevertap.com/docs/control-groups#creating-a-custom-control-group) ====================================================================================================================== > 📘 > > **Note** > > Custom Control Group can be created only after you have a created a System Control Group. 1. When you move to _Custom Control Group_ and create a new custom control group, a new group will be created for you. ![985](https://files.readme.io/e15bc24-Screenshot_2020-06-09_at_4.39.47_PM.png "Create a Custom Control Group on CleverTap dashboard.") Create a Custom Control Group 2. Once you click on **\+ Create New**, you asked to provide a name, purpose, and control group size ![458](https://files.readme.io/3243bbf-Screenshot_2018-12-28_at_4.13.51_PM.png "Enter details for Custom Control Group in CleverTap dashboard.") Enter Details for Custom Control Group 3. Now, you will be able to see the details of the custom control group(s) you created You can create up to 10 Custom control groups ![1247](https://files.readme.io/dc6291f54714ec95d8c57a97e49e9249e011a66a2e6c52406324b5b9cd52377f-Custom_Control_Group.png "View details of all Custom Control Groups") View Details of all Custom Control Groups Campaign and Journey Creation [](https://docs.clevertap.com/docs/control-groups#campaign-and-journey-creation) ================================================================================================================== > ❗️ > > **Removing System Control Group** > > Although CleverTap provides the option to remove the System Control Group, we recommend to only use this option for transactional messages. Removing the System Control Group will impact the campaign and journey reports Campaign Creation [](https://docs.clevertap.com/docs/control-groups#campaign-creation) ------------------------------------------------------------------------------------------ After you have created a System and/or Custom control group, you can now use this control group in your campaigns. In the campaign creation workflow, when in the _Setup_ section, you are given the option to add/remove the Control Group * The system control group is applied by default for every campaign. * You can choose to add a Custom control group to the campaign. * Optionally, you can also add a _Campaign_ control group. This control group will be applicable only to the related campaign. ![1122](https://files.readme.io/78b2456-Screenshot_2020-06-09_at_4.47.17_PM.png "Use Control Groups in Campaigns") Use Control Groups in Campaigns Journey Creation [](https://docs.clevertap.com/docs/control-groups#journey-creation) ---------------------------------------------------------------------------------------- After you have created a System and/or Custom control group, you can now use this control group in your _Journeys_. In the entry node of the Journey, you are given the option to add/remove the Control Group. * The system control group is applied by default for every campaign. * You can choose to add a _Custom_ control group to the campaign. * Optionally, you can also add a _Journey_ control group. This control group will be applicable only to the related journey. ![1066](https://files.readme.io/dc3a90d-Screenshot_2020-06-09_at_4.50.20_PM.png "Use Control Groups in Journeys") Use Control Groups in Journeys Reporting Stats [](https://docs.clevertap.com/docs/control-groups#reporting-stats) ====================================================================================== 1. Campaign or Journey Qualification * All users who have qualified for the campaign based on the _who_ section selected by you. * In Journeys, it is all the users who have qualified on the _who_ section selected by you in the entry node. * This will include users who are a part of the Control Group qualification. 2. Control Group Qualification * All users who have qualified for the system or custom control group 3. Control Group Qualification for the campaign * All users who have qualified for the campaign AND were qualified to be a part of the Control Group * There may be users who are a part of the Custom Control Group or System Control Group, but do not qualify for the campaign. These users will not be a part of the Control Group for this campaign. * There may be users who are a part of the Control Group, but do not qualify for the campaign. These users will not be a part of the Control Group for the campaign in question. 4. Control Group Qualification for the journey * All users who have qualified for the journey AND were qualified to be a part of the Control Group * There may be users who are a part of the Custom Control Group or System Control Group, but do not qualify for the journey. These users will not be a part of the Control Group for this journey. **Note**: If the _Campaign_ or _Journey_ qualifies a very small user base, there may be a condition, that no user from the qualified based is a part of the Control Group. In that case, we will not showcase the Control Group stats for that campaign. > 🚧 > > Deleting Control Group > > If a Control Group is deleted when campaigns and journeys are running with the Control Group, the corresponding campaign and journey report will be impacted Once a campaign or a journey is created with a Control Group, the stats for it can be viewed on the stats page Here you can see - 1. Number of users in the Control Group 2. Conversions of Target Group w.r.t. Control Group 3. Revenue of Target Group w.r.t. Control Group * Revenue is calculated as ARPU (Average Revenue Per User) \*\* where ARPU = Total Revenue / number of users Control Group Exports [](https://docs.clevertap.com/docs/control-groups#control-group-exports) ================================================================================================== > 📘 > > **Exports Disabled** > > Currently, the Journey Control Group exports option is disabled. If you want to enable this option, contact your Customer Success Manager. Control group users can be exported to AWS S3. The option is available via _Settings_ > _Partners_ > _Exports_. To export control groups: 1. Click the **Create Export** button and choose the export partner. ![Export Control Groups](https://files.readme.io/90e5931-CreateExport.jpg) Export Control Groups 2. Enter the following details to export the control group users: * **Type**: Select the export **Type**. Select events (you can choose multiple values here). * **Frequency**: Select the export frequency. * **Dates to export data**: Select the days you want to export the data. * **Format**: Select the export format from the available options: JSON, XML, CSV, or Parquet. * **Export data as a string**: Select this option to export data in string format. ![Create an Export](https://files.readme.io/c7f5f76-CreateNewS3.jpg) Create an Export When selecting events for exporting the control group, the following control groups are available: * System Control Group * Custom Control Group * System Control Group (Journeys) * Custom & Journey Control Group (Journeys) If a user is part of a control group, then for each campaign, that the user qualifies for within the selected days to get data, there will be one entry present in the export. For example, if user A is part of the system control group and it qualifies for campaign ABC and campaign XYZ, then in _System Control Group_ export, we will have two entries for this user, one for each campaign. The same is applicable to all control group exports for journeys. System Control Group [](https://docs.clevertap.com/docs/control-groups#system-control-group) ------------------------------------------------------------------------------------------------ Export System Control Group users' data in all campaigns within the selected days. JSON format Example - JSON {"ts":20200319221000,"eventName":"Control Group","profile":{"all_identities":["[email protected]"],"platform":"iOS","name":"JamesSmith","email":"[email protected]","push_token":"ios-19020907-0","phone":119021007089},"deviceInfo":{"make":"Apple","model":"iPhone8,1","appVersion":"App Version 4","sdkVersion":"0","osVersion":"9.1"},"controlGroupName":"System Control Group","eventProps":{"Campaign id":"1584635757","Campaign name":"ok","Campaign type":"Mobile Push - iOS"}} Custom Control Group [](https://docs.clevertap.com/docs/control-groups#custom-control-group) ------------------------------------------------------------------------------------------------ Export Custom Control Group users' data in all campaigns within selected days. Each entry has a Control group name. JSON format Example - JSON {"ts":20200319221000,"eventName":"Control Group","profile":{"all_identities":["[email protected]"],"platform":"iOS","name":"JohnJohnson","email":"[email protected]","push_token":"ios-13120107-3","phone":119112607389},"deviceInfo":{"make":"Apple","model":"iPhone8,1","appVersion":"AppVersion0","sdkVersion":"0","osVersion":"9.2"},"controlGroupName":"CustomCG1","eventProps":{"Campaign id":"1584635757","Campaign name":"ok","Campaign type":"Mobile Push - iOS"}} System Control Group (Journeys) [](https://docs.clevertap.com/docs/control-groups#system-control-group-journeys) -------------------------------------------------------------------------------------------------------------------- Export System control group users' data in all Journeys within the selected days. JSON format Example - JSON {"ts":20200317193200,"eventName":"Journey Control Group","profile":{"all_identities":["[email protected]"],"platform":"iOS","name":"JamesSmith","email":"[email protected]","push_token":"ios-19020907-0","phone":119021007089},"deviceInfo":{"make":"Apple","model":"iPhone8,1","appVersion":"App Version 4","sdkVersion":"0","osVersion":"9.1"},"controlGroupName":"System Control Group","eventProps":{"Journey id":"171","Journey name":"PBS_All_users"}} Custom & Journey Control Group (Journeys) [](https://docs.clevertap.com/docs/control-groups#custom--journey-control-group-journeys) --------------------------------------------------------------------------------------------------------------------------------------- Export data for Custom and Journey control group users in all Journeys within selected days. Each entry will have a Control group name. For the Journey control group, the value of this field is **Journey Control Group**. JSON format Example (Custom control group user) - JSON {"ts":20200310230600,"eventName":"Journey Control Group","profile":{"identity":"123","all_identities":["123"],"platform":"iOS","name":"Kritii Agrawal","push_token":"3dbf357c5a6db427714343d52f10cbf9d4b1c3859f96423370dcd595370363b2","phone":919833108201},"deviceInfo":{"make":"Apple","model":"iPhone9,3","appVersion":"2.0.0","sdkVersion":"30401","osVersion":"Others","dpi":326,"dimensions":{"width":58,"height":103,"unit":"mm"}},"controlGroupName":"Test group A","eventProps":{"Journey id":"145","Journey name":"trigger on jn 144 step 4- Testing Event"}} JSON format Example (Journey control group user) - JSON {"ts":20200310230600,"eventName":"Journey Control Group","profile":{"identity":"123","all_identities":["123"],"platform":"iOS","name":"Aditi Agrawal","push_token":"3dbf357c5a6db427714343d52f10cbf9d4b1c3859f96423370dcd595370363b2","phone":919833108201},"deviceInfo":{"make":"Apple","model":"iPhone9,3","appVersion":"2.0.0","sdkVersion":"30401","osVersion":"Others","dpi":326,"dimensions":{"width":58,"height":103,"unit":"mm"}},"controlGroupName":"Journey Control Group","eventProps":{"Journey id":"145","Journey name":"trigger on jn 144 step 4- Testing Event"}} JSON {"ts":20200310230600,"eventName":"Journey Control Group","profile":{"identity":"123","all_identities":["123"],"platform":"iOS","name":"Kritii Agrawal","push_token":"3dbf357c5a6db427714343d52f10cbf9d4b1c3859f96423370dcd595370363b2","phone":919833108201},"deviceInfo":{"make":"Apple","model":"iPhone9,3","appVersion":"2.0.0","sdkVersion":"30401","osVersion":"Others","dpi":326,"dimensions":{"width":58,"height":103,"unit":"mm"}},"controlGroupName":"Test group A","eventProps":{"Journey id":"145","Journey name":"trigger on jn 144 step 4- Testing Event"}} JSON format Example (Journey control group user) - JSON {"ts":20200310230600,"eventName":"Journey Control Group","profile":{"identity":"123","all_identities":["123"],"platform":"iOS","name":"Aditi Agrawal","push_token":"3dbf357c5a6db427714343d52f10cbf9d4b1c3859f96423370dcd595370363b2","phone":919833108201},"deviceInfo":{"make":"Apple","model":"iPhone9,3","appVersion":"2.0.0","sdkVersion":"30401","osVersion":"Others","dpi":326,"dimensions":{"width":58,"height":103,"unit":"mm"}},"controlGroupName":"Journey Control Group","eventProps":{"Journey id":"145","Journey name":"trigger on jn 144 step 4- Testing Event"}} Video Tutorials [](https://docs.clevertap.com/docs/control-groups#video-tutorials) ====================================================================================== ### Understanding Control Groups [](https://docs.clevertap.com/docs/control-groups#understanding-control-groups) ### Using Control Groups [](https://docs.clevertap.com/docs/control-groups#using-control-groups) Updated about 2 months ago * * * Ask AI --- # Journeys List Overview [](https://docs.clevertap.com/docs/journeys-list#overview) ======================================================================= The _Journeys List_ page on the CleverTap Dashboard provides a comprehensive overview of all the Journeys created on the dashboard with detailed performance statistics. This section also allows you to search for and filter specific Journeys easily. ![All Journeys](https://files.readme.io/c4c4de23dc16b9038027836c317341ae0641bc1a6a6f1febcebc139a5346bd72-Journeys_List_edit_a_journey.png) Journeys List If a Journey has been edited after publishing, it may have multiple versions. The list displays details of the latest journey entity, which can be either published or in the _Draft_ state. For example, you have a journey called Cart Abandonment where: * Version 1 was published on June 1. * You edited the journey on June 15, creating Version 2 (in Draft). * On June 20, you published Version 2. If you view the journey on the list and version 2 is the latest version, all journey information shown will correspond to version 2 only. To view metrics for a different version, you must open the Journey and select the desired version using the Version Selector at the top. ![Select Journey Version from Dropdown](https://files.readme.io/e223211dca986d6f4db94ceb186ef595a4137358284aeebda5248baebe5d0602-Select_Version_from_Dropdown.png) Select Journey Version from Dropdown The following details are displayed for each journey: | Field | Description | | --- | --- | | Journey Details | Displays the Journey name and the name of the version that is on the list. It also displays the unique identifier for the Journey. This ID remains the same across versions. | | Start Time | Displays the date and time when the Journey state changed to _Running_ and users started entering the Journey. | | Status | Displays the current state of the Journey, such as Draft, Scheduled, Running, Paused, Completed, Restricted, and Stopped. For more information, refer to [Journey States](doc:journey-states)
. | | Entry Type | Specifies how users qualify for the Journey. They can qualify based on the Past behavior/ Custom list (actions they have performed or have been performing in the past) or Live behavior (as soon as they perform any action). | | Total versions | Displays the number of versions created for the Journey.

* \*Note\*\*: A new version is created each time you make structural changes to the published Journey, such as updating entry criteria or conversion goals. For more information, refer to [Edit a Journey](doc:edit-a-journey)
. | | Goals Met | Displays the total number of users who completed the Journey goal(s) defined in the Journey, such as purchases, sign-ups, or other tracked events. | | Entered Users | Displays the number of unique users who entered the Journey based on the entry criteria. | | Timed-Out Users | Displays the total number of users who exited the Journey without achieving any defined goals because they exceeded the Journey timelines | | Rate | Indicates the percentage of Goal Met.

* If the goal exists, it is calculated as \[(Number of users who met the goal/Total number of qualified users) \* 100\].
* If the goal does not exist, it is calculated as \[(Number of users who exited last node/Total number of qualified users) \* 100. |\ | Created By | Displays the email ID of the user who created the journey. |\ | Created On | Displays the date on which the Journey was initially created. |\ | Published By | Displays the email ID of the user who last published the Journey. If the Journey has been edited post-publish, this reflects the most recent version. |\ | Published On | Displays the date on which the most recent version of the Journey was published. |\ \ Filter Journeys\ \ [](https://docs.clevertap.com/docs/journeys-list#filter-journeys)\ \ =====================================================================================\ \ You can locate a specific journey from the 'All Journeys' page using Journey Filters. By applying these filters, you can refine your search based on the following criteria:\ \ * Entry type\ * Status\ * Created by\ * [Labels](doc:journeys-list#assign-label-to-journeys)\ \ * IntelliNODE\ \ The list shows the details for the latest journey entity, which can be published or in the _Draft_ state. You can apply quick filters directly from the top of the _All Journeys_ page.\ \ ![Quick Journey Filters](https://files.readme.io/612aad4d6b121b285e6dd743772d690d999ce05ba41b988a419b13863b1f45dc-Quick_Journey_Filters.png)\ \ Quick Journey Filters\ \ To filter journeys, perform the following steps:\ \ 1. Go to _Journeys_ from the CleverTap dashboard. The All Journeys page opens.\ 2. Click ![](https://files.readme.io/5b5d9b72cbf26494288be1890d39e0f976694b8b0694ce4690570d089b8f37ee-Filters_icon.png) icon. The _Filter Journeys_ window opens on the right side.\ 3. Apply the required filters and click **Apply**. For example, if you want to look at the _Running_ journeys with Entry type as _Past Behavior_.\ \ ![Filter Journeys](https://files.readme.io/702006d16577373f00a6dcaa3df58c65bd125e2b53704d6f79102c42904c0946-FIlter_Journeys.gif)\ \ Filter Journeys\ \ You can also save your frequently used custom filters by clicking **Save Filter** from the _Filter Journeys_ window.\ \ Assign Label to Journeys\ \ [](https://docs.clevertap.com/docs/journeys-list#assign-label-to-journeys)\ \ =======================================================================================================\ \ Labels help categorize engagements with meaningful names or themes, making it easier to organize, analyze performance, and understand user behavior across multiple journeys. Here are some of the examples for Journey Labels:\ \ * Onboarding: Group all Journeys related to new user onboarding.\ * Re-engage: Categorize Journeys designed to re-engage users who have become inactive.\ \ **Key Benefits of Journey Labels**\ \ * **Simplified Organization**: Use labels to group Journeys with similar objectives, themes, or target audiences.\ * **Enhanced Analysis**: Leverage labels to track notifications and analyze Journey performance effectively.\ \ To assign labels to the journeys, perform the following steps:\ \ 1. Select the required journey from the _All Journeys_ page.\ 2. Click ![](https://files.readme.io/88c31ba6baf35d426881cdf01b679b8b674eb6a0cb4c09610d2ecd9eda755e17-Labels_icon.png) icon. The _Add Label_ popup opens.\ 3. Select the label you want to assign from the list and click **Add**. OR \ To add a new label, type the desired name, select it, and click **Add**.\ \ ![Assign Journey Label](https://files.readme.io/218ed818a126ed0bd86cd64c25a13cd03355a19c642a4a39bc61bab6941251be-Assign_Journey_Label.gif)\ \ Assign Journey Label\ \ You can also utilize Journey Labels to analyze Journey performance from the _Analytics_ section for the _Notifications Sent_ event. This helps track the total number of notifications sent by Journeys tagged with specific labels, thereby gaining deeper insights into user segmentation and Journey effectiveness.\ \ ![Analyze Journey Performance Using Journey Label](https://files.readme.io/e98166504d0616ed298894a4941be7406f7e5f2af93c9c05f1b2fdee521f3d92-Analyze_Journey_Performance_Using_Journey_Label.png)\ \ Analyze Journey Performance Using Journey Label\ \ This empowers you to analyze performance data more granularly and refine your Journey strategies based on actionable insights.\ \ Updated about 2 months ago\ \ * * *\ \ Ask AI --- # A/B & Multivariate Testing Overview [](https://docs.clevertap.com/docs/ab-multivariate-testing#overview) --------------------------------------------------------------------------------- Optimizing messages and campaigns is a crucial activity for any app marketer. Clevertap offers three ways to optimize everything you deliver: * A/B & multivariate testing. * Split message delivery. * Sending campaigns to an audience subset. A/B Testing [](https://docs.clevertap.com/docs/ab-multivariate-testing#ab-testing) ====================================================================================== A/B testing lets you compare up to three different versions of a message for any campaign. You can try different copy, creatives, calls to action, or any combination of these to make sure you have designed the best message for each campaign. Pick the test audience size to run and we do the rest. We determine the winner based on the number of clicks. In the case of email, the winner is determined based on views. We then deliver the winning variant to the rest of your target audience. ![1280](https://files.readme.io/e5353df-ab1.gif "ab1.gif") Results of A/B Testing For any campaign, you need the content and creatives for each message. When you create a push notification campaign, you have an option to add up to three variants of any message to test which one performs best. You can determine the size of the test to run after adding the desired number of variants. > 📘 > > ### > > Ideal Audience Size for A/B Testing > > [](https://docs.clevertap.com/docs/ab-multivariate-testing#ideal-audience-size-for-ab-testing) > > * For reliable A/B testing, CleverTap recommends a minimum of **5000** users base to reduce randomness in variant assignment. > * When the user base **exceeds 10,000 users**, variant distribution becomes substantially more stable. This minimizes deviations and provides more precise insights. > * Testing with fewer than 5,000 users increases the likelihood of inconsistent distribution and skewed performance metrics. > * If the user base is small, consider the following practices: > * Limit the number of variants. > * Extend the test duration. > Use segment-based targeting. > * Avoid frequent, rapid re-tests. Campaigns Sent to Past Behavior Segments [](https://docs.clevertap.com/docs/ab-multivariate-testing#campaigns-sent-to-past-behavior-segments) ------------------------------------------------------------------------------------------------------------------------------------------------- For campaigns sent to past behavior segments (grouping of users based on their past actions), you have two options: launch the A/B test to a percentage of your target audience or send out an absolute number of messages. In either case, we deliver the variants equally to the test audience. ![754](https://files.readme.io/f8d2724-A_b_Multivariate.png "Test the Campaigns sent to Past Behaviour Segments") Test the Campaigns Sent to Past Behaviour Segments For example: * You are testing three messages (Variant A, Variant B, Variant C) * Your Campaign Reach is 2,000,000 users * You choose a Test Population of 15% of Campaign Reach (300,000 users) Then, we send: * Variant A to 100,000 users * Variant B to 100,000 users * Variant C to 100,000 users After the 300,000 messages have been delivered, we calculate the winning message over this test group based on the number of views. We then automatically send the winning message to the remainder of your target audience which in this example is 1,700,000 users. The following is a sample report: ![1440](https://files.readme.io/83d9d6c6492b51e24898735579cced277e851b6266510504fb5bed477fec9b7d-AB_Stats.png "Sample Campaign Reports of A/B Variant testing") Sample Campaign Reports Campaigns Sent to Live User Segments [](https://docs.clevertap.com/docs/ab-multivariate-testing#campaigns-sent-to-live-user-segments) ----------------------------------------------------------------------------------------------------------------------------------------- With campaigns sent to live user segments, campaign (triggered) messages are delivered immediately when a user’s activity matches the criteria that you have selected. ### Example [](https://docs.clevertap.com/docs/ab-multivariate-testing#example) In this scenario, you want to send a message when the user has completed a booking or purchase. Since it is not possible to determine the reach of triggered campaigns upfront, you must decide how many of the total messages to send for A/B testing before a winner is declared. If you select 500 users as your test audience, we alternate delivery of Variant A and Variant B as users qualify for the campaign. After 500 total messages are sent (Variant A – 250 and Variant B – 250), we decide the winner based on the number of views and only continue with this winning message for the duration of the campaign. Deciding on a test audience for A/B testing triggered campaigns requires some estimation. We recommend you check the total messages that were sent for similar triggered campaigns in the past to get a sense of how many users may qualify. If you select a test audience that is too small (25 users) you will get a statistically insignificant sample. If your test group size exceeds the total number of users who ultimately qualify for that campaign, then no winner is be declared and each message variant is alternatively delivered for the duration of the campaign. To clarify further, here is how this process works across different channels: * **For mobile channels:** If the campaign starts at 7 PM and has a conversion window until 7:30 PM, then Variants A and B are sent alternately during the conversion window (7 PM to 7:30 PM). Once the conversion window ends, the winner variant is declared based on the conversion metrics. The winning variant is sent from 7:31 PM onwards for the remainder of the campaign. * **For other channels:** If the campaign starts at 7 PM, the conversion time is 30 minutes, and a sample size of 1000 is selected, then Variants A and B are sent alternately until 1000 users are reached (for example, this is achieved by 7:15 PM). At 7:15 PM, we wait for the 30-minute conversion window to complete. By 7:45 PM, the winner variant is declared based on performance metrics such as conversions. The winner variant is sent for the rest of the campaign duration. > 📘 > > ### > > Same Number of Views/Clicks > > [](https://docs.clevertap.com/docs/ab-multivariate-testing#same-number-of-viewsclicks) > > * For Email and WhatsApp, if all variants receive the same number of views, then Variant A is declared the winner. > * For the rest of the channels, if all variants receive the same number of clicks, then Variant A is declared the winner. Split Delivery [](https://docs.clevertap.com/docs/ab-multivariate-testing#split-delivery) ============================================================================================= For some campaigns, you want to send multiple variants of a message to your entire target audience without selecting a winner. With split delivery, you choose what percentage of your target audience receives each variant and we deliver them accordingly. ![1200](https://files.readme.io/7a1a774-ab5.png "Results of Split Delivery tests.") Results of Split Delivery Test > 📘 > > ### > > Variant Consistency in Live Campaigns > > [](https://docs.clevertap.com/docs/ab-multivariate-testing#variant-consistency-in-live-campaigns) > > For Split Delivery or A/B tests, users are consistently shown the same variant upon repeated qualifications, with one notable exception. If the event triggering the campaign is sent via API using user identity (without device information), variant assignments become random each time the user qualifies. > > To ensure variant consistency, CleverTap recommends sending events via SDK or through the API using object ID (refer to the following table). > > | Event Source | Variant Consistency | > | --- | --- | > | SDK | Consistent | > | API (object ID) | Consistent | > | API (user identity) | Random | > > **Example** > > * Consider a trigger campaign with the two variants: Variant A and Variant B. > * **Scenario 1: Event triggered via SDK** > * **Outcome**: User receives Variant A initially and consistently sees Variant A upon all subsequent qualifications. > * **Scenario 2: Event triggered via API using user identity** > * **Outcome**: User receives a random variant on each qualification. For example, the user might first see Variant A, then Variant B in subsequent triggers, and again Variant A later, due to missing device information. **How it works** As with A/B testing, you can add up to three variants to a campaign message. With split delivery, you can decide what percentage of your audience receives each message variant. We deliver the messages in exactly this proportion for the duration of the campaign. ![731](https://files.readme.io/981b1db-message_type_split_delivery.png "Variant Distribution for Split Delivery") Variant Distribution for Split Delivery After the campaign is completed, navigate to the campaign stats to compare how each message performed. Deliver to a Subset of the Target Audience [](https://docs.clevertap.com/docs/ab-multivariate-testing#deliver-to-a-subset-of-the-target-audience) ===================================================================================================================================================== Sometimes you want to send a message to only a subset of the qualifying audience (target reach) for a campaign or avoid sending it if the number of qualified users exceeds the specified number. A use case is a limited offer when you want to distribute a fixed number of coupon codes. If the total reach for your campaign exceeds the available number of coupon codes, you can simply limit the number of users who will receive the message to the available number of coupons. ![406](https://files.readme.io/8f35a4d-ab7.png "Deliver Campaigns to subset of users.") Deliver Campaigns to Subset of Users Here is how it works: In the campaign creation flow, when you are determining who to send your message to under the _Limits and Control Group_ section, select the option to limit delivery of the messages to the number you want. For triggered campaigns (based on live user segments), as users qualify, they receive the message until the total specified quantity is delivered, after which the campaign ends. For campaigns based on past behavior segments, we randomly select the users who receive the message. The campaign limits can also be configured as follows: * Global campaign limit: Set up at the device level. * When _Send to all devices_ is selected, it limits the number of messages to be sent to all the active devices of each user every day (or as per the limits in settings). For instance, if the limit for the Mobile Push channel is set to 2 messages per day, and the user has 2 active devices with push tokens. When the push campaign is sent, it is delivered to all the user's active devices, resulting in a total message count of 2 in this scenario. * When _Send to last active device_ is selected, limits the number of messages to be sent to each user for each day (or as per the limits in settings). * Campaign run limit: Limits the number of users for the entire campaign or each run of a campaign for a fixed time or recurring campaign. In the case of live campaigns, each day is considered as each run. * Safety check: Prevents sending out unwanted campaigns. A campaign does not run if the number of qualified users exceeds the safety limit. The campaign creator receives an email alert for further action. > 👍 > > ### > > Target Audience Example > > [](https://docs.clevertap.com/docs/ab-multivariate-testing#target-audience-example) > > A customer has a budget for distributing 1,000 discount coupons but the qualified user count is 10,000. If you select the safety check, the campaign does not run and prevents the sender from spending over budget. ![513](https://files.readme.io/8e9304f-Message_Type_Control_Group.png "Control Group and Targeting Cap") Control Group and Targeting Cap Email A/B Testing [](https://docs.clevertap.com/docs/ab-multivariate-testing#email-ab-testing) ================================================================================================== CleverTap's email A/B testing feature lets you compare up to three different versions of an email to find the best-performing one. You decide the size of the test audience for the A/B test, we determine the winner based on the number of views, and then deliver the winning message to the rest of your target audience. Setup Steps [](https://docs.clevertap.com/docs/ab-multivariate-testing#setup-steps) --------------------------------------------------------------------------------------- Creating an email campaign using the A/B testing feature follows a similar pattern to creating a normal email campaign. After choosing the segment to target and frequency of communication, you can run the campaign as an A/B test using the following steps. 1. Select _A/B Test_ to set up the email A/B test. ![1343](https://files.readme.io/6a99abc-5_Select_AB_Test.png "Create a message.") Create a Message 2. On the next page, build two or three different variations of the email you want to send. You can modify the email template, content, subject line, and sender name. 3. Click **Done** after you are finished building the email variations. ![804](https://files.readme.io/056e715-Message_Type_Email_A_B_test.png "Variant distribution of emails for A/B tests.") Variant Distribution of Emails > 📘 > > ### > > Winner Evaluation > > [](https://docs.clevertap.com/docs/ab-multivariate-testing#winner-evaluation) > > We determine the winner based on the number of views and then deliver the winning message to the rest of your target audience. > > In the above image, we are sending the A/B test to a sample size of 10% who will receive either Variant A or B. In other words, 5% of the target segment will receive email Variant A and another 5% will receive email Variant B. We will wait for 45 minutes to evaluate the winner based on the number of views. The winner variant is then automatically sent to the remaining 90% of the target segment. > > If there is a tie between Variant A and B, we will send the email Variant A to the remaining 90% of the audience. You are finished with setting up the A/B test portion of building your email campaign. Now, you can complete the rest of the steps similar to a normal campaign. 6. Click **Publish Campaign** to finalize your campaign. ![1373](https://files.readme.io/21481dd-6_Summary.png "Publish the Campaign") Publish the Campaign Multi-variant Campaigns [](https://docs.clevertap.com/docs/ab-multivariate-testing#multi-variant-campaigns) =============================================================================================================== Using the message by user property type, you can create multi-variant campaigns. You can send a campaign based on the selected user property. For example, if you have users segregated based on languages. You can send campaign content in different languages based on their user property. You can select the language as the user property for the multivariate campaign. This allows you to create multiple messages in the same campaign, each reaching out to users based on their language preference. You can create up to 50 such variants in the same message. The default variant engage the users who have no value against the profile property. ![1345](https://files.readme.io/567f327-7_Multivariate_campaigns.png "Create Multi-Variant Campaigns") Create Multi-Variant Campaigns You can also perform analysis and derive insights based on the variant of the notification sent. For analysis, you can filter the information based on the event property _Variant_ for the notification-based events (Notification Sent, Notification Clicked, etc.) as shown in the following figures. You can download the list of users to whom a specific notification variant was sent, as well as save this query as a segment and use it for further action. ![1784](https://files.readme.io/a460a51-Filtering_Variant_information_on_Events_page.png "Filtering Variant details on Events page.") Filtering Variant Details on Event Page ![1778](https://files.readme.io/4a8bae7-Filtering_Variants_on_Funnels_page.png "Filtering Variants on Funnels page") Filtering Variants on Funnels Page Updated about 2 months ago * * * Ask AI --- # Recommended Delay for Inaction Campaigns Overview [](https://docs.clevertap.com/docs/recommended-delay#overview) =========================================================================== _Recommended Delay_ is a feature that recommends the best time to send a message for an inaction campaign which is designed to engage users who do not do a certain action. Use Cases [](https://docs.clevertap.com/docs/recommended-delay#use-cases) ============================================================================= First Scenario: Nudge users who install your app (action) but do not purchase something within a two-hour (inaction) timeframe. Here, the two-hour gap is selected based on manual analytics. Using the _Recommend Delay_ feature, you can let CleverTap automatically decide the golden period within which the user should have purchased and then send out a message to re-engage users who do not purchase within that period. Second Scenario: The average time it takes a user to add an item to their cart (action 1) and then checkout (action 2) is five minutes. If the user has not completed the checkout process within five minutes of adding the item to their cart (inaction), then the likelihood that a user will check out drops substantially. If you use the _Recommended Delay_ feature, we will recommend the best time to wait before you send a notification to the user if they have not completed the checkout process. How It Works [](https://docs.clevertap.com/docs/recommended-delay#how-it-works) =================================================================================== CleverTap creates this recommendation by calculating the average time users take to convert from one action to another action. Beyond this average time, the likelihood that a user completes the second action drops substantially; however, if you send a message to the user at that point, you can increase the conversion rate for the second action. Create an Inaction Campaign [](https://docs.clevertap.com/docs/recommended-delay#create-an-inaction-campaign) ================================================================================================================= To create an inaction campaign: 1. From the dashboard, navigate to _Campaigns_. 2. Click **\+ Campaign**. 3. Select a messaging channel. ![1571](https://files.readme.io/fcba34d6fd098949af0a477f21c1b3531dfe3e50a7350566627f6d1ce61800f8-Select_a_Campaign_from_Campaign.png "Create an Inaction Campaign") Create an Inaction Campaign 4. Under _Start here_ > _Qualification Criteria_, select _Live Behavior_. 5. Click **Done**. ![758](https://files.readme.io/fdcf0e8-Qualification_Criteria.png "Select the qualification criteria for a campaign") Select the Qualification Criteria 7. Under the _Set a goal_ section, select _Conversion Tracking_. 8. Select event properties, conversion time, and revenue property. 9. Click **Done**. ![354](https://files.readme.io/791e6d3-Set_Goal.png "Set goals for Campaign") Set Campaign Goal 10. Navigate to _Who_ > _Target Segment_. 11. Under _Find users from segment_, select **Inaction** 12. Click **or find best delay**. ![854](https://files.readme.io/05b40cc-Find_best_delay.png "Find best delay for the campaign.") Fine Best Delay Updated about 2 months ago * * * Ask AI --- # Time in User Property Overview [](https://docs.clevertap.com/docs/time-in-user-property#overview) =============================================================================== Time in User Property gives you full control over when messages are delivered by allowing you to define the send time outside CleverTap for each user and pass it directly as a user property. Instead of relying on CleverTap’s system-calculated Best Time, you decide the best time logic using your own models, rules, or data pipelines, and CleverTap delivers messages exactly at the time you specify for each user. The calculated time value is transferred to CleverTap by updating a user property through supported data ingestion methods such as the Profile API, CSV upload, or data sync integrations. The value is stored as a standard user property in the user profile and used during campaign execution to determine message delivery time for each user. > 📘 > > ### > > Private Beta > > [](https://docs.clevertap.com/docs/time-in-user-property#private-beta) > > Currently, this feature is a Private Beta Release. If you want access to this feature, contact your Account Manager. When should you use this? [](https://docs.clevertap.com/docs/time-in-user-property#when-should-you-use-this) ---------------------------------------------------------------------------------------------------------------- Use Time in User Property if: * You externally calculate the best send time for each user. * You want CleverTap to deliver messages exactly at the time you provide for each user. * You want to avoid creating multiple time-based campaigns or segments. Setting up Time in User Property [](https://docs.clevertap.com/docs/time-in-user-property#setting-up-time-in-user-property) =============================================================================================================================== Setting up Time in User Property involves two steps: 1. Pass the time value in a user property 2. Use the property in campaigns Step 1: Pass the time value in a user property [](https://docs.clevertap.com/docs/time-in-user-property#step-1-pass-the-time-value-in-a-user-property) ---------------------------------------------------------------------------------------------------------------------------------------------------------- Pass a time-of-day value (in minutes) as a user property in the user profile. This value represents the number of minutes since the start of the day (00:00) and is used to determine the exact time at which the message should be sent to that user (in account timezone). For example, if you set the user property to `1125`, CleverTap schedules the message to be delivered to that user at 6:45 PM (account timezone). Similarly, `0` means 12:00 AM, `145` means 02:25 AM, `570` means 09:30 AM, and `1125` means 06:45 PM. Step 2: Use the property in campaigns [](https://docs.clevertap.com/docs/time-in-user-property#step-2-use-the-property-in-campaigns) ---------------------------------------------------------------------------------------------------------------------------------------- To configure the Send Time for a specific campaign, 1. Navigate to the _When_ section. 2. Select _Schedule for later_ or _Set as Recurring_ under the Data and time section, depending on the nature of your campaign. 3. Select _Time in User Property_ as the send-time option. This instructs CleverTap to schedule message delivery for each user based on the time stored in the selected user property. ![](https://files.readme.io/e1b7403b986ed71a6ff664dea102a642021dafc5573cdad7d7b91945864d3cb8-2026-01-08_15-22-39.png) Time in User Property 4. Specify the Start time and End time of the campaign. If End Time is not specified, the campaign runs for 24 hours. ![](https://files.readme.io/06c31b2bb0bd5aa3ce23498301300a748170acc3367d6ac334729169753f9dc0-2026-01-08_15-25-50.png) Start and End Time 5. In the _Delivery Preferences_ section, navigate to the _Time in user property configuration_. Select the **User Property** from the dropdown. 6. Configure the fallback behavior for the following scenarios: 1. **Fallback for users with no/invalid time in user property:** Applies when the selected user property is missing, empty, or contains an invalid value, so CleverTap cannot determine a send time for that user using Time in User Property. 2. **Fallback for users not qualifying in campaign time range:** Applies when the user has a valid time value in the selected user property, but that time falls outside the campaign’s configured Start Time and End Time, so the user cannot be included within the campaign’s send window. ![](https://files.readme.io/e07914530f44ad70f973fcfce7ee84520b52a7ca502e8403a89f59f35b428dab-image.png) Time in user property configuration > 📘 > > Note > > [](https://docs.clevertap.com/docs/time-in-user-property#note) > > ----------------------------------------------------------------------- > > * This option is available only for Past Behaviour Campaigns. > * Campaign-level throttling and limits apply as usual. > * Time in User Property uses the account timezone, not the user’s local timezone. > * The send time is locked in when the campaign begins running for users who qualify at that time. Updates made to the user property after dispatch begins do not affect message delivery for those users. However, users who qualify later will follow the updated time value available at the time they enter the campaign. > * Supported time format: > * The user property must be passed as an integer representing the number of minutes since the start of the day `(00:00)`. > * For example, `145` means 02:25 AM and `1125` means 06:45 PM. > * Seconds are not supported. Updated about 5 hours ago * * * Ask AI --- # Conversations Overview [](https://docs.clevertap.com/docs/conversations#overview) ----------------------------------------------------------------------- Consumers across the globe are increasingly shifting from phone calls, emails, and social media platforms to real-time messaging apps. They are turning to WhatsApp, Facebook Messenger, Telegram, and other local apps to connect with family, friends, and colleagues. A similar experience is expected from brands to communicate with their users in real-time rather than waiting for responses from agents in call centers or passively communicating over emails. Use Cases [](https://docs.clevertap.com/docs/conversations#use-cases) ------------------------------------------------------------------------- Engaging your end-users with chat-based conversations has a huge impact on your business metrics. The following table demonstrates some use cases: | Example Industry | Use Cases | | --- | --- | | Travel and Hospitality | * Transactional messages like bookings, refunds, cancelations
* Reminders for upcoming flights or gate information on silent airports | | Food Delivery | * Food delivery status, including information on driver and ETA
* Thank you messages after order delivery | | Streaming Media/OTT | * Premium service options when a user finishes a movie/episode | Auto Responders [](https://docs.clevertap.com/docs/conversations#auto-responders) ===================================================================================== You can have a set of auto-responses to answer customer queries which can help relieve your agents and also significantly reduce the response time for the customer. Set Up FAQs [](https://docs.clevertap.com/docs/conversations#set-up-faqs) ----------------------------------------------------------------------------- You can add an FAQ from the _Autoresponders_ page or upload a CSV file with multiple FAQs. To do so, perform the following steps: 1. From the dashboard, navigate to _Conversations_ > _Setup_ > _Autoresponders_. 2. Click the **Create** or **Edit** button on the FAQs section to add FAQs. ![Setup FAQs](https://files.readme.io/58b15ef-1x_Autoresponders_dashboard.png "Setup FAQs") Setup FAQs 3. Click the **\+ FAQ** button to add FAQs. ![List of FAQs](https://files.readme.io/3216aaf-1x_Plus_FAQ.png "List of FAQs") List of FAQs The _Create an FAQ_ window displays. ![Create an FAQ](https://files.readme.io/c30a510-Conversations_FAQs_create.png "Create an FAQ") Create an FAQ 4. Create a new FAQ or select _Upload CSV_ to upload a CSV file. Download the sample CSV to view the format for uploading your FAQs. ![Upload FAQ using CSV](https://files.readme.io/2c7c841-Conversations_FAQs_upload.png "Upload FAQ using CSV") Upload FAQ using CSV 5. Click the **Test FAQ** link to test your FAQs. It shows the specified response when you enter a keyword. ![1187](https://files.readme.io/218c5da-1_Test_FAQ.png "Compose FAQ") Compose FAQ > 📘 > > ### > > View Matched and FAQ Links > > [](https://docs.clevertap.com/docs/conversations#view-matched-and-faq-links) > > The _View Matched_ link displays only for a saved FAQ. Clicking the FAQ link shows you the expected answer and the mapped FAQ. ### Test FAQ [](https://docs.clevertap.com/docs/conversations#test-faq) When you test a response, you can see the matching FAQ for it. To test response for a saved FAQ, follow the steps: 1. From the dashboard, navigate to _Conversations_ > _Autoresponders_. 2. Click the _Test FAQ_ link. The _Test FAQs_ window displays. ![View FAQs](https://files.readme.io/ba417be-1x_Plus_FAQ.png "View FAQs") View FAQs 3. Enter a string to test the response. The response displays a link to the matching FAQ. 4. Click the **View matched** link to view the FAQ that best matches the response. ![1411](https://files.readme.io/e8f9bf6-2_View_matched.png "Edit an FAQ") Edit an FAQ ### Edit or Archive FAQs [](https://docs.clevertap.com/docs/conversations#edit-or-archive-faqs) To view the FAQ list, perform the following steps: 1. From the dashboard, navigate to _Conversations_ > _Setup_ > _Autoresponders_. 2. Click the **Edit** button on FAQs section to view FAQs. 3. View, edit, clone, or archive FAQs. ![1400](https://files.readme.io/b5ebaa4-3_Edit_or_Archive_FAQ.png "3 Edit or Archive an FAQ") Edit or Archive an FAQ ### FAQ Types [](https://docs.clevertap.com/docs/conversations#faq-types) You can create four types of FAQs to help distinguish your FAQs, such as: * Greetings: Add a greeting such as hi, hello, good morning, and so on. * General: Any conversation which is specific to your business need. * Closing: Add an end to the conversation. For example, "Thank you for contacting us. Have a good day." * Filler: Add a filler in the conversation. For example, "Please wait while I fetch your information." > 📘 > > ### > > Adding a Question to an FAQ > > [](https://docs.clevertap.com/docs/conversations#adding-a-question-to-an-faq) > > When setting up an autoresponder, it is mandatory to add at least one question to the FAQ. Our NLP model (on which the responder is built) ensures that if similar questions are asked by your users, the autoresponder responds with the right answer. Set Up a Quick Reply [](https://docs.clevertap.com/docs/conversations#set-up-a-quick-reply) ----------------------------------------------------------------------------------------------- A quick reply can help you set the context for a conversation, generally during your non-business hours. To set up quick replies, perform the following steps: 1. From the dashboard, navigate to _Conversations_ > _Setup_ > _Autoresponders_ > _Quick reply_. 2. Click the **\+ Reply** button to add quick replies. The Quick Reply page displays. 3. Create a quick reply and select any of the time periods when the _Quick Reply_ must be active: * Always on * During specific hours * Between period ![730](https://files.readme.io/4961922-Whatsapp_quick_reply.png "Setup a Quick Reply") Setup a Quick Reply ### Always [](https://docs.clevertap.com/docs/conversations#always) The _Always_ quick reply triggers a specified response. It is triggered for all incoming messages, regardless of the time or day. It is ideal for providing immediate assistance or information to users without any time restrictions. ### During Specific Hours [](https://docs.clevertap.com/docs/conversations#during-specific-hours) The _During Specific Hours_ quick reply allows you to specify certain hours during which the predefined response should be triggered. It is useful for setting up responses that are relevant only during specific time periods, such as non-business hours support. You can even define hours on specific days such as 5.00 PM to 9.00 AM on Weekdays and all hours on Saturdays and Sundays. ### Between Period [](https://docs.clevertap.com/docs/conversations#between-period) The _Between period_ quick reply triggers responses within specific time intervals or date ranges. It is suitable for creating responses that are relevant only during certain date ranges or recurring intervals, such as holidays. Prioritize [](https://docs.clevertap.com/docs/conversations#prioritize) --------------------------------------------------------------------------- You can prioritize FAQs over quick replies and vice versa. To prioritize autoresponders, perform the following steps: 1. From the dashboard, navigate to _Conversations_ > _Setup_ > _Autoresponders_. 2. Select _FAQs_ and _Quick Reply_ from the list. The priority is set by the order of selection. ![Prioritize Autoresponders](https://files.readme.io/f3420e6-3x_prioritize.png "Prioritize Autoresponders") Prioritize Autoresponders 3. Click **Save**. Autoresponder Flow [](https://docs.clevertap.com/docs/conversations#autoresponder-flow) ------------------------------------------------------------------------------------------- The following image shows the flow of the autoresponder: ![6407](https://files.readme.io/0f85a76-Conversations_Autoresponder_Flow.png "Conversation Autoresponder Flow") Conversation Autoresponder Flow > 🚧 > > ### > > FAQ Responder Configuration > > [](https://docs.clevertap.com/docs/conversations#faq-responder-configuration) > > This flow assumes that the FAQ responder is configured first in the _Responders chain_ section. FAQ Best Practices [](https://docs.clevertap.com/docs/conversations#faq-best-practices) ------------------------------------------------------------------------------------------- This section covers FAQ best practices, including: 1. Check that the questions are detailed and clear. Always use complete and meaningful sentences. Example: * Correct: How can I recover the password of my account? * Incorrect: Wrong password. 2. Add enough context to a question. Check that the answer contains all the relevant information for the user. Example: * Correct: How can I return my order? * Incorrect: How to return? 3. Avoid having questions that have less than five words, however, it is okay to have short responses for closing, fillers, or greeting. Example: * Correct: Do you have COD as a payment option? * Incorrect: COD please. 4. Check that the FAQ sets are contextually exclusive from each other. 5. Try to add related questions in the same FAQ to provide more context. The responder model can handle spelling errors as long as they do not affect the meaning of the sentence. Context and flow are more important than simple spelling errors or grammatical variations. On the other hand, acronyms and lingos must be added in related questions separately. Example FAQ: Do you have cash on delivery as a payment option? Related example questions: * Do you have COD as a payment method? * Can I pay after the delivery is completed? 6. The responder works best for the English language. Use of any other language for adding FAQs. For example, writing Hindi using Roman/Latin script may result in unpredictable performance. Role Based Access: Agent Role [](https://docs.clevertap.com/docs/conversations#role-based-access-agent-role) ---------------------------------------------------------------------------------------------------------------- CleverTap has a system role of agents which gives the capability to dashboard users to access conversations. Apart from an agent, an admin can also access conversations. You can have multiple agents in the conversations dashboard. > 📘 > > ### > > Agent Role > > [](https://docs.clevertap.com/docs/conversations#agent-role) > > Agent role is a system role along with an admin, a member, a creator, and an approver. A user who is allocated an agent role will be able to access conversations. To assign an agent role to a dashboard user, perform the following steps: 1. From the dashboard, navigate to _Account_ > _Settings_ > _Users_. 2. Select a user to assign an _Agent_ role. For more details on user role management, refer to [Role Based Access Control](doc:role-based-access-control) . ![Role Based Access](https://files.readme.io/48ae0b9-4_Assign_agent.png "Role Based Access") Role Based Access If you are an authenticated user (Role = Admin or Agent), you can access conversations by clicking on _Conversations_ from the left navigation bar. > 🚧 > > ### > > One Agent per Conversation > > [](https://docs.clevertap.com/docs/conversations#one-agent-per-conversation) > > It might happen that two or more agents click on the same conversation. In such cases, only the first agent can chat with the user and the agents who clicked later will not be able to chat. The _Conversations_ dashboard looks like the following: ![Conversation Dashboard](https://files.readme.io/78261b5-5_Conversations_dashboard.png "Conversation Dashboard") Conversation Dashboard You see a list of conversations when you arrive on the dashboard. These conversations display when your end-users reply to one of your campaigns. You can click any of the messages to open the chat window. The chat window is the panel that displays on the right where you can chat with your users seamlessly. ![Respond to Conversations](https://files.readme.io/f56f3f1-6_Chat_live.png "Respond to Conversations") Respond to Conversations Unlike [WhatsApp](doc:whatsapp) campaigns where you have to use a templated messages, _Conversations_ lets you use free form messages and attach files. Converting User Queries into Customer Support Tickets [](https://docs.clevertap.com/docs/conversations#converting-user-queries-into-customer-supporttickets) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- > 📘 > > ### > > Customer Support Ticketing > > [](https://docs.clevertap.com/docs/conversations#customer-support-ticketing) > > CleverTap provides putting a ticket status to ongoing chats with your end-users. This helps in categorizing and later searching based on the resolution status of your customer's queries. You can assign one of the following five ticket statuses: * New: As soon as a user replies to a campaign message, it is marked as _New_. This is irrespective of the previous ticket status with that user. * Active: When an agent replies to the user. * Pending: When the user replies back to the agent. * Resolved: When the agent resolves the conversation. * Inactive: These are all conversations that are past the 24-hour conversation. ![1414](https://files.readme.io/08ae725-5_Conversations_dashboard.png "Ticketing in Conversations") Ticketing in Conversations > 📘 > > ### > > Inactive Conversations > > [](https://docs.clevertap.com/docs/conversations#inactive-conversations) > > The maximum limit for inactive conversations to appear in the inactive tab is 15. Change Status An agent can move the status from one to the other. As shown in the following table, tickets auto change status based on these criteria: | Flow | Status | Location | | --- | --- | --- | | When user messages you for the first time | New | All conversations | | When your agent replies back to the user | Active | My conversations (for the agent) | | When user replies back to the agent | Pending | My conversations (for the agent) | | When agent resolves the conversation | Resolved | All conversation | | When a 24-hour window expires | Inactive | Inactive conversations | The ticket status is similar to a system profile property and hence, it is also searchable on the dashboard. Update Status Manually [](https://docs.clevertap.com/docs/conversations#update-status-manually) --------------------------------------------------------------------------------------------------- To assign a ticket to a conversation, perform the following steps: 1. Cick on a conversation and close it. A pop-up displays asking you to assign a ticket before closing it. 2. Select a new ticket status. 3. Click **Assign and close**. ![Update Conversation Status Manually](https://files.readme.io/fb69aec-7_Update_ticket_status.png "Update Conversation Status Manually") Update Conversation Status Manually Search and Sort Conversations [](https://docs.clevertap.com/docs/conversations#search-and-sort-conversations) ----------------------------------------------------------------------------------------------------------------- If you have millions of conversations going, CleverTap provides an easy way to search your conversations by clicking on the search bar on top of the conversations dashboard. The following filters are available: * Search bar: Filters on user name, latest message text. * Campaign: Filters based on campaign names. * Label: Filters based on campaign labels. * Ticket status: Filters based on ticket status. Updated about 2 months ago * * * Ask AI --- # Product Experiences Next Gen With Product Experiences, you can change the behavior and appearance of your app remotely without an update. This helps you to deliver an In-App personalization experience to your app users and test their response. The feature comprises the following tools: * **Remote Config**: A smart solution that lets businesses customize, manage, and adjust their application or website from a distance. It requires minimal development effort and allows for changes in the app’s design, user experience, and workflow for all users or specific groups. With Remote Config, you can: * Easily roll out new features. * Modify call-to-action (CTA) text. * Adjust game difficulty levels. * Personalize other elements of the app for specific user segments. * **Product A/B Tests**: This feature enables you to experiment with different versions of your app's user interface or functionality. You can precisely measure results using Key Performance Indicators (KPIs) and seamlessly deploy the most successful version to your user base. Resources [](https://docs.clevertap.com/docs/product-experiences-nextgen#resources) ======================================================================================= Refer to the following documents to understand CleverTap's new and enhanced Product Experiences feature: #### Remote Config [Remote Config User Guide](https://docs.clevertap.com/docs/remote-config) [Android Developer Guide](https://developer.clevertap.com/docs/android-remote-config) [iOS Developer Guide](https://developer.clevertap.com/docs/ios-remote-config) [Web Developer Guide](https://developer.clevertap.com/docs/web-remote-config) [Unity Developer Guide](https://developer.clevertap.com/docs/unity-remote-config-sdk-v300) [Flutter Developer Guide](https://developer.clevertap.com/docs/flutter-remote-config) [React Native Developer Guide](https://developer.clevertap.com/docs/react-native-remote-config) [Cordova Developer Guide](https://developer.clevertap.com/docs/cordova-remote-config) [Remote Config APIs](https://developer.clevertap.com/docs/remote-config-api) #### A/B Tests [Overview](https://docs.clevertap.com/docs/product-ab-tests) [Create A/B Tests](https://docs.clevertap.com/docs/create-ab-tests) [A/B Test Results](https://docs.clevertap.com/docs/ab-test-results) [A/B Test Best Practices](https://docs.clevertap.com/docs/ab-test-best-practices) [FAQs](https://docs.clevertap.com/docs/ab-test-faqs) Updated about 2 months ago * * * Ask AI --- # Best Time Campaign Overview [](https://docs.clevertap.com/docs/best-time#overview) =================================================================== _Best Time_ is a feature that learns from your user's activity over time to recommend the most optimal time to send a message to each user for a campaign or a journey. This optimizes the message send-time for each user based on their time zone and the period they are most active with your application. These time-based messages help achieve the following for the Campaigns and Journeys built using the Best Time feature: * Increased Engagement * Personalized Experience * Improved Conversion Rates Best Time Overview Video [](https://docs.clevertap.com/docs/best-time#best-time-overview-video) =================================================================================================== Learn how to send campaigns based on contextual Best Time for users with a sample use case. It enables you can create a Best Time Config based on the event and its properties. The Best Time Config refers to an event that triggers the determination of the best time to send a notification to your users. Thereby ensuring the optimal time to send messages or notifications to individual users based on their historical behavior and engagement patterns. With this feature, you can: * Configure up to 10 different configurations based on specific event filters along with the properties. * View the distribution of optimal times for your users, thereby maximizing the impact of the campaigns. * Select a fallback time for those without a clear best time. ![2122](https://files.readme.io/aeedcd6-Best_Time_Campaigns.png "Best Time Campaigns.png") How It Works [](https://docs.clevertap.com/docs/best-time#how-it-works) =========================================================================== CleverTap identifies the best time based on a selected event. The _Best Time_ campaigns are sent by splitting a day into 12 buckets of two hours each. The users are then assigned to one of these buckets based on the time of the day they are most active on the app. The user is then sent the campaign or journey in that two-hour window. If any user has not performed the selected event in the last 180 days, you can select the time slot (fallback time) for sending the campaign based on the user distribution. For example, you want to send personalized discount offers to your users based on the Product Viewed in the last 180 days. With the Best Time feature, you can optimize the timing of these messages to maximize user engagement and conversion rates based on user distribution. ![Sample Best Time Config](https://files.readme.io/a8a4f2d-Sample_Best_Time_Config.png) Sample Best Time Config > 👍 > > ### > > Bucket Example > > [](https://docs.clevertap.com/docs/best-time#bucket-example) > > For example, if a _Best Time_ campaign is created on January 1 at 5:15 PM, the campaign will start running based on the upcoming best time slot i.e. 6 P.M. and the users will receive campaigns based on the slot in which they are most active on the application. > 📘 > > ### > > Best Time Campaign Handling During DND > > [](https://docs.clevertap.com/docs/best-time#best-time-campaign-handling-during-dnd) > > If the Best Time bucket coincides with the DND period defined by the user, then the campaign message is discarded. Create Best Time Campaigns [](https://docs.clevertap.com/docs/best-time#create-best-time-campaigns) ======================================================================================================= This is a two-step process that includes the following steps: 1. [Set Up the Best Time Event](https://docs.clevertap.com/docs/best-time#set-up-best-time-event) . 2. [Create a Campaign using the Best Time feature](https://docs.clevertap.com/docs/best-time#create-a-campaign-using-the-best-time-feature) . Set Up Best Time Event [](https://docs.clevertap.com/docs/best-time#set-up-best-time-event) ----------------------------------------------------------------------------------------------- You can configure the best time option for one-time or recurring campaigns for **Email**, **SMS**, **Push**, **WhatsApp**, and **Web Push** channels. To set up Best Time campaigns: 1. Navigate to _Settings_ > _Setup_ > _Best Time_ from the CleverTap dashboard. 2. Click **\+ Best-Time Config**. ![Set Up Best Time Event ](https://files.readme.io/8a845b3-Set_Up_Best_Time_Event.png) Set Up Best Time Event 3. Enter the _Config name_ to uniquely identify the Best Time event. 4. Select the system/custom event for which you want to define the Best Time campaign. 5. Click **\+ Filter** to target a particular set of users for the campaign. Consider an example where you want to send Best Time campaigns to users who have performed the _Added To Cart_ event for the product _Ironman Helmet_ on their mobile devices. 6. (Optional) Click **Preview User Distribution** to check the user distribution for the selected event in the last 180 days. You can also change the filter based on the user distribution to achieve optimal conversion rates. ![Define Best Time Config](https://files.readme.io/de72691-Define_Best_Time_Config.gif) Define Best Time Config 7. Click **Save** to save the Best Time event. Currently, you can create journeys using the default Best Time config. So, it is mandatory to mark one of the Best Time configs as Default to refer to it later. You can do so by clicking the ![lEllipses](https://files.readme.io/3b92fb0-Ellipses.png) icon and selecting _Mark as Default_. ![Marking Best Time Event as Default](https://files.readme.io/612bfbe-Mark_as_Default.png) Marking Best Time Event as Default Similarly, you can also delete a particular Best Time event by clicking the ![lEllipses](https://files.readme.io/3b92fb0-Ellipses.png) icon and then selecting _Delete_. > 📘 > > ### > > Default Best Time Events > > [](https://docs.clevertap.com/docs/best-time#default-best-time-events) > > The default Best Time events cannot be deleted. Also, deleting such events does not impact the already running campaigns. Create a Campaign using the Best Time Feature [](https://docs.clevertap.com/docs/best-time#create-a-campaign-using-the-best-time-feature) --------------------------------------------------------------------------------------------------------------------------------------------- Here, consider an example of the Best Time email campaign. To create a campaign with this feature, perform the following steps: 1. Navigate to _Campaigns_ from the CleverTap dashboard. 2. Click **\+ Campaign**. ![1571](https://files.readme.io/5de46d2-2x_Create_a_campaign.png "2x Create a campaign.png") Create a Campaign 3. Select _Email_ from the list of messaging channels. 4. Define all the following information for the campaign: * Qualification Criteria * Email Service Provider * Campaign Goal * Who * What For more information about configuring the above details on the CleverTap dashboard, refer to [Create Email Campaign](doc:create-message-email) . 5. Define the Best Time campaign schedule: a. From the _When_ section of the campaign, select _Schedule for later_ or _Set as Recurring_ under the Data and time section, depending on the nature of your campaign. b. Select the date to send the campaign and select _Best time for every user_ from the dropdown. ![1332](https://files.readme.io/d60c6db-Select_Best_Time_option.gif "Select Best Time option.gif") Define Best Time Campaign Schedule Best Time feature works with the following campaign types: * One-time campaign, which is scheduled for a later time * Campaigns scheduled for multiple dates * Recurring campaign > 🚧 > > ### > > Campaign Time Overlap > > [](https://docs.clevertap.com/docs/best-time#campaign-time-overlap) > > If you have the Best Time campaign scheduled for the present day, you cannot schedule a Fixed Time campaign for the next day to avoid campaign time overlap between two dates. c. Click **Done**. d. Select the _Best Time event_ under the _Delivery preferences_ section or select _Ad hoc event_ to define the Best Time event here if not done earlier. ![Select Best Time Event](https://files.readme.io/b2581a5-Select_Best_Time_Event.gif) Select Best Time Event e. Select the _Fallback time frame_ if the best time is unavailable for the users or the user has not performed the selected event in the last 180 days. f. Set up the remaining fields under the _When_ section of the campaign and click **Done**. The campaign is now ready to publish. Create Best Time Journeys [](https://docs.clevertap.com/docs/best-time#create-best-time-journeys) ===================================================================================================== For campaigns following a past behavior segment, messages can be delivered at the best time with any of the following channels: [email](doc:email) , [push notifications](doc:push) , [web push](doc:web-push) , and [SMS](doc:SMS) . 1. [Set Up the Best Time Event](doc:best-time#set-up-best-time-event) . 2. [Create Journeys with Best Time Feature](doc:best-time#create-a-campaign-using-the-best-time-feature) . Create Journeys with Best Time Feature [](https://docs.clevertap.com/docs/best-time#create-journeys-with-best-time-feature) ------------------------------------------------------------------------------------------------------------------------------- To create journeys using the Best time feature: 1. [Create a journey](https://docs.clevertap.com/docs/journeys) as per your requirement. 2. Click on the ![Timer](https://files.readme.io/834daaa-Timer_icon.png) icon between the segment and the consecutive message node. 3. Select the _Best time_ option to send a message at the best time. Currently, you can create journeys using the default Best Time config. So, it is mandatory to mark one of the Best Time configs as Default to refer to it later. 4. Click **Save & Close**. ![1547](https://files.readme.io/5660e8b-4_Click_sleep_time.png "4 Click sleep time.png") Define Delivery Options Advanced Options [](https://docs.clevertap.com/docs/best-time#advanced-options) =================================================================================== If _Best Time_ is chosen as the delivery option, the following advanced options are applicable: * User time zone: Considering the _Best Time_ feature chooses the time when the user is most active, the [user time zone](https://docs.clevertap.com/docs/notification-delivery-options#section-delivery-in-user-s-timezone) is always implicitly applied. * Global throttle limits: Cannot be applied with the _Best Time_ feature. Updated about 2 months ago * * * Ask AI --- # Messaging Frequency Caps Overview [](https://docs.clevertap.com/docs/messaging-frequency-caps#overview) ================================================================================== Frequency caps help you control the number of messages your users receive. It is common to run multiple messaging campaigns simultaneously or in close proximity to one another. The same user may qualify for more than one of these campaigns and be subject to receiving several messages in short succession. Alternatively, for a recurring or triggered campaign, the same user may re-qualify for this campaign and receive the same message more than once. Frequency caps provide the capability to ensure your users do not receive too many messages. CleverTap has two types of frequency caps, including: * _Global Frequency Caps_ control the maximum messages a user can get across campaigns for a particular channel of communication. * _Message-level Frequency Caps_ define how often messages can be sent to a particular user for a particular campaign. When a frequency cap applies to a user, CleverTap will not deliver the associated message. The dropped messages will be accounted for in the campaign report error table. Global Frequency Caps [](https://docs.clevertap.com/docs/messaging-frequency-caps#global-frequency-caps) ============================================================================================================ Global frequency caps operate on a per-channel basis and let you specify the message cadence, dwell time between messages, and throttle limits (delivery rates). Maximum Messages per Channel [](https://docs.clevertap.com/docs/messaging-frequency-caps#maximum-messages-per-channel) -------------------------------------------------------------------------------------------------------------------------- You can define the maximum number of messages a user can receive from a specific communication channel across campaigns. ![](https://files.readme.io/84c565d-Global_Message_Limits.png) > 👍 > > ### > > Cadence Example > > [](https://docs.clevertap.com/docs/messaging-frequency-caps#cadence-example) > > You can define a cadence of three push notifications in seven days. This ensures that users only receive three push messages in seven days. Dwell Time Between Messages [](https://docs.clevertap.com/docs/messaging-frequency-caps#dwell-time-between-messages) ------------------------------------------------------------------------------------------------------------------------ For a communication channel, you can define the minimum time gap between messages across campaigns. For example, you can set a minimum gap of at least four hours between messages with a range of: * Minimum gap: 15 minutes. * Maximum gap: Seven days. ![](https://files.readme.io/c864807-DwellTime.jpg) Throttle [](https://docs.clevertap.com/docs/messaging-frequency-caps#throttle) ---------------------------------------------------------------------------------- Throttle is a feature that enables you to manage the rate at which notifications are sent to end users. It helps prevent overload on your platform/operations by distributing the incoming traffic over a longer period of time rather than redirecting too many users to your mobile application/website at once with too many notifications simultaneously. This feature can significantly reduce the peak traffic on your platform, enabling you to serve more customers without impacting the platform's performance. Finding the optimal throttling rate is crucial in ensuring the effectiveness of your engagements. A high throttling rate can overload your platform, while a low rate can result in engagements running for longer than expected, affecting the relevance of your messages to end users. Therefore, it is important to strike a balance by setting a reasonable throttling rate that suits your engagement reach and frequency to ensure that your messaging stays relevant without overloading your platform. > 📘 > > ### > > Throttle Limit Recommendations > > [](https://docs.clevertap.com/docs/messaging-frequency-caps#throttle-limit-recommendations) > > Check that you always set throttle limit to more than 100 when setting the Ad Hoc limit. > > Always check that your throttle limit is set high enough to prevent messages from running for multiple days, because the messages will stop delivering after the third day. This ensures that the relevance for messsages is maintained. > > The _restricted reach_ of your messages is displayed in a banner below the _Global throttle limits_. Make sure that the restricted reach is higher than your expected reach to ensure that all users receive the messages. ### Types of Throttle [](https://docs.clevertap.com/docs/messaging-frequency-caps#types-of-throttle) There are two types of throttle: * _Global Limit_: Select this option to apply global throttle settings to control the overall rate of message delivery. This setting ensures a consistent throttling rate across all campaigns or engagement nodes in journeys. * _Ad hoc Limit_: Select this option if you want to override the global throttle limits for specific campaigns or engagement nodes in journeys. This option allows for more granular control over message delivery rates based on individual requirements. #### Global Limit [](https://docs.clevertap.com/docs/messaging-frequency-caps#global-limit) The Global Limit is a default throttle setting that applies to all campaigns. This limit is set globally and can be configured from the _Settings_ section. To change the throttle limit: 1. Go to _Settings > Setup > Campaign Limits_. 2. Click **Add channel** and select the channel from the list to add a throttle limit for the channel. ![Set Global Throttle](https://files.readme.io/d620174-Defined_Limit_Settings.png) Set Up Global Throttle Limits This is now the global limit for all your campaigns. You can check this limit from the Campaigns by navigating to _Delivery preferences_ under the _When_ section. ![Set Global Limits](https://files.readme.io/49b7c2e2abfec1dc6ee10b63379eba4a60143367f7d65bda035aac3ec916cc83-Screenshot_2025-03-05_at_1.03.40_PM.png) Set Global Limits > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/messaging-frequency-caps#note) > > * If Global Throttle Limits (GTL) are not set in global settings, you can still configure them for a specific campaign or journey. > * For a Campaign, navigate to the _When_ section > _Delivery Preferences_ > _Ad Hoc limit_. > * For a Journey, select the specific Engagement node in the _Journey_ setup > _When_ section > _Delivery Preferences_ > _Ad Hoc limit_. > * The GTL checkbox is always enabled in Campaigns, similar to Journeys, allowing users to set ad hoc limits even if GTL is not configured in global settings. > > ![Delivery Preferences](https://files.readme.io/3d991d9012fa04d6733f6492077aa9cac5144c48704c96faf1918256379fb2ad-2025-03-07_21-20-08_2.gif) > > Delivery Preferences #### Ad hoc Limit [](https://docs.clevertap.com/docs/messaging-frequency-caps#ad-hoc-limit) The Ad Hoc Limit enables you to use a custom throttle limit for a specific campaign, which is different from the Global Throttle settings. This is useful when you want to apply a different throttle limit for a particular campaign without changing the global settings. 1. Go to the _When_ section > _Delivery preferences_. The Delivery preferences section displays the _Global Limit_ and the _Ad Hoc Limit_. 2. Select _Ad Hoc_ Limit to change throttle the message from the current campaign. 3. Enter the value and Click **Done**. ![Set Adhoc Limit](https://files.readme.io/c2f7a0e87b66c3982f6bdbbfa8ea5be7f2909bbb0fcfabbdc1980f77a14a5180-Screenshot_2025-03-05_at_1.04.27_PM.png) Set Adhoc Limit The Ad Hoc limit applies only to the current campaign or an engagement node in journeys. ### Throttling in Journeys [](https://docs.clevertap.com/docs/messaging-frequency-caps#throttling-in-journeys) For Journeys, throttle limits for the engagement nodes are the same as the Campaign throttle limits for Push notifications, SMS, Email, Webhooks, and WhatsApp. ![Set Up Throttle Limits from Journeys](https://files.readme.io/922bb5856b33369c8cfd49ca4cef6f556207ba2ed333bbfc2f7c834c319176bf-2025-03-07_21-40-12_1.gif) Set Up Throttle Limits from Journeys Depending on the time settings within a Journey, throttling may be allowed or disallowed: * **Timezone**: The _Account Timezone_ setting provides a centralized way to manage and schedule campaigns, ensuring consistency in timing and reporting across the entire user base. User Timezone settings are designed to send messages at the timezone the user was last active. Applying throttling in this context could cause delays in message delivery, disrupting optimal engagement times and reducing the overall effectiveness of the communication. To avoid this, throttling is allowed only when the messages are scheduled based on the Account Timezone. If you still schedule messages based on the User Timezone, a popup notifies you that throttling will be disabled for campaign limits. Throttling is permitted when you schedule messages based on the User Timezone only if you select the _Exclude the node from user timezone_ option. ![Throttling Permitted When Scheduling Campaigns Based on Account Timezone](https://files.readme.io/acbe90c-Available_in_Account_Timezone.gif) Throttling Permitted When Scheduling Campaigns Based on Account Timezone * **Best Time Campaigns**: The Best Time setting is designed to optimize message delivery by sending messages at times when users are most likely to engage based on their individual behavior and activity patterns. Throttling is not permitted in this context because it could cause delays in message delivery, disrupting the optimized timing and reducing the overall effectiveness of the campaign. Additionally, throttling would undermine the personalized nature of Best Time messaging by introducing inconsistencies in delivery, potentially diminishing the user experience. To ensure messages are delivered at the ideal moment, CleverTap disables throttling for campaigns that use Best Time, helping to maximize engagement success. ![](https://files.readme.io/132f464-Throttling_Not_Permitted_for_Best_Time_Campaigns_.gif) * **Segment Action Node with Zero Sleep Time**: When a segment action node with zero sleep time is added before an engagement node, CleverTap automatically removes throttling for the following engagement node. Zero sleep time indicates that users should proceed immediately from the segment action to the next step without delay. In this scenario, throttling, which controls message delivery rates by spreading them out over time, conflicts with the intent of instant progression. By disabling throttling, CleverTap ensures that messages are delivered in real time, preserving their relevance and impact. Additionally, when this configuration is applied, the system prompts for user confirmation, ensuring you are aware that the following engagement node will no longer be subject to throttling limits. ![Segment Action Node with Zero Sleep Time](https://files.readme.io/694d0f1-Segment_Action_with_Zero_Sleep_Time.gif) Segment Action Node with Zero Sleep Time However, if you set a sleep time of more than 24 hours, throttle limits remain in effect for the engagement node that follows the segment action node. ![Segment Action Node with Sleep Time Greater Than One Day](https://files.readme.io/0e1157d-Segment_Action_Node_with_Sleep_Time_Greater_than_One_Day.gif) Segment Action Node with Sleep Time Greater Than One Day Message-level Frequency Caps [](https://docs.clevertap.com/docs/messaging-frequency-caps#message-level-frequency-caps) ========================================================================================================================== Message-level caps let you control the number of times a particular ongoing campaign is delivered to the same user. > 🚧 > > ### > > Message Level and Global Frequency Caps > > [](https://docs.clevertap.com/docs/messaging-frequency-caps#message-level-and-global-frequency-caps) > > Message-level and global frequency caps work together when applied simultaneously. A user may be subject to either or both frequency cap limits. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/messaging-frequency-caps#note-1) > > Session limits are not a part of Campaign limits. They are considered separately. These caps are important for recurring campaigns or triggered campaigns where the same user may re-qualify multiple times to receive a message. Control Options [](https://docs.clevertap.com/docs/messaging-frequency-caps#control-options) ------------------------------------------------------------------------------------------------ The control options include: * Send every time the user qualifies (default): This sends a message every time the user qualifies (can choose to respect global caps). * Send with a minimum gap of: This sets a minimum gap between subsequent messages. The minimum gap allowed is five minutes, and the maximum gap allowed is 30 days. FAQs [](https://docs.clevertap.com/docs/messaging-frequency-caps#faqs) ========================================================================== ### Q. How does the User DND Set error occur? [](https://docs.clevertap.com/docs/messaging-frequency-caps#q-how-does-the-user-dnd-set-error-occur) A. The _User DND Set_ error occurs when you qualify users for a campaign despite unsubscribing on the target device. This error informs you that these users have been passed into the error bucket. ### Q. What is the Frequency Caps Exceed error? [](https://docs.clevertap.com/docs/messaging-frequency-caps#q-what-is-the-frequency-caps-exceed-error) A. The _Global Frequency_ feature limits the total number of messages that can be scheduled per day for a user, taking into account all active devices and across different communication channels. Navigate to _Settings_ > _Engage_ > _Setup_ > _Campaign limits_ to cap the frequency for various channels. From the _Campaigns limits_ page, you can define the number of messages you want to send to each user in X number of days. ![975](https://files.readme.io/55bab17-New_final_Previous_Campaigns_global_frequency_v1.png "New final Previous Campaigns_global_frequency v1.png") You can also specify the following: * _Dwell time_ is the gap you want to keep between messages. * _Throttle_ controls the flow of your messages. For more information on dwell time, refer to [Dwell Time Between Messages](https://docs.clevertap.com/docs/messaging-frequency-caps#section-dwell-time-between-messages) . For more information on throttling, refer to [Throttle](https://docs.clevertap.com/docs/messaging-frequency-caps#section-throttle) . Now, when you create a campaign, and you want to disable the _Global frequency limit_, clear the _Global Campaign Limit_ option under the _Who_ section. The _Global Campaign Limit_ is enabled by default. Updated about 2 months ago * * * Ask AI --- # Define Goals Overview [](https://docs.clevertap.com/docs/define-goals#overview) ====================================================================== By defining a goal, you can decide when a user can exit the Journey path. It helps you to compare a Journey’s effectiveness against a Control Group. For example, your goal could be to increase user registrations on your platform or want existing users to use your platform more frequently. To define a goal, you can drag and drop any segment from the left-hand side palette and add it as a goal for your Journey. A Journey can support up to **three** goals, and a user exits from the journey upon completing any of the goals. ![1208](https://files.readme.io/d824ddb-Define_a_Journey_Goal.gif "Drag and drop a segment to define a goal for Journey") Define a Journey Goal Types of Goals [](https://docs.clevertap.com/docs/define-goals#types-of-goals) ---------------------------------------------------------------------------------- * Action-based goals: In this goal, users will exit your Journey as soon as they perform a goal, in real-time. For example, exit people as soon as they perform the _Charged_ event, where _item_ is _Red Nike Shoes_. * Past behavior goals: Past behavior goals, like segments, are evaluated once every twenty-four hours, at 12:00 am. Once the goal is evaluated, users who meet this goal will not be a part of the Journey from that day onward. For example, exit people if they have spent at least $300 in the past week. Updated about 2 months ago * * * Ask AI --- # Journey Overview Overview [](https://docs.clevertap.com/docs/journeys#overview) ================================================================== With Journeys, you can craft seamless, automated omnichannel messaging experiences for your users using our intuitive Journey canvas. It is designed to guide users through a series of touchpoints, wherein each messaging channel delivers the most relevant content at the most relevant time, driving them toward your desired conversion. For example, you can automate welcome messages after signup, send timely reminders for incomplete actions, or celebrate user achievements with rewards. By aligning your communication with each milestone, Journeys helps you create meaningful interactions that drive conversions and foster long-term loyalty (refer to the following illustration). ![Sample Use Case for Journeys](https://files.readme.io/665c16d8bdae138658c422930d9c47976afd2834134822b30a40089135a958b0-Product_Orchestration_Fold_1.gif) Sample Use Case for Journeys You can always update the What section of a live journey, such as message content or service provider settings. For changes beyond these, such as updating the entry criteria that determine which users qualify for the journey, rearranging nodes to adjust the communication flow, or modifying goals, you must create a new draft version of the journey. This lets you optimize journeys safely without disrupting users in the current version. For more information, refer to [Editing in Journeys](doc:edit-a-journey) . Journey Overview Video Tutorial [](https://docs.clevertap.com/docs/journeys#journey-overview-video-tutorial) ================================================================================================================ Discover the video tutorial for the Journey overview and a sample use case. Advantages of Journey [](https://docs.clevertap.com/docs/journeys#advantages-of-journey) ============================================================================================ The following are the advantages of CleverTap Journey: * **Automates and enhances user engagement experiences within the app**: By automating engagement workflows, apps can trigger in-app messages, such as personalized offers, when a user adds an item to their cart but does not complete the purchase. This ensures timely and relevant communication. * **Delivers personalized and omnichannel messaging experiences**: For example, a user browsing shoes on an e-commerce portal could receive an email with tailored recommendations, followed by a push notification with a discount code if they don’t act on the email. * **Increases user retention**: By sending regular updates, such as reminders for unused loyalty points or upcoming app-exclusive events, you can keep users engaged and encourage them to revisit the app frequently. * **Experimentation using[IntelliNODE](doc:intellinode) **: By using the IntelliNODE feature, businesses can A/B test different journey paths for the users. For example, testing whether offering a 10% discount versus free shipping leads to better conversion rates for abandoned cart recoveries. * **Flexible Editing and Continuous Optimization**: For active journeys, minor changes such as updating message content or provider settings can be made without disrupting the user movement within the same version. For structural edits, such as changing entry criteria, node paths, or goals, you must create a new version, ensuring active users are not affected while optimizing the journey. For example, a retention team wants to improve reactivation rates for dormant users. In the current journey, users receive a single push notification after seven days of inactivity. The team creates a new version that introduces an additional email touchpoint on day five and adjusts the messaging sequence. This allows you to test the new journey without affecting users in the existing journey, and compare the results to determine which version drives better engagement. A truly effective journey reaches users across multiple touchpoints. By leveraging [Omnichannel Marketing](https://clevertap.com/blog/omnichannel-marketing-guide/) , you can create personalized and consistent experiences across channels such as Email, Push, SMS, and more. When Can You Send a Journey? [](https://docs.clevertap.com/docs/journeys#when-can-you-send-a-journey) ========================================================================================================= A Journey can be delivered at any stage of the user's app lifecycle. For example: * **User Onboarding**: Create an onboarding Journey that engages users over several days or weeks, utilizing multiple channels to educate them about your app's unique features. * **User Re-engagement**: Build a long-running re-engagement Journey to pull users back if they begin to slip away. * **User Transaction**: Build a promotional Journey to entice active users to re-purchase or transact at different times. Additional References [](https://docs.clevertap.com/docs/journeys#additional-references) ============================================================================================ The following are the additional Journey references: * [Journey Operations](https://docs.clevertap.com/docs/journey-operations) * [IntelliNode](https://docs.clevertap.com/docs/intellinode) * [Journey Performance](https://docs.clevertap.com/docs/viewing-statistics) * [Journey Reports](https://docs.clevertap.com/docs/viewing-journey-reports) * [Journey FAQs](https://docs.clevertap.com/docs/faqs) * [Journey Use Cases](https://docs.clevertap.com/docs/journey-use-cases) Updated about 2 months ago * * * Ask AI --- # Geofencing Campaign Overview [](https://docs.clevertap.com/docs/geofencing-campaign-1#overview) =============================================================================== A geofence is a virtual geographic area, represented as latitude and longitude pairs combined with a radius, forming a circle in a specific position on a map. CleverTap offers geofencing, a GPS location-based service. Customers can use this service to engage their audience by sending relevant messages to Android and iOS users. Geofences can vary in size, and a cluster can contain up to 100 geofences. Customers can define geofences around the world from the CleverTap dashboard. Campaigns are delivered in real time to users as they exit or enter geofences or sent as follow-ups hours or days later. CleverTap's location analytics create user data as users enter or exit geofences. This data can be used for retargeting. Geofence-specific analytics can generate insight into activities or locations of interest. Create Geofences [](https://docs.clevertap.com/docs/geofencing-campaign-1#create-geofences) =============================================================================================== To create geofences, perform the following steps: 1. From the CleverTap dashboard, navigate to _Settings_ > _Geofences_. 2. Click **Add Cluster** and select **Create** to create a new geofence cluster. ![1403](https://files.readme.io/39cc26ea5dfb81d5a14cb6e6ad84e0862f952a5c5f41e88bc0f779fae8295265-Test.png "Click +Geofence Cluster Button") Geofence Cluster 3. Select the preferred unit of measure for tracking the location of the geofence clusters. Select the distance in kilometers or miles and click **Continue**. ![1404](https://files.readme.io/b3ef82f69d8349a1a1d24e8abe9f1965115bfc58471d0533264b7a3fece21f0d-Cluster_measurement_unit.png "Select the Preferred Unit of Measure") Set Up Geofence 5. Click the _Search for location_ window to select the area you want to display on the map or enter a location in the search bar. A setting pop-up window displays. 6. Enter a _Geofence_ name. 7. Determine the radius that the geofence must cover. 8. Click **Save** on the pop-up window. ![1404](https://files.readme.io/115bdf5b9958ae4b03eb51755b26e20df561454b91a204b774fa5f117215cc82-Create_Clusters.png "Enter the Geofence Name and Radius and Click Add") Define Geofence Radius 9. Click **Continue**. 10. Enter a geofence cluster name. 11. Select the start and end time of tracking the users. If you select _Select date and time_, day and time options display beneath the radio buttons where you can choose a future start and end date and time. ![Schedule Cluster Tracking](https://files.readme.io/330580a77552dc29d46fd59bf99d344f92251b7c6813d38a03bb6a8ed13d62ff-Add_Name.png) Schedule Cluster Tracking 12. When entering the details for the geofence cluster, you can select Do Not Disturb (DND). The DND option prevents triggering an engagement for users who enter the geofence on specified days and times. ![701](https://files.readme.io/d9f09cdfb18c337ff15a27f6c4c8513696bf4cb4bee210d0bdbaa416ec8e8195-Do_not_disturb.png "Select the Do Not Disturb Options and Click Schedule") Set Up Do Not Disturb Details 13. Click **Create** or **Save Draft**. You can also edit or delete a geofence by clicking the edit or delete icon. ![Edit or Delete Geofences in a Cluster](https://files.readme.io/250a3b2537c3fe846e722946e107ac696ab73c56c9af33fc95df50c5e65568ac-Edit.png) Edit or Delete Geofences in a Cluster > 📘 > > ### > > Geofence and Cluster Limits > > [](https://docs.clevertap.com/docs/geofencing-campaign-1#geofence-and-cluster-limits) > > You can create up to 100 geofences in each cluster and up to 100 clusters for your app. Geofence Operations [](https://docs.clevertap.com/docs/geofencing-campaign-1#geofence-operations) ===================================================================================================== You can perform different actions on the geofence clusters from the All Geofences page. The following sections briefly discuss each operation. Filter Geofence Clusters [](https://docs.clevertap.com/docs/geofencing-campaign-1#filter-geofence-clusters) --------------------------------------------------------------------------------------------------------------- You can quickly search your geofence clusters by applying the required filters. To do so, click **Filters** to filter the list of available geofence clusters based on their states, such as Draft, Scheduled, Active, Paused, and Archived. ![Filters](https://files.readme.io/b77a09b3cd7bb390bef309b4d9e2948cf5f1e81b46ca2b420d3654121e3840af-filter.png) Filters Manage Individual Geofence Clusters [](https://docs.clevertap.com/docs/geofencing-campaign-1#manage-individual-geofence-clusters) ------------------------------------------------------------------------------------------------------------------------------------- You can perform the following actions on a geofence cluster: * Edit: Modify the geofence cluster's name, location, or radius. * Copy: Duplicate an existing cluster to quickly create a similar one. * Pause: Temporarily deactivate the cluster without deleting it. ![Manage Individual Geofences](https://files.readme.io/dda294ff33e44c372036a3cb97d988ae640727edaad5f2d058a8e6c41ec286ad-bulk_action.png) Manage Individual Geofences Bulk Actions [](https://docs.clevertap.com/docs/geofencing-campaign-1#bulk-actions) --------------------------------------------------------------------------------------- You can perform bulk actions on multiple geofence clusters at once using the toolbar at the top of the All Geofences page. The following bulk actions are available: * Pause: Temporarily deactivate the selected clusters. They will stop tracking user activity until reactivated. * Start: Activate selected clusters to begin location tracking. * Archive: Archive clusters that are no longer needed. They can be reactivated if needed and event tracking will resume. ![Bulk Actions](https://files.readme.io/dd43c97c2f6b0ea3da97e9ae67a6ccd9a94968fa1ddb839992a7ff8aa44843ae-bulk.png) Bulk Actions Bulk Upload [](https://docs.clevertap.com/docs/geofencing-campaign-1#bulk-upload) ------------------------------------------------------------------------------------- You can upload multiple geofences in bulk to new and existing clusters using a CSV or JSON file, instead of manually adding geofences. This feature is useful for scenarios involving a large number of geofences, such as, for franchises, stores, or branches. > 📘 > > ### > > Private Beta > > [](https://docs.clevertap.com/docs/geofencing-campaign-1#private-beta) > > Currently, this feature is released in Private Beta. If you want access to this feature, contact your Account Manager. To bulk upload geofences, perform the following steps: 1. From the CleverTap dashboard, navigate to _Settings_ > _Geofences_. 2. Click **Add Cluster** and select **Upload** to bulk upload geofences. ![Upload Geofence Cluster](https://files.readme.io/656965ebe257f63c4f6c7005ba3b5b77e30ed80e4b2a8a4fce59f976129ab275-Test.png) Upload Geofence Cluster 3. Click **Upload File** or drag and drop the files to start the upload process. ![Upload Cluster](https://files.readme.io/0a4300e8b0f295b4a43b9706426b8eafce251769f8ffe49bbc791f16ea6a0ebb-upload_cluster.png) Upload Cluster 3. To see previously uploaded files, click **View Uploaded Files**. Here you can filter by status: **Processing**, **Imported**, **Partially Imported**, and **Failed**. Once your upload is processed, you will receive an email confirmation. ![View Uploaded Files](https://files.readme.io/c98268f2e66fd9005f5954d1b2dcb0d6b3aaaa608bd8692e96ba12c6fb1821d9-view_files.png) View Uploaded Files > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/geofencing-campaign-1#note) > > * If a file includes mixed units for a new cluster, the first valid unit is used and others are adjusted accordingly. For existing clusters, their unit is retained. > * Follow the below general guidelines for bulk uploads: > * Maximum 100 clusters can be added to the dashboard, including existing clusters. Each geocluster can contain maximum 100 geofences. > * Maximum upload limit per file is 10,000 geofences. > * Start and end time must be in YYYYMMDDHHMM format. For example, 202512300445. > * For unit of measure, use `km` for kilometers and `mi` for miles. > * Latitude and longitude must be in decimal format without symbols (For example, 19.1114, 72.8677) > * The supported file formats are CSV and JSON. > * Maximum file size is 5 MB. ### Error Scenarios & Messages [](https://docs.clevertap.com/docs/geofencing-campaign-1#error-scenarios--messages) If the file fails validation, it will not be uploaded. You will receive detailed feedback by email, including an error report. Refer to the following table for common error scenarios: | Scenario | Message | | --- | --- | | Invalid format | _Invalid file format. Try again using a CSV or JSON file._ | | File too large | _File size limit of 5MB exceeded._ | | Duplicate geofence/cluster name | _Geofence with this name already exists. Try another name._ | | More than 100 geofences in a cluster | _Limit of 100 geofences per cluster exceeded._ | | Archived cluster | _Cannot import to archived cluster._ | | Invalid coordinates | _Invalid coordinates. Check and rectify._ | | Invalid name characters | _Name must start with a letter. Only letters, numbers, and special characters ( ) . -_ are allowed.\_ | Geofence Cluster States [](https://docs.clevertap.com/docs/geofencing-campaign-1#geofence-cluster-states) ------------------------------------------------------------------------------------------------------------- Geofence Clusters' states helps track progress and manage campaigns efficiently. Each state has distinct characteristics that determine what actions can be performed. The following table explains the campaign states. | **State** | **Description** | | --- | --- | | Draft | The geofence is created but not yet live. | | Scheduled | The geofence is set to go live at a future time. | | Active | The geofence is currently live and tracking user activity. | | Paused | The geofence is temporarily paused; can be resumed later. | | Archived | The geofence is no longer in use. This will pause tracking and stop all engagements. | > ℹ️ > > ### > > Geofence Events > > [](https://docs.clevertap.com/docs/geofencing-campaign-1#geofence-events) > > CleverTap raises three system events related to geofence interactions. The following events can be used to run campaigns, analytics, and segmentation: > > * **Cluster-level Events**: These events fire when a user enters or exits a geocluster. > * Geocluster Entered > * Geocluster Exited > * **Fence-level Events**: These events fire when a user enters a geofence. > * Geofence Entered > > Each event includes the following properties: > > * **Cluster ID** > * **Cluster Name** > * **Geofence ID** > > The geocluster name displays under event properties if the event has at least one occurrence. > > For more information, refer to [System Events](doc:events#section-system-events) > . Common Use Cases [](https://docs.clevertap.com/docs/geofencing-campaign-1#common-use-cases) =============================================================================================== Learn how to create personalized, location-triggered push campaigns using geofences. Scenario [](https://docs.clevertap.com/docs/geofencing-campaign-1#scenario) ------------------------------------------------------------------------------- A retail company that sells apparel wants to increase traffic to its physical stores in Mumbai. They have multiple store locations and want to send personalized promotions to customers close to their stores. Using CleverTap's geofence campaign, the retail company can target users who enter the specified radius around their store locations with real-time and location-based messages. Steps to Implement a Geofence Campaign [](https://docs.clevertap.com/docs/geofencing-campaign-1#steps-to-implement-a-geofence-campaign) ------------------------------------------------------------------------------------------------------------------------------------------- To solve the above business use case, create a push notification campaign adding the geofence cluster. The retail company can target users most likely to visit their physical stores and increase footfall. By using CleverTap's geofence campaign, they can send real-time, location-based messages that are personalized and relevant to the user. The following are the steps to create a push notification campaign with a geofence cluster for users who enter the geofence: ### 1\. Set Up a Geofence Cluster [](https://docs.clevertap.com/docs/geofencing-campaign-1#1-set-up-a-geofence-cluster) Set up a geofence cluster around the store locations from the CleverTap dashboard. You can specify the radius and location coordinates of each store location. To set up a geofence cluster, refer to [Create Geofences](https://docs.clevertap.com/docs/geofencing-campaign-1#create-geofences) . ### 2\. Create a Campaign [](https://docs.clevertap.com/docs/geofencing-campaign-1#2-create-a-campaign) After you have set up the geofence cluster and created the segment, you can create a geofence campaign from the CleverTap dashboard. To do so, perform the following steps: 1. From the dashboard, navigate to _Campaigns_. 2. Click **\+ Campaign**. 3. Select _Push Notifications_ as a messaging channel. ![1571](https://files.readme.io/a6b6a126a527a701301b3cce7b888877b179aa47d0d8a0c9fc3721cb76f95565-Select_the_Push_Campaign.png "Click +Campaign and Select Push Notification") Create Campaign 4. Select the _Live Behavior_. 5. Click **Done**. ![1096](https://files.readme.io/409c246-Live_Behavior.png "Select Live Behavior in Qualification Criteria and Click Done") Set Qualification Criteria 6. Select _Conversion Tracking_ under the _Set a goal_ section. 7. Select the conversion event, time, and revenue property. 8. Click **Done**. ![Set a Goal](https://files.readme.io/0d02449-Select_a_Goal.png "Set Conversion Tracking Rules and Click Done") Set a Goal 9. Select the _Geofence Entered_ event with event property as _Geofence ID_ from the _Who_ section of campaign creation. ![Define - Who](https://files.readme.io/6da2df4a094e849e7138f109d72eda62118fe87426bfe1aa811627d5f505c038-Who_in_campaigns.png "Select the Target Segment Options and Click Done") Define - Who This ensures that the message is only sent to users close to the store locations. 10. Set up the message content and design. For more information, refer to [Define Message Content](https://docs.clevertap.com/docs/create-message-push#define-message-content) ### 3\. Personalize the Message [](https://docs.clevertap.com/docs/geofencing-campaign-1#3-personalize-the-message) You can also use CleverTap's personalization features to make the message more relevant to the user. For example, you can include the user's name or previous purchase history in the message. For more information, refer to [Personalize Message](doc:personalize-message-all) . ### 4\. Schedule the Campaign [](https://docs.clevertap.com/docs/geofencing-campaign-1#4-schedule-the-campaign) Finally, schedule the campaign to be sent at a specific time or based on particular triggers. For example, send a campaign when the user enters the geofence for the first time. Maximize your [Location-Based Marketing](https://clevertap.com/blog/location-based-marketing-guide/) with best practices and strategies to deliver targeted messages to users based on their physical location. FAQs [](https://docs.clevertap.com/docs/geofencing-campaign-1#faqs) ======================================================================= Here are answers to common questions about using Geofences with Campaigns. ### What happens when I unarchive a draft geofence? [](https://docs.clevertap.com/docs/geofencing-campaign-1#what-happens-when-i-unarchive-a-draft-geofence) When a draft geofence is unarchived, all clusters will go back to the draft state. Archived clusters can be seen using the _Filters_ dropdown. ### What happens if I pause a geofence and resume it later? [](https://docs.clevertap.com/docs/geofencing-campaign-1#what-happens-if-i-pause-a-geofence-and-resume-it-later) When you pause a geofence, it stops tracking user activity. You can resume event tracking for the geofence cluster anytime by clicking **Resume tracking**. You will also be able to create engagements for the cluster. ### Can I edit a geofence while it's active? [](https://docs.clevertap.com/docs/geofencing-campaign-1#can-i-edit-a-geofence-while-its-active) Yes, you can edit the name, radius, or coordinates of a geofence. The changes apply immediately to live tracking and may affect ongoing campaigns. It is recommended to pause the geofence before making major edits to avoid inconsistent behavior. ### Will users receive messages if they enter a geofence during the Do Not Disturb (DND) window? [](https://docs.clevertap.com/docs/geofencing-campaign-1#will-users-receive-messages-if-they-enter-a-geofence-during-the-do-not-disturb-dnd-window) No. If the user enters the geofence during an active DND window, no engagement is triggered even if the campaign is active. Updated 7 days ago * * * Ask AI --- # Create a Journey Overview [](https://docs.clevertap.com/docs/create-a-journey#overview) ========================================================================== On the CleverTap dashboard, click **Journeys** under the _MESSAGES_ section on the left pane. Journey creation includes the following high-level steps: | Steps | Description | | --- | --- | | [**Setting Up a Journey**](doc:setup-journey) | Specify the following details and criteria to set up a Journey:

* Journey name
* Type of user behavior to qualify user entry into a Journey
* Date and time when the users can qualify for the Journey
* Do not disturb and timezone preference
* Control group
* Journey timeout | | [**Define Goals**](doc:define-goals) | Define the goal of the Journey. A goal is the desired action you want a subset of users to achieve on your app as they progress through a Journey. For example, perform a purchase, subscribe, launch, or register on the app, and so on. | | [**Define Entry Segment**](doc:define-entry-segment) | Define your target users for the Journey based on their past behavior or live action. For example, target users who have just installed an app to increase user registrations. | | [**Define Journey Path**](doc:construct-a-journey) | Define various Journey paths based on the specified goal and entry criteria. It orchestrates the path users can follow based on their actions on each engagement node. | | [**Personalize the Journey Content**](doc:personalization-in-journeys) | Use CleverTap's personalization capabilities, such as [Recommendations](doc:recommendations)
, [Linked Content](doc:linked-content)
, and [Liquid Tags](doc:liquid-tags)
, to customize the Journey for specific users. You can send dynamic and real-time recommendations to users based on user behavior. | | [**Publish a Journey**](doc:taking-a-journey-live) | Save and publish the Journey. | | [**Monitor the Journey**](doc:viewing-statistics) | Monitor its performance using Journey stats. | Once you have created and published a journey, you can edit it to make changes to the current journey or create a new version without affecting the current live version. This allows you to iterate and improve your engagement flow over time. For more information, refer to [Edit a Journey](doc:edit-a-journey) . Prerequisites for Creating a Journey [](https://docs.clevertap.com/docs/create-a-journey#prerequisites-for-creating-a-journey) ================================================================================================================================== First, you must understand the use case you are trying to solve using a Journey. Based on this, you will plan your Journey creation. Consider a scenario where a segment of users regularly visits your app and frequently views specific products. However, they are indecisive about buying the product. They are most likely still evaluating the product or looking for more exciting offers. To solve this sample use case, you must have the following prerequisites: * **Determine your use case**: Create a Journey that delivers real-time offers to entice on-the-fence shoppers to buy the product. * **Define the goal**: On-the-fence shoppers make a purchase. * **Identify your target segment**: Analyze and track all users viewing a product frequently. For example, fetch users whose event property is _Product Viewed_ and the view count is more than five times. * **Identify the offer/promotion**: Determine the specific discount, benefit, or promotion you want to give shoppers. For example, it could be a percentage discount, a gift, an extended trial period, or exclusive access to certain features. * **Identify the engagement channels**: Determine the various engagement channels through which users will engage with the app. For example, Push, In-App, Email, and so on. * **Identify the duration of your Journey**: Decide on the duration of the offer. Ensure the time frame is reasonable enough to entice the user to buy the product. * **Visualize the Journey path**: Visualize the logical flow of users' journey paths depending on their actions. For example, the users move along different paths based on their actions: * **Path A**: Users who viewed the product more than five times. * **Path B**: Users who viewed the product more than ten times. Now that you have outlined your Journey requirement, you can start creating the Journey. Before building a Journey on the CleverTap Dashboard, ensure you understand the [Journey Components](doc:journey-components) . Updated about 2 months ago * * * Ask AI --- # Setting Up a Journey Overview [](https://docs.clevertap.com/docs/setup-journey#overview) ======================================================================= Set up your journey by defining the following: * [Journey Entry](https://docs.clevertap.com/docs/setup-journey#define-the-journey-entry-criteria) * [Journey Entry Timelines](https://docs.clevertap.com/docs/setup-journey#define-the-journey-entry-timelines) * [DND and Timezone](https://docs.clevertap.com/docs/setup-journey#dnd-and-timezone) * [Control Group](https://docs.clevertap.com/docs/setup-journey#define-the-control-group) * [Journey Timeout](https://docs.clevertap.com/docs/setup-journey#select-a-journey-timeout) * [User Exit From a Journey](https://docs.clevertap.com/docs/setup-journey#user-exit-from-a-journey) The first step to building a Journey is defining the Journey's configuration within the Setup node. Click _Journeys_ from the dashboard and click the **+Journey** button to set up a Journey. A new Journey canvas is displayed. ![1348](https://files.readme.io/1ea159c-Journey_Setup.png "Begin Journey creation using setup node") Journey Setup Click **Setup**. The _Setup_ window displays. Enter the **Journey Name**. Using keyboard shortcuts, you can efficiently set up and manage journeys. Click the ![](https://files.readme.io/62eb9da-Keyboard_Shortcuts.png) icon to learn about the keyboard shortcuts. ![Keyboard Shortcuts in Journeys](https://files.readme.io/a37fd3d-Keyboard_Shortcuts_in_Journeys.gif) Keyboard Shortcuts in Journeys Define the Journey Entry Criteria [](https://docs.clevertap.com/docs/setup-journey#define-the-journey-entry-criteria) ------------------------------------------------------------------------------------------------------------------------- Select the _Journey entry criteria_. It can be a specific time or an event trigger. When you start building your Journey, you must define your _entry criteria_. This is a condition that decides if the users will be included in the Journey. The entry criteria of a Journey is essentially the segment of users you want to target. The various types of segments you can use are: * **Live User segments**: These segments qualify people as soon as they meet your specified criteria * **Past Behavior segments**: In this type of Entry Criteria, users who match your specified entry criteria will qualify once every twenty-four hours. Live user segments are further classified as follows: * **Action**: In this type of _entry criteria_, users will enter your Journey, as soon as they perform an event. For example: Enter people into your Journey, as soon as they install your application. * **Inaction**: Users enter your Journey, as soon as they don’t do something in the future. For example: If someone adds an item to their cart, but doesn’t transact within 15 mins. * **Property Date-time segments**: Qualify a user relative to a specific date and time in a property. * **Page visit**: Users will qualify as soon as they reach a web page that matches your specifications. * **Refer entry**: When users come to your website from a certain referrer, for example, Facebook, or Twitter, they will be qualified for your Journey. * **Page count**: As soon as the user sees the specified number of pages, they will be a part of your Journey. ![766](https://files.readme.io/ada99a2-Journeys_setup_entry_criteria.png "Set entry criteria for Journeys") Set Journey Entry Criteria Define the Journey Entry Timelines [](https://docs.clevertap.com/docs/setup-journey#define-the-journey-entry-timelines) --------------------------------------------------------------------------------------------------------------------------- We support one-time, multiple dates, and recurring Journeys. For example, for monthly payment reminders, you can schedule a Journey to start on the 1st of every month ![726](https://files.readme.io/2a5ce7b93b489900cd50c3de4f5fdc65c85ddb8c6b4352af027ce5b8a47279e4-Define_Journey_Entry_Timelines.png "Define entry timelines for Journey") Define Journey Entry Timelines ### Enter Once [](https://docs.clevertap.com/docs/setup-journey#enter-once) This Journey type runs only once at the start time. Users who have exited the journey through journey timeout, force exit, or Goal completion cannot re-enter. No new users will be added after the journey runs its course at the start time. ### Enter on Specific Dates [](https://docs.clevertap.com/docs/setup-journey#enter-on-specific-dates) This Journey type runs on multiple selected dates. Select the journey end time according to your business requirements. The option to allow users to re-enter the journey may be selected. ### Enter on Recurring Basis [](https://docs.clevertap.com/docs/setup-journey#enter-on-recurring-basis) This Journey type runs repeatedly and allows new users to enter based on the criteria selected in the _Repeat every_ section. The first run is immediate upon publishing the Journey. The subsequent runs are based on the selected criteria. The option to allow users to re-enter the journey may be selected. For more information about entry timelines for a PBS Journey, refer to [FAQ](doc:faqs#q-how-does-a-past-behavior-segment-journey-work) . ### Allow Users to Re-Enter the Journey [](https://docs.clevertap.com/docs/setup-journey#allow-users-to-re-enter-the-journey) By default, a user qualifies for a Journey only once. However, you can optionally allow users who have exited from a Journey to re-enter it, should they meet the entry criteria at a later date. Once a user enters the journey, they can exit the journey by matching different exit criteria, and only then can they qualify to re-enter the journey. Consider an example where the user qualifies for the journey if they have not made any purchase in the last 30 days. After waiting for one day, qualifying users receive a Push Notification with a discount promotion code at 10 AM, as shown in the following image: ![698](https://files.readme.io/8f93e69004ca4b15b2a0abfebd72fa4f5052775b6fa40f474a5d961392e4b518-Re-Entry_of_Users_in_Journeys.png "Re-entry of users in Journeys") Re-Entry of Users in Journeys If the Journey was set up with the default behavior (users cannot re-enter the Journey), then after they purchase and receive the push notification, they would continue moving ahead in the journey and finally exit it. As the _Allow users to re-enter the journey_ option was not selected, the users would not enter the journey again. If the Journey is configured with the setting where _Allow users to re-enter the journey_ option was selected, they will receive the corresponding push notification and exit the Journey after completing a purchase. However, if the users again qualify in the entry criteria while the journey is still running, they will enter the journey and receive the promotional offer to make the purchase. ![Allow Users to Re-Enter the Journey](https://files.readme.io/f8a8c7210683541760ae2eeb75ae4ee0f78381dc9499b3a7376dd39e4af7c16c-Allow_Users_to_Re-Enter_the_Journey.png) Allow Users to Re-Enter the Journey DND and Timezone [](https://docs.clevertap.com/docs/setup-journey#dnd-and-timezone) --------------------------------------------------------------------------------------- CleverTap provides an option for configuring the _Do Not Disturb_ hours for notification delivery when creating a journey. The DND feature manages message delivery via engagement nodes in Journeys so that campaigns are only sent after the DND period or discarded. To configure DND for Push, SMS, Email & Web Push journeys, select the days and enter the time when you do not want to send campaign notifications. If you will use the same time inactive period for each day, click the **Apply to all** link. ![Configure DND and Timezone for Journeys](https://files.readme.io/a0f920cded3c563fa8f58d40ed8942f9b2940606d900d8cf9814536ff9dffc94-image.png) Configure DND and Timezone for Journeys When sending a message during Do Not Disturb (DND) hours, you can select one of the following options: * _Don't send a message_: Select this option to discard the message altogether. In this case, the message is not sent to the user, and the user moves ahead in the journey along the unreachable path. If the unreachable path is not defined or drawn, the user is stuck at the engagement node. * _Send message after DND_: Select this option to send a message after DND. * _Scenario 1 (Before Feature Release)_ DND Period: Monday 11:00 PM to Tuesday 12:00 PM User qualifies for the campaign: Tuesday 11:00 AM (During DND) The engagement is delayed as it falls within the user's DND period. The user receives the engagement as soon as the DND period ends, at 12:00 PM on Tuesday. * _Scenario 2 (After Feature Release)_ DND Period: Monday 11:00 PM to Tuesday 12:00 PM User qualifies for the campaign: Tuesday 11:00 AM (During DND) The engagement is delayed as it falls within the user's DND period. The user receives the engagement on Wednesday at 11:00 AM, which is at the time scheduled. This ensures that notifications respect the user's active and inactive times and are only sent during their designated active hours. ![Send Message After DND](https://files.readme.io/d3398f19a4d62d7f24eb243c245990941d506de273e89544302344919c7635ef-Send_Message_After_DND.png) Send Message After DND > ❗️ > > ### > > DND Conflict Hours > > [](https://docs.clevertap.com/docs/setup-journey#dnd-conflict-hours) > > If you schedule a message node to send out delivery during the scheduled DND hours, you will receive an error message. This error message appears at the publishing of the journey. > > ![1206](https://files.readme.io/7ff47d7-2020-08-17_16-14-20_DND_hours_Conflict.png "Set DND conflict hours for Journeys") > > DND Conflict Hours Define the Control Group [](https://docs.clevertap.com/docs/setup-journey#define-the-control-group) ------------------------------------------------------------------------------------------------------- Define the required control groups. For more information on control groups, see [Control Groups](doc:control-groups) . ![725](https://files.readme.io/7092b2a-Journeys_setup_control_group.png "Define conflict group for Journeys") Define Conflict Group Select a Journey Timeout [](https://docs.clevertap.com/docs/setup-journey#select-a-journey-timeout) ------------------------------------------------------------------------------------------------------- Journeys are sequences of campaigns. At each stage of a Journey, you can choose to segment your audience further and deliver campaigns across multiple channels. While creating Journeys, you can choose to specify a Journey Timeout, which will be the maximum time a user spends in a Journey. Users exit the journey once this window is complete for them, irrespective of the journey stage. > 🚧 > > Once a user has exited the Journey, the user is free to re-qualify, if you have allowed re-entry in your setup. ![724](https://files.readme.io/e182621-Journeys_setup_timeout.png "Set Journey timeout") Journey Timeout User Exit From a Journey [](https://docs.clevertap.com/docs/setup-journey#user-exit-from-a-journey) ------------------------------------------------------------------------------------------------------- Assessing a Journey's effectiveness becomes challenging when a user gets stuck in a Journey. Hence, exiting users from the Journey is crucial in various scenarios. Users exit the Journey based on four conditions: * If the Journey goal is set: * User achieves the Journey goal. * User times out of the Journey. * User is forced to exit the Journey via the **Force Exit** node. * If the Journey goal is not set: * User exits the Journey through the last engagement node. Updated about 2 months ago * * * Ask AI --- # Journey States Overview [](https://docs.clevertap.com/docs/journey-states#overview) ======================================================================== Journey States in CleverTap refer to the distinct phases a user experiences within an automated Journey. Each state is defined by unique characteristics determining how and when users enter, progress through, or exit the Journey. These states offer valuable insights into user behavior, enabling marketers to monitor engagement and optimize workflow efficiency. The following table gives a quick overview of key aspects for each journey state: * User Entry * User Movement * Possible Next Actions * Possible Next States * Editing Permissions | State Name | User Entry | User Movement | Possible Next Actions | Possible Next States | Editing Options | | --- | --- | --- | --- | --- | --- | | **Draft** | Not Applicable | Not Applicable | Edit, Save, Publish, Clone | Scheduled, Running | Full editing allowed | | **Scheduled** | Not Applicable | Not Applicable | Edit, Clone, Pause, Stop | Running, Paused, Stopped | Partial edit (What section). | | **Running** | Users enter the journey as per the entry criteria | Users progress as per the defined flow | Edit, Clone, Pause, Stop | Paused, Stopped, Restricted, Completed | * Partial edit (What section).
* Full edit creates a new version. | | **Paused** | No new user entry | Existing users continue to move through the flow | Edit, Clone, Resume, Stop | Running, Stopped, Restricted, Completed | * Partial edit (What section).
* Full edit creates a new version. | | **Completed** | No new user entry | Existing users progress until they exit | Edit, Clone, Stop | Stopped | Full edit creates a new version. | | **Stopped** | No new user entry | No further progression; users are exited over 30–60 days | Edit, Clone | None | Full edit creates a new version. | | **Restricted** | No new entry | Existing users continue the movement | Edit, Stop | Stopped | * Partial edit (What section).
* Full edit creates a new version. | Draft [](https://docs.clevertap.com/docs/journey-states#draft) ================================================================== The Draft State in CleverTap refers to a Journey created but not published. Any unsaved changes in this state may be lost unless explicitly saved. If you have an existing unsaved Journey in the cache and choose to create a new Journey, CleverTap provides the option to either start a fresh Journey or restore the cached Journey for further editing. If you restore the cached Journey, the most recent version saved in your browser cache loads, enabling you to continue editing from where you stopped. The cache is specific to each user and depends on the web browser, ensuring that only the user who created the Journey can access it while preventing accidental data loss. The _Created By_ and _Published By_ columns on the Journeys List page identify the users responsible for creating and publishing a journey or its versions. The _Created By_ column shows the user who initially created the journey or its latest draft version, while the _Published By_ column indicates the user who published that specific version. When a draft is published, the journey transitions to the Scheduled or Running state based on its setup. Each version maintains its own creation and publishing metadata to enable accurate version tracking. > 📘 > > ### > > Draft Management > > [](https://docs.clevertap.com/docs/journey-states#draft-management) > > Only one draft is allowed per Journey entity at any time. Creating a new draft version replaces the existing one. Scheduled [](https://docs.clevertap.com/docs/journey-states#scheduled) ========================================================================== The Scheduled state indicates that the journey is set to go live at a later time. In this state, users do not yet qualify for the journey, which becomes active when the scheduled time arrives. The following table describes the key difference between the Past Behavior and Live Behavior Journeys in the Scheduled state: | **Feature** | **Past Behavior Setup** | **Live Behavior Setup** | | --- | --- | --- | | **Qualification Criteria** | Based on **past actions** or **custom lists**. | Based on **real-time user actions** or **inactivity**. | | **Entry Timing** | **At a fixed time**. | **At a fixed time**. | | **Trigger Type** | Static triggers based on predefined events. | Dynamic triggers that act as soon as the criteria are met. | | **Use Case Focus** | Re-engagement or follow-ups based on past activities (for example, targeting users who checked out last month). | Real-time engagement or retention campaigns (for example, sending a real-time cart abandonment reminder). | If the journey is stopped while in the Scheduled state, it will not go live, and no users will qualify for the journey. Editing Journey in Scheduled State [](https://docs.clevertap.com/docs/journey-states#editing-journey-in-scheduled-state) ---------------------------------------------------------------------------------------------------------------------------- To edit a scheduled journey, click the ![](https://files.readme.io/8f45b08c7f55c17da382ee310aa5def046dab2b3d740a837ce8e39e61ea57240-Edit_icon.png) icon. In this state, you can only do limited edits to the _What_ section of engagement nodes, such as message content, providers, and manual distribution percentages. Running [](https://docs.clevertap.com/docs/journey-states#running) ====================================================================== The Running state indicates that the journey is active, and the users execute actions as defined. In this state, users enter the Journey as they qualify and progress through it according to the flow after qualifying (refer to the following GIF). ![User Entry and Movement in Running State](https://files.readme.io/5aa5ea778cb2e4c2a73b283535a56b64413f776a1ca3379792ba2b4766364f3b-Running.gif) User Entry and Movement in Running State As users move through the Journey nodes (for example, receiving a message, meeting a condition, or dropping off), the stats are updated immediately in the dashboard. The date range selection in the calendar widget directly influences the Node stats. Consider an example where the Journey running from January 1 to January 10 sends push notifications to users. On January 5, you use the calendar widget to filter data for January 1–January 4. The Node stats update to reflect only the number of users who entered, dropped off, or converted during that time frame. Always ensure you are analyzing the correct time frame. For nodes with scheduled actions (for example, if a campaign is scheduled to run after two days), stats are updated only when those actions are triggered. Editing Journey in Running State [](https://docs.clevertap.com/docs/journey-states#editing-journey-in-running-state) ------------------------------------------------------------------------------------------------------------------------ You can edit the _What_ section of engagement nodes, such as message content, provider configuration, or manual distribution settings, without creating a new version. You must create a new version to modify other journey aspects (for example, entry criteria, goal logic, and journey structure). Once you publish a new version, you can: * **Stop the older version**, if you want all users to move to the new version immediately * **Mark the old version Restricted** if you want to allow existing users to continue moving through it. The new users who meet the updated entry criteria are routed into the new version of the journey. Paused [](https://docs.clevertap.com/docs/journey-states#paused) ==================================================================== The Paused state indicates that already qualified users or users who have entered the journey continue to advance through the journey. However, no new users qualify for the journey until it resumes (refer to the following GIF). For example, consider a Journey targeting users who abandon their cart without completing a purchase within 30 minutes. If you pause the Journey, users who are already qualified continue to progress and receive notifications as per the Journey setup, such as receiving a discount after 24 hours. However, new users who meet the criteria during the pause do not enter. Once the Journey resumes, new users qualify again based on the cart abandonment trigger. Existing user progress remains unaffected by the paused period. ![User Entry and Movement in Paused State](https://files.readme.io/8f53f43f6d2bf593957d3fd51ab66753c3d0a36009497ab9f6a31af58422c7c9-Paused.gif) User Entry and Movement in Paused State Editing Journey in Paused State [](https://docs.clevertap.com/docs/journey-states#editing-journey-in-paused-state) ---------------------------------------------------------------------------------------------------------------------- While updates to the What section, such as message content or provider settings, are still allowed without versioning, any structural changes require you to create a new draft version. This includes edits to nodes, paths, goals, and qualification logic. When you publish the new version, CleverTap prompts you to choose how to handle the paused version: * **Stop the older version**, if you want all users to move to the new version immediately * **Mark the old version Restricted** if you want to allow existing users to continue moving through it. The new users who meet the updated entry criteria are routed into the new version of the journey. Once you move the older journey to Restricted, it cannot be resumed. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/journey-states#note) > > Only one version of a journey can be in the Paused/Running state at a time. Stopped [](https://docs.clevertap.com/docs/journey-states#stopped) ====================================================================== The Stopped state indicates that the journey has been permanently deactivated. Users currently in the journey do not progress further, and actions are halted. ![User Entry and Movement in Stopped State](https://files.readme.io/d37e56e4b883fcc1cbf6eaf85b1ba34bb3f4c462b274b7f6528058564920684b-Stopped.gif) User Entry and Movement in Stopped State Editing Journey in Stopped State [](https://docs.clevertap.com/docs/journey-states#editing-journey-in-stopped-state) ------------------------------------------------------------------------------------------------------------------------ You can make changes to a stopped journey by creating a new draft version. This allows you to modify all aspects of the journey, including nodes, paths, goals, and qualification criteria. Once the new version is published, it becomes the active version of the journey. The stopped version remains inactive; users do not progress, and no new users qualify for it. Any users still present in the journey are exited automatically within 30 to 60 days. Completed [](https://docs.clevertap.com/docs/journey-states#completed) ========================================================================== The Completed state signifies that the user entry is marked complete. The already qualified users continue to progress and exit the journey once they have timed out (refer to the following GIF). ![User Entry and Movement in Completed State](https://files.readme.io/854ba478e8cd88e48cda04e1e449cbf26cf26ebb353e680b83dbebbf24a8125e-Completed.gif) User Entry and Movement in Completed State Editing Journey in Completed State [](https://docs.clevertap.com/docs/journey-states#editing-journey-in-completed-state) ---------------------------------------------------------------------------------------------------------------------------- You can make changes to a Journey in the Completed State by creating a new draft version. This includes updates to nodes, paths, goals, and entry criteria. When you publish the new version, you will be prompted to choose how the completed version should be handled: Once you publish a new version, you can: * **Force exit from version**, if you want all users to move to the new version immediately * **Keep moving in version** if you want to allow existing users to continue moving through it. The new users who meet the updated entry criteria are routed into the new version of the journey. ![Edit a Journey in Completed State](https://files.readme.io/b18a8d5c4aea555b1672fe3ac6404078cb7e21f819b8cd894e9dece8b2b35cf2-Edit_a_Journey_in_Completed_State.png) Edit a Journey in Completed State Restricted [](https://docs.clevertap.com/docs/journey-states#restricted) ============================================================================ The Restricted state indicates that the journey version is no longer accepting new users, but users who have already qualified will continue to progress through the journey. This is a system-driven state that is applied when a new version of the journey is published and the previous version is not stopped, but retained to support in-progress users. For example, consider a running journey that you edit and publish as a new version. If you choose not to stop the previous version, it enters the Restricted state. In this state, the journey flow remains active only for users already inside the journey; no new users will be able to enter. ![User Entry and Movement in Restricted State ](https://files.readme.io/6ed85c1e970478e35469e9dd240d3f26c4babbd9935d531e4d75b55f112f338c-Restricted_state_-_Static_New_Journey.png) User Entry and Movement in Restricted State A version in the Restricted state cannot be made active again. This state exists solely to ensure continuity for users already in the journey, while new users are directed to the latest active version. Editing Journey in Restricted State [](https://docs.clevertap.com/docs/journey-states#editing-journey-in-restricted-state) ------------------------------------------------------------------------------------------------------------------------------ Journey in the Restricted state supports limited edits to the _What_ section. To edit the journey beyond the What section, select _Full editing_ to create a new version. This initiates a new draft version. Once published, the older version remains restricted, and only the new version will remain active. Updated about 2 months ago * * * Ask AI --- # Journey Concepts Overview [](https://docs.clevertap.com/docs/journey-concepts#overview) ========================================================================== This section covers the following Journey concepts: * [Journey States](doc:journey-states) * [Journey Components](https://docs.clevertap.com/docs/journey-concepts#journey-components) * [Journey Procedures and Outcomes](https://docs.clevertap.com/docs/journey-components#journey-procedures-and-outcomes) Journey Components [](https://docs.clevertap.com/docs/journey-concepts#journey-components) ============================================================================================== A Journey is configured using a combination of the following components: * [Journey Nodes](https://docs.clevertap.com/docs/journey-components#journey-nodes-nodes) * [Segment Nodes](https://docs.clevertap.com/docs/journey-concepts#segment-nodes) * [Engagement Nodes](https://docs.clevertap.com/docs/journey-concepts#engagement-nodes) * [Engagement Node Actions](https://docs.clevertap.com/docs/journey-concepts#engagement-node-actions) * [Controller Nodes](https://docs.clevertap.com/docs/journey-concepts#controller-nodes) * [Journey Connections](https://docs.clevertap.com/docs/journey-concepts#journey-connections) * [Journey Links](https://docs.clevertap.com/docs/journey-concepts#journey-links) * [Sleep Time](https://docs.clevertap.com/docs/journey-concepts#sleep-time) Journey Nodes [](https://docs.clevertap.com/docs/journey-concepts#journey-nodes) ------------------------------------------------------------------------------------ Nodes are different entry and exit points for user navigation. The user navigates from a milestone to the intended one through different nodes, depending on the route they take. For example, you want the user to register and purchase a product on your platform after installing the app. When the user registers on your platform after app installation, a journey to purchase a product activates. However, if the user does not register on your platform even after app installation, you can activate a journey that nudges them to register on the platform. Nodes make it possible to automatically detect the route that the user takes, in order to steer them to the next relevant node. A Journey is a combination of _Segment_ nodes and _Engagement_ nodes. You can connect _Segment_ nodes and _Engagement_ nodes to each other to create powerful automation. When compared with Campaigns, the _Segment_ nodes define the audience, and _Engagement_ nodes define the target. ### Segment Nodes [](https://docs.clevertap.com/docs/journey-concepts#segment-nodes) _Segment_ nodes are various points in a journey to qualify users based on certain events. The events may be either entry or navigation points based on the user's action/inaction. In case of users not qualifying for a _Segment_, they may either be waiting for qualification or exit the journey, if entered. For example, on a successful login creation after installing the app, the user qualifies for a _registered_ event. In cases where the user does not create a login, they do not qualify, and based on the journey parameters, they either wait to enter the node or exit the journey. ![203](https://files.readme.io/df13128-Segments_Journey_Components.png "Various segment nodes in Journeys") Segment Nodes #### Types of Segment Nodes [](https://docs.clevertap.com/docs/journey-concepts#types-of-segment-nodes) | Segment Node | Description | Example | | --- | --- | --- | | Action | Qualification to this node occurs as soon as the user performs the said event. | Qualify users as soon as they do _app install_. | | Inaction | Segment users who did the first/initial event, but did not do the second event within a specified time interval. | Qualify users who _added to cart_, but did not purchase within five mins. | | Past Behavior | Segment users who performed one event AND did not perform another in the past _n_ days. | Qualify users who performed _Video Watched_ AND did not do _Subscription Paid_ in the last 30 days. | | Date Time | Segment users based on a _date time_ property value like flight time, due date, travel time, and so on. | Qualify users who have their credit card due date in the upcoming week. | | Journey Trigger | * \*Use this node only in the entry criteria\*\*.
Segment users based on a different user journey node. | Qualify users in current journey when they enter _X_ node of another journey.
For instance, all users who have received nudges based on _Video Watched_ and _Subscription not paid_ enter the current journey that offers discount codes for subscribing.̧ | | Custom list | * \*Use this node only in the entry criteria\*\*.
Upload custom list of users for entry to the Journey. | Qualify users based on an uploaded list from your Retail Point of Sale (POS). | | Page Visit | * \*Web based segment\*\*.
Segment users as soon as they visit a specific page. | Qualify users as soon as they visit a specific page. | | Referrer Entry | * \*Web based segment\*\*.
Segment users based on a referring website or campaign. | Qualify users as soon as they enter your website based on a referring website or campaign. | | Page Count | * \*Web based segment\*\*.
Segment users based on the number of pages visited by them. | Qualify users as soon as they visit _X_ pages. | ### Engagement Nodes [](https://docs.clevertap.com/docs/journey-concepts#engagement-nodes) _Engagement_ nodes are interaction points in a user journey that determine the channel and its message contents. The interaction points are users engaging with nudges/notifications sent to them. Users that do not interact with engagements do not qualify. For example, you can qualify users when they click a link in an email to indicate interaction. This enables further engagement to prompt certain user actions. ![406](https://files.readme.io/de9c6a32f3c1859a555eee62f5f9db03f87518731adb3cd2ad553ed8006ecfc9-Engagement_Nodes.png "Various engagement nodes in Journeys") Engagement Nodes #### Types of Engagement Nodes [](https://docs.clevertap.com/docs/journey-concepts#types-of-engagement-nodes) | Engagement Node | Description | Node Actions | | --- | --- | --- | | Push | Send push notifications that display in the users' notification tray or the notification inbox. | * Sent
* Failed
* Clicked
* Unreachable | | SMS | Send text messages to your app or website users even outside of the app. | * Sent
* Failed
* Unreachable | | Email | Send emails to your app or website users | * Sent
* Failed
* Viewed
* Clicked
* Unreachable | | Webhook | Use it to receive push notifications on the app server and track events in a system. You can also connect with an external source (e.g., Chatbots and virtual assistants) to send something via API. | * Sent | | Web Push | Send browser-based messages to your website users even outside of your website. | * Sent
* Failed
* Viewed
* Clicked
* Unreachable | | Web Pop-up | Display pop-up messages on desktop or mobile websites. | * Sent
* Viewed
* Clicked | | WhatsApp | Send WhatsApp messages to your app or website users even outside of the app.To know more, refer

[Engagement Nodes - WhatsApp](doc:engagement-nodes-whatsapp) | * Sent
* Failed
* Delivered
* Unreachable | | Exit Intent | Display pop-up messages before users leave your website | * Sent
* Viewed
* Clicked | | In-app | Display pop-up messages while a user is in the app. An In-App renders as soon as the user performs an event. | * Viewed
* Clicked | | Web Native Display | Display content on your website without interrupting the user journey. | * Viewed
* Clicked | | Inbox | Send messages that remain accessible after they’re received in the app. | * Sent
* Viewed
* Clicked | | Facebook | Send messages to users outside of your app or website via ads on Facebook. | * Sent
* Failed
* Unreachable | | Google | Send messages to users outside of your app or website, via ads on Google apps. | * Sent
* Failed
* Unreachable | | Amazon event bridge | Interact with Amazon EventBridge(if integrated) to send user action-based notifications. | Sent | | Segment | Interact with Segment(if integrated) to personalize engagements based on user actions. | Sent | | mParticle | Interact with mParticle(if integrated) to collect user data for rich engagements. | Sent | #### Engagement Node Actions [](https://docs.clevertap.com/docs/journey-concepts#engagement-node-actions) This section explains the status of the message delivery and the actions a user may perform on the engagement node. | Node Actions | Description | | --- | --- | | **Sent** | Indicates that the message is sent from CleverTap and has reached the recipient's device. In the case of a Webhook, the recipient is the system server. | | **Failed** | Indicates that the sent message could not be delivered to its intended recipient due to specific errors. For example, third-party provider issues. | | **Unreachable** | Indicates that the sent message could not be delivered because the recipient's device or contact information is unavailable. For example, a push token or phone number does not exist. | | **Viewed** | Indicates that the user viewed the message sent from CleverTap. For example, the user views an Email or In-App notification. | | **Clicked** | Indicates that the user clicked the message sent from CleverTap. For example, the user clicks a Push, In-App, Email, Web Popup, or Web Push message. | | **Delivered** | In WhatsApp, _Sent_ indicates that the message is on its way to the user's device, and _Delivered_ indicates that the message has reached the recipient's device. If the user blocks you, the message does not reach them. | ### Controller Nodes [](https://docs.clevertap.com/docs/journey-concepts#controller-nodes) _Controller_ Nodes are points in a user journey that perform certain actions. For example, you may exit a user from a journey after completing an _Email Engagement_. ![Journey Controllers](https://files.readme.io/3a247ad8c4fb1f2c20c1e25b4862afbb9290663e410d19eff8fc25d499f1eaa9-Journey_Controllers.png) Journey Controllers #### Types of Controller Nodes [](https://docs.clevertap.com/docs/journey-concepts#types-of-controller-nodes) | Controller Node | Description | | --- | --- | | Force exit | Exit a user from a journey. | | [User profile update](https://docs.clevertap.com/docs/construct-a-journey#using-user-profile-update-node) | Updates a system or custom property. If the user property for the user doesn’t exist in the profile, then the property is created for that user profile. Irrespective of whether the update fails or succeeds, the user moves ahead via the **Updated** path. | | [IntelliNODE](https://docs.clevertap.com/docs/intellinode) | Define and compare multiple journey variations within a single journey. | Journey Connections [](https://docs.clevertap.com/docs/journey-concepts#journey-connections) ------------------------------------------------------------------------------------------------ You can connect your journey nodes through _links_ and specify a _sleep time_ before an action. ### Journey Links [](https://docs.clevertap.com/docs/journey-concepts#journey-links) Journey links are routing rules between different nodes. Based on user behavior or action, you can create a connection between a node and link it to distinct nodes. For example, when you send push notifications to nudge buying for a segment of new users within the past year but have not purchased anything in the past month, you create a link between the segment node _Past behavior_ and the engagement node _Push_. ![596](https://files.readme.io/ddd50bf-Link_Sleep_Time.png "Journey links used to connect different nodes") Journey Links ### Sleep Time [](https://docs.clevertap.com/docs/journey-concepts#sleep-time) When you choose a journey link and connect it to the engagement node, the **hourglass** ![**hourglass**](https://files.readme.io/edc6717-Hourglass.png) icon appears on the link. Click the **hourglass** ![**hourglass**](https://files.readme.io/edc6717-Hourglass.png) to modify the sleep time. By default, there's no sleep time. Sleep Time enables you to specify whether to do the specified action immediately or after a gap. You may define the gap in minutes, hours or days. In the below figure, you may choose to send the nudge either immediately, as soon as the user qualifies, or wait for a few days before nudging the user. ![449](https://files.readme.io/1c0073a-Sleep_Time_Journey_Components.png "Sleep time component in Journey") Sleep Time > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/journey-concepts#note) > > The In-App renders as soon as the user performs an event. Hence, sleep time does not apply to In-App. However, to add a delay, add a segment node followed by the In-App node. Journey Procedures and Outcomes [](https://docs.clevertap.com/docs/journey-concepts#journey-procedures-and-outcomes) ======================================================================================================================== The following table describes the procedures and outcomes involved in a Journey: | Concept | Description | | --- | --- | | **Publish the Journey** | Makes your journey live. | | **Schedule the Journey** | Activates the journey (users begin entering the journey) at a specified time—either now or at a later date. | | **Initial Run of the Journey** | The initial run of the journey occurs as soon as it is activated based on the scheduled date and time. | | **Subsequent Run of the Journey** | In the case of a PBS journey, after the initial run, if the journey is set to recurring, subsequent runs occur at 12:00 a.m. the following day. Assuming the recurring day is set to T, the subsequent run occurs on T+1 day. | Updated about 2 months ago * * * Ask AI --- # Use Custom Reward Issued in Engagements Overview [](https://docs.clevertap.com/docs/use-custom-reward-issued-in-engagements#overview) ================================================================================================= CleverTap allows you to engage users who have received a Custom Reward by targeting them through the CT Custom Reward Issued event. This system event helps you personalize communication and drive users to complete key actions, such as redeeming an offer, using a reward, or making a follow-up purchase. Use Custom Reward Issued in Engagements [](https://docs.clevertap.com/docs/use-custom-reward-issued-in-engagements#use-custom-reward-issued-in-engagements) =============================================================================================================================================================== If you are a food delivery app that wants to increase redemption rates on the app. Let's say you want to remind users who received a custom reward but have not redeemed it yet. You can set up a campaign as follows: 1. Go to _Campaigns_ from the CleverTap dashboard. 2. Click **\+ Campaign** and select a messaging channel from the _Messaging Channels_ dropdown. 3. Click **Add an event** from the _Who_ section. 4. Select the _CT Custom Reward Issued_ event and the required _Event Property_. ![Target CT Custom Reward Issued Users with a Campaign/Journey](https://files.readme.io/f81f7887d173e10a42a487baf665044f7d8559a9fe6cce5ca287b21a2b2a776a-image.png) Target CT Custom Reward Issued Users with a Campaign/Journey For more information about creating a campaign, refer to the _Create Message_ document of the respective messaging channel. CT Custom Reward Issued [](https://docs.clevertap.com/docs/use-custom-reward-issued-in-engagements#ct-custom-reward-issued) =============================================================================================================================== After a custom reward is issued to a user, CleverTap logs the _CT Custom Reward Issued_ event. This event enables you to engage users by creating targeted campaigns based on custom reward-related actions. This event includes both System and Custom Properties that allow you to: * Filter users for targeted engagement. * Personalize message content using Liquid Tags. Updated about 2 months ago * * * Ask AI --- # Personalization in Journeys Overview [](https://docs.clevertap.com/docs/personalization-in-journeys#overview) ===================================================================================== While creating a complex orchestration for your users, ending personalized messages is equally important to increase the actionability of those messages. The following steps guide you on achieving this within different engagement nodes available on Journeys: * [Personalize Messages in Journeys](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-messages-in-journeys) * [Personalize Events across Nodes](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-events-across-nodes) Personalize Messages in Journeys [](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-messages-in-journeys) ===================================================================================================================================== You can personalize messages journeys after you finish [constructing a journey](https://docs.clevertap.com/docs/construct-a-journey) . To personalize the messages in Journeys from the engagement nodes: 1. Click an engagement node and create a campaign. 2. Select _What_ and then select the _Message Type_. ![780](https://files.readme.io/02868b8-Journeys_campaign_personalization.png "Select the message type for to create Journeys") Select the Message Type 3. Click _Go To Editor_ to edit and personalize the message. You can either use the inline @ personalization option or the more advanced options from _Personalization_ icon at the top of the page. ![1988](https://files.readme.io/055e687-CNP_Personalization.png "Create a personalized message") Create a Personalized Message For more information about message personalization, see [Message Personalization across campaigns](doc:personalize-message-all) Personalize Events across Nodes [](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-events-across-nodes) =================================================================================================================================== You can personalize an _Event Triggered Journey_ to engage a user through the subsequent engagement nodes or messaging channels. For example, a user adds an item to the cart but does not purchase it. You can then create a journey to send personalized reminders for the abandoned cart item through different channels. To achieve this personalization, you can personalize multiple messages in the journey based on the event _Abandoned Cart_ in the following order: 1. _Push Message Reminder_: After an hour of abandoning the cart, send a reminder message that says, "Hey, the iPhone 14 in your cart is still waiting." 2. _Push Message Followup_: Send a follow-up message that says, "Still interested in iPhone 14? It’s still waiting in your cart; tap Buy to finish your purchase." 3. _Email Message_: An email that includes the Product Name, Image, Price, and Link to the product purchase. The previous action node decides the event in the subsequent engagement node when multiple engagement nodes exist. The following table explains the node personalization sequence: | Preceeding Node | Subsequent Node | Is Event Personalization Available? | | --- | --- | --- | | Action Segment Node | Engagement Node | Yes | | Inaction Segment Node | Engagement Node | Yes (For main event) | | Date Time Segment Node | Engagement Node | Yes | Node Event Personalization Considerations [](https://docs.clevertap.com/docs/personalization-in-journeys#node-event-personalization-considerations) ------------------------------------------------------------------------------------------------------------------------------------------------------- There are some factors to consider when personalizing events across engagement nodes: * Event personalization is available for the Action, Inaction, and Date Time segment nodes. * Currently, online channels such as Web Pop-up, In-App, and App Inbox do not support Event Personalization across Nodes. Valid Journeys for Node Personalization [](https://docs.clevertap.com/docs/personalization-in-journeys#valid-journeys-for-node-personalization) --------------------------------------------------------------------------------------------------------------------------------------------------- The following scenarios indicate a valid user journey for node personalization: ### Personalize Engagement Nodes after Action Node [](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-engagement-nodes-after-action-node) You can personalize multiple messages in the journey based on the user event, that is, the abandoned cart event, when the engagement node follows the action node. For example, if a user adds an item to the cart but does not purchase it, you can set up a journey to send reminders for the abandoned cart item. You can send a push message followed by an email message to nudge the user. * Push Message Reminder: This is a reminder after an hour of abandoning the cart. A message that says, "Hey, the iPhone 14 in your cart is still waiting." * Email Message: This is an email that includes the Product Name, Image, Price, and Link to the product purchase. Following is a sample Journey flow: _Action Node > Engagement Node 1 > Engagement node 2_ ![2356](https://files.readme.io/737d23f-277a7fc-Action_engage1_engage2.png "Sample journey flow showing engagement nodes after action node") Sample Journey - Engagement Nodes after Action Node ### Personalize Engagement Node with Delay [](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-engagement-node-with-delay) You can set up a maximum delay of less than 24 hours per node in a journey. The following journey shows a 15-hour delay for each node. Send a push message after 15 hours and send another email message after 15 hours of delay. Following is a sample Journey flow: _Action Node > (delay of 15 hrs) > Engagement Node 1 > (delay of 15 hrs) > Engagement node 2_ ![2384](https://files.readme.io/2e33188-614275c-Action_delay_case2.png "Sample journey flow showing engagement node with delay") Sample Journey - Engagement Node with Delay ### Personalize Engagement Node with Delay and Controller Node [](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-engagement-node-with-delay-and-controller-node) You can personalize an event across two engagement nodes even if there is a Controller Node, such as User Profile Update, or IntelliNODE, between these engagement nodes. Consider a Journey where Engagement Node 1 before the Controller Node and Engagement Node 2 after the Controller Node (updating a user profile) can be personalized based on the event in the Entry Node. Following is a sample Journey flow: _Action Node > (delay of 15 hrs) > Engagement Node 1 > Controller node > (delay of 15 hrs) > Engagement node 2_ ![3510](https://files.readme.io/9d3099e-6accfcc-Action_controller.png "Sample journey flow showing engagement node with delay and controlled node") Sample Journey Flow - Engagement Node with Delay and Controller Node ### Personalize Events across Multiple Action Nodes [](https://docs.clevertap.com/docs/personalization-in-journeys#personalize-events-across-multiple-action-nodes) You can only personalize events from a preceding Action Node. Consider the following scenario: The entry segment is an Action Node _Segment 1_. All the subsequent engagement nodes get a trigger event from _Segment 1_. However, if you add another Action Node _Segment 2_ in the Journey, all the subsequent engagement nodes get a trigger event from _Segment 2_ . Refer to the following Journey example: _Segment 1 (Event 1) > Engagement Node 1(Event 1) > Engagement Node 2 (Event 1) > Segment 2 (Event 2) > Engagement Node 3 (Event 2) > Engagement Node 4 (Event 2)_ Now, all the engagement nodes after _Engagement Node 3_ will only get trigger events from _Segment 2_ for event personalization. ![5478](https://files.readme.io/ea42acf-fb01df9-two_action_nodes.png "Sample journey flow showing event across multiple action nodes") Sample Journey Flow - Events Across Multiple Action Nodes Updated about 2 months ago * * * Ask AI --- # Custom Rewards Overview [](https://docs.clevertap.com/docs/custom-rewards#overview) ======================================================================== Custom Rewards help you extend CleverTap’s reward ecosystem to integrate with your own partner systems. They allow you to create, manage, and distribute a catalog of external rewards, such as gift cards, digital subscriptions, physical items (for example, iPhones, cameras), or wallet-based credits, through CleverTap Promo campaigns. With Custom Rewards, you can maintain a centralized reward catalog that your system or your reward partner can fulfill. CleverTap manages the orchestration, triggering, and secure delivery of these rewards via **webhook notifications** whenever a user qualifies for a campaign. By using Custom Rewards, you can: * Configure and manage external rewards centrally. * Automate reward distribution through Promo campaigns. * Ensure accuracy, scalability, and governance in reward fulfillment. Custom Reward Types [](https://docs.clevertap.com/docs/custom-rewards#custom-reward-types) ============================================================================================== Custom Rewards support two types of reward delivery: * **Physical & Digital Reward**: Digital or physical rewards such as vouchers, gift cards, or an iPhone. * **Self-managed Wallet Credits**: Real money or point-based rewards managed in an external wallet. An external wallet is a real-money or points-based system hosted on your infrastructure. It is responsible for storing, crediting, and redeeming wallet balances when a user earns rewards. CleverTap only triggers the reward delivery via webhook; your wallet service performs the actual crediting. For more information about how to configure Custom Rewards in a campaign, refer to Create Custom Rewards. Examples by Business Verticals [](https://docs.clevertap.com/docs/custom-rewards#examples-by-business-verticals) ==================================================================================================================== Custom Rewards are flexible and apply across industries. Examples include: * **Quick Commerce**: Customers spending over $100 can instantly receive a movie ticket or streaming voucher, turning high-value purchases into rewarding experiences. * **FinTech**: A fixed deposit above ₹10,000 can trigger instant cashback to a user’s wallet, adding real-time value to financial milestones. * **E-Commerce**: Shoppers completing three purchases in a week can be gifted a third-party voucher, encouraging repeat buying and loyalty. * **Telecom**: Prepaid users recharging a monthly plan can unlock one-month OTT access, enhancing satisfaction with added entertainment benefits. * **EdTech**: Learners finishing a course on time can earn a digital certificate and discount voucher, motivating continued engagement. * **Mobility**: Frequent riders completing ten rides in a month can get wallet credits, rewarding consistent usage. Prerequisites [](https://docs.clevertap.com/docs/custom-rewards#prerequisites) ================================================================================== Before you begin, ensure you have the following: * A webhook endpoint that your system must expose to receive reward data. To know how to do that, refer to [Set Up Webhooks](doc:setup-webhooks#set-up-webhooks) . * Access to CleverTap Promo with the Promo add-on enabled. * Webhook keys are already configured for mapping CleverTap system keys to your internal reward system. Updated about 2 months ago * * * Ask AI --- # Journey Performance Concepts [](https://docs.clevertap.com/docs/viewing-statistics#concepts) ============================================================================ Before diving into Journey statistics, it is essential to understand a few key terms. These concepts define how user progress is tracked through the Journey and help you interpret the stats more accurately. * **Goal Met**: If a goal is set in the Journey builder, these are all users who met the goal. * **Journey Timeout** : If a Journey timeout is set in the Journey builder (entry criteria), all the users are timed out. * **Node Timeout**: The qualifying window set for the node, after which users will proceed to the next node via the Node Timeout connector. * **Version Exit**: The number of users who exited the journey from this version after reaching the selected node. Overview [](https://docs.clevertap.com/docs/viewing-statistics#overview) ============================================================================ Click _Engage_ > _Journeys_ from the left side menu. The _Journey List_ page opens. Search for a journey and then click to open a Journey. The _Journey Canvas_ displays the following four tabs for each journey version: * **Overview Tab**: Displays your Journey components and connections. ![Journey Overview](https://files.readme.io/d496b300449c1c3018e442bb1038afc3adce9e291abf24f8f3aaeb3a91e40389-Journey_Overview.png) Journey Overview * [Node Stats Tab](doc:node-stats) : Displays stats for each Node. ![2718](https://files.readme.io/92241da5ad3812b526cc4b34cded38c744dca321e1e81471541fbb3a716024d3-Node_Stats_-_Edit_Journey.png "View node stats") Node Stats * [Engagement Stats Tab](doc:engagement-stats) : Displays stats for the Engagement. ![Engagement Stats](https://files.readme.io/cf5c0bc1dfed07874ea2f15ae7b145c1e7aa17a4324091632419b31e6fd69f71-Engagement_Stats_-_edit_journey.png) Engagement Stats * [Journey Stats Tab](doc:journey-stats) : Displays stats for the Journey. ![2718](https://files.readme.io/d56b82bd9e5a06a3072ddaad7f3955b6aeca835788a2258fc6bebd1ac88b0bf6-Journey_Stats.png "View Journey stats") Journey Stats If a Journey has been edited after publishing, it may have multiple versions. To view metrics for a different version, select the desired version using the Version Selector at the top. Frequently asked questions [](https://docs.clevertap.com/docs/viewing-statistics#frequently-asked-questions) ================================================================================================================ ### Why do my users not qualify? [](https://docs.clevertap.com/docs/viewing-statistics#why-do-my-users-not-qualify) Check if your user matches all the entry-level segments in the initial node. If it is an action, check if the event is from the API. If yes, then check if you are passing the event in real-time or in batches. Passing the event with a backdated timestamp will not qualify users in a live-action. ### What are the last nodes? [](https://docs.clevertap.com/docs/viewing-statistics#what-are-the-last-nodes) These are the nodes without an output path, which are present in Journeys without goals. ### What happens to my users if my Journey does not have a goal? [](https://docs.clevertap.com/docs/viewing-statistics#what-happens-to-my-users-if-my-journey-does-not-have-a-goal) If you do not set a goal, the users from the last node exit the Journey. Their Journey is considered complete when they reach the last node. ### Where can I view the users who are waiting due to a delay or sleep defined between two nodes? [](https://docs.clevertap.com/docs/viewing-statistics#where-can-i-view-the-users-who-are-waiting-due-to-a-delay-or-sleep-defined-between-two-nodes) You will see them on the following node under 'Waiting users'. ### What are _Unreachable_ profiles? [](https://docs.clevertap.com/docs/viewing-statistics#what-are-unreachable-profiles) _Unreachable_ profiles are profiles that lack an identity, email, phone number, or token (web/push). ### What happens to Unreachable profiles if they reach the last engagement node? [](https://docs.clevertap.com/docs/viewing-statistics#what-happens-to-unreachable-profiles-if-they-reach-the-last-engagement-node) If the Journey Goal is set up, _Unreachable_ profiles move to _Waiting users_ > _Before Node_ stats. If the Journey Goal is not set up, _Unreachable_ profiles exit the journey. ### Why is the number of users on nodes not matching or adding up? [](https://docs.clevertap.com/docs/viewing-statistics#why-is-the-number-of-users-on-nodes-not-matching-or-adding-up) The count of users depends on the selected date range. If the original date range of the Journey does not match the date range in your search, then the numbers will differ from the original. ### How do I verify the number of users entering a specific node? [](https://docs.clevertap.com/docs/viewing-statistics#how-do-i-verify-the-number-of-users-entering-a-specific-node) The number of users moving forward from a node will always match the number of users who are entering the following nodes. ### What is this intermediate stat on node stat? [](https://docs.clevertap.com/docs/viewing-statistics#what-is-this-intermediate-stat-on-node-stat) If you draw the same connector, such as 'Yes', multiple times from a node and connect it to multiple Segment nodes, the users will move after the first action. The stats for these Waiting users are displayed as an intermediate node on the connector. ![785](https://files.readme.io/e0d470f-Journeys_multiple_Yes_Build.png "Journeys stats for multiple Yes build") Intermediate Node - Build ![1080](https://files.readme.io/960c1b8-Journeys_Multile_Yes_Node_stats.png "Journeys stats for intermediate node") Intermediate Node - Stats ### How will I see the stats for the Phantom node? [](https://docs.clevertap.com/docs/viewing-statistics#how-will-i-see-the-stats-for-the-phantom-node) A Phantom node appears only when a _Viewed_ or _Clicked_ connector is drawn from an Engage node. The originating node will display the Sent count, and the Phantom node will display the Clicked or Viewed count. For more information on Phantom nodes, refer to [Users waiting at Engage nodes](https://docs.clevertap.com/docs/journeys#section-users-waiting-at-segment-node) . ![1162](https://files.readme.io/af5a2ea-Journeys_Pseudo_Node.png "Journeys stats for Phantom node") Phantom Node - Build ![839](https://files.readme.io/8fac40f-Journeys_Pseudo_Node_Stats.png "Journeys stats for Phantom node") Phantom Node - Stats Updated about 2 months ago * * * Ask AI --- # Constant Event Property Overview [](https://docs.clevertap.com/docs/constant-property#overview) --------------------------------------------------------------------------- A _Constant Property_ is an event property that can be tracked across multiple events. Segmentation is done if multiple events are done with the same value of the event property held constant. This feature enables a marketer to create a single Campaign for all the values of the property held constant instead of individual campaigns for each value of the property. Example #1 - Single item engagement [](https://docs.clevertap.com/docs/constant-property#example-1---single-item-engagement) -------------------------------------------------------------------------------------------------------------------------------- As a growth marketer for an E-Commerce app, you want to segment out an audience that has Viewed a product in the past but not bought that exact same product. A straightforward segmentation would be to qualify people based on each product - Users who did Product Viewed Event where Product Name = Red Shoes in the last 30 days and Users who did not do Charged Event where Product Name = Red Shoes in the last 30 days. This would need to be repeated for all the items that the E-Commerce app has available. "Constant Property" feature allows a single segmentation where you can mark the property "Product Name" to be kept constant and the system will fire the same query for all the values of the Product Name and qualify those users accordingly. The "Constant Property" value will be available as a Personalisation key inside the Message body. If User A has Viewed "Jenny red shoes" and not Purchased that exact product then would get an engagement as - Hello A You have added **Jenny red shoes** to your cart. How about a discount code Cashback20 to help you save more? If User B has Viewed "Wonderland yellow jacket" and not Purchased that exact product then would get an engagement as - Hello B You have added **Wonderland yellow jacket** to your cart. How about a discount code Cashback20 to help you save more? Example #2 - Summary engagement [](https://docs.clevertap.com/docs/constant-property#example-2---summary-engagement) ------------------------------------------------------------------------------------------------------------------------ As a growth marketer for the E-Commerce app, you may want to send a summary of Weekly Expenses and Savings on the transactions the User has done on the application. This can nudge the users to continue seeing value in purchasing from your E-Commerce platform. The following are some sample engagement messages where John spent $100 over the last 1 week and saved $20 by using various coupons. Mary spent $120 over the last 1 week and saved $40 by using various coupons. You can send out a notification that says something like the following: Message for JohnMessage for Mary Hello John! The weekend sale is here! You have been able to save $20!! from your purchases worth $100 over the last week. Shop more on the weekend and choose from exciting products with more than 20% OFF!! Hello Mary! The weekend sale is here! You have been able to save $40!! from your purchases worth $120 over the last week. Shop more on the weekend and choose from exciting products with more than 20% OFF!! Hold Event Property Constant [](https://docs.clevertap.com/docs/constant-property#hold-event-property-constant) =================================================================================================================== You can hold a property constant in an inaction campaign or a Past behavior-type campaign. Currently, the Constant Event Property supports Push, Email, SMS, and Webhook campaigns. Alias Event Property [](https://docs.clevertap.com/docs/constant-property#alias-event-property) --------------------------------------------------------------------------------------------------- If different names call the same event property for various events, you can create an Alias property that will hold all the properties from other events. You can then use this across campaigns and analytics. For example, the event _Purchased_ has an event property that holds the product id of the item called _product\_id_. However, the event _Added to cart\_has an event property called \_Product ID_ that holds the same value. You can create an _Alias Event property_ called _Product ID_ containing the event property _product\_id_ and _Product ID_. Holding an event property constant across [Past Behavior Segments](doc:create-segments#create-past-behavior-segments) achieves the desired message for users. 1. Navigate to _Settings_ > _Schema_ > _Events_ > _Alias event property._ 2. Click the **+Alias Event Property** button. The _Create Alias Event Property_ window displays. 3. Enter the name for the _Alias event property_. 4. Click the **\+ Event property** link to map current events and their properties to the new alias. ![447](https://files.readme.io/30998fe-Alias_Event_property.png "Create alias event property") Create Alias Event Property You can now use this _Alias event property_ in all campaigns within the Constant Property option. Inaction Campaign [](https://docs.clevertap.com/docs/constant-property#inaction-campaign) --------------------------------------------------------------------------------------------- You want to engage all the users who dropped off after adding a product to the cart. The event property across these events is _Product Name_. The value of this event property can be anything from Jenny's red shoes, running shoes, a Wonderland yellow jacket, a baseball bat, and so on. You can define the conditions for the target audience and then select the constant event property. To create a campaign: 1. From the dashboard, navigate to _Campaigns_. 2. Click **\+ Campaign**. 3. Select a messaging channel. ![2868](https://files.readme.io/29c9426534951d28b39af5e00459449140c537c1c4a63763fd845cf5759243c6-Steps.png "Select_Channel_Campaign.jpg") Select a Messaging Channel 4. Under the _Start here_ section, select the qualification criteria as _Live Behavior_. 5. Click **Done**. ![659](https://files.readme.io/a82b66d-StartHere_LiveBehavior.png "Select qualification criteria for Campaigns") Select Qualification Criteria for Campaigns 6. Under the _Who_ section, select events, and properties, as required. 7. Select the _Constant event property_ checkbox, then select _Product name_. 8. Click **Done** and personalize the message using [Liquid Tags](doc:liquid-tags) under the _What_ section. ![1204](https://files.readme.io/edfd708-Who_constant_event_property.png "Select the target segment.") Select the Target Segment For example, you can send the campaign with the item name that the user who added an item to the cart but did not purchase. Liquid Hurrah.. ! Complete your purchase of {{ ConstantEventProperty | default:"this item" }} with 15% off on using code GRT572E. Following is a sample message the user gets: Text Hurrah.. ! Complete your purchase of Jenny red shoes with 15% off on using code GRT572E. We hold the property such as _Products_ across all the events. The _Product property_ value can be anything, such as Jenny red shoes, Cool Ice blue goggles, or George High white hat. The Constant Event Property holds the value of the product. Past Behavior Campaigns [](https://docs.clevertap.com/docs/constant-property#past-behavior-campaigns) --------------------------------------------------------------------------------------------------------- Let's take the earlier [OTT example](https://docs.clevertap.com/docs/constant-property#section-sending-a-summary) . You can define the conditions for the target audience and then select the constant event property. To create a campaign: 1. From the dashboard, navigate to _Campaigns_. 2. Click **\+ Campaign**. 3. Select a messaging channel. 4. Under the _Start here_ section, select the qualification criteria as _Past behavior/Custom list_. 5. Click **Done**. ![1575](https://files.readme.io/6777ed7-2_Past_Behavior_copy.png "Select the qualification criteria.") Select the Qualification Criteria 6. Under the _Who_ section, select the required events and properties. 7. Select the _Constant event property_ checkbox, then select _Product name_. 8. Click **Done** and personalize the message using [Liquid Tags](doc:liquid-tags) under the _What_ section. ![1574](https://files.readme.io/e1624c2-3_Constant_Event_Property.png "Select the target segment") Select the Target Segment For example, you can send the campaign with a list of shows that the user is still watching. Liquid Hello {{ Profile.name | default:"there" }} The weekend is here! How about you finish watching these episodes from the past week? {% for index in ConstantEventProperty %} {{ index | default:"Failed" }} {% endfor %} Following is a sample message that is received by your user: Text Hello John The weekend is here! How about you finish watching these episodes from the past week? * Funny Cats * Dogs eat makeup * Fast cars You can additionally use 'limit' in the For loop above to define the upper limit of the number of items in your message. In case you do not want to show more than three shows, you can use the following: Limit {% for index in ConstantEventProperty limit:3 %} This will restrict the maximum number of values in constant event property per user to 3. For users having lesser values, say 2, they will get the message with only 2 show names. To know more about limits, see [Limit in Liquid Tags](doc:https://docs.clevertap.com/docs/liquid-tags#section-limit) . By default, the limit is 5 (even if `limit` tag is not used) You can also refer to a value at a particular order by referencing the index of that value in the array. For example, a user added to cart but did not purchase Red shoes, yellow jacket, and Blue T-shirt. You can target users for specifically the second item from the bottom that they added to cart. It can be achieved using the following script. The last item is index 0, second last index 1, and so on. Specific item in the list Second last item - {{ ConstantEventProperty[1] | default:"index default" }} Stats [](https://docs.clevertap.com/docs/constant-property#stats) ===================================================================== The stats page for Campaigns where the "Constant Property" feature is used, shows comprehensive details as follows: * Event count for each value of the constant event property (Top 10 or Bottom 10) * User count for each value of the constant event property for notification sent, viewed, clicked, converted, and in control group. You can change the conversion event and map the conversion event's property to the constant event property and also track conversion for the same value of event property. ![1134](https://files.readme.io/75de59b-Constant_property_PBS_Stats.png "View constant property stats") Constant Property Statistics Conversion Event [](https://docs.clevertap.com/docs/constant-property#conversion-event) ------------------------------------------------------------------------------------------- The conversion event helps you track conversion. To track revenue, set the user conversion event from the campaign setup. * Mapping constant property with conversion event property allows you to view conversion rate for specific property values * You can view metrics for any conversion event and track conversion rate when any item is purchased or track the conversion rate for a specific item that is added to the cart. ![1162](https://files.readme.io/378af2e-Constant_property_conversion_event.png "Setup conversion tracking") Setup Conversion Tracking Advanced - Constant Property with Catalog Personalization [](https://docs.clevertap.com/docs/constant-property#advanced---constant-property-with-catalog-personalization) ============================================================================================================================================================================= You can combine [catalog personalization](doc:catalog-send-time-personalization) with constant event property to unleash the full power of campaign personalization. For example, you can hold an event property (Product ID) constant and also add to it the rating and cost present in a catalog via catalog personalization. ![809](https://files.readme.io/50a187b-Constant_property_with_Catalog_Personalization.png "Sample Campaigns using Constant Property with and without Catalog") Sample Campaigns using Constant Property with and without Catalog First, you must map the constant event property to the catalog. To do so, perform the following steps: 1. From the dashboard, navigate to _Campaigns_. 2. Click **\+ Campaign**. 3. Select a messaging channel. 4. Under the _What_ section, select a message type. 5. Click **Go To Editor**. ![1574](https://files.readme.io/35914a0-1_Go_to_Editor.png "Select the Message Type") Select the Message Type 6. Click **Personalization**. ![1668](https://files.readme.io/7298b1c-2_Personalization.png "Compose a Single Message") Compose a Single Message 7. Under _Catalog_, select a catalog. 8. Select the required events and properties. 9. Click **Apply**. ![994](https://files.readme.io/907964c-3_Personalization_Setup.png "Personalization using Catalog") Personalization using Catalog 10. Enter any mandatory content for your message. 11. Click **Done**. ![1666](https://files.readme.io/7384852-4_Fill_out_content.png "Compose the message") Compose the Message 12. Under the _Who_ section, select the required events and properties. 13. Select the _Constant event property_ checkbox, then select _Product name_. 14. Click **Done**. ![1598](https://files.readme.io/4970fdc-5_Constant_Event_Property.png "Select Target Segment") Select Target Segment Past behavior Campaign Personalization [](https://docs.clevertap.com/docs/constant-property#past-behavior-campaign-personalization) --------------------------------------------------------------------------------------------------------------------------------------- For Past behavior Campaigns, you can use the following liquid script. In this example, the item is the index used for looping over the list of items for a user. _Rating_ and _Amount_ are the column names from which we are fetching additional values that can be used in the message. Constant event property with catalog personalisation Hello {{ Profile.name | default:"there" }}, Here is another reason to complete purchase items added to your cart. Use Coupon FRT456P to get 15% discount on - {% for item in Catalog["Amount Catalog"] %} {{item.Name | default: "jhsfk"}}, rated at {{item.Rating | default: "3"}}-star and currently priced at ${{item.Amount | default: "79999"}}  {% endfor %} Enjoy.. !! A user receives a message like: Liquid Hello John, Here is another reason to complete purchase items added to your cart. Use Coupon FRT456P to get 15% discount on - Jenny red shoes, rated at 4-star and currently priced at $129 Rocket umbrella, rated at 5-star and currently priced at $49 Crosil watch, rated at 5-star and currently priced at $299 Enjoy.. !! Inaction Campaigns Personalization [](https://docs.clevertap.com/docs/constant-property#inaction-campaigns-personalization) ------------------------------------------------------------------------------------------------------------------------------- For inaction campaigns using Past behavior segments, you can use the following liquid script to use a particular column from the selected catalog in the message. Liquid Hurrah.. ! Complete your purchase of {{ ConstantEventProperty | default:"this item" }}, with 15% off on using code GRT572E. {{ ConstantEventProperty | default:"this item" }} is rated {{ Catalog["Amount Catalog"].Rating | default:"3" }}-star and is currently priced at {{ Catalog["Amount Catalog"].Amount | default:"$99" }}. A user receives a message like: Text Hurrah.. ! Complete your purchase of Nautical White T-shirt, with 15% off on using code GRT572E. Nautical White T-shirt is rated 4-star and is currently priced at $69. Updated about 2 months ago * * * Ask AI --- # Define Entry Segment Overview [](https://docs.clevertap.com/docs/define-entry-segment#overview) ============================================================================== The Entry Segment block can be considered as a starting point for creating a Journey. It defines the criteria based on which the users enter a Journey. ![Entry Segment Block](https://files.readme.io/295b20e-Define_Entry_Segment.png) Entry Segment Block * * * Remember that the selection made in the _Setup_ determines the segments available for drag and drop on the Journey canvas: | Configuration in Setup | Enabled Segments | | --- | --- | | If you selected _At a specific time_ in Setup | The _Past behavior_, _Journey Trigger_, and _Custom list_ segments are enabled. | | If you selected _By an event trigger_ in Setup | The _Action_, _Inaction_, _Date time_, _Journey Trigger_, _Page visit_, _Referrer entry_, and _Page count_ segments are enabled. | * * * To define the Entry Segment for a Journey: 1. Drag and drop one of the desired segments to the **Entry Segment** block. For example, use the **Past behavior** segment. ![Entry Segment Node for Journeys](https://files.readme.io/42fe360-Entry_Segment_Node_for_Journey.gif) Entry Segment Node for Journeys 2. Click the dropped **Entry Segment**. The **Segment** pane appears. The following image displays the **Who** section for a Past Behaviour segment. ![](https://files.readme.io/459e7b4-PBSSegment.jpg) 3. Enter the segment name. 4. Under the **Who** section, also called Query Builder, define the criteria as required. All rules defined are combined using the **AND** operator. Users qualify only if they fulfill all the criteria. * From the first list, select the [segment of users](https://docs.clevertap.com/docs/define-entry-segment#find-users-from-the-segment) . * From the second list, define the [user action criteria](https://docs.clevertap.com/docs/define-entry-segment#filter-by-action) . * From the third list, define the [user inaction criteria](https://docs.clevertap.com/docs/define-entry-segment#filter-by-inaction) . * From the fourth list, define the [user properties criteria](https://docs.clevertap.com/docs/define-entry-segment#filter-by-user-properties) . * From the fifth list, define the [user interests criteria](https://docs.clevertap.com/docs/define-entry-segment#filter-by-user-interest) . 5. If required, select **Do not send users unsubscribed** to exclude the unsubscribed users from the Journey. 6. Click **Continue** and **Save & Close**. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/define-entry-segment#note) > > * For more information about Journey entry criteria, refer to the [Define the Journey Entry Criteria](https://docs.clevertap.com/docs/setup-journey#define-the-journey-entry-criteria) > section. > * For more information about what type of user segments can be used, refer to the [Segments](doc:segments) > section. Entry Segment Criteria [](https://docs.clevertap.com/docs/define-entry-segment#entry-segment-criteria) ========================================================================================================== Under the **Who** section, also called Query Builder, you can define the criteria for the user's entry into a Journey. Find Users from the Segment [](https://docs.clevertap.com/docs/define-entry-segment#find-users-from-the-segment) -------------------------------------------------------------------------------------------------------------------- When you publish a Journey, users are filtered from the segment you select from this dropdown menu. Based on your Journey type, Past Behaviour, or Live Action, a list of existing segments appears. The below image shows the Past Behaviour Segments list. ![](https://files.readme.io/9a70350-PastBehaaviourSegmentList.jpg) Filter by Action [](https://docs.clevertap.com/docs/define-entry-segment#filter-by-action) ---------------------------------------------------------------------------------------------- Using the **Who have done\[Operator\] of these events** filter in the **Who** section, you can filter users for your Journey based on their actions within a specified time. You may also filter the users depending on whether the event occurred for the first time, for the last time, at a given time of day, or on a specific day of the week. You can define one or more criteria to filter the users. This set of criteria can be refined using the following two types of operators: * **All (AND)**: Fetches users who match all the event criteria set in the action filter. For example, a user did _App Launched_ event and _Charged_ in the last 30 days. ![](https://files.readme.io/ba54ec4-ANDOperator.jpg) * **Any (OR)**: Fetches users who fulfill any combination of the event criteria set in the action filter. You can also specify how many times these events occur. For example, a user did _Video Watched_ event or _Video Liked_ event more than once in the last 30 days. ![](https://files.readme.io/827169a-OROperator.jpg) Filter by Inaction [](https://docs.clevertap.com/docs/define-entry-segment#filter-by-inaction) -------------------------------------------------------------------------------------------------- Using the **Who have not done** filter in the **Who** section, you can filter users for your Journey based on the actions they did not perform within a specified time. You may also filter the user depending on whether the event did not occur for the first time, for the last time, at a given time of day, or on a specific day of the week. For instance, you can create a Journey that targets users as soon as they add a product to their cart but do not finish transacting within 10 minutes; that is the golden window within which most users transact on iOS and Android app platforms. By default, it evaluates all the criteria using the **OR** operator. If you specify multiple criteria, the user is qualified if any of the criteria are met. Filter by User Properties [](https://docs.clevertap.com/docs/define-entry-segment#filter-by-user-properties) ---------------------------------------------------------------------------------------------------------------- Using the **With user properties** filter in the **Who** section, you can filter users for your Journey based on the user's properties such as language, location, gender, phone number, and so on. By default, it combines all the criteria using the **AND** operator. For example, you can send a push notification to English-speaking female and male users who have a phone number. ![486](https://files.readme.io/cbc719c-user_properties_all.png "Add Multiple User Properties") Filter by User Properties The following table explains the various user property types: | Property Type | Description | Example | | --- | --- | --- | | **User Properties** | Custom [user profile properties](https://docs.clevertap.com/docs/user-profiles#section-user-profile-data-model)
that you define and send to CleverTap. | Customer Type = Platinum | | **Demographics** | Demographics filters include _Age_ and _Gender_. | Age = 25 to 40 years
Gender = Female | | **Geography** | User's location Filters include _Country_, _Region_, and _City_. CleverTap's SDK can automatically detect this from the user's IP address. | Country = United States
State = California
City = San Francisco | | **Geography Radius** | User's exact location. You can select a city and then define the target radius. You can also select multiple cities. You can receive this information using CleverTap's SDK. For more information, refer to the [iOS](https://developer.clevertap.com/docs/ios#section-send-location-information-to-clevertap)
and [Android](https://developer.clevertap.com/docs/android#section-manually-updating-user-location)
developer guides. | Locations = San Francisco, USA; Paris, France | | **Reachability** | Reachability filters include _Has email address_, _Has phone number_, _Unsubscribed email_, and _Unsubscribed SMS_. These filters help analyze the communication preferences of the users with the help of the following flags:

* _MSG-push_: Indicates that the user has enabled push notification from the application. Works with the DDND Flag.
* _MSG-sms_: When set to true, it indicates that the user has subscribed to SMS notifications. When set to false, it indicates that the user does not want to receive SMS notifications.
* _MSG-email_: When set to true, it indicates that the user has subscribed to Email notifications. When set to false, it indicates that the user does not want to receive email notifications.
* _MSG-whatsapp_: When set to true, it indicates that the user has subscribed to WhatsApp notifications. When set to false, it indicates that the user does not want to receive WhatsApp notifications.
For more information about each of these flags, refer to communication preferences listed under the [Manually Updating Predefined User Profile Properties](https://developer.clevertap.com/docs/concepts-user-profiles#manually-updating-predefined-user-profile-properties)
section. | Unsubscribed email = No | | **App Fields** | App fields filters include _App Version_, _Device Make_, _Device Model_, _OS Version_, and CleverTap _SDK Version_. CleverTap's SDK sends this information for each device with your app, meaning a single user can have multiple devices associated with the user profile. | OS Version = 10 | Filter by User Interest [](https://docs.clevertap.com/docs/define-entry-segment#filter-by-user-interest) ------------------------------------------------------------------------------------------------------------ Using the **With interests** filter in the **Who** section, you can filter users for your Journey based on the user's interests, such as event property, time of the day, and specific day of the week. For more information, refer to the [Psychographic Segmentation](https://docs.clevertap.com/docs/psychographic-segmentation) documentation. By default, it combines all the criteria using the **AND** operator. The following table explains the various user interest types: | Property Type | Description | Example | | --- | --- | --- | | **Event Property** | Select the event property based on which you want to meet the criteria. | For example, App Launched in the last 30 days. | | **Time of the day** | Time of day when the event was raised. It contains the start and end times. | 12 PM - 6 PM | | **Day of the week** | Day of the week when the event was raised, such as Sunday, Monday, Tuesday, and so on. | Day of the week = Sunday | After defining the entry segment criteria, you can choose how you want to communicate with the users. For more information about Journey paths, refer to the [Define Journey Path](https://docs.clevertap.com/docs/construct-a-journey) section Updated about 2 months ago * * * Ask AI --- # Publish a Journey Overview [](https://docs.clevertap.com/docs/taking-a-journey-live#overview) =============================================================================== After building your Journey, you can save it as a draft for further editing or publish it to make it live. This document offers a step-by-step guide to managing CleverTap Journeys, detailing the processes of saving drafts, publishing Journeys, and activating them effectively. Once a Journey is published, you can still edit it to make changes. This creates a new version of the Journey without disrupting the live version. For more information, refer to [Edit a Journey](doc:edit-a-journey) . Save Journeys [](https://docs.clevertap.com/docs/taking-a-journey-live#save-journeys) ========================================================================================= Once you create and save a journey, the status of the Journey changes to the _[Draft state](doc:journey-states#draft-state) _. You can make more changes to it at a later date or time. Any unsaved changes in this state may be lost unless explicitly saved. To save a journey, follow these steps: 1. Click **Save Draft** from the Journey canvas. The _Save this journey as_ popup opens. 2. _Enter journey name_ and click **Save**. ![912](https://files.readme.io/570cbb3-Save_Journeys.png "Save a Journey as a draft") Save Journeys The other journey actions, such as _Archive_, _Stop_, and so on, are unavailable, as the journey has still not been published. Publish Journeys [](https://docs.clevertap.com/docs/taking-a-journey-live#publish-journeys) =============================================================================================== After setting up the Journey, click **Publish** on the Journey canvas to activate it. The _Publish journey_ popup opens. Enter or verify the Journey name. You can also update the name here if needed. Add a description or summary for your Journey to help understand its purpose and click **Publish**. For example, _This journey aims to onboard new users by sending a welcome push notification immediately after signup_. The description can be up to 120 characters long. ![540](https://files.readme.io/6b89aa78c9ac56edb625aa80b84f6c6eeb7ebaaa1d50b9c8cf07c520bd3cc22f-Publish_a_Journey.png "Publish the Journey") Add a Description and Publish the Journey You can view the description from the Journey List page. Click the ![](https://files.readme.io/cb2b6e04c22c3145eae93b4cf2c3b463b799052b6581563c12ba4b2bf69b327c-ellipses_icon.png) icon and select _View description_ from the available actions. You can also edit the description when editing the Journey. ![View Journey Description](https://files.readme.io/62e0cb410bb851eabeccf029e103e6c1a967eb80db7303da785c37197de277e6-View_Description.png) View Journey Description Once you publish a journey, the journey status on the _Journey List_ page changes to _Running_ or _Scheduled_. You can edit any part of the published Journey, including entry criteria, paths, and content, by creating a new version. This allows you to iterate without disrupting the currently running version. You can still edit the _What_ section of a message node inline without creating a new version. For more information about how editing works, refer to [Edit a Journey](doc:edit-a-journey) . ![Edit a Currently Active Journey](https://files.readme.io/c84266b1c924ebf6f6b522818f7ca5caf558c195b510fcab67f7960ff42e6b91-Edit_Journey_Popup.png) Edit a Currently Active Journey Journey Activation, User Qualification, and Message Delivery [](https://docs.clevertap.com/docs/taking-a-journey-live#journey-activation-user-qualification-and-message-delivery) ===================================================================================================================================================================================== Once the journey is activated, users qualify, and messages are sent to the users based on the [Journey Entry Timeline](doc:setup-journey#define-the-journey-entry-timelines) they are activated as follows: * **Activation**: Journeys activate immediately after publishing or at a scheduled start time. * **User Qualification**: Users qualify for the Journey at midnight the day after activation. It applies to both multi-date and recurring Journeys. * **Message Delivery**: Messages are sent to users starting from the night of publishing and continue as scheduled. It applies to both multi-date and recurring Journeys. Updated about 2 months ago * * * Ask AI --- # Delivery Preferences within Journey Nodes Overview [](https://docs.clevertap.com/docs/delivery-preferences-within-journey-nodes#overview) =================================================================================================== Node frequency provides the ability to define when the messages must be delivered. If a user qualifies outside this window, the message is discarded. For example, you have qualified users based on their time with the platform and now want to introduce a new exciting feature and remind them of it every weekday in the next week. To do so, you can set node frequency to send the selected engagement type. To set node frequency for In-App, Web pop-up, or Exit intent nodes in journeys: 1. Select _In-app_ and click on the node to edit it. ![Set Node Frequency](https://files.readme.io/75f447f-3aa039c-Set_Node_Frequency.png) Set Node Frequency 1. Under **Delivery**, select the **Set frequency** checkbox. 2. Select the days and enter the time period during which you do not want to send notifications. If you want to use the same time inactive period for each day, click **Apply to all**. ![1108](https://files.readme.io/6d4ba30-2020-08-17_16-30-44_Set_DND_Dates.png "Select days and time for Journeys") Select Days and Time 4. Select the frequency. ![230](https://files.readme.io/608a939-Delivery_preferences_Journeys1.jpg "Select frequency for Journeys") Select Frequency 5. Click **Save & Close**. Updated about 2 months ago * * * Ask AI --- # Handle Duplicate Voucher Codes Overview [](https://docs.clevertap.com/docs/handle-duplicate-voucher-codes#overview) ======================================================================================== To maintain data integrity and prevent redemption conflicts, CleverTap enforces strict duplicate checks when uploading voucher codes. The system validates voucher codes based on the combination of List Tag and Partner across all active voucher lists (lists that are not archived). This document outlines the rules, scenarios, and best practices for handling duplicate voucher codes in CleverTap. Duplicate Voucher Code Rules [](https://docs.clevertap.com/docs/handle-duplicate-voucher-codes#duplicate-voucher-code-rules) ================================================================================================================================ CleverTap follows a structured approach to prevent duplicate voucher codes while ensuring flexibility where needed. Duplicate Voucher Codes Blocked [](https://docs.clevertap.com/docs/handle-duplicate-voucher-codes#duplicate-voucher-codes-blocked) -------------------------------------------------------------------------------------------------------------------------------------- CleverTap prevents duplicate codes within the same partner and list tag to avoid unintended voucher conflicts and redemption errors. * A voucher code cannot be uploaded again within the same voucher list (if the List Tag and Partner are the same). * A voucher code cannot be uploaded to another list under the same Partner if the List Tag already contains that code in any active voucher list. The following table illustrates different scenarios of voucher code duplication across lists. The **Available Codes** column represents the existing codes in active voucher lists, helping you verify duplication before uploading new codes. | List Name | Partner | List Tag | Available Codes | Codes Uploaded | Duplication Allowed? | | --- | --- | --- | --- | --- | --- | | List D | Partner A | List Tag A | `Code1, Code2, Code3` | `Code1, Code2, Code3` | Not Allowed (Same Partner and List Tag) | Duplicate Voucher Codes Allowed [](https://docs.clevertap.com/docs/handle-duplicate-voucher-codes#duplicate-voucher-codes-allowed) -------------------------------------------------------------------------------------------------------------------------------------- In certain cases, CleverTap permits duplicate codes to enable cross-partner distribution and list reusability. This ensures businesses can manage vouchers effectively without unnecessary upload restrictions. * A voucher code can be uploaded under the same List Tag but with a different Partner, as each partner operates independently. * Once a voucher list is archived, its codes are no longer checked for duplication, allowing the same codes to be uploaded again. The following table illustrates different scenarios of voucher code duplication across lists. The **Available Codes** column represents the existing codes in active voucher lists, helping you verify duplication before uploading new codes. | List Name | Partner | List Tag | Available Codes | Codes Uploaded | Duplication Allowed? | | --- | --- | --- | --- | --- | --- | | List A | Partner A | List Tag A | \- | `Code1, Code2, Code3` | Allowed (First-time upload) | | List B | Partner A | List Tag B | `Code1, Code4, Code5` | `Code1, Code4, Code5` | Allowed (Different List Tag under the same Partner) | | List C | Partner B | List Tag A | `Code1, Code2, Code3` | `Code1, Code2, Code3` | Allowed (Different Partner, different redemptions) | | List E | Partner A | List Tag A (Archived) | `Code1, Code2, Code3` | `Code1, Code2, Code3` | Allowed because List A is archived | Manage Duplicate Voucher Codes Across Partners [](https://docs.clevertap.com/docs/handle-duplicate-voucher-codes#manage-duplicate-voucher-codes-across-partners) ==================================================================================================================================================================== Consider a scenario where Customer X runs a New Year sale campaign and collaborates with multiple partners to distribute discount vouchers. Each partner, such as Partner A and Partner B, operates independently, managing their own set of voucher codes. As each partner controls their own redemption platform, CleverTap enforces duplication checks within the same partner but allows the same code across different partners. | Scenario | Action | Allowed? | Reason | | --- | --- | --- | --- | | Uploading `Code 1` under different partners | * Code1 is uploaded under Partner A (similar to List A).
* Code1 is uploaded under Partner B (similar to List C). | Yes | Different partners operate independently, preventing redemption conflicts. | | Uploading `Code 1` again under the same partner | * Code1 was already uploaded under Partner A (similar to List A).
* Customer X attempts to upload Code1 again under Partner A in another active list (similar to List D). | No | Partner A already has an active list with `Code 1`. CleverTap prevents duplicates within the same partner across active lists. | | Re-uploading `Code 1` after archiving the original list | * `Code 1` was in List A (archived).
* Customer X attempts to re-upload `Code 1` under a new list (similar to List E). | Yes | Once a list is archived, its codes are no longer checked for duplication, allowing re-upload. | Updated about 2 months ago * * * Ask AI --- # Use Partner Vouchers in Campaigns Engage with Voucher Assigned Users [](https://docs.clevertap.com/docs/use-partner-vouchers-in-campaigns#engage-with-voucher-assigned-users) =============================================================================================================================================== CleverTap allows you to target users who have received a voucher by creating a campaign based on the _CT Partner Voucher Rewarded_ event. This event helps personalize communication and drive users toward completing a desired action, such as making a purchase or redeeming an offer. For example, suppose you are a food delivery app that wants to increase redemption rates on the app. Let's say you want to remind users who received a discount voucher but have not redeemed it yet. You can set up a campaign as follows: 1. Go to _Campaigns_ from the CleverTap dashboard. 2. Click **\+ Campaign** and select a messaging channel from the _Messaging Channels_ dropdown. 3. Click **Add an event** from the _Who_ section. 4. Select the _CT Partner Voucher Rewarded_ event and the required _Event Property_. ![Target Users with a Campaign/Journey](https://files.readme.io/fcb5f165b05a8e274d0810b66f096cdcebeb48b95b8da4a48fe07d0bfa1d6dcd-CT_Partner_Voucher_Rewarded.png) Target Users with a Campaign/Journey For more information about creating a campaign, refer to the _Create Message_ document of the respective messaging channel. CT Partner Voucher Rewarded [](https://docs.clevertap.com/docs/use-partner-vouchers-in-campaigns#ct-partner-voucher-rewarded) ================================================================================================================================= After a voucher is assigned to a user, CleverTap triggers the _CT Partner Voucher Rewarded_ event. This event enables you to engage users by creating targeted campaigns based on voucher-related actions. The event includes the following System and Custom event properties, which help you track and personalize user engagement strategies: System Event Property [](https://docs.clevertap.com/docs/use-partner-vouchers-in-campaigns#system-event-property) --------------------------------------------------------------------------------------------------------------------- | Property | Description | Example Value | | --- | --- | --- | | `CT Source` | Identifies the source system or module that triggered the event. | `Promo Module` | Custom Event Properties [](https://docs.clevertap.com/docs/use-partner-vouchers-in-campaigns#custom-event-properties) ------------------------------------------------------------------------------------------------------------------------- | Property | Description | | --- | --- | | `campaignId` | The unique identifier of the campaign through which the voucher was distributed. For example, CMP123456. | | `eventTimestamp` | The exact time when the voucher was assigned to the user. For example, 1708351200. | | `listDescription` | A brief description of the voucher list, typically outlining its purpose or restrictions. For example, _Winter Sale 2024 - ₹500 off on orders above ₹2000_ | | `listExpiry` | The expiration date of the voucher list, after which no more vouchers from this list can be assigned. For example, `2024-03-31T23:59:59Z` | | `listTag` | A short, unique identifier for the voucher list, used to categorize vouchers within CleverTap. For example, `winter_sale_500`. | | `partner` | The name of the voucher provider. For example, `Puma` | | `source` | The origin of the voucher assignment. For example, Campaign or API. | | `voucherCode` | The unique code assigned to the user for redemption. For example, `PM500FF` | | `voucherListId` | The unique identifier of the voucher list to which the assigned voucher belongs. For example, `1837` | These properties can be leveraged in Liquid Tags to personalize messages, enabling dynamic content in your engagement campaigns. Updated about 2 months ago * * * Ask AI --- # Define Journey Path Overview [](https://docs.clevertap.com/docs/construct-a-journey#overview) ============================================================================= You can connect the Segment, Engagement, and Controller blocks from the Journey canvas to define how your users must move through the Journey. Create a Journey [](https://docs.clevertap.com/docs/construct-a-journey#create-a-journey) ============================================================================================= The first step is to define your target users. Drag the _Segment_ block from the palette to the canvas. ![1218](https://files.readme.io/c27e919-Segment_Node_for_Journey.gif "Drag and drop a Segment node to create a Journey") Segment Node for Journey Click the Segment node to define the qualifying criteria for your users. Define your qualifying criteria and click **Continue**. View the details and **Save & Close**. ![775](https://files.readme.io/46d331f-Journeys_define_entry_node.png "Select target segment for Journeys") Select Target Segment Next, decide the type of engagement to send to the qualified users. ![1216](https://files.readme.io/957551d1fdc481fe40112a88c5f9911d0e94084c18f30c442fe15578b2c7f0f9-2025-04-14_11-59-41_1.gif "Select the engagement type") Select Engagement Type ![784](https://files.readme.io/5e9f457-Journeys_define_engagment_node.png "Select the message type") Select the Message Type Add more nodes to plan for scenarios where the user does or does not respond. For example, you want to send an additional nudge if the user does not buy a product or a thank you note if the user does purchase the product. You can decide the level of details for your Journey. > 🚧 > > ### > > Note > > [](https://docs.clevertap.com/docs/construct-a-journey#note) > > You can apply campaign limits in a Journey. However, global throttling is not supported in Journeys. Connections [](https://docs.clevertap.com/docs/construct-a-journey#connections) =================================================================================== Drag and drop blocks from the palette to the canvas to create connections. Connect Segment & Engage Blocks [](https://docs.clevertap.com/docs/construct-a-journey#connect-segment--engage-blocks) -------------------------------------------------------------------------------------------------------------------------- Once you have defined a segment of users, you can choose to communicate with the segment by dragging and dropping a channel of communication from the palette on the right-hand side. This communication could go to users who match the segment criteria specified by you, or to the rest of the users i.e. the users who don’t match your segment criteria. > 📘 > > ### > > Tip on Duplicating Segments > > [](https://docs.clevertap.com/docs/construct-a-journey#tip-on-duplicating-segments) > > To duplicate a specific segment, use the copy/paste function by hovering over a segment, then perform the following: > > * MacOS: Alt + mouse click > * Windows: Ctrl + mouse click ![1051](https://files.readme.io/7a32f70-Journeys_Connect_Segment_Engage_Blocks.png "Connect segment and engage blocks") Connect Segment and Engage Blocks Connect Engage & Segment Blocks [](https://docs.clevertap.com/docs/construct-a-journey#connect-engage--segment-blocks) -------------------------------------------------------------------------------------------------------------------------- After a user receives a message, you can add a segment after that to ensure that only users who meet the criteria specified by you are taken further in the Journey. Example: After users receive a push notification, wait for 1 day, check if users have transacted, for the people that have transacted, send them down path A, and for those who haven’t send them down path B. ![973](https://files.readme.io/37b12e3-Journey_Connect_Engage_Segment_Blocks.png "Connect engage and segment blocks") Connect Engage and Segment Blocks Connect Engage & Engage Blocks [](https://docs.clevertap.com/docs/construct-a-journey#connect-engage--engage-blocks) ------------------------------------------------------------------------------------------------------------------------ After a user receives a message, you can follow it up immediately, or with a delay with another message on a channel of communication of your choosing. Example: After a user receives a push notification, you can wait for 3 days, and send another push notification. ![905](https://files.readme.io/ee6bb98-Journeys_Connect_Engage_Engage_Blocks.png "Connect engage with engage blocks") Connect Engage with Engage Blocks Connect Segment & Segment Blocks [](https://docs.clevertap.com/docs/construct-a-journey#connect-segment--segment-blocks) ---------------------------------------------------------------------------------------------------------------------------- After a user has been segmented, you can follow it up with another segment to further refine your Journey. Example: If someone has not transacted in the last 30 days, send users who qualify for this segment down path A, and if one of these users adds an item to their cart, and doesn’t buy within 15 mins, send them down a specific path. ![999](https://files.readme.io/430bb85-Journeys_Connect_Segment_Segment_Blocks.png "Connect segment and segment blocks") Connect Segment and Segment Blocks User Flow in Journeys [](https://docs.clevertap.com/docs/construct-a-journey#user-flow-in-journeys) ======================================================================================================= Your users perform one action in a Journey and then move on to the next action. However, there may be instances when they do not move forward in the Journey if not handled correctly. We will walk through various combinations to ensure all users' participation in journeys. Users Waiting at Segment Node [](https://docs.clevertap.com/docs/construct-a-journey#users-waiting-at-segment-node) ----------------------------------------------------------------------------------------------------------------------- In scenarios where the next node in a Journey is a Segment Node, the Users will wait till they qualify for the node or exit via Journey Timeouts or Goals. For instance, you have shown the Users a Welcome message In-app and are now waiting for them to qualify for the next Segment Node, _Redeem Offer_. In this case, you’d want to set a time limit based on which the users should move down a different path if they don’t qualify for the Segment. This will allow you to nudge the Users to Redeem their offer in this example, and then they can join the main journey again. ![456](https://files.readme.io/662237f-Journeys_Segment_Waiting_Users_Blink.png "Users waiting at Segment node to qualify for the Journey") Users Waiting at Segment Node ### Set the Qualifying Window [](https://docs.clevertap.com/docs/construct-a-journey#set-the-qualifying-window) Click the **hexagon**![hexagon](https://files.readme.io/a7efd36-Hexagon.png) on the _Segment_ node to set the qualifying window for the users. > 🚧 > > The qualifying window must be set up in combination with the drawing of the Node Timeout connector. The users will not move if the _Node Timeout_ is not connected to another node. ![1440](https://files.readme.io/024e4106e7a4ea2388bfa272c03ba0a3270ab4418c7b26ad62bf02d3405e2508-2025-04-14_12-31-53_1.gif "Set the qualifying window for the Journey") Set Qualifying Window ### Connect to Another Node [](https://docs.clevertap.com/docs/construct-a-journey#connect-to-another-node) Connect the _Node Timeout_ connector to another node. After the qualifying window is complete, the user automatically moves to the next node through this timeout connector. ![838](https://files.readme.io/4490344015aba7ca7e5fc16c09ffce98106d8ce1de9b4f729013b005b4dc3ebc-2025-04-14_13-12-13_1.gif "Connect the node timeout connector to another node") Node Timeout Connector > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/construct-a-journey#note-1) > > The yellow indicator on your segment node is a reminder that you may need to plan for _Waiting_ _users_ on this node in the Journey. Users Waiting at Engage Node [](https://docs.clevertap.com/docs/construct-a-journey#users-waiting-at-engage-node) --------------------------------------------------------------------------------------------------------------------- There may be another instance where the users have received a message but they may still wait for action. If the users do not click the message, then they are waiting for the next action. It means that when you created the Journey, the node following the Engage node is connected with a _Viewed_ or _Clicked_ connector. When you draw a _Viewed_ or _Clicked_ connector, a _Phantom_ node with a node timeout will appear automatically. You can set the qualifying window from this _Phantom_ node to move the users further. ![1438](https://files.readme.io/90fce4581e8604206c8268c6d0d986c741feeaf908e4f5daa78f11739ebc3b8c-2025-04-14_13-17-01_1.gif "Phantom node with a node timeout") Users Waiting at Engage Node Using User Profile Update Node [](https://docs.clevertap.com/docs/construct-a-journey#using-user-profile-update-node) ========================================================================================================================= The **User profile update** node is a controller node that allows you to update user properties in a Journey. It updates the user profile details based on the events triggered in the preceding segment or engagement node. Consider an action segment node followed by a user profile update node. For example, when a user subscribes to an OTT channel, the _Channel Subscribed_ event is triggered. The user profile update node tracks this event and updates the latest property values, such as subscription plan name, price, validity, billing interval, etc. ![User Profile Update Node](https://files.readme.io/9e4d725-image.png) User Profile Update Node You can add conditional logic to your live behaviour Journeys using Liquid Tags, which can reference events from the previous segment. This enables you to retrieve event properties and use them to update user profile details. User Profile Update Node Video Tutorial [](https://docs.clevertap.com/docs/construct-a-journey#user-profile-update-node-video-tutorial) ------------------------------------------------------------------------------------------------------------------------------------------- Discover the video tutorial for the User Profile Update node in Journeys. To define the user profile update node: 1. Drag and drop the **User profile update** node and connect it to the desired segment node. 2. Click the **User profile update** node. The **Controller - User profile update** window appears. 3. Enter the controller name. 4. Under **Setup**, click **\+ User Property** and define the user property values. The following UI elements appear. For more information, refer to the [Define User Property](https://docs.clevertap.com/docs/construct-a-journey#define-user-property-values) section. ![](https://files.readme.io/a305ceb-image.png) 5. Click **Continue** and **Save & Close**. Define User Property Values [](https://docs.clevertap.com/docs/construct-a-journey#define-user-property-values) ------------------------------------------------------------------------------------------------------------------- This section describes how to define user property values. | UI Elements | Description | | --- | --- | | **User Property** | From the drop-down list, you may choose the following two categories of user properties to update:

* **System Properties**: System user properties are predefined attributes often essential for user identification, segmentation, and tracking. You can set boolean values or custom values. For example, _MSG-whatsapp_ set to _True_ indicates that the user has subscribed to WhatsApp notifications.
* **Custom Properties**: Custom user properties allow you to capture additional data about a user that is not captured by system properties. For example, subscription plan, language preference, location, interests, and so on. | | **Operator** | From the drop-down list, you may choose one of the following operators to set values to the user properties:

* **Set to**: Sets a new value to the current user property value. By default, combines comma-separated values into a single value.
* **Increase by**: Adds a specified value to an existing value.
* **Decrease by**: Subtracts a specified value from an existing value.
* **Add to array**: Appends the new value to the existing array.
* **Remove from array**: Removes the values from the array. | | **Text Box** | Depending on the type of user property and operator you choose, you can enter the values in the following formats:

* Set a boolean value. For example, _True_ or _False_. It is not case-sensitive.
* Set an array of comma-separated values. For example, the Location is set to London, Amsterdam, New York.
* Set liquid tag conditions. The maximum character limit for the Liquid Tag condition is 512. For more information, refer to [Updating User Profile Details using Liquid Tags](https://docs.clevertap.com/docs/construct-a-journey#updating-user-properties-using-liquid-tags)
. | | **Apply as a single value** | This is enabled for **Add to array** and **Remove from array** operators:

* When you check the box, it combines the comma-separated values into one single value. For example, "London, UK" is considered a single value.
* When you uncheck the box, it separates the values using commas. For example, "London", "UK" are considered separate values. | Updating User Properties using Liquid Tags [](https://docs.clevertap.com/docs/construct-a-journey#updating-user-properties-using-liquid-tags) ------------------------------------------------------------------------------------------------------------------------------------------------- This section explains how to update user properties using the user profile update node and liquid tags. ### Use Case 1: Update User's Preferred Movie According to User Ratings [](https://docs.clevertap.com/docs/construct-a-journey#use-case-1-update-users-preferred-movie-according-to-user-ratings) This use case lets you update a user's preferred or favorite movie based on the ratings the user provided for a movie. You can reference the _Movie Rated_ event property in the conditional logic to update the _Favorite Movie_ user property. The following is a sample conditional logic: ![](https://files.readme.io/8152361-image.png) ### Use Case 2: Total Customer Revenue Based on Yearly Flights Booked per User [](https://docs.clevertap.com/docs/construct-a-journey#use-case-2-total-customer-revenue-based-on-yearly-flights-booked-per-user) In this use case, you can keep track of a customer's total revenue for the year by adding up all their flight booking amount. For example, if a user booked flights worth $1000 by September 14th and then booked another flight for $500 on September 15th, an event is triggered with this new booking information. You can reference the _Booking Amount_ event property in the liquid logic and add it to the _Total Revenue_ user property, resulting in a total revenue of $1500 for the year. ![](https://files.readme.io/f5b5f3d-image.png) ### Use Case 3: Score a Customer Using Triggered Segment Journey [](https://docs.clevertap.com/docs/construct-a-journey#use-case-3-score-a-customer-using-triggered-segment-journey) This use case lets you identify certain user behaviors, assign the users a score based on their activity, and segment them later for targeted marketing campaigns. For instance, when users update their profile, such as adding a picture or status on social media, their engagement score goes up by 1. The following is a sample logical condition: ![](https://files.readme.io/e1d4705-image.png) ### Use Case 4: Calculate the Total Purchase Value for a User when a Charged Event is Recorded [](https://docs.clevertap.com/docs/construct-a-journey#use-case-4-calculate-the-total-purchase-value-for-a-user-when-a-charged-event-is-recorded) This use case tracks a user's total purchase value by adding up the amounts of their purchases recorded through a _Charged_ event and updates it when a product is returned. For instance, if a customer buys groceries costing $50, $100, $30, and $75, the total value of their groceries purchased is $255. The following is a sample logical condition: ![](https://files.readme.io/bddb6a5-image.png) > 📘 > > ### > > Points to Remember > > [](https://docs.clevertap.com/docs/construct-a-journey#points-to-remember) > > * Only event properties can be used in liquid tags for user profile update node. > * You can update a specific user property only once. > * Irrespective of whether the update fails or succeeds, user moves ahead via the **Updated** path. > * If the user property for the user does not exist in the profile, then the property is created for that user profile. Updated about 2 months ago * * * Ask AI --- # Create Custom Rewards Overview [](https://docs.clevertap.com/docs/create-custom-rewards#overview) =============================================================================== Before using Custom Rewards in Promo campaigns, you must first create the reward configurations that will be triggered via webhooks. You can create the following two types of Custom Rewards: * [Create Physical & Digital Reward](doc:create-custom-rewards#create-physical--digital-rewards) * [Create Self-managed Wallet Credits](doc:create-custom-rewards#create-self-managed-wallet-credits) Create Physical & Digital Rewards [](https://docs.clevertap.com/docs/create-custom-rewards#create-physical--digital-rewards) ================================================================================================================================ Physical & Digital Rewards manage external digital or physical rewards such as vouchers, gift cards, or merchandise. To create a Physical & Digital Reward, perform the following steps: 1. Go to _Promo > Rewards > Webhook Rewards > Physical & Digital Reward_. 2. Click **Add reward configuration**. 3. In the creation modal, fill in the following details: * **Client Reward ID**: A unique identifier from your system. This value is case-sensitive and must not duplicate an existing reward. * **Client Reward Name**: The name of the reward. * **Client Reward Description**: Optional details about the reward. * **Reward Expiry**: Choose **Never Ends** or a specific date. 4. Click **Save**. ![Add Reward Configuration](https://files.readme.io/d32d7bd039853122a6a742e2c70ff4cf20301a5f27e951e0f7e8a6d3ae0627a5-Add_Reward_Configuration.gif) Add Reward Configuration Create Self-managed Wallet Credits [](https://docs.clevertap.com/docs/create-custom-rewards#create-self-managed-wallet-credits) =================================================================================================================================== Self-managed Wallet Credits represent real money or point-based rewards managed in an external wallet. To create a Webhook Wallet, perform the following steps: 1. Go to _Promo > Rewards_ > _Webhook Rewards_ > _Self-managed Wallet Credits_. 2. Click **Add Wallet Configuration**. 3. In the creation modal, fill in the following details: * **Wallet ID**: A unique external wallet ID from your system. This value is case-sensitive and must not duplicate an existing reward. * **Wallet Name**: The display name of the wallet. 4. Click **Save**. ![Add Wallet Configuration](https://files.readme.io/5ff7e753bd385ab5224f5eb26bbc4a710c6838e7b13ddf1f26397af072e92395-Add_Wallet_Configuration.gif) Add Wallet Configuration JSON Payloads [](https://docs.clevertap.com/docs/create-custom-rewards#json-payloads) ========================================================================================= The following is an example payload for both types of custom rewards: Physical & digital rewardsSelf-managed wallet credits { "profiles": { "email": "[email protected]", "identity": "foo", "phone": "+919538784114", "objectId": "g55b74fb10307" }, "reward": { "clientRewardId": "110303", "clevertapRewardId": "20303", "rewardName": "PVR MOVIE TICKET", "rewardDescription": "Free PVR Movie ticket", "campaignId": 123494 }, "customMetadata": { "metadata key1": "value1", "metadata key2": "value2" } } { "profiles": { "email": "[email protected]", "identity": "foo", "phone": "+919538784114", "objectId": "g55b74fb10307" }, "reward": { "clientRewardId": "110303", "clevertapRewardId": "20303", "rewardName": "PVR MOVIE TICKET", "rewardDescription": "Free PVR Movie ticket", "campaignId": 123494 }, "customMetadata": { "metadata key1": "value1", "metadata key2": "value2" } } Updated about 2 months ago * * * Ask AI --- # View Custom Rewards Overview [](https://docs.clevertap.com/docs/view-custom-rewards#overview) ============================================================================= The _Custom Rewards_ section in the **Rewards** option allows you to manage and monitor both _Physical & Digital Rewards_ and _Self-Managed Wallets_. Physical & Digital Rewards Tab [](https://docs.clevertap.com/docs/view-custom-rewards#physical--digital-rewards-tab) ======================================================================================================================== The **Physical & Digital Rewards** tab helps you create and manage external digital or physical rewards such as gift cards, vouchers, or merchandise (for example, iPhones, cameras). Clicking on this tab displays a list of all configured Physical & Digital Rewards. Each reward entry includes the following information: * CT Reward ID * Client Reward ID * Reward Name * Reward Description * Promo Campaigns Linked * Created By / Created Date * Status (Active, Paused, Archived, Expired, Ended) ![Physical & Digital Rewards Tab](https://files.readme.io/78c2ddd0b3484272d9266a4974b10693d5122ce66d029cd7d2311f5db2e0f297-image.png) Physical & Digital Rewards Tab Manage Physical & Digital Rewards [](https://docs.clevertap.com/docs/view-custom-rewards#manage-physical--digital-rewards) ------------------------------------------------------------------------------------------------------------------------------ You can perform the following operations directly from the list view: | Action | Availability | Description | | --- | --- | --- | | **Activate** | When status = _Paused_ | Resumes the reward for distribution in campaigns. | | **Pause** | When status = _Active_ | Temporarily halts the reward from being distributed. | | **End** | When status = _Active_ or _Paused_ | Stops the reward and marks it as ended. | | **Archive** | When status = _Paused_, _Ended_, or _Expired_ | Moves the reward to the archived state; it cannot be reused in active campaigns. | | **View JSON** | When status = _Active_ or _Paused_ | View reward details, including ctRewardID, rewardName, description, and creation metadata. | Self-Managed Wallets Tab [](https://docs.clevertap.com/docs/view-custom-rewards#self-managed-wallets-tab) ============================================================================================================= The **Self-Managed Wallets** tab enables you to configure and manage wallet-based reward configurations. These wallets represent external reward systems, such as cashback or loyalty wallet credits hosted on your end. Clicking on this tab displays wallet configurations in a card view format. Each card contains the following: * Webhook Wallet ID * CT Reward ID * Wallet Name * Created By * Created On ![](https://files.readme.io/bc52af03376cf3d06058c5de3128d572d46e703e0bfea7686d5c3c224d7a3859-image.png) Manage Self-Managed Wallets [](https://docs.clevertap.com/docs/view-custom-rewards#manage-self-managed-wallets) ------------------------------------------------------------------------------------------------------------------- You can perform the following operations to manage wallets directly from the tab: | Action | Description | Description | | --- | --- | --- | | **Activate** | When status = _Paused_ | Resumes the wallet for credits distribution. | | **Pause** | When status = _Active_ | Temporarily halts the wallet from credit distribution. | | **End** | When status = _Active_ or _Paused_ | Stops the wallet and marks it as ended. | | **Archive** | Deactivate the wallet if no longer needed. | Moves the wallet to the archived state; it cannot be reused in active campaigns. | | **View JSON** | When status = _Active_ or _Paused_ | View wallet details, including ctRewardID, walletID, and walletName. | > 📘 > > ### > > Notes > > [](https://docs.clevertap.com/docs/view-custom-rewards#notes) > > To ensure smooth management and consistent behavior across all reward types, keep the following points in mind: > > * Rewards and wallets can be linked to multiple Promo campaigns. > * Each reward and wallet credit is assigned a unique CleverTap Reward ID upon creation. > * Rewards cannot be paused, ended, or archived while actively mapped to an ongoing campaign. > * Inline validation ensures field accuracy and prevents duplication of reward or wallet IDs. Updated about 2 months ago * * * Ask AI --- # Product A/B Tests Introduction [](https://docs.clevertap.com/docs/product-ab-tests#introduction) ================================================================================== A/B tests help compare users who get the regular app experience (Control Group) with one or more groups who get different experiences (groups A, B, C, etc.). It helps identify the more effective changes for your app. A/B testing enables you to experiment with new features or changes in a select user group. This approach minimizes the risk of receiving adverse feedback from your entire user base in case of a mishap. You can monitor how well your experiments perform within a small set of users and then make improvements before releasing the modifications to everyone. For example, you can test your app for a better Click-Through Rate (CTR). You can experiment by trying out different variants of CTA. Here, the button in one app variant reads as "Buy Now," and the same in another variant reads as "Hurry!". You can run this test for a few weeks and identify the CTA that delivers a higher CTR. You can roll out these changes partially (say, 10 percent of the segment). If the results are satisfactory, you can declare the variant generating the highest CTR as a winner variant. You can then roll out the feature to all the users. A/B Tests Dashboard [](https://docs.clevertap.com/docs/product-ab-tests#ab-tests-dashboard) =============================================================================================== The A/B Tests dashboard displays all your ongoing and previous A/B tests. It shows you whether the test is active or inactive and provides details such as its _Name_, _Status_, and _Created Time_, along with the names of the creators and the last person who edited the test. You can locate your A/B tests by their Name or ID. ![A/B Test Dashboard](https://files.readme.io/57e8f49-B_Tests_1.png) A/B Test Dashboard Updated about 2 months ago * * * Ask AI --- # A/B Test: Best Practices Introduction [](https://docs.clevertap.com/docs/ab-test-best-practices#introduction) ======================================================================================== This document provides key strategies and recommendations to optimize your A/B testing processes, ensuring accurate results and meaningful insights. This helps elevate your A/B testing efforts. Best Practices [](https://docs.clevertap.com/docs/ab-test-best-practices#best-practices) ============================================================================================ The following are the best practices to follow when planning for an A/B test: ### Question, Hypothesize, then Test [](https://docs.clevertap.com/docs/ab-test-best-practices#question-hypothesize-then-test) Follow a structured approach in your A/B testing process. Begin by posing a question, then formulate a hypothesis, and proceed to conduct the test. In other words, start by defining your goal and understanding what you aim to achieve. Next, develop a hypothesis outlining your expected outcome. Finally, put your hypothesis to the test and assess its effectiveness. For example, if your objective is to boost purchase rates, your hypothesis might suggest that a more prominent "purchase" button could increase sales. Experiment with different button colors or placements to determine which variation maximizes user lifetime value (LTV). ### One Test at a Time [](https://docs.clevertap.com/docs/ab-test-best-practices#one-test-at-a-time) Prioritize testing one variable at a time, whether within a single test or across multiple experiments. This method ensures more accurate results, allowing you to gauge the impact of each alteration while keeping other factors constant. Testing multiple changes simultaneously can complicate result interpretation. For instance, if you simultaneously modify the wording, color, and subject of an email, your subscriptions drop by 30% as a result. The challenge arises – **Which specific element or elements caused this significant drop?** Was it a combination of all changes or perhaps just one particular alteration? To eliminate this ambiguity, conducting tests with isolated changes provides more reliable data, facilitating precise conclusions. Moreover, having a consistent user experience is essential for retaining users, so avoid subjecting them to too many changes at once. Be diligent with how many changes you expose users to. This helps build trust between your brand and your users. ### Set it and Forget it [](https://docs.clevertap.com/docs/ab-test-best-practices#set-it-and-forget-it) Let your A/B test run for as long as necessary until you achieve statistical significance. This means waiting until you have enough data to determine the true impact of each variant confidently. Having reliable data ensures you can make marketing decisions based on the winning variant with 95% confidence that the trends will continue even after the test ends. Keep an eye on external factors that may affect the results, and if needed, repeat the test in different months to ensure consistency. ### Do Not Make Changes Mid-Test [](https://docs.clevertap.com/docs/ab-test-best-practices#do-not-make-changes-mid-test) Once an A/B test is initiated, refrain from altering the test parameters. Modifying parameters mid-test can distort results, complicating the identification of how a variant influenced the metrics. Adhere to the original test setup and, if required, create a follow-up test after the current one concludes to assess any additional changes. Updated about 2 months ago * * * Ask AI --- # Troubleshooting & FAQs FAQ [](https://docs.clevertap.com/docs/troubleshooting-faqs-1#faq) ====================================================================== Find answers to the following common questions about Custom Rewards: ### Q. Can I reuse a Client Reward ID once archived? [](https://docs.clevertap.com/docs/troubleshooting-faqs-1#q-can-i-reuse-a-client-reward-id-once-archived) Yes, IDs can be reused once the reward is archived or ended. Active rewards must have unique IDs. ### Q. Can I personalize reward points in the payload? [](https://docs.clevertap.com/docs/troubleshooting-faqs-1#q-can-i-personalize-reward-points-in-the-payload) Yes. The payload includes a key called `credits` that carries the points or cashback value rewarded to the user. ### Q. What happens if the client webhook endpoint is unavailable? [](https://docs.clevertap.com/docs/troubleshooting-faqs-1#q-what-happens-if-the-client-webhook-endpoint-is-unavailable) CleverTap retries twice with a 3-second wait before marking as failed. ### Q. How are rewards tracked in system events? [](https://docs.clevertap.com/docs/troubleshooting-faqs-1#q-how-are-rewards-tracked-in-system-events) All Custom Rewards trigger a single system event named _Webhook Rewarded_. The event includes a property indicating the reward type (Physical & Digital Reward or Self-managed Wallet Credits). ### Can I specify the reward quantity (for example, two movie tickets)? [](https://docs.clevertap.com/docs/troubleshooting-faqs-1#can-i-specify-the-reward-quantity-for-example-two-movie-tickets) Yes. Use the _Additional Parameters_ section when configuring the promo campaign. You can add a key-value pair such as `"quantity": "2"` in the setup to indicate multiple rewards (for example, two vouchers or two movie tickets). Updated about 2 months ago * * * Ask AI --- # A/B Test Results A/B Test Results [](https://docs.clevertap.com/docs/ab-test-results#ab-test-results) ======================================================================================== The A/B Test Results feature provides valuable insights from your experiments, aiding data-driven decision-making. It offers comprehensive analysis, intuitive visualization, statistical significance assessment, and variant distributed reporting. This helps users uncover insights leading to product enhancement, improved user engagement, and overall success of the A/B test. It utilizes advanced filtration methods to ensure accurate data assessment. It includes only data captured during the user's participation in the test, excluding any data from instances where the user enters and leaves the AB test multiple times (unless the test is marked as '[Sticky](doc:create-ab-tests#sticky-target) '). This ensures that all the available metric data available on the Results page is clean and based on user behavior. You can view the A/B Test Results for a particular period by selecting the time range from the Calendar widget in the top right corner. This helps segment and analyze data based on when events or observations occurred for the defined timeframe. You can view results for a short interval, such as a day, a week, or a month, or a longer span, such as a year or multiple years. You define the timeframe to analyze your A/B Test as follows: ![Calendar Widget](https://files.readme.io/93adf9f-in-app_calendar.png) Define the Time Frame using the Calendar Widget You can further categorize your data based on platform attributes such as Operating system) and User Properties using the _Group by_ option (refer to the following image): ![Group by OS Name](https://files.readme.io/6727cb2-group_by_os.png) Group by OS Name This helps in getting a granular view of users, allowing you to make data-driven decisions across distinct operating systems or users with different properties. Also, hovering over the Users icon adjacent to the _Results_ tab offers a high-level breakdown of actual users entering the A/B test across different Variants and the Control group (see the following image). ![Total users entering across the variants](https://files.readme.io/d2fa8eb-total_users.png) Total users entering across the variants Now, the available metrics in the A/B test can be categorized into Common and Goal metrics. Common Metrics [](https://docs.clevertap.com/docs/ab-test-results#common-metrics) ------------------------------------------------------------------------------------- Common metrics are accessible for every A/B test, regardless of whether you have chosen specific Event-based Goals. The common metrics include: * **Unique Users**: This refers to the count of individual users who have interacted with a website, application, or service during a specific period. Each user is counted only once, regardless of how often they visit or use the platform within that timeframe. * **Returning Users**: This refers to the individuals who have visited or interacted with a website, application, or service more than once during a specific period. They are distinguished from Unique Users who have engaged with the platform on multiple occasions. * **First-time Users**: This refers to the individuals who visit or interact with a website, application, or service for the first time during a specific period. These users are new to the platform and have not engaged with it before within the defined timeframe. * **Sessions**: This refers to the individual visits or interactions a user has with a website, application, or service during a particular timeframe. A session starts when a user accesses the app and ends after a period of inactivity or when the user leaves the app. Tracking sessions are a great way to measure engagement for certain apps, such as video or music streaming, news, etc. You must enable session tracking from the CleverTap dashboard to track user sessions. To enable session tracking, navigate to _Settings_ > _Session analytics_ and toggle ON the [session tracking](doc:session-analytics#session-dashboard) . ![Common Metrics View](https://files.readme.io/129222c-common_metrics.png) Common Metrics View Listed below are some key session metrics, along with their formulas and definitions: | Metric | Formula | Definition | | --- | --- | --- | | Returning Users | 100 x \[(Total Unique Users) - (Total First-time users)\] / (Total Unique Users) | The percentage of users returning to your application or website. | | Total Sessions | Total occurrences of **"Session Concluded"** event | The total number of user sessions. | | Total Session Length | Sum of values for the event property _length_ of the _Session Concluded_ event | Calculated using the event property _length_ of the _Session Concluded_ event. The total length of all sessions. | | Average Session Length | (Total Session Length) / (Total Sessions ) | The average length of a session. | | Average Session Length per User | (Total Session Length) / (Total Unique Users ) | The average length of a user session in your application/website. | | Average Sessions per User | (Total Session ) / (Total Unique Users ) | The average number of sessions for a user. | Goal metrics [](https://docs.clevertap.com/docs/ab-test-results#goal-metrics) --------------------------------------------------------------------------------- Goal metrics are specific to the event and properties selected in the A/B test Goals. You can find these from the _Metrics_ dropdown on the left. ![Goal Metrics](https://files.readme.io/2492c9f-goal_event.png) Goal Metrics Listed below are some key goal metrics, along with their formulas and definitions: | Metric | Formula | Definition | | --- | --- | --- | | Total occurrences | Total occurrences of | The total number of times the goal event was triggered. | | Unique profile who triggered | Number of Users who triggered | Total number of users who triggered the goal event. | | Percent of Users who triggered | Percent of users who triggered the =
100 x \[(Users Who Triggered X Event) / (Total Users)\] | The percentage of users in your app that triggered the goal event. | | Average occurrences of per Unique User | (Total occurrences of / Total Unique Users) | The average number of times a user triggers this event. | | Average occurrences of per Session | (Total occurrences of / Total Sessions) | The average number of times the goal event is triggered in a session. | | Total sum of values | (Total sum of values) | Total sum of all aggregate event property values associated with the goal event. | | Average of values | (Total sum of values / Total Event occurrences) | The average value of each occurrence of this event. | | Average of values per unique user | (Total sum of values / Unique Users) | The average of values of the goal event per user. | After you select the event metric of your choice from the dropdown, you can view its data in graphical and tabular format. Let us consider a sample test where an e-commerce business wants to analyze the sales. In this case, you add an event **Charged** as a Goal with aggregate property `value`. The following image shows the set of available metrics for the **Charged** event: ![Graphical view for the Coins Earned Event](https://files.readme.io/2174557-Goal_event_metrics.png) Graphical Data View of Charged Event ![Tabular view for the Coins Earned Event](https://files.readme.io/6a71eb5-tabular_view.png) Tabular data view for the Charged Event All Time Performance [](https://docs.clevertap.com/docs/ab-test-results#all-time-performance) ------------------------------------------------------------------------------------------------- For a limited set of metrics (_Percent of users who triggered_ the ), you can see the _All Time Performance_ section. This feature calculates data throughout the entire duration of the A/B Test, irrespective of the time frame selected at the top of the page. Based on all the data, each variant is analyzed to identify if it is statistically significant, and an **indicator** is displayed next to the variants that helps: * Validate the reliability of the results. * Assess whether any observed differences between the control and variant groups are not merely attributable to random chance. * Provides you confidence in the decision-making process. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/ab-test-results#note) > > CleverTap uses a two-tailed Welch's t-test with a default setting of 95% confidence interval to identify the statistically significant variant. ![All Time Performance View for Limited Set of Metrics](https://files.readme.io/53b013d-All_Time_Performance_Section.png) All Time Performance Section for a Limited Set of Metrics Updated about 2 months ago * * * Ask AI --- # Import Overview [](https://docs.clevertap.com/docs/import#overview) ================================================================ This section explains how to import data into CleverTap from external sources. Depending on your requirements, you can upload data in bulk, automate ingestion from backend systems, or import historical records to ensure continuity in reporting and engagement. [API](https://docs.clevertap.com/docs/imports-via-api) [CSV Upload](https://docs.clevertap.com/docs/csv-upload) [SFTP](https://docs.clevertap.com/docs/imports-via-sftp) [Data Warehouse](https://docs.clevertap.com/docs/data-warehouse-import) Updated 8 days ago * * * Ask AI --- # CSV Upload With the CSV upload feature, you can create new [user profiles](doc:user-profiles) in CleverTap in bulk by uploading a CSV file with a list of user profiles. You can also use this feature to add or update information for existing user profiles. > 📘 > > ### > > CSV Upload Permissions > > [](https://docs.clevertap.com/docs/csv-upload#csv-upload-permissions) > > Anyone with the [required permissions](doc:role-based-access-control) > to upload the CSV file can use this feature. CSV Upload Video Tutorial [](https://docs.clevertap.com/docs/csv-upload#csv-upload-video-tutorial) ====================================================================================================== The following is a video tutorial that highlights the recent CSV Upload enhancements: Upload User Profiles using a CSV File [](https://docs.clevertap.com/docs/csv-upload#upload-user-profiles-using-a-csv-file) ============================================================================================================================== To upload user profiles to the CleverTap dashboard using a CSV file: 1. [Upload user profiles](doc:csv-upload#upload-user-profiles) . 2. [Map uploaded user profiles](doc:csv-upload#map-uploaded-user-profiles) . Upload User Profiles [](https://docs.clevertap.com/docs/csv-upload#upload-user-profiles) -------------------------------------------------------------------------------------------- To upload user profiles: 1. Log in to your CleverTap account and click _Settings_ > _Engage_ > _CSV Uploads_. ![CSV Uploads Page](https://files.readme.io/1e03356-CSVUpload.jpg) CSV Uploads Page 2. Click **\+ Upload**. The **Upload** page appears. ![Upload User Profiles](https://files.readme.io/a074165-image.png) Upload User Profiles 3. Under **Upload user profiles**, drag and drop or browse the CSV file. For more information on the CSV file format, refer to [CSV File Format](doc:csv-upload#csv-file-format) . A preview of the uploaded user profiles appears on the right side. ![CSV Uploads Page](https://files.readme.io/8851b05-image.png) View a Preview of the Uploaded User Profiles 4. Enter a unique file name on the main screen for easy identification and click **Save & Upload**. The _Data Export uploaded_ message appears. 5. (Optional) Click the **Preview** icon to view the uploaded user profiles. ![Preview of the Uploaded User Profiles](https://files.readme.io/969865d-image.png) Preview of the Uploaded User Profiles Once you upload the CSV file, it is essential to map the uploaded user profiles with the appropriate data types and user properties. Map Uploaded User Profiles [](https://docs.clevertap.com/docs/csv-upload#map-uploaded-user-profiles) -------------------------------------------------------------------------------------------------------- You must map the CSV column names with the corresponding date types and user properties in the CleverTap system. By default, CleverTap tries to map your file data. However, you can map your file data to the respective data type and user property. ![Map User Profiles](https://files.readme.io/6da3a93-image.png) Map User Profiles Click **Map** under the Upload user profiles page. It provides you with the following two methods to map the user profile with data type and user property: * [Manually Map the File](doc:csv-upload#manually-map-the-file) * [Upload the Mapped File](doc:csv-upload#upload-the-mapped-file) ### Manually Map the File [](https://docs.clevertap.com/docs/csv-upload#manually-map-the-file) To manually map the file: 1. Select **Manually map file**. ![Manually Map User Profiles](https://files.readme.io/ebdbdc9-image.png) Manually Map User Profiles 2. From the table below, select the appropriate data type and user properties for each column in the file: * **Data Types**: Select a data type from the dropdown list for the user profile values. For instance, _id\_name_ has the value _John Doe_ and is of the _Alphanumeric_ data type. * **Alphanumeric**: A string value consisting of letters and numerals for data such as Phone Number, customer\_type, etc. * **Number**: An integer value for data such as an Amount, Wallet Balance, etc. * **True or False**: A boolean value. For example, True indicates if an email ID exists for users. * **Date Formats**: A date value for data such as the Date of Birth of the user. For more information about date formats supported by CleverTap, refer to the [Date Format](doc:csv-upload#date-format) section. > 📘 > > ### > > Guidelines for Mapping Data Types > > [](https://docs.clevertap.com/docs/csv-upload#guidelines-for-mapping-data-types) > > * The data type for _identity_ and _objectID_ is always alphanumeric and cannot be changed. > * If the date format is _$D\_1695801332_, then the data type must be alphanumeric. * **User Property**: Select the corresponding CleverTap user property from the drop-down list. For example, _id\_email_ corresponds to _Email_ in CleverTap. > 📘 > > ### > > Guidelines for Mapping User Properties > > [](https://docs.clevertap.com/docs/csv-upload#guidelines-for-mapping-user-properties) > > While mapping, if you do not find the relevant user property under the dropdown, select the **Same as column name** option. CleverTap will create a new user property for that specific column data. ### Upload the Mapped File [](https://docs.clevertap.com/docs/csv-upload#upload-the-mapped-file) To upload a pre-mapped JSON manifest file: 1. Select **Upload mapped file**. ![Upload Pre-Mapped User Profiles](https://files.readme.io/b8d03f8-image.png) Upload Pre-Mapped User Profiles 2. Drag and drop or browse the pre-mapped JSON manifest file. The following is a sample JSON manifest file: 3. Click **Preview** to view the mapped file. 4. Click **Proces File**. > 📘 > > ### > > Guidelines for Uploading Mapped File > > [](https://docs.clevertap.com/docs/csv-upload#guidelines-for-uploading-mapped-file) > > JSON is a valid format. If you have not mapped the files, the status appears as _Start mapping_. Mapping is necessary to process the CSV upload. After the CSV file is processed, the status for that upload changes to _Completed_. For more information about the statuses, refer to the [CSV Upload Details](doc:csv-upload#csv-upload-details) section. Once the file has been successfully processed, you will receive an email notification with the processed data file and a detailed error report if any problems occur. ![View the Status of the Newly Uploaded File](https://files.readme.io/2821017-image.png) View the Status of the Newly-Uploaded File Filter the Uploaded User Profiles [](https://docs.clevertap.com/docs/csv-upload#filter-the-uploaded-user-profiles) ====================================================================================================================== To filter the uploaded user profiles: 1. Log in to your CleverTap account and click _Settings_ > _Engage_ > _CSV Uploads_. 2. Click the ![](https://files.readme.io/a5b07fd-image.png) icon. The **Filter Profile Uploads** pane appears. 3. Select the required options from the **Status** drop-down list: **Select All**, **Processing**, **Completed**, **Rejected**, or **Start mapping**. 4. Click **Apply**. ![Filter Uploaded User Profiles by Status](https://files.readme.io/af9c277-StatusCSVUpload.gif) Filter Uploaded User Profiles by Status 5. You can also filter the uploads using the date range option. ![\ 5.](https://files.readme.io/e4f9c51-2023-09-30_20-09-51_1.gif) Filter Uploaded User Profiles by Date Range Key Points to Remember [](https://docs.clevertap.com/docs/csv-upload#key-points-to-remember) ================================================================================================ CSV Upload Details [](https://docs.clevertap.com/docs/csv-upload#csv-upload-details) ---------------------------------------------------------------------------------------- * If a new user profile is uploaded, a new user profile is created on the account. * If an existing user profile is uploaded, the old user profile is updated with new values. * If a new user profile property is added, a property is created on the user profile. * You can upload multiple CSV files simultaneously, even when existing files are currently being processed. * The phone number must be in the format \[country code\]\[phone number\] and is treated as an Alphanumeric. For example, +919869311111, where +91 is the country code for the India. * After the upload is complete, the following information for the upload is displayed: * **Name**: Displays the CSV import name. * **Uploaded on**: Displays the date when the CSV file is uploaded. * **Uploaded by**: Displays the email ID of the person who uploaded the file. * **Status**: Displays the status of CSV File upload. The following are the possible upload statuses: * **Completed**: Indicates that the CSV file has been successfully uploaded. * **Processing**: Indicates that the CSV file is being processed. * **Rejected**: Indicates that the CSV file was rejected due to multiple errors. Check your email to identify the error for rejection. * **Start mapping**: Indicates that the mapping has not been done. * **Errors**: Displays the count of rows that were not uploaded due to an error. * **Processed**: Displays the count of records that were uploaded successfully. CSV File Format [](https://docs.clevertap.com/docs/csv-upload#csv-file-format) ---------------------------------------------------------------------------------- * The following is an example of a CSV file format: | identity | id\_name | id\_email | id\_phone | id\_gender | Employment Status | Education status | Wallet Balance | DOB | MSG-sms | Payment Date | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 123456789 | John Doe | | +919900000000 | M | TRUE | Graduate | 1 | 1487576752 | FALSE | 09/10/23 10:15:02 | | 14155551235 | Jane | | +919889000000 | M | FALSE | Graduate | 12 | 1487576752 | FALSE | 15/03/23 9:15:00 | | 14155551234 | Lincoln | | +919778000000 | M | 0 | Graduate | 34 | 1487576752 | FALSE | 09/01/22 13:08:00 | | \_234853412 | Mary | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#caa7abb8b38aa0a5a2a4aea5afe4a9a5a7) | +919667000000 | M | 1 | Graduate | 255 | 1487576752 | FALSE | 09/10/23 10:15:00 | | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#385a575a78525750565c575d165b5755) | Bob | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#70121f12301a1f181e141f155e131f1d) | +919444000000 | M | 0 | Graduate | 45 | 1487576752 | FALSE | 08/01/21 10:15:00 | | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#365752575b765c595e585259531855595b) | Adam | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#9bfafffaf6dbf1f4f3f5fff4feb5f8f4f6) | +919556000000 | M | 0 | Graduate | 24 | 1487576752 | FALSE | 09/06/20 10:15:00 | * The upload will not be allowed if the file is not a CSV file or does not comply with CSV standards. * [identity](doc:user-profiles) is a mandatory column in the CSV file. However, if you want to make profile updates using the CleverTap ID, you can use the `objectId` in place of identity. > 🚧 > > ### > > Note > > [](https://docs.clevertap.com/docs/csv-upload#note) > > * Ensure that the `identity` key is always in lower case. > * You can upload CSV files up to **1 GB** in size. The following is the sample format for the CSV file using the `objectId`: ![Sample CSV File using `objectId`](https://files.readme.io/1c4102355774db6b01001fdc3188266cc0cc5a8d38d619b8bbeb171641c7f9b7-Sample_CSV_File.png) Sample CSV File using `objectId` Date Format [](https://docs.clevertap.com/docs/csv-upload#date-format) -------------------------------------------------------------------------- * CleverTap supports uploading date information in the following formats: * dd/MM/yyyy HH:mm:ss * MM/dd/yyyy HH:mm:ss * yyyy/dd/MM HH:mm:ss * yyyy/MM/dd HH:mm:ss * dd MMM yyyy HH:mm:ss * dd/MM/yyyy * MM/dd/yyyy * yyyy/dd/MM * yyyy/MM/dd * dd MMM yyyy * Unix (EPOCH): A timestamp or a count of seconds. For example, 1695799434. It measures time by the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970. All other formats will be treated as a String. * Time defaults to 12:00:00 if hh:mm:ss is not added. * 24-hour date format is supported. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/csv-upload#note-1) > > We currently support uploading timestamps in 24-hour format and do not support AM/PM in timestamp. If the format is HH:mm:ss, use the 24-hour format (for example, 18:25:32). Do not use the 12-hour format (for example, 06:25:32 PM). Operations for Profile Properties [](https://docs.clevertap.com/docs/csv-upload#operations-for-profile-properties) ---------------------------------------------------------------------------------------------------------------------- You can use the following operations on user profile properties: * $add: You can add specific values for the [multi-value profile properties](https://developer.clevertap.com/docs/concepts-user-profiles#manually-updating-multi-value-user-profile-properties) . For example, you can add a particular item from the list of items that belong to a particular user profile. ![Add a Value for User Property of Type Array](https://files.readme.io/e68c6fcc13bd5335aa899adf55472e0e5c087145db5d277d8db00b9f57c74d2f-Add_Value_for_User_Property.png) Add a Value for User Property * $remove: You can remove specific values from the multi-value user property. For example, you can remove a particular item from the list of items that belong to a particular user. ![Remove Value for User Property](https://files.readme.io/b9c9495b17dc8946d89ebab9a49aedc4942607b902e266e5d1dab9fbbe4ca8d2-Remove_Value_for_User_Property.png) Remove Value for User Property * $set - You can replace the current value with a new value. For example, you can replace the current value of a particular single-value or multi-value user property. ![Set Value for User Property](https://files.readme.io/badb6f5287918a263b04d586844884ca23146f6dae4b0a2bd3608b7701f05db1-Set_Value_for_User_Property.png) Set Value for User Property * $delete - You can remove the property entirely. For example, you can completely remove the property `MyStuff` for user profile with identity `1904` and all the values in it. ![Delete a User Property](https://files.readme.io/1fa7a8d56aea992973b068192d92eea65fe4db9bc6f15ba574a668399bfedaab-Delete_a_User_Property.png) Delete a User Property FAQ [](https://docs.clevertap.com/docs/csv-upload#faq) ========================================================== ### Q: What Happens if an Invalid Identity Value Is Set? [](https://docs.clevertap.com/docs/csv-upload#q---what-happens-if-an-invalid-identity-value-is-set) A: If you input an incorrect or invalid identity, it results in the below error, and the system flags the records in the file as error. > ❗️ > > ### > > Error Message > > [](https://docs.clevertap.com/docs/csv-upload#error-message) > > Identity value cannot be undefined or set at least one of identity / fbId / gpId / objectId under 1024 chars to identify the user. Make sure not to use the following values as the identity: * undefined * null * na * n/a * 0 * nil * \-1 * infinity * \-infinity * inf * \-inf * nan * \-nan * empty * xxxxxx * none ### Q. How to upload user user data via CSV? [](https://docs.clevertap.com/docs/csv-upload#q-how-to-upload-user-user-data-via-csv) A. Uploading your historical user data via CSV is quick and simple; however, note the following key pointers before uploading your user data via CSV: * The identity field must be defined as _identity_ with a lowercase _i_ and not _Identity_. * The _identity_ field is a mandatory column. * Check that your CSV complies with the CSV standards. Otherwise, the upload will be denied. * You can download the sample CSV file for a quick check from the _Settings_ section under _CSV uploads_. Below is a sample CSV: ![1298](https://files.readme.io/61b074a-Identity_CSV_Uploads.png "Identity_CSV_Uploads.png") Updated 24 days ago * * * Ask AI --- # SFTP Overview [](https://docs.clevertap.com/docs/imports-via-sftp#overview) ========================================================================== You can import user and event data from third-party SFTP clients, such as BigQuery, HANA, Salesforce, and so on, to the CleverTap SFTP server. After establishing a connection with CleverTap SFTP, you can automatically import data to our dashboard at regular intervals. You can then use the power of our analytics, segmentation, and experiences to enhance engagement and retention. > 📘 > > ### > > File Upload Encryption > > [](https://docs.clevertap.com/docs/imports-via-sftp#file-upload-encryption) > > To upload encrypted file to CleverTap using SFTP, refer to [File Upload Encryption](doc:file-upload-encryption) > . Prerequisites [](https://docs.clevertap.com/docs/imports-via-sftp#prerequisites) ==================================================================================== The following are the prerequisites for importing data via SFTP: * You must have an SFTP client to import data into CleverTap's SFTP server. * Ensure that your plan includes the SFTP feature. Establish Connection with SFTP Server [](https://docs.clevertap.com/docs/imports-via-sftp#establish-connection-with-sftp-server) ==================================================================================================================================== The CleverTap SFTP server needs to recognize the SFTP client to start receiving files. To establish this secured file transfer connection: 1. Go to _Settings_ > _Partner_ > _Import_ and click **SFTP** . ![2716](https://files.readme.io/f8dafbf-Import_via_SFTP.png "Import Data via SFTP") Import Data via SFTP 2. Select the _Saved Keys_ tab and click **\+ Add key**. On clicking, _Add new import key_ popup opens. ![492](https://files.readme.io/cdd0fcc-AWS_Data_Import_credentials_add.png "Add New Import Key") Add New Import Key 3. Enter the following details: | Field | Description | | --- | --- | | Username | Prepopulated field that displays your CleverTap Account ID. | | Name your import key | Enter the name for your import key. | | Paste your SSH public key | Enter the SSH key pair generated and shared with Clevertap in the public key file. | After our SFTP server receives the SSH public key, a user is created for you. After successful authentication, you can seamlessly start transferring data files. You can refer to the server URL at the bottom of the _Saved Keys_ tab for connecting to the SFTP URL. Import Files via SFTP [](https://docs.clevertap.com/docs/imports-via-sftp#import-files-via-sftp) ==================================================================================================== To import files, use any SFTP client and execute the following commands from the command prompt to upload your files: 1. `sftp -i ~/.ssh/id_rsa username@serverURL` 2. `put filename.csv` 3. `put file.manifest` You receive an email notification for the following: * When the file is picked up for processing. * When it takes longer than expected to process the file, you receive an email notification for file processing every 2 hours till the time file is processed. * Upon successful file upload and processing. * When the import fails for some reason, you receive a failure email with a CSV file attachment containing failed records' details. You can download this CSV file and check it for errors. > 📘 > > ### > > Private Beta Release > > [](https://docs.clevertap.com/docs/imports-via-sftp#private-beta-release) > > The above feature of sending an email notification to users at different milestones is released in private Beta. Moreover, you can start using this data in our engagement channels. The following is an example of an error file. The last column in this file displays all the errors. | time\_stamp | identity | cookie\_id | id\_name | id\_email | id\_phone | is\_married | age | Failure Description | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 1574668407 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#b8d2d7d0d6dcd7ddf8dfd5d9d1d496dbd7d5) | dummy\_cookie-001 | JohnDoe-001 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#aac0c5c2c4cec5cfeacbc8c984c9c5c7) | +918876543211 | Y | 21 | Phone number is not valid | | 1574668408 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#375d56595253585277505a565e5b1954585a) | dummy\_cookie-002 | JaneDoe-003 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#e288838c87868d87a2838081cc818d8f) | +918876543212 | N | 22 | Phone number is not valid | For more information about CSV and manifest files, refer to [Sample CSV Files for Upload](doc:imports-via-sftp#sample-csv-files-for-upload) and [Sample Manifest File for Upload](doc:imports-via-sftp#sample-manifest-file-for-upload) sections. Sample CSV Files for Upload [](https://docs.clevertap.com/docs/imports-via-sftp#sample-csv-files-for-upload) ================================================================================================================ You can upload profiles or events data to CleverTap with an SFTP client. All files (Events and Profiles) must be uploaded in CSV format. > ❗️ > > ### > > Order of File Upload > > [](https://docs.clevertap.com/docs/imports-via-sftp#order-of-file-upload) > > A manifest file upload must follow each CSV file upload to map your data upload with CleverTap properties. The data file processing will start only after the manifest file is uploaded. Events CSV file [](https://docs.clevertap.com/docs/imports-via-sftp#events-csv-file) ---------------------------------------------------------------------------------------- The events CSV file contains all the event details you want to send to CleverTap. The events file has the following fields: | Column Header | Description | | --- | --- | | ts | * This field is optional.
* Supports the String data type.
* Accepts only the Epoch timestamp values.
* Denotes the timestamp when the event occurred.
* If this information is not present in the file, it captures the timestamp when CleverTap processed the record. | | ObjectId/Identity/guid/fbid | * This field is mandatory.
* Uniquely identifies the user who performed the event. | The following is an example of an events CSV file: | event\_name | time\_stamp | identity | cookie\_id | item\_name | item\_price | item\_delivery\_date | status\_delivered | | --- | --- | --- | --- | --- | --- | --- | --- | | Purchased | 1578503667 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#cfaeadac8fa8a2aea6a3e1aca0a2) | cookie\_123 | Awesome Ring - 10 | 123 | $D\_1589274432 | true | | Purchased | 1578503667 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#2e4f4c4d6e49434f4742004d4143) | cookie\_123 | Awesome Ring - 11 | 123 | $D\_1589274432 | false | | Purchased | 1578503667 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#80e1e2e3c0e7ede1e9ecaee3efed) | cookie\_123 | Awesome Ring - 12 | 123 | $D\_1589274432 | 1 | | Purchased | 1578503667 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#45242726052228242c296b262a28) | cookie\_123 | Awesome Ring - 13 | 123 | $D\_1589274432 | 0 | > 📘 > > ### > > Data File Timestamp > > [](https://docs.clevertap.com/docs/imports-via-sftp#data-file-timestamp) > > The data file's timestamp column(ts) must have an epoch format. > If any other column has date-time values, mention these in the $D\_epoch format. Profiles CSV file [](https://docs.clevertap.com/docs/imports-via-sftp#profiles-csv-file) -------------------------------------------------------------------------------------------- The profiles CSV file contains all the user profile details you want to send to CleverTap. The Profiles file has the following fields: | Column Header | Description | | --- | --- | | ObjectId/Identity/guid | * This field is mandatory.
* Uniquely identifies the user. | | ts | * This field is optional.
* Indicates the timestamp of the file upload.
* If this information is not given in the file, it indicates the timestamp when CleverTap when CleverTap processed the file. | The following is an example of a profile CSV file: | time\_stamp | identity | cookie\_id | id\_name | id\_email | id\_phone | id\_phone.operation | is\_married | age | Playlist | Playlist.operation | MSG-SMS | MSG-DNDSMS | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 1574668407 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#503a3f383e343f3510373d31393c7e333f3d) | dummy\_cookie-001 | JohnDoe-001 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#fb919493959f949ebb9a9998d5989496) | +918876543211 | | true | 21 | Rock | $add | true | false | | 1574668408 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#4c262d22292823290c2b212d2520622f2321) | dummy\_cookie-002 | JaneDoe-002 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#2f454e414a4b404a6f4e4d4c014c4042) | +918876543212 | | false | 22 | Pop | $remove | false | true | | 1574668409 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#016b6e696f736e6441666c60686d2f626e6c) | dummy\_cookie-003 | JohnRoe-003 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#c6aca9aea8b4a9a386a7a4a5e8a5a9ab) | +918876543213 | $set | 1 | 25 | | | 1 | 0 | | 1574668410 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#294348474c5b464c694e44484045074a4644) | dummy\_cookie-004 | JaneRoe-004 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#e58f848b80978a80a5848786cb868a88) | +918876543213 | $delete | 0 | 28 | | | 0 | 1 | | | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#cca6ada2a9bea3a98caba1ada5a0e2afa3a1) | dummy\_cookie-005 | JaneRoe-005 | [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#d1bbb0bfb4a3beb491b0b3b2ffb2bebc) | +918876543213 | | | 32 | | | | | ### Operations for Profile Properties [](https://docs.clevertap.com/docs/imports-via-sftp#operations-for-profile-properties) You can use the following operations on profile properties: * $add - This operation will add value to the property array. For example, you can add rock songs as Playlist values. * $remove- This operation will remove the value from the property array. For example, you can remove Pop from the existing Playlist. * $set - Use this operation to replace the current value. In our example, the phone number will be set as "+918876543213." * $delete - This operation removes the property. For example, you can completely remove the property id\_phone for Jane Roe and all the values in it. ### Communication Preferences for Profiles [](https://docs.clevertap.com/docs/imports-via-sftp#communication-preferences-for-profiles) The following are the communication preferences available: * MSG-sms: This field in the file helps to know if the user wants to be notified via an SMS or not. * MSG-email: This field in the file helps to know if the user wants to be notified via email or not. * MSG-whatsapp: This field in the file helps to know if the user wants to be notified via WhatsApp channel or not. * MSG-push: This field in the file helps to know if the user wants to be notified via a push notification or not. * MSG-dndSMS: This field in the file helps to know if the user has enabled DND for SMS notifications. * MSG-dndWhatsApp: This field in the file helps to know if the user has enabled DND for WhatsApp notifications. * MSG-dndEmail: This field in the file helps to know if the user has enabled DND for email notifications. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/imports-via-sftp#note) > > To add or remove multiple values in a property, create a separate row for each value. Sample Manifest File for Upload [](https://docs.clevertap.com/docs/imports-via-sftp#sample-manifest-file-for-upload) ======================================================================================================================== The manifest file is a JSON file that maps the custom attributes in your CSV files with CleverTap properties. The format for the manifest file is `anyfilename.manifest`. Every manifest file must have a unique name. The following keys are mandatory in a manifest file: | Expected keys | Description | | --- | --- | | type | The event/profile/(any other type of data that we may support in the future). | | fileName | The name of the data file. | | clientEmail | This is a mandatory field. We send the update mails to this email ID. | | columns | This is an optional field.

* ctName - This is an optional field. The actual property name in CleverTap.
* dataType - This is an optional field. The supported dataTypes are STRING, INTEGER, FLOAT, BOOLEAN, and LONG. If a dataType is not defined, then it is considered STRING. | > 📘 > > ### > > Manifest Note > > [](https://docs.clevertap.com/docs/imports-via-sftp#manifest-note) > > If a column is not mapped to a CleverTap property name, the data is processed with the column name as the property name. Manifest File for Events [](https://docs.clevertap.com/docs/imports-via-sftp#manifest-file-for-events) ---------------------------------------------------------------------------------------------------------- Create a manifest file to map your custom events to CleverTap Events. The following is a sample manifest file for events: JSON { "fileName": "events.csv", "type": "event", "columns": { "event_name": { "ctName": "evtName", "dataType": "STRING" }, "time_stamp": { "ctName": "ts", "dataType": "INTEGER" }, "identity": { "ctName": "identity", "dataType": "STRING" }, "cookie_id": { "ctName": "objectId", "dataType": "STRING" }, "item_name": { "ctName": "Name", "dataType": "STRING" }, "item_price": { "ctName": "Price", "dataType": "FLOAT" }, "item_delivery_date": { "ctName": "DeliveryDate", "dataType": "STRING" }, "status_delivered": { "ctName": "DeliveryStatus", "dataType": "BOOLEAN" } }, "clientEmail": "[email protected]" } > 📘 > > ### > > Charged Event > > [](https://docs.clevertap.com/docs/imports-via-sftp#charged-event) > > In the case of SFTP import, CleverTap does not support importing items array for the charged event. Manifest File for Profiles [](https://docs.clevertap.com/docs/imports-via-sftp#manifest-file-for-profiles) -------------------------------------------------------------------------------------------------------------- Create a manifest file to map the details of your user profiles to CleverTap Profiles. The following is a sample manifest file for profiles: JSON { "fileName": "profiles.csv", "type": "profile", "columns": { "time_stamp": { "ctName": "ts", "dataType": "INTEGER" }, "identity": { "ctName": "identity", "dataType": "STRING" }, "cookie_id": { "ctName": "objectId", "dataType": "STRING" }, "id_name": { "ctName": "Name", "dataType": "STRING" }, "id_email": { "ctName": "Email", "dataType": "STRING" }, "id_phone": { "ctName": "Phone", "dataType": "STRING" }, "is_married": { "ctName": "Married", "dataType": "BOOLEAN" }, "age": { "ctName": "Age", "dataType": "INTEGER" }, "MSG-SMS": { "ctName": "MSG-sms", "dataType": "BOOLEAN" }, "MSG-DNDSMS": { "ctName": "MSG-dndSMS", "dataType": "BOOLEAN" } }, "clientEmail": "[email protected]" } Troubleshooting [](https://docs.clevertap.com/docs/imports-via-sftp#troubleshooting) ======================================================================================== There may be instances where you see some errors during file upload. The following table lists the errors that you may encounter and the steps to resolve them: | Error Message | Resolution | | --- | --- | | No data file found | The data file is not uploaded. Upload the data file again and create a new manifest file for it. | | File couldn't be read | The file is not in the expected format. Upload the file again with the correct format, that is, CSV for data files and manifest file for mapping. | | Internal infra error | Upload the file again followed by a new manifest file. | | Incorrect details in manifest file | This error file is emailed to you. Check the manifest file for incorrect details. | | Atleast one of identity / fbId / gpId / objectId is mandatory under 1024 chars to identify the user | Check that a minimum of one ID is present. | | \[Internal error\] Error while importing data | This is an internal error. Try importing the data again. | | Event name is mandatory | The event name is blank or the column name is not available. | | Event name belongs to CleverTap restricted system events | Do not use the event names of the existing system events. | | Cannot have more than 100 event properties | A maximum of 100 event properties is allowed. Check that the event properties do not exceed it. | | Profile operation must be one of $add, $set, $remove, $delete | Add a valid profile operation. | The status for each file is sent via email. Receive Imports Notification [](https://docs.clevertap.com/docs/imports-via-sftp#receive-imports-notification) ================================================================================================================== The data files are picked up for ingestion in the order in which they are uploaded. You can configure a webhook to receive notifications for the following: * When the file is picked up for processing. * When it takes longer than expected to process the file, you receive an email notification for file processing every 2 hours till the time file is processed. * Upon successful file upload and processing. * When the import fails for some reason, you receive a failure email with a CSV file attachment containing failed records' details. You can download this CSV file and check it for errors. To configure a webhook, click **Receive Notifications** and choose an already configured webhook from the list. ![1439](https://files.readme.io/26bd2b6-Receive_notifcations.png "Receive Notifications for Data Import via SFTP") Receive Notifications for Data Import View imports [](https://docs.clevertap.com/docs/imports-via-sftp#view-imports) ================================================================================== After a successful import, you can view your imported files on the CleverTap dashboard. Click _Settings_ > _Import_ > _Activity log_ tab to check for your uploaded files. This tab displays your uploaded files and their status. Supported Date Time Format [](https://docs.clevertap.com/docs/imports-via-sftp#supported-date-time-format) ============================================================================================================== CleverTap supports multiple Date Time formats, as shown in the following table: | Format | | --- | | dd/MM/yyyy HH:mm:ss | | MM/dd/yyyy HH:mm:ss | | yyyy/dd/MM HH:mm:ss | | yyyy/MM/dd HH:mm:ss | | dd MMM yyyy HH:mm:ss | | Unix | > 📘 > > ### > > Key Points to Remember > > [](https://docs.clevertap.com/docs/imports-via-sftp#key-points-to-remember) > > * CleverTap supports uploading more than one field of type DATE with different date formats > * If the timestamp is missing in any of the fileds of type DATE, CleverTap adds the default timestamp of 00:00:01 to the date value included in the file when uploading it to the dashboard. For example, if the format defined in the manifest file for a particular DATE field is `dd/MM/yyyy HH:mm:ss` and the file includes the value as `14/04/2023`, then the CleverTap stores the value as `14/04/2023 00:00:01` to the dashboard. FAQs [](https://docs.clevertap.com/docs/imports-via-sftp#faqs) ================================================================== **Q. What is the maximum file size for upload?** A. You can upload a maximum of 5 GB for each data file. **Q. How much time does it take to complete the file processing?** A. It will take up to 2 hours to complete the processing for a maximum upload of a 5 GB data file. **Q. Is segmentation possible on the uploaded data?** A. Yes. **Q. Is engagement possible from the uploaded data?** A. Yes. You can use our engagement channels to engage with your users. **Q. Do you support live campaigns on the uploaded data?** A. Yes. However, the support is available only for Push, Email, and SMS engagement channels. **Q. Can we do uploads at regular intervals?** A. Yes. You can write a script to connect to CleverTap SFTP and transfer data daily when it is ready. **Q. Can we upload any event or profile file without the manifest file?** A. No. Every data file is recognized by a unique manifest file. Every manifest file should have a unique name. **Q. Can we upload any event or profile file without the column headers in the CSV file?** A. Column headers are mandatory for a file. Without the column headers, the file will go into an error state. **Q. What are the mandatory columns in the event and profile data files?** A. The column headers mandatory are ObjectId. **Q. What are the reasons that cause invalid manifest errors in JSON files?** A. The following are some of the reasons for invalid manifest errors when working with JSON files: | Validation Errors | Description | | --- | --- | | **Syntax Errors** | Ensure you use the correct JSON syntax. Avoid any mismatch, such as missing or extra commas, improperly closed brackets, or missing quotes around keys or values. An email is not sent to the client if this error occurs. | | **Invalid Data Types** | Ensure data types are in the following format: STRING, INTEGER, FLOAT, BOOLEAN, and LONG. A wrong or misspelled data type can lead to an invalid manifest error. For example, using int instead of INTEGER. An email is sent to the client if this error occurs. | | **Invalid Client Email ID** | Ensure the client's email ID is valid. The client does not receive an error notification email if the email ID is invalid. | | **Invalid Event Type** | Ensure you specify the event type in the manifest as either _EVENT_ or _PROFILE_. | | **Invalid File Format** | Ensure the events file name is specified in the manifest and provided in _.csv_ format. | | **Invalid Date Time Format** | Ensure the date time format is valid. For more information, refer to [Supported Date Time Format](doc:imports-via-sftp#supported-date-time-format)
. | > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/imports-via-sftp#note-1) > > No email is sent for invalid JSON or invalid email in the manifest file. For more information about JSON syntax in manifest files, refer to [Manifest File for Events](doc:imports-via-sftp#manifest-file-for-events) and [Manifest File for Profiles](https://docs.clevertap.com/docs/imports-via-sftp#manifest-file-for-profiles) . Updated 22 days ago * * * Ask AI --- # Product Experiences (Legacy) Setup Create keys and segments for your app to enable product experiences. Create Keys [](https://docs.clevertap.com/docs/product-experiences-setup#create-keys) ========================================================================================= These are the keys that you have defined in your app code. You can map these keys from the CleverTap dashboard and control the configuration of your app. Keys can be used for Product Config, Feature Flags, and A/B Tests. To create keys: 1. Navigate to Product Experiences > Setup > Keys 2. Click +Key to create a new key. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-experiences-setup#note) > > The name of the key defined here must match the name of the key defined in the app. This name cannot be changed later. You can add up to 500 keys. 3. Add the Key definition. Let us add some sample values: You can now activate or deactivate the dark mode based on the Keys. The default value that the app is expecting for this key is `3`. These values are set in your app. Let us assume that the key value 3 means to activate the feature, and 4 means to deactivate the feature. ![2880](https://files.readme.io/eafa5c2-product_exp_keys.png "Add Key Details from CleverTap's Keys page") Add Key Details 4. Click Save. The `dark_mode` key is now listed on the Manage Keys page. Edit/Archive Keys [](https://docs.clevertap.com/docs/product-experiences-setup#editarchive-keys) ---------------------------------------------------------------------------------------------------- 1. Navigate to Product Experiences > Setup > Keys. The Keys page appears. 2. Click the ellipsis menu to edit or archive a key. Only the default value and description can be edited after saving a key. You can view all the archived keys by selecting the Archived Keys box at the bottom of the key's list. If a key is used in a product config or feature flag then it cannot be archived. Create Segments [](https://docs.clevertap.com/docs/product-experiences-setup#create-segments) ================================================================================================= The segments are the target users who will receive app changes. These segments can be used for Product Config, Feature Flags, and A/B Tests. To define the segments: 1. Navigate to Product Experiences > Setup > Segments 2. Click +Segment to create a new segment. 3. Name the segment. 4. Create a segment by users who performed and/or did not perform an event. You can also create segments for user properties such as demographics, geography, and so on. For our example, create a segment of iPhone users living in New York. 5. Save the segment. ![1182](https://files.readme.io/483d933-ProductExp_Segment_Create.png "Create segments who will receive app changes") Create Segments Who will Receive App Changes Edit/Clone a Segment [](https://docs.clevertap.com/docs/product-experiences-setup#editclone-a-segment) ---------------------------------------------------------------------------------------------------------- 1. Navigate to Product Experiences > Setup > Segments. The Segments page appears. 2. Click the ellipsis menu to edit or clone a segment. For example, you may want to edit the city and create another user segment for Miami. Create Goals [](https://docs.clevertap.com/docs/product-experiences-setup#create-goals) =========================================================================================== Goals are used to evaluate the performance of an A/B test. It is an event and when a user performs this event, it is considered a conversion. Navigate to Product Experiences > Goals. Create a goal and save it. This goal is now available for selection in Product Experiences. ![874](https://files.readme.io/8726071-AB_Goals.png "Create goals to evaluate the performance of A/B tests") Create Goals for A/B Tests Archive Goals [](https://docs.clevertap.com/docs/product-experiences-setup#archive-goals) --------------------------------------------------------------------------------------------- * Navigate to Product Experiences > Goals. * Click the archive icon to archive a goal. ![879](https://files.readme.io/169925e-AB_Segment_Goals_Archive.png "Archive goals for A/B tests") Archiving Goals for A/B Tests You can view all the archived Goals by selecting the show archived goals box at the bottom of the goals list. If a goal is used in a product experience then it cannot be archived. Mutually exclusive A/B tests [](https://docs.clevertap.com/docs/product-experiences-setup#mutually-exclusive-ab-tests) ========================================================================================================================== This is a global setting that is applicable only to A/B tests. You can choose to exclude your segment from all other experiments. It applies only to the new experiments that are created after this setting is enabled. For example, if it is set as disabled at a global level, you will have to enable it on each subsequent test. The users who qualify for this A/B test are unique and they are not shared across any other experiment. 1. Navigate to Product Experiences > Settings > Mutually exclusive A/B tests. 2. Turn on the toggle. These users will be included only in one A/B test at a time. ![870](https://files.readme.io/463bdd2-AB_Settings_mutually_exclusive_users.png "Toggle ON the Mutually exclusive A/B tests options") Enabling Mutually exclusive A/B tests Video Tutorial [](https://docs.clevertap.com/docs/product-experiences-setup#video-tutorial) =============================================================================================== For further information, you can watch the following video on product configs and feature flags: Updated about 2 months ago * * * Ask AI --- # API Overview [](https://docs.clevertap.com/docs/imports-via-api#overview) ========================================================================= The API section introduces the programmatic methods for sending data into CleverTap. This document provides an overview of the available ingestion APIs, enabling you to determine the correct approach for sending events and user profile information directly from your backend systems. [Upload Events](https://developer.clevertap.com/docs/upload-events-api) [Upload User Profiles](https://developer.clevertap.com/docs/upload-user-profiles-api) Updated 24 days ago * * * Ask AI --- # A/B Test: FAQs FAQs [](https://docs.clevertap.com/docs/ab-test-faqs#faqs) ============================================================== Listed below are some FAQs that help you find answers to critical questions about A/B Tests. ### Q. What role does the control variant play in an A/B test? [](https://docs.clevertap.com/docs/ab-test-faqs#q-what-role-does-the-control-variant-play-in-an-ab-test) The control variant functions as the benchmark used for comparison within an A/B test. It embodies the standard user experience, whether it pertains to a specific app interaction or message. When testing a variable, the control variant aligns with the override values on the Remote Config Dashboard. If no override value has been set, it reverts to the default value defined in the code. ### Q. Can a user participate in multiple tests simultaneously? [](https://docs.clevertap.com/docs/ab-test-faqs#q-can-a-user-participate-in-multiple-tests-simultaneously) Yes, if a user meets the targeting criteria for more than one test, they might be included in multiple tests at the same time. ### Q. What happens when a user qualifies for multiple A/B Tests? [](https://docs.clevertap.com/docs/ab-test-faqs#q-what-happens-when-a-user-qualifies-for-multiple-ab-tests) When a user qualifies for multiple A/B tests that impact the same variable, CleverTap displays the experience from the test published first. To ensure that users see the experience of the newer test instead, perform either of the following steps: Ensure that the targets for the two tests are mutually exclusive. OR Complete any other tests that influence the variable before creating a new test. ### Q. How can I target an A/B test exclusively to new users? [](https://docs.clevertap.com/docs/ab-test-faqs#q-how-can-i-target-an-ab-test-exclusively-to-new-users) To target new users specifically, go to the _Targets_ section and select _Behavioral_ > _First-time users_. By default, the targeting is _Sticky_, meaning new users who see the A/B test continue to be a part of the test beyond their first session. If you prefer new users only to experience the A/B test during their initial session, clear the [_Sticky_](doc:create-ab-tests#sticky-target) option to disable sticky targeting. ### Q. What happens when a user logs in to two devices and is a part of an A/B test? [](https://docs.clevertap.com/docs/ab-test-faqs#q-what-happens-when-a-user-logs-in-to-two-devices-and-is-a-part-of-an-ab-test) As long as we have identified this as the same user but with a different device, the user will continue to be part of the A/B Test. In case the A/B Test has device-level target rules, such as "OS = iOS" but the user has logged in from an Android device, then whether the user will remain in the test or exit depends on the [Sticky Target](doc:create-ab-tests#sticky-target) configuration of the A/B Test. ### Q. What happens to users in a variant if the percentage allocation changes? [](https://docs.clevertap.com/docs/ab-test-faqs#q-what-happens-to-users-in-a-variant-if-the-percentage-allocation-changes) Currently, modifying the percentage distribution for the variant is not allowed while the test is running. ### Q. Is it possible for a user to encounter multiple distinct variants within one test? [](https://docs.clevertap.com/docs/ab-test-faqs#q-is-it-possible-for-a-user-to-encounter-multiple-distinct-variants-within-one-test) We use the User ID and A/B test ID as inputs for the logic determining the Variant in which a user will be placed. This ensures that users remain consistently assigned to the same Variant throughout the duration of a given A/B test, even if they exit and re-enter the test multiple times. Updated about 2 months ago * * * Ask AI --- # Partners Overview [](https://docs.clevertap.com/docs/export-partners#overview) ========================================================================= The Partners section provides an overview of the integrations that allow you to export CleverTap data to leading analytics and customer data platforms. This page highlights the purpose of each partner so you can select the right destination for product analytics, customer data management, or multi-system distribution. [Amplitude](https://docs.clevertap.com/docs/amplitude-export) [mParticle](https://docs.clevertap.com/docs/mparticle-export) [Mixpanel](https://docs.clevertap.com/docs/mixpanel-export) [Segment](https://docs.clevertap.com/docs/segmentcom) Updated 24 days ago * * * Ask AI --- # Exports Overview [](https://docs.clevertap.com/docs/data-exports#overview) ====================================================================== The Exports section provides an overview of all available methods to retrieve data from CleverTap. This page introduces the supported export mechanisms so you can choose the correct approach for accessing events, user profiles, message reports, and partner destinations used in your analytics or data ecosystem. [API](https://docs.clevertap.com/docs/export-via-api) [Cloud Storage](https://docs.clevertap.com/docs/cloud-storage) [Data Warehouse](https://docs.clevertap.com/docs/data-warehouse-exports) [Partners](https://docs.clevertap.com/docs/export-partners) Updated 24 days ago * * * Ask AI --- # Product Experiences (Legacy) > 📘 > > ### > > Feature Availability > > [](https://docs.clevertap.com/docs/product-experiences#feature-availability) > > A new and enhanced version of [Product Experiences](https://docs.clevertap.com/docs/product-experiences-nextgen) > is now available. New customers (CleverTap for Enterprise or CleverTap for Startups) who have not enabled the legacy functionalities can use this feature. The [methods](https://developer.clevertap.com/docs/may-2023#may-05) > for the legacy Product Experiences feature have been deprecated and will be removed from the code. The existing users can continue to use the legacy Product Experiences till September 2024. Overview [](https://docs.clevertap.com/docs/product-experiences#overview) ----------------------------------------------------------------------------- With _Product Experiences_, you can change the behavior and appearance of your app remotely without an update. This helps you to deliver in-app personalization experience to your app users and test their response. You can use _product config_ to modify app behavior and feature flags to add or remove features from your app without performing an app store deployment. You can remotely configure your app with product config. The configuration can be anything, including the look and feel of the app and the workflow for users. For example, you want to enable dark mode on your app; however, you want the following additional options: * You want to test it first on iPhone users who live in New York. * You must also be capable of disabling the feature if it needs more work. You can create a product config for this improvement and test the response to your app. Before using product config, you must complete the necessary setup. Set up [](https://docs.clevertap.com/docs/product-experiences#set-up) ========================================================================= To run a product config or a feature flag, you must create keys and segments for your app. Create Keys [](https://docs.clevertap.com/docs/product-experiences#create-keys) ----------------------------------------------------------------------------------- These are the keys that you have defined in your app code. You can map these keys from the CleverTap dashboard and control the configuration of your app. To create keys: 1. Navigate to _Product Experiences_ > _Setup_ > _Keys_ 2. Click **+Key** to create a new key. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-experiences#note) > > The name of the key defined here must match the name of the key defined in the app. This name cannot be changed later. You can add up to 500 keys. 3. Add the _Key_ definition. You can now activate or deactivate the dark mode based on the keys. The default value that the app is expecting for this key is `3`. These values are set in your app. Assume the key value 3 means activate the feature, and 4 means to deactivate the feature. ![2880](https://files.readme.io/eafa5c2-product_exp_keys.png "Add key details and define the default value") 4. Click **Save**. The `dark_mode` key is now listed on the _Manage Keys_ page. ### Edit/Archive Keys [](https://docs.clevertap.com/docs/product-experiences#editarchive-keys) To edit/archive keys: 1. Navigate to _Product Experiences_ > _Setup_ > _Keys_. The _Keys_ page displays. 2. Click the ellipsis menu to edit or archive a key. Only the default value and description can be edited after saving a key. You can view all the archived keys by selecting the _Archived Keys_ box at the bottom of the key's list. If a key is used in a product config or feature flag then it cannot be archived. Create Segments [](https://docs.clevertap.com/docs/product-experiences#create-segments) ------------------------------------------------------------------------------------------- The segments are the target users who will receive app changes. To define the segments: 1. Navigate to _Product Experiences_ > _Setup_ > _Segments_ 2. Click **+Segment** to create a new segment. 3. Name the segment. 4. Create a segment by users who performed and/or did not perform an event. You can also create segments for user properties such a demographics, geography, and so on. For our example, create a segment of iPhone users living in New York. 5. Save the segment. ![1182](https://files.readme.io/483d933-ProductExp_Segment_Create.png "Define segments who will receive app changes") Edit/Clone a Segment [](https://docs.clevertap.com/docs/product-experiences#editclone-a-segment) ---------------------------------------------------------------------------------------------------- To edit/clone a segment: 1. Navigate to _Product Experiences_ > _Setup_ > _Segments_. The _Segments_ page displays. 2. Click the ellipsis menu to edit or clone a segment. For example, you may want to edit the city and create another user segment for Miami. Product Config [](https://docs.clevertap.com/docs/product-experiences#product-config) ========================================================================================= Create Product Config [](https://docs.clevertap.com/docs/product-experiences#create-product-config) ------------------------------------------------------------------------------------------------------- You can have multiple members of your team create product config with multiple keys and segments. You can then group these keys. To create a product config: 1. Navigate to _Product Experiences_ > _Product Config_. The _Product Config_ page displays. 2. Click the **+Product Config** button to create a new product config. The create a _Product Config_ page displays. 3. Enter the name and description for your product config. For our example, name the product config as _dark mode_. 4. Select the _Segments_ and _Keys_ for your product config group. The _keys_ are the keys that you have assigned in your app for each element or feature and the _segments_ are the group of users who will receive this feature. For example, select the "iPhone users in New York" and "iPhone users in Miami" as _Segments_ and "Dark_Key" as the\_Product Config Key_. For more information on creating keys, refer to [Keys](https://docs.clevertap.com/docs/product-experiences#section-create-keys) . > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-experiences#note-1) > > A key can only be used in one product config. 5. Add the value and set the priority for your product config keys. Drag the ![](https://files.readme.io/b3f4cdd-Move_icon.png) icon up or down to change segment priority. 6. Publish your product config or schedule it to be published at a later date. ![777](https://files.readme.io/fc9b178-ProductExp_Product_Config_Create.png "Create product config") Edit/Archive Product Config [](https://docs.clevertap.com/docs/product-experiences#editarchive-product-config) ------------------------------------------------------------------------------------------------------------------ To edit a product config: 1. Navigate to _Product Experiences_ > _Product Config_. The _Product Config_ page displays. 2. Click the ellipsis menu to edit or archive a product config. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-experiences#note-2) > > Any changes to a product config are saved in a new version. You can always revert to an earlier version. View Statistics [](https://docs.clevertap.com/docs/product-experiences#view-statistics) ------------------------------------------------------------------------------------------- The stats will show you the distribution and value of the key stats for your product config. To view stats for a product config: To view product config stats: 1. Navigate to _Product Experiences_ > _Product Config_. The _Product Config_ page displays. 2. Click the product config from the list and scroll down to view the stats. You can view the following information: 1. You can see a trend of the total number of keys delivered for all segments or a particular segment from the first chart. 2. In the second box, you can further break it down to get the count of each type of key value-wise. ![720](https://files.readme.io/f5d39be-Product_Exp_Keys_Stats.png "View product config stats") Product Config Version [](https://docs.clevertap.com/docs/product-experiences#product-config-version) --------------------------------------------------------------------------------------------------------- A new version is created every time you edit a product config. If the current config is not working for some reason, you can always revert to an older version of the product config. To revert to an older version: 1. Navigate to _Product Experiences_ > _Product Config_. The _Product Config_ page displays. 2. Click the ellipsis menu to edit a product config. The versions appear on the right side. 3. Click the required version number and publish. The selected version becomes active and the current version becomes inactive. ![1157](https://files.readme.io/1b1bd88-ProductExp_product_config_versioning.png "Creating product config versions") Feature Flags [](https://docs.clevertap.com/docs/product-experiences#feature-flags) ======================================================================================= You can have canary releases using feature flags. You can remotely turn on or turn off features on your app. For example, you want to want to enable an automatic playlist of recommended videos on your app. This is a really great feature but it freezes the app screen for some versions of iOS. You want the following options: * You must be able to target iPhone users. * You want to test it on 20% of New York users and 30 % of Miami users before you roll it out to all users. * You must also be capable of disabling the feature if it needs more work. Feature flags can enable or disable a feature with a simple toggle. You can also test the feature on your users before you make it available to everyone. Your users will now have access to the feature and add to a better experience. Create Feature Flags [](https://docs.clevertap.com/docs/product-experiences#create-feature-flags) ----------------------------------------------------------------------------------------------------- To create feature flags: 1. Navigate to _Product Experiences_ > _Feature Flags_. The _Feature Flags_ page displays. 2. Click the **+Feature Flag** button to create a new feature flag. The create a _Feature Flag_ page displays. 3. Enter the name and description for your feature flag. For example, create an _Auto Playlist Feature Flag_. 4. Select the _Segments_ and _Keys_ for your feature flag. The _keys_ are the keys that you have assigned in your app for each feature and the segments are the group of users who will receive this feature. For example, select the "iPhone users in New York" and "iPhone users in Miami" segment. Select the key called _Auto Playlist_ key. For more information on creating keys, refer to [Keys](https://docs.clevertap.com/docs/product-config#section-create-keys) . > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-experiences#note-3) > > A feature flag can have only boolean values, that is, true or false. A key can only be used in one feature flag. 5. Under _Key value and priority_, add the key value for each segment. 6. Toggle the selected segment and define the percentage of users who will receive this change. ![779](https://files.readme.io/683d874-ProductExp_Feature_Flag_Create.png "Create feature flags") 6. Publish your feature flag or schedule it to be published at a later date. ![698](https://files.readme.io/88c5406-ProductExp_feature_flag_schedule.png "Schedule or publish a feature flag") Edit/Archive Feature Flags [](https://docs.clevertap.com/docs/product-experiences#editarchive-feature-flags) ---------------------------------------------------------------------------------------------------------------- > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/product-experiences#note-4) > > Any changes to a feature flag are saved in a new version. You can always revert to an earlier version. View Statistics [](https://docs.clevertap.com/docs/product-experiences#view-statistics-1) --------------------------------------------------------------------------------------------- The stats will show you the distribution and value of the key stats for your feature flag. To view stats for a feature flag: To view feature flag stats: 1. Navigate to _Product Experiences_ > _Feature Flags_. The _Feature Flag_ page displays. 2. Click the feature flag from the list and scroll down to view the stats. You can view the following information: 1. You can see a trend of the total number of keys delivered for all segments or a particular segment from the first chart. 2. In the second box, you can further break it down to get a count of each type of key value-wise ![723](https://files.readme.io/be9202d-ProductExp_Feature_Flags_Stats.png "View feature flag stats") Feature Flag Version [](https://docs.clevertap.com/docs/product-experiences#feature-flag-version) ----------------------------------------------------------------------------------------------------- A new version is created every time you edit a feature flag. If the current feature is not working for some reason, you can always revert to an older version of the feature flag: 1. Navigate to _Product Experiences_ > _Feature Flag_. The _Feature Flag_ page displays. 2. Click the ellipsis menu to edit a feature flag. The versions appear on the right side. 3. Click the required version number and publish it. The selected version becomes active and the current version becomes inactive. ![1181](https://files.readme.io/83b192d-ProductExp_feature_flag_versioning.png "Create feature flag versions") Role-Based Access Control for Product Experiences [](https://docs.clevertap.com/docs/product-experiences#role-based-access-control-for-product-experiences) =============================================================================================================================================================== Role-based access control (RBAC) is supported for _Product Experiences_. If you have advanced RBAC enabled for your account, admins can customize permissions and access roles. There are three standard system roles: _Admin_, _Creator_, and _Member_. If you do not have advanced RBAC, the _Admin_ role will have read and write access for all setups (keys, segments, goals, and settings), product config, feature flags, and A/B tests. _Creator_ will have read and write access to experiences and experiments. The creator will have only read access to setup (keys, segments, and goals), and the _Member_ role will have only read access for product config, feature flag, and A/B tests. Members will also have read access to set up. For more information, refer to [Role-Based Access Control](doc:role-based-access-control-2) . Video Tutorial [](https://docs.clevertap.com/docs/product-experiences#video-tutorial) ========================================================================================= For further information, you can watch the following video on product configs and feature flags: Updated about 2 months ago * * * Ask AI --- # Analytics Partners You can import your event and profile data from other platforms to CleverTap. This data can be used in CleverTap to run analytics, segments, campaigns, or journeys. You can also export event data from CleverTap to the partner dashboard. * [Amplitude Import (Cohort)](https://docs.clevertap.com/docs/amplitude-cohort-import) * [Amplitude Export](doc:amplitude-export) * [Amplitude Event Streaming](https://docs.clevertap.com/docs/amplitude-event-streaming) * [Mixpanel Import (Cohort)](doc:mixpanel-integration) * [Mixpanel Export](doc:mixpanel-export) * [PostHog](doc:posthog) Updated about 2 months ago * * * Ask AI --- # Amplitude [Amplitude](https://amplitude.com/) , an analytics and business intelligence platform, helps make informed decisions for targeting users. Integration CleverTap with Amplitude allows you to export and import your CleverTap event data to your Amplitude dashboard. * [Amplitude Export](doc:amplitude-export) * [Amplitude Import](doc:amplitude-cohort-import) * [Amplitude Event Streaming](https://docs.clevertap.com/docs/amplitude-event-streaming) Updated about 2 months ago * * * Ask AI --- # AWS S3 Overview [](https://docs.clevertap.com/docs/data-export-to-aws-s3#overview) =============================================================================== The data export feature enables you to bulk export your CleverTap event data to your AWS S3 bucket. You can use this for analysis in BI tools or storage in your data warehouse for analysis in the future. > 📘 > > ### > > Feature Availability > > [](https://docs.clevertap.com/docs/data-export-to-aws-s3#feature-availability) > > This capability is a part of the _Enterprise_, _Advanced_, and _Cutting Edge_ plan. To activate this for your account, contact your Account Manager. Setup [](https://docs.clevertap.com/docs/data-export-to-aws-s3#setup) ========================================================================= The following are the two major steps involved in enabling this feature for your account: 1. [Create an AWS S3 Bucket](doc:data-export-to-aws-s3#create-an-aws-s3-bucket) . 2. Configure Buckets details on the CleverTap Dashboard using one of the following methods: * [Using Access Key](doc:data-export-to-aws-s3#using-access-key) * [Using IAM Policy](doc:data-export-to-aws-s3#using-iam-policy) > 📘 > > ### > > Data Export > > [](https://docs.clevertap.com/docs/data-export-to-aws-s3#data-export) > > Once you have set up both dashboards, you can configure export from the CleverTap dashboard. For more information, refer to the following: > > * [Data Exports](doc:data-exports) > for Legacy Profile and Event Export flow > * [Profile Exports](doc:profile-exports) > for Enhanced Profile Export flow Create an AWS S3 Bucket [](https://docs.clevertap.com/docs/data-export-to-aws-s3#create-an-aws-s3-bucket) ------------------------------------------------------------------------------------------------------------- To create an AWS S3 bucket: 1. Log in to your AWS account, then search for _S3_ in the AWS services box. 2. Select _S3_ from the search results. ![891](https://files.readme.io/bb8d83c-Selecting_S3_from_the_list.png "Select S3 from AWS account") Select S3 from AWS Account Upon clicking, the _Bucket_ page is displayed. 3. Click **Create bucket**. On clicking, the _Create bucket_ page displays: ![2876](https://files.readme.io/111a267-Bucket_page.png "Click Create bucket from Buckets page") Click Create Bucket 4. Enter a bucket name, region, logging, versioning, and encryption preferences. ![1628](https://files.readme.io/407acf4-Create_bucket_page.png "Enter General Configuration for S3 bucket and click Create bucket") Configure S3 Bucket Settings and Click Create Bucket > 📘 > > ### > > Recommendation for Setup > > [](https://docs.clevertap.com/docs/data-export-to-aws-s3#recommendation-for-setup) > > For this integration, you need not modify the default settings; however, you must check your internal organization's policies to verify if you need to modify any of these settings. Based on your CleverTap account settings, we host your data in Europe (EU), the United States (US), Singapore (SG), or India (IN). To identify the region of your account and the corresponding region that you must select when configuring the bucket settings, refer to the following table: | CleverTap Dashboard URL | Region | AWS S3 Bucket Region | | --- | --- | --- | | [https://eu1.dashboard.clevertap.com/login.html](https://eu1.dashboard.clevertap.com/login.html#/) | EU | EU (Ireland) eu-west-1 | | [https://in1.dashboard.clevertap.com/login.html](https://in1.dashboard.clevertap.com/login.html#/) | India | Asia Pacific (Mumbai) ap-south-1 | | [https://us1.dashboard.clevertap.com/login.html](https://us1.dashboard.clevertap.com/login.html#/) | US | US West (Oregon) us-west-2 | | [https://sg1.dashboard.clevertap.com/login.html](https://sg1.dashboard.clevertap.com/login.html#/) | Singapore | Asia Pacific (Singapore)
ap-southeast-1 | | [https://mec1.dashboard.clevertap.com/login.html](https://mec1.dashboard.clevertap.com/login.html) | Middle East (UAE) | Middle East (UAE) me-central-1 | | [https://aps3.dashboard.clevertap.com/login.html](https://aps3.dashboard.clevertap.com/login.html) | Indonesia | Asia Pacific (Jakarta) ap-southeast-3 | > 📘 > > ### > > Set Up AWS Bucket Region > > [](https://docs.clevertap.com/docs/data-export-to-aws-s3#set-up-aws-bucket-region) > > When setting up the AWS bucket region for your AWS account, ensure that the AWS bucket region matches your CleverTap account region. To identify the region of your CleverTap account, refer to the above table. > > Also, you can set up the CleverTap account region only once during registration. 5. Click **Create bucket**. On successful bucket creation, the following message displays in the snack bar at the top: ![2770](https://files.readme.io/681e832-Successful_bucket_creation.png "S3 Bucket created successfully message displays at the top") S3 Bucket Created Successfully The bucket you just created now appears in your S3 console. We recommend you note down the name of your new bucket, as you will need it for the next step. Configure S3 Bucket Details on CleverTap Dashboard [](https://docs.clevertap.com/docs/data-export-to-aws-s3#configure-s3-bucket-details-on-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### Using IAM Policy [](https://docs.clevertap.com/docs/data-export-to-aws-s3#using-iam-policy) The following are the two major steps to configure S3 bucket details on the CleverTap dashboard using IAM Policy i. [Copy IAM Policy from the CleverTap dashboard](doc:data-export-to-aws-s3#copy-iam-policy-from-the-clevertap-dashboard) ii. [Add IAM Policy to S3 Bucket from AWS console](doc:data-export-to-aws-s3#add-iam-policy-to-s3-bucket-on-aws-console) #### Copy IAM Policy from the CleverTap Dashboard [](https://docs.clevertap.com/docs/data-export-to-aws-s3#copy-iam-policy-from-the-clevertap-dashboard) To copy the IAM policy from the CleverTap dashboard: 1. Navigate to _Settings_ > _Partners_ and click **View Details** against Amazon S3. The _Integrate analytics partner - Amazon S3_ window displays on the right side of the screen. ![1500](https://files.readme.io/27118b6-Integrate_Analytics_Partner_-_AWS_S3.png "Click View Details against Amazon S3 from Partner page") Click View Details against Amazon S3 from Partner Page 2. Click **\+ Amazon S3 Bucket** to create a new bucket. 3. Enter the _Bucket name_. 4. Select _IAM (Identity and Access Management) Policy_ option under _Configure with_ section. ![1446](https://files.readme.io/475094f-Select_IAM_Policy_option.png "Enter Bucket URL and select IAM Policy option") Configure S3 Bucket with IAM Policy 5. Click the ![](https://files.readme.io/2bd537e-Copy_icon.png) icon to copy the policy to the clipboard and keep this window open for saving these details later. #### Add IAM Policy to S3 Bucket on AWS Console [](https://docs.clevertap.com/docs/data-export-to-aws-s3#add-iam-policy-to-s3-bucket-on-aws-console) To add IAM policy to the S3 bucket: 1. Select the bucket from the Bucket page of the AWS console. 2. Select the _Permissions_ tab. 3. Click **Edit** under the _Bucket policy_ section and enter the policy that you copied in Step _4_ of [Copy IAM Policy from the CleverTap dashboard](doc:data-export-to-aws-s3#copy-iam-policy-from-the-clevertap-dashboard) : ![2052](https://files.readme.io/438b0da-Add_IAM_policy_to_S3_Bucket.png "Click Edit to edit S3 bucket policy") Edit S3 Bucket Policy IAM Policy { "Version": "2012-10-17", "Statement": [\ {\ "Effect": "Allow",\ "Principal": {\ "AWS": "arn:aws:iam::062484260092:root"\ },\ "Action": "s3:PutObject*",\ "Resource": "arn:aws:s3:::bucket-name/*"\ },\ {\ "Effect": "Allow",\ "Principal": {\ "AWS": "arn:aws:iam::062484260092:root"\ },\ "Action": "s3:PutObject*",\ "Resource": "arn:aws:s3:::bucket-name"\ }\ ] } > 🚧 > > ### > > IMPORTANT > > [](https://docs.clevertap.com/docs/data-export-to-aws-s3#important) > > Ensure that you replace all the occurrences of `bucket-name` in the above JSON payload with your actual bucket name. 4. Click **Save Changes** to save the policy. 5. Go back to the same window opened in _Step 4_ of [Copy IAM Policy From CleverTap Dashboard](doc:data-export-to-aws-s3#copy-iam-policy-from-the-clevertap-dashboard) and click **Save Credentials**. The Amazon S3 bucket is now configured on both the AWS S3 console and the CleverTap dashboard. ### Using Access Key [](https://docs.clevertap.com/docs/data-export-to-aws-s3#using-access-key) The following are the two major steps to configure S3 bucket details on the CleverTap dashboard using Access Key: i. [Create an API Key for Your S3 Bucket](doc:data-export-to-aws-s3#create-an-api-key-for-your-s3-bucket) . ii. [Add Your S3 Bucket Details to CleverTap](doc:data-export-to-aws-s3#add-your-s3-bucket-details-to-clevertap) . #### Create an API Key for Your S3 Bucket [](https://docs.clevertap.com/docs/data-export-to-aws-s3#create-an-api-key-for-your-s3-bucket) This section demonstrates the creation of an AWS API key with write access to the bucket we created in the above step. CleverTap uses this API key to export data to your S3 bucket. 1. Click on your account name on the top right of the AWS console. 2. Select _Security credentials_. ![388](https://files.readme.io/152163f-Security_credentials.png "Select Security credentials option") Select Security credentials 3. Select _Users_ from the left navigation and click **Add user**. ![2878](https://files.readme.io/8b81e57-Click_Add_users.png "Click Add users from the User page") Add Users On clicking, the _Add user_ page displays. 4. Enter the _User name_ and select the _Programmatic access_ checkbox. 5. Click **Next:Permissions**. ![2878](https://files.readme.io/7840a59-Add_user.png "Enter the User name, select AWS credential type and click Next: Permissions") Select AWS Access Type and Click Next: Permissions On clicking, _Set permissions_ page displays. 6. Click **Create group** under _Add user to group_ tab. ![2872](https://files.readme.io/592634b-Create_group.png "Click Create group under Add user to group tab") Add User to Group On clicking, _Create group_ page displays. ![2482](https://files.readme.io/5cfd145-Create_group_page.png "Assign policy to group") Assign Policy to Group 7. Click **Create policy**. On clicking, _Create policy_ page opens in a new tab. 8. Select the **JSON** tab and then paste the JSON code given below in the box. 9. Replace `clevertap-example` in the JSON code with the name of the S3 bucket you created in the above step. The permissions defined in this policy allow CleverTap to get information about your bucket and upload files to it. > 📘 > > ### > > AWS API Access Policies > > [](https://docs.clevertap.com/docs/data-export-to-aws-s3#aws-api-access-policies) > > _IP Whitelisting_ is not supported with S3 exports. For more information about AWS API access policies, refer to [this post](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket-console.html) > from the AWS blog. ![2874](https://files.readme.io/bc21bb7-Replace_JSON_code.png "Bucket policy in JSON format") Bucket Policy in JSON Format JSON { "Version": "2012-10-17", "Statement": [\ {\ "Effect": "Allow",\ "Action": [\ "s3:ListBucket"\ ],\ "Resource": [\ "arn:aws:s3:::clevertap-example"\ ]\ },\ {\ "Effect": "Allow",\ "Action": [\ "s3:PutObject"\ ],\ "Resource": [\ "arn:aws:s3:::clevertap-example/*"\ ]\ }\ ] } 10. Click **Next: Tags** and then click **Next: Review**. On clicking, the _Create policy_ page opens. 11. Enter the policy _Name_ and click **Create policy**. ![2648](https://files.readme.io/f81305a-Create_policy.png "Enter policy name and click Create policy") Enter Policy Name and Click Create policy On successful policy creation, the following message displays in the snack bar at the top: ![2870](https://files.readme.io/cc7b89a-Policy_created_successfully.png "Policy created successfully message displays at the top") Bucket Policy Created Successfully 12. Go back to the _Create group_ page (opened in _Step 6_), search for the policy you just created, and assign it to the new group by selecting the checkbox. 13. Click **Create group**. On clicking, the _Add user_ page displays. ![2486](https://files.readme.io/c28e813-Search_policy.png "SSelect Policy and Click Create Group") Select Policy and Click Create Group 14. Click **Next: Tags** and then click **Next: Review**. ![2012](https://files.readme.io/15f1ead-Click_Next_Tags.png "Click Next: Tags.png") Click Next: Tags 15. Click **Create user**. ![1980](https://files.readme.io/d88007d-Create_user.png "Click Create user") Click Create user On successful user creation, the following page displays. You will see your _Access key ID_ and the _Secret access key_. ![2878](https://files.readme.io/d3b1def-Access_key_and_secret_access_key.png "Copy or download Access key ID and Secret access key") Copy or Download User Security Credentials These credentials allow CleverTap to upload files to your S3 bucket. We recommend you note down these values as you will require them for the next step. Otherwise, you can also click **Download .csv** to save these details for future use. #### Add Your S3 Bucket Details to CleverTap [](https://docs.clevertap.com/docs/data-export-to-aws-s3#add-your-s3-bucket-details-to-clevertap) To add your S3 bucket details to Clevertap, perform the following steps: 1. Go to _Settings_ > _Partners_ and click **View Details** against Amazon S3. The _Integrate analytics partner - Amazon S3_ window displays on the right side of the screen. ![1500](https://files.readme.io/6ab03f2-Integrate_Analytics_Partner_-_AWS_S3.png "Integrate Analytics Partner - AWS S3.png") Click View Details against Amazon S3 from Partners Page 2. Click **\+ Amazon S3 Bucket** to create a new bucket. The _Integrate Amazon S3 Bucket_ window opens on the right side of the screen. 3. Enter the _Bucket nickname_ and _Bucket URL_. 4. Select the _User details_ option under _Configure with_ section. 5. Enter your _Access key ID_ and the _Secret access key_ obtained earlier and click **Save Credentials**. ![1494](https://files.readme.io/5f44e48-Select_User_details_option.png "Select User details and enter the user security credentials") Enter User Security Credentials and Click Save Credentials FAQs [](https://docs.clevertap.com/docs/data-export-to-aws-s3#faqs) ======================================================================= ### What permission is required for CleverTap to export data to your AWS S3 bucket? [](https://docs.clevertap.com/docs/data-export-to-aws-s3#what-permission-is-required-for-clevertap-to-export-data-to-your-aws-s3-bucket) A. CleverTap needs write permission to be able to export data to your AWS S3 bucket, as shown in the following figure: ![1446](https://files.readme.io/7bed273-Select_IAM_Policy_option.png "IAM Policy to provide CleverTap with write access") IAM Policy to Provide CleverTap with Write Access ### What should I do if I already have an existing IAM policy for the AWS S3 bucket? [](https://docs.clevertap.com/docs/data-export-to-aws-s3#what-should-i-do-if-i-already-have-an-existing-iam-policy-for-the-aws-s3-bucket) Ensure that you modify the current IAM policy to provide CleverTap with write access to export data to your AWS S3 bucket. Updated 23 days ago * * * Ask AI --- # Amplitude Export Overview [](https://docs.clevertap.com/docs/amplitude-export#overview) ========================================================================== [Amplitude](https://amplitude.com/) , an analytics and business intelligence platform, helps make informed decisions for targeting users. Integration CleverTap with Amplitude allows you to export your CleverTap event data to your Amplitude dashboard. You can use this event data for further analysis. Integrate Amplitude with CleverTap [](https://docs.clevertap.com/docs/amplitude-export#integrate-amplitude-with-clevertap) ============================================================================================================================== This process involves the following two steps: 1. [Find Amplitude Project Details](doc:amplitude-export#find-amplitude-project-details) . 2. [Configure CleverTap Dashboard](doc:amplitude-export#configure-clevertap-dashboard) . Find Amplitude Project Details [](https://docs.clevertap.com/docs/amplitude-export#find-amplitude-project-details) ---------------------------------------------------------------------------------------------------------------------- 1. Log in to your Amplitude account. 2. Navigate to the _Settings_ page. 3. Navigate to _Org Settings_ > _Projects_. 4. Click on a project to find the _API Key_ under the _General_ tab. ![3552](https://files.readme.io/75bc618-Finding_API_key.png "Finding API key from the Amplitude Dashboard") Finding API Key Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/amplitude-export#configure-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Navigate to _Settings_ > _Partners_ > _Partner List_ from the CleverTap dashboard. Select _Amplitude_ from the list. ![Navigate to the Partner Page](https://files.readme.io/b728365fdcad7a78f12a72361bc625a502910e436d5a46f097420fdd7257643e-Amplitude_Partner_Page.png) Navigate to the Partner Page 2. A popup opens on the right side of the screen. Enter the following details and click **Integrate**: | Field | Description | | --- | --- | | Partner Nickname | Enter the _Nickname_ for your integration. | | API key | The unique code for Amplitude to verify your credentials. For more information about obtaining the key, refer to [Find Amplitude Details](doc:amplitude-export#find-amplitude-project-details)
. | | Data Residency | The Data Residency is the physical/geographical storage location of data for each project.

* Select from the following available options:
* Europe (default)
* Standard | | Device ID Mapping | This field is mapped to Amplitude's

`device_id`

field for identification when sending data from CleverTap to Amplitude. | | User ID Mapping | This field is mapped to Amplitude's

`user_id`

field for identification when sending data from CleverTap to Amplitude. | ![](https://files.readme.io/5fe4633-image.png) After successful integration, navigate to the the _Export_ tab on the _Partner List_ page. ![Amplitude Export](https://files.readme.io/d6bfc1f64309cb1a4d596818e2a141699c5ae32d7ddc9c141200df7da5218ad7-Amplitude_Export.png) Amplitude Export Create New Export [](https://docs.clevertap.com/docs/amplitude-export#create-new-export) ============================================================================================ This section lists steps to create a new export from the CleverTap dashboard. To create a new export: 1. Navigate to **Settings** > **Partners** > **Exports** from the CleverTap dashboard. 2. Click **Create Export** and select **Amplitude**. ![Create Export](https://files.readme.io/aa7e1ef-image.png) Create Export The **Export to Amplitude** window displays. ![Enter Export Details](https://files.readme.io/a5331f5-image.png) Enter Export Details 3. Configure the following settings: * **Partner Nickname**: Nickname for the partner. To edit the nickname, go to **Partner List**. * **DATA TYPE & IDENTIFIER PRIORITY**: Select the events from the available options to export. For more information, refer to [Export Details](doc:amplitude-export#export-details) . * **FREQUENCY**: Select from one of the following options: * **One time**: A single export for the selected export type. You can export data up to the last 60 days. You create an export for a specific day, date range, previous month, current month, and more. * **Recurring**: Set up a recurring export that exports all the new events/user profiles captured in the last window. You can export as frequently as every 4 hours and up to once every 24 hours. * **Date to export data**: The export starts at 12:00 a.m. on the specified date by default. 4. Click **Export**. The **Export to Amplitude** window closes, and the following message displays at the top of the _Exports_ page: ![Amplitude Export Initiated](https://files.readme.io/333f81c-image.png) Amplitude Export Initiated CleverTap processes the export, and you can now see the newly created export for Amplitude. ![New Amplitude Export Displays on Export Page](https://files.readme.io/9f58b2f-image.png) New Amplitude Export Displays on Export Page The status for each export is displayed as **PENDING** as soon as the export is created. The status changes to **RUNNING** after the processing starts. In the case of **One time** export, the status changes to **DONE** when the export is complete. Stop Export [](https://docs.clevertap.com/docs/amplitude-export#stop-export) ================================================================================ You can also stop the export that you have created. Hover over the export. The **Stop** button appears. Click the **Stop** ![Stop export](https://files.readme.io/203208a-StopExport.jpg) button for the export request you want to stop. ![Stop Amplitude Export](https://files.readme.io/19237ef-image.png) Stop Amplitude Export The **Stop export?** window appears. Click **Stop** to confirm your action. ![](https://files.readme.io/7067554-image.png) You now return to the **Exports** page, and the _Amplitude data export stopped_ message displays at the top. The status of the export is displayed as **STOPPED**. ![Amplitude Export Stopped](https://files.readme.io/1e8ff5a-AmplitudeStopped.jpg) Amplitude Export Stopped Edit an Export [](https://docs.clevertap.com/docs/amplitude-export#edit-an-export) ====================================================================================== You might need to modify an export to meet specific business requirements or while waiting for the next run. This section describes editing a Live Data Streaming and Recurring export in the **RUNNING** and **PENDING** (awaiting next run) state. > 📘 > > ### > > Points to Remember > > [](https://docs.clevertap.com/docs/amplitude-export#points-to-remember) > > * In case of running exports, the new changes will apply to the next run. > * You cannot edit a One-time export, regardless its status (RUNNING, PENDING, DONE, or STOPPED). > * You cannot change the export from User Profile to Event and vice-versa. > * You cannot modify exports marked as **DONE** or **STOPPED**. > * Export changes for Live DataStreaming take 10-15 minutes to take effect. To edit an export: 1. On the CleverTap dashboard, go to **Partners** > **Exports**. 2. Hover over the required export. The **View**, **Edit**, and the **Stop** buttons appear. ![Click the Edit Export Icon](https://files.readme.io/7e95e07-EditAmplitudeExport.jpg) Click the Edit Export Icon 3. Click the **Edit** button. The **Export to Amplitude** section appears. ![Edit the Export](https://files.readme.io/945fb85-UpdateAmplitudeExport.jpg) Edit the Export 4. Edit the export details and click **Update export**. > 📘 > > ### > > Modify Export Frequency > > [](https://docs.clevertap.com/docs/amplitude-export#modify-export-frequency) > > When you change the export frequency, the export cycle resets and begins at midnight (12:00 a.m.) on the specified date following the new schedule. > > For example, if the last export occurred at 4:00 p.m., the next export cycle will start at midnight (12:00 a.m.) and continue according to the new 12-hour schedule thereafter. Filter Exports [](https://docs.clevertap.com/docs/amplitude-export#filter-exports) ====================================================================================== This section describes the different ways you can filter exports. Filter by Export Details [](https://docs.clevertap.com/docs/amplitude-export#filter-by-export-details) ---------------------------------------------------------------------------------------------------------- To filter by export details: 1. Click the **Filter** button at the top right corner. 2. You can filter exports by **Partner**, **Type**, **Format**, **Status**, or **Frequency**. 3. To clear the filter, click **Reset all**. ![Filter Exports](https://files.readme.io/6499e90-FilterButton.jpg) Filter Exports Filter Exports by Date Range [](https://docs.clevertap.com/docs/amplitude-export#filter-exports-by-date-range) ------------------------------------------------------------------------------------------------------------------ You can also filter the exports based on the export date. To filter exports by export date range: 1. Click the **Filter** button at the top right corner. 2. Click the **Exported on** button. The **Calendar** widget appears. ![Calendar Widget](https://files.readme.io/74ce34b-Amplitude_Exports_-_Calendar_Widget.png) Calendar Widget 1. Choose the custom date range and click **Apply**. The exports are filtered accordingly. Filter Exports by Pagination [](https://docs.clevertap.com/docs/amplitude-export#filter-exports-by-pagination) ------------------------------------------------------------------------------------------------------------------ To choose how many export items you view per page: 1. Use the **Items per page** drop-down at the bottom of the **Exports** page. 2. Options include 10, 20, 30, or 40. By default, the **Exports** page shows 20 exports. Export Details [](https://docs.clevertap.com/docs/amplitude-export#export-details) ====================================================================================== Select from one of the following options to export events from CleverTap to the Amplitude dashboard: * [All events](doc:amplitude-export#all-events) * [Selected events](doc:amplitude-export#selected-events) * [Engagement events](doc:amplitude-export#engagement-events) All events [](https://docs.clevertap.com/docs/amplitude-export#all-events) ------------------------------------------------------------------------------ Export data for all defined events, including System and Custom events. Selected events [](https://docs.clevertap.com/docs/amplitude-export#selected-events) ---------------------------------------------------------------------------------------- Select the specific events you want to export from CleverTap to the Amplitude dashboard. Engagement Events [](https://docs.clevertap.com/docs/amplitude-export#engagement-events) -------------------------------------------------------------------------------------------- Select this option to export the following engagement events: | CleverTap Event Name | Event Description | | --- | --- | | Notification Sent | The event is tracked when the notification is successfully sent from CleverTap to the communication channel you select for your campaign. | | Notification Viewed | This event is tracked when a user views an email, in-app notification, or a web notification sent from CleverTap. | | Notification Clicked | This event is tracked only when a user clicks on a notification sent via CleverTap. It is recorded when a user clicks on a mobile push, in-app, email, web popup, or web push message sent via the CleverTap dashboard or through the campaign API. | | Push Impressions | This event is tracked when a Push notification sent from CleverTap is delivered on a user’s device. | | Notification Replied | This event is tracked when a user replies to a WhatsApp message. | | Push Unregistered | The event is raised when the user unregisters to receive Push Notifications. | | Control Group | The event is raised when a campaign is activated with a Control group. | | Channel Unsubscribed | The event is raised when a user unsubscribes to receive further communication through a channel. | | Reachable By | * The debug event is raised when the user becomes reachable by a communication channel such as SMS, email, or mobile push, or when there are changes to the existing communication channel.
* Tracked for a profile when:
* Push token is added/changed.
* Email ID is added/changed.
* Phone number is added/changed. | | Push Impressions | This event is tracked when a push notification sent from CleverTap is delivered on a user’s device. The funnels on the Push campaign statistics page reflect the count for this event. | | Notification Delivered | This event is recorded when communication is delivered to the user's device | | AB Experiment Rendered | This event is recorded when communication is delivered to the user who is part of an A/B experiment campaign | | AB Experiment Stopped | This event is recorded when AB experiment is stopped. | | AB Experiment Rolled Out | This event is recorded when AB experiment is started | | Geocluster Entered | This event is recorded to mark when a device enters a geofence. | | Geocluster Exited | This event is recorded to mark when a device exits a geofence. | | Reply Sent | This event is recorded when an agent (CleverTap user) replies to a message from the end-user. | | App Uninstalled | This event is recorded when a user uninstalls your application. | | Webhook Delivered | This event is recorded when a Webhook campaign is delivered successfully | | State Transitioned | This event is recorded for Lifecycle Optimizer when a user transitions from one stage to another. | | UTM Visited | This event is tracked when a user clicks on a link from a marketing campaign that has a UTM parameter defined on it. | FAQs [](https://docs.clevertap.com/docs/amplitude-export#faqs) ================================================================== ### Q. Do CleverTap data exports allow special characters? [](https://docs.clevertap.com/docs/amplitude-export#q-do-clevertap-data-exports-allow-special-characters) A. Yes, CleverTap data exports allow the following special characters: * CleverTap's export system supports Unicode (UTF-8) character encoding. It facilitates the accurate representation of text in various languages and scripts. For example, Indian regional languages, Arabic, Korean, Russian, Japanese, Chinese, Spanish, Greek, Indonesian, etc. * It replaces the following characters with a hyphen to avoid issues in output file generation: * Whitespace * Tab * Slash * null (\\0) * Control characters are replaced with ?. For more information, refer to [Control Character](https://en.wikipedia.org/wiki/Control_character) . * Supports emoji characters; however, some emojis (UTF-16) may not render properly. Updated about 2 months ago * * * Ask AI --- # Weather API Overview [](https://docs.clevertap.com/docs/weather-api#overview) ===================================================================== [WeatherAPI](https://www.weatherapi.com/) provides real-time and forecasted weather data for any global location. By integrating WeatherAPI with CleverTap, you can: * **Trigger contextual campaigns** based on local weather * **Deliver personalized messages** such as umbrella offers on rainy days or sunscreen promos on sunny days * **Drive higher engagement** through dynamic targeting powered by weather conditions This document shows you how to configure WeatherAPI in CleverTap using [Linked Content](https://docs.clevertap.com/docs/linked-content) and use it in a Push Notification campaign. Prerequisites for Integration [](https://docs.clevertap.com/docs/weather-api#prerequisites-for-integration) =============================================================================================================== Before integrating WeatherAPI with CleverTap, check the following: * An active WeatherAPI account * Your WeatherAPI Key (from the WeatherAPI dashboard) * Access to the CleverTap Dashboard with admin permissions Integrate WeatherAPI with CleverTap [](https://docs.clevertap.com/docs/weather-api#integrate-weatherapi-with-clevertap) =========================================================================================================================== The integration involves the following three important steps: 1. [Generate WeatherAPI Key](doc:weather-api#generate-weatherapi-key) 2. [Configure Linked Content in CleverTap](doc:weather-api#configure-linked-content-in-clevertap) 3. [Configure Personalized CleverTap Campaign](doc:weather-api#configure-personalized-clevertap-campaign) Generate WeatherAPI Key [](https://docs.clevertap.com/docs/weather-api#generate-weatherapi-key) --------------------------------------------------------------------------------------------------- An API key is required to authenticate requests to WeatherAPI. To retrieve the key, perform the following steps: 1. Log in to your [WeatherAPI dashboard](https://www.weatherapi.com/login.aspx) . 2. Go to _My Account_ > _API Key_. 3. Copy the key. You’ll use this to configure Linked Content in CleverTap. ![Weather API Key](https://files.readme.io/d526fb210e15ff6f14966ac60a1a570df21f34bc565dddd33ca8ba9ded3ad34b-image.png) Weather API Key Configure Linked Content in CleverTap [](https://docs.clevertap.com/docs/weather-api#configure-linked-content-in-clevertap) ------------------------------------------------------------------------------------------------------------------------------- Connect WeatherAPI with CleverTap to fetch weather data dynamically for each user. 1. Go to _Settings_ > _Setup_ > _Linked Content_ on the CleverTap dashboard. 2. Click **\+ Linked Content**. 3. Fill in the following values: | Field | Value | | --- | --- | | Name | `Weather Lookup` | | Method | `GET` | | Destination URL | `https://api.weatherapi.com/v1/current.json?key=&q={{city}}` | Replace `` with your actual WeatherAPI key. The `{{city}}` parameter will be dynamically mapped from each user's profile property. 4. Click **Test** to preview the API response. You should see an output in JSON, such as: JSON { "location": { "name": "Paris", "country": "France" }, "current": { "condition": { "text": "Sunny" }, "temp_c": 25.0 } } 5. Click **Autofill Objects with Response** to map the JSON fields. 6. Click **Test and Save** to complete the setup. ![Configure Linked Content in CleverTap](https://files.readme.io/425fc186723eb961720acb338b2d91e950eb2ed01dbaa9ff9059dee0315a1e58-2025-09-08_14-23-07_1.gif) Configure Linked Content in CleverTap Configure Personalized CleverTap Campaign [](https://docs.clevertap.com/docs/weather-api#configure-personalized-clevertap-campaign) --------------------------------------------------------------------------------------------------------------------------------------- Use the configured Linked Content inside a push notification campaign to dynamically personalize the message based on each user’s local weather. To do so, perform the following steps: 1. Go to _Campaigns_, click **\+ Campaign** and select _Push Notifications_ as a messaging channel. 2. Configure the _Who_, _When_, and _Where_ sections based on qualifying requirements. 3. In the _What_ section, click **Personalization** (top-right corner). 4. Select the link content configured in the previous step [Configure Linked Content in CleverTap](doc:weather-api#configure-linked-content-in-clevertap) . 5. Map the `city` parameter in the Weather API to the appropriate user property in CleverTap (for example, `{{@Profile.city | default: 'Mumbai'}}`). and click **Apply**. ![Personalization Setup](https://files.readme.io/dd8f2cccb341f1267c3253da0f3625fd5555084da618205434512625b24cfb0d-image.png) Personalization Setup 6. Personalize the _Title_ or _Message_ field using a Liquid snippet. Following is an example where the conditions defined in the Liquid snippet use the weather API to determine which message to send based on the current weather at the user's location. Liquid {% if Linked.WeatherLookup.current.condition.text == "Sunny" %} 🌞 Get 15% off on Sunscreens! {% elsif Linked.WeatherLookup.current.condition.text == "Rain" %} 🌧️ Special deal on Umbrellas just for you! {% else %} 🌤️ Enjoy shopping with us today! {% endif %} Messages can be customized further for weather types such as Cloudy, Storm, and so on. To learn more about Liquid syntax and available personalization tags, refer to [Liquid Tags in CleverTap](doc:personalize-message-all#liquid-tags) . ![](https://files.readme.io/852c2fba0499d0f7adeafd5a58393725904706376f3e0fa8e81c035df3a817eb-image.png) 7. Click **Preview and Test** to validate output against a test profile. The following is a personalized notification sample based on the user’s local weather data, fetched dynamically using WeatherAPI. ![Push Notification](https://files.readme.io/984829e73eb6d0c324f9a76e17096d4cced23129889adf1daf5689526dfe9a44-03a0b40c77607c43a783508588903a8184a956886a79fd4aadbe48a9cf385a5d-image.png) Push Notification 8. After confirming accurate rendering, click **Publish** to launch the campaign. Once live, the campaign will automatically personalize notifications based on each user’s real-time weather data. Updated about 2 months ago * * * Ask AI --- # Amplitude Event Streaming Overview [](https://docs.clevertap.com/docs/amplitude-event-streaming#overview) =================================================================================== [Amplitude](https://amplitude.com/) is an analytics and business intelligence platform that helps make informed decisions for targeting users. This integration allows you to import events from Amplitude into CleverTap to enhance engagement. Key Benefits [](https://docs.clevertap.com/docs/amplitude-event-streaming#key-benefits) =========================================================================================== Event Streaming from Amplitude to CleverTap provides the following advantages: * **Seamless Integration**: Allows you to easily integrate in just a few steps. Once the integration is complete, data flows seamlessly from Amplitude to CleverTap in near real-time. * **Real-Time Insights**: Allows you to access real-time insights into user behavior. This includes tracking the pages users visit, the features they engage with, and how they interact with the app. * **Personalized Experiences**: Allows you to craft personalized user experiences that are relevant and engaging. For example, you can send information about a user's location or language preference and use this data to tailor their messaging or content to specific needs. * **Conversion Tracking**: Allows you to effectively measure the performance of the marketing campaigns and track user behavior throughout the funnel. For example, you can track the number of users who, after receiving a specific message from CleverTap, went on to make a purchase or complete another desired action. Keys Points to Remember [](https://docs.clevertap.com/docs/amplitude-event-streaming#keys-points-to-remember) ================================================================================================================= Remember the following when you send events to CleverTap: * Relevant limits for CleverTap events are: * CleverTap does not impose any hard limits on quantity or velocity; however, requests sent too quickly return 429 responses. Amplitude handles these automatically. * The requests must be smaller than 2MB. * Amplitude sends selected event properties and user properties with the event. Prerequisites [](https://docs.clevertap.com/docs/amplitude-event-streaming#prerequisites) ============================================================================================= * Ensure you enable this integration for every Amplitude project where you intend to utilize it. * Ensure you have the CleverTap account. Configure Amplitude for Event Streaming [](https://docs.clevertap.com/docs/amplitude-event-streaming#configure-amplitude-for-event-streaming) ================================================================================================================================================= To configure the Amplitude dashboard for Event Streaming: 1. In **Amplitude**, go to _Data_ > _Connections_ > _Catalog_. 2. Go to _Destinations_ > Event _Streaming_ and select **CleverTap**. ![Select Event Streaming ](https://files.readme.io/84bc381-SeelctCleverTap.jpg) Select Event Streaming 3. Enter a name in the _Sync Name_ field and click **Create Sync**. ![Enter a Sync Name](https://files.readme.io/477ae11-CreateSync.jpg) Enter a Sync Name The _Destination Settings_ section appears. ![Destination Settings](https://files.readme.io/22e4427-SettingsPage.jpg) Destination Settings 4. Enable the **Status** toggle. 5. Enter the CleverTap project details. You can get the details by navigating to _Settings_ > _Project_ from the dashboard: * **[CleverTap Account Id](doc:amplitude-cohort-import#project-id) **: Copy and paste the _Project ID_ from the CleverTap dashboard. * **[CleverTap Passcode](doc:amplitude-cohort-import#passcode) **: Copy and paste the _Passcode_ from the CleverTap dashboard. * **[Region](doc:amplitude-cohort-import#region) **: Enter one of the following regions: aps3, eu1, in1, sg1, mec1, or us1. 6. Under **Mappings**, from the **Amplitude Property** dropdown list, select an Amplitude user property that corresponds to your CleverTap identity. 7. Under **Send Events**, enable the **Events are sent to CleverTap** toggle. It allows you to stream events from Amplitude to CleverTap. It automatically forwards events to CleverTap when ingested in Amplitude. Events are not sent on a schedule or on demand using this integration. 8. In **Select and filter events**, choose only the events you want to send to CleverTap. CleverTap does not support [Transformed events](https://help.amplitude.com/hc/en-us/articles/5913315221915-Transformations-Retroactively-modify-your-event-data-structure#:~:text=Amplitude%20Data%27s%20transformations%20feature%20allows,them%20to%20all%20historical%20data.) . 9. (Optional) Under **Send Users**, enable the **User updates are not sent to CleverTap** toggle to send over users and their properties in real-time whenever a user is created, or the user property is updated in Amplitude. 10. Click **Save**. View Amplitude Events on the CleverTap Dashboard [](https://docs.clevertap.com/docs/amplitude-event-streaming#view-amplitude-events-on-the-clevertap-dashboard) =================================================================================================================================================================== Once the Amplitude events are streamed into CleverTap, they can be viewed on the CleverTap dashboard. To view the Amplitude events on the CleverTap dashboard: 1. Go to _Analytics_ > _Events_. 2. Under the _System Events_ drop-down, select the desired event. For example, _Signup_. 3. Click **+Filter by**. The _CT Source_ property value distinguishes events arriving from various sources into CleverTap. In this example, the CT Source value is set to _Amplitude_ for the _Signup_ event. ![Filter Amplitude Events on CleverTap Dashboard](https://files.readme.io/b77e1a9-PartnerSync.jpg) Filter Amplitude Events on CleverTap Dashboard 5. Click **View details**. > 📘 > > ### > > Supported Messaging Channels > > [](https://docs.clevertap.com/docs/amplitude-event-streaming#supported-messaging-channels) > > Amplitude events cannot be used in the following messaging channels: > > * In-App Messages > * Web Popup > * Web Exit Intent > * App Inbox > * Native Display Updated about 2 months ago * * * Ask AI --- # Generic Attribution Partner Overview [](https://docs.clevertap.com/docs/generic-attribution-partner#overview) ===================================================================================== CleverTap partners with various attribution providers that help customers to know where their users are coming from and how they should engage with them. CleverTap allows attribution partners to push the following events: * Organic attribution events * Inorganic install attribution events, and * Custom events Acceptance Criteria [](https://docs.clevertap.com/docs/generic-attribution-partner#acceptance-criteria) =========================================================================================================== Any attribution partner can integrate with our open APIs, but they must perform the following steps to be visible on the CleverTap dashboard: 1. Perform the server-side integration at their end. 2. After integrating, reach out to us at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#177e796372706576637e78796457747b726172656376673974787a) for the following: * Share the name of customers interested in the integration * Get yourself whitelisted on the CleverTap dashboard. * Share details about the type of data to be sent to CleverTap: Organic install, Inorganic install, or Custom events. 3. [Create a document](https://docs.google.com/document/d/1FNLq4Wxf9kTwT3A_My4IveonnCiG0y5LWMUX8RklFZg/edit?usp=sharing) and share it with CleverTap team in a .md format. Also, provide your company logo in the SVG format with a transparent background. The size of the logo must be _40 x 40 px_. After CleverTap tests the integration, the partner is then listed on our _Settings_ > _Partners_ page. Prerequisites for Integration [](https://docs.clevertap.com/docs/generic-attribution-partner#prerequisites-for-integration) =============================================================================================================================== The following are the prerequisites for integrating with CleverTap: * Partner dashboard must accept the following authentication parameters: Project Id, Project Token, Project Passcode, and CleverTap Region. * Client SDK must capture CleverTap identifiers. * Ability to call different CleverTap endpoints based on the CleverTap credential configuration. * Ability to differentiate between Organic and Inorganic install attribution events. Integrate with CleverTap [](https://docs.clevertap.com/docs/generic-attribution-partner#integrate-with-clevertap) ===================================================================================================================== Workflow [](https://docs.clevertap.com/docs/generic-attribution-partner#workflow) ------------------------------------------------------------------------------------- This figure explains the exact process of how the information flows from the application to the CleverTap dashboard: ![1217](https://files.readme.io/441024d-Workflow.png "Workflow.png") Get CleverTap ID [](https://docs.clevertap.com/docs/generic-attribution-partner#get-clevertap-id) ----------------------------------------------------------------------------------------------------- CleverTap uses the Device Identifier key-value parameter to attribute the partner attribution data to the right user. After integrating the CleverTap SDK, the value for the Device Identifier becomes available. If the `device_idetifier` is empty, CleverTap does not process the data. ### For Android [](https://docs.clevertap.com/docs/generic-attribution-partner#for-android) Add the following code to your Android app code: * **For SDK version 4.2.0 and above** Java cleverTapInstance.getCleverTapID(new OnInitCleverTapIDListener() { @Override public void onInitCleverTapID(final String cleverTapID) { // Callback on main thread ; } }); * **For SDK version 4.1.1 and below** Java String attributionID = cleverTapInstance.getCleverTapAttributionIdentifier(); ### For iOS [](https://docs.clevertap.com/docs/generic-attribution-partner#for-ios) Add the following code to your iOS app code: Java [CleverTap autoIntegrate]; [[PartnerSDK sharedTracker] setCustomerUserID:[[CleverTap sharedInstance] profileGetCleverTapAttributionIdentifier]]; ### For React-Native [](https://docs.clevertap.com/docs/generic-attribution-partner#for-react-native) Add the following code to your React Native app code: Java CleverTap.profileGetCleverTapAttributionIdentifier((err, res) => { const userId = res; }); API Endpoint Format for Capturing Inorganic, Organic, and Custom Events [](https://docs.clevertap.com/docs/generic-attribution-partner#api-endpoint-format-for-capturing-inorganic-organic-and-custom-events) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- To push data from your server to CleverTap, use the following API endpoint format: **API Endpoint Format** Text https://{REGION.}{ENDPOINT}/attribution?partner_name={PARTNERNAME}&event_type={TYPEOFDATA}×tamp={EPOCH VALUE}&utm_source={UTMSOURCE}&utm_medium={UTMMEDIUM}&utm_campaign={UTMCAMPAIGN}&device_identifier={CLEVERTAPID}&account_id={PROJECTID}&account_token={PROJECTTOKEN}&account_passcode={PASSCODE}&platform={Android/iOS} The following table provides information about the API endpoint parameters: | Parameter | Description | Mandatory | | --- | --- | --- | | Campaign Source (utm\_source) | Used to identify the source of your traffic. This could be a website name, search engine, newsletter name, or social network.

For example, utm\_source=google. | * For Organic and Inorganic Install: Yes
* For Custom Event: No | | Campaign Medium (utm\_medium) | Used to identify the medium used to share and access your link. This could be email, social, cost per click (cpc), or any other such method.

For example, utm\_medium=cpc. | * For Organic and Inorganic Install: Yes
* For Custom Event: No | | Campaign Name (utm\_campaign) | Used to identify a campaign or promotion tied to your link. This could be a product name, type of sale, contest name, etc.

For example, utm\_campaign=summer-sale. | * For Organic and Inorganic Install: Yes
* For Custom Event: No | | Device Identifier | Helps to identify the device to which you must map the attribution data, | Yes | | Event Type | Indicates the type of data received:

* Organic Install
* Inorganic Install
* Custom Event | Yes | | Partner Name | * Indicates the name of the attribution partner.
* Partner Name. must be whitelisted. If the Partner Name is not whitelisted, CleverTap drops the request and sends out the error to the partner. | Yes | | Account Id, Account Token, and Account Passcode | Helps validate customer account before capturing the data | Yes | | Platform | Indicates the application platform. For example, Android, iOS, React Native, etc. | Yes | | Timestamp | * Indicates the time when event occurred.
* Must be in EPOCH format.
* If you do not send the timestamp, CleverTap considers the processing time as the timestamp for that event. | No | > 📘 > > ### > > For CleverTap to accept the attribution data, it is mandatory to provide at least one of the following parameters: Campaign Source (utm\_source), Campaign Medium (utm\_medium), or Campaign Name (utm\_campaign). > > [](https://docs.clevertap.com/docs/generic-attribution-partner#for-clevertap-to-accept-the-attribution-data-it-is-mandatory-to-provide-at-least-one-of-the-following-parameters-campaign-source-utm_source-campaign-medium-utm_medium-or-campaign-name-utm_campaign) > 📘 > > ### > > Additional API Endpoint Parameter > > [](https://docs.clevertap.com/docs/generic-attribution-partner#additional-api-endpoint-parameter) > > Apart from the parameters listed in the above table, CleverTap processes the additional parameters without any validation. * **API Endpoint for Organic Install** The following is the sample API endpoint for the organic install event: Text https://api.clevertap.com/attribution?partner_name=airbridge&event_type=organic_install&utm_source=utm_google&utm_medium=gd&utm_campaign=adir&device_identifier=__android11235&account_id=W6W-797-865Z&account_token=aca-060&account_passcode=1f81b71b91d84885a898911ab8722f34&platform=android×tamp=1660717763 * **API Endpoint for Inorganic Install** The following is the sample API endpoint for the inorganic install event: Text https://api.clevertap.com/attribution?partner_name=airbirdge&event_type=inorganic_install&utm_source=utm_google&utm_medium=gd&utm_campaign=adir&device_identifier=__android11235&account_id=W6W-797-865Z&account_token=aca-060&account_passcode=1f81b71b91d84885a898911ab8722f34&platform=android×tamp=1660717763 * **API Endpoint for Custom Event** The following is the sample API endpoint for the custom event: Text https://api.clevertap.com/attribution?partner_name=airbirdge&event_type=Add_to_cart×tamp=1656317838&device_identifier=__g1234abc&items=shoes&price=12.00&account_id=W6W-797-865Z&account_token=aca-060&account_passcode=1f81b71b91d84885a898911ab8722f34&platform=android×tamp=1660717763 ### Region Mapping for API Endpoints [](https://docs.clevertap.com/docs/generic-attribution-partner#region-mapping-for-api-endpoints) This section provides a region-wise mapping of API endpoints. | Region (Data Center) | API Endpoint | URL | | --- | --- | --- | | EU (Europe) This is the default data center. | `https://api.clevertap.com/` | `https://api.clevertap.com/attribution?partner_name=airbirdge&event_type=custom&device_identifier={CLEVERTAPID}×tamp=1656317838&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | | IN (India) | `https://in1.api.clevertap.com/` | `https://in1.api.clevertap.com/attribution?partner_name=airbirdge&event_type=custom&device_identifier={CLEVERTAPID}×tamp=1656317838&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | | US (U.S.A) | `https://us1.api.clevertap.com/` | `https://us1.api.clevertap.com/attribution?partner_name=airbirdge×tamp=1656317838&event_type=custom&device_identifier={CLEVERTAPID}&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | | SG (Singapore) | `https://sg1.api.clevertap.com/` | `https://sg1.api.clevertap.com/attribution?partner_name=airbirdge&event_type=custom&device_identifier={CLEVERTAPID}×tamp=1656317838&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | | SK (South Korea) | `https://sk1.api.clevertap.com/` | `https://sk1.api.clevertap.com/attribution?partner_name=airbirdge&event_type=custom×tamp=1656317838&device_identifier={CLEVERTAPID}&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | | Indonesia | `https://aps3.api.clevertap.com` | `https://aps3.api.clevertap.com/attribution?partner_name=airbirdge&event_type=custom×tamp=1656317838&device_identifier={CLEVERTAPID}&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | | Middle East (UAE) | `https://mec1.api.clevertap.com` | `https://mec1.api.clevertap.com/attribution?partner_name=airbirdge&event_type=custom×tamp=1656317838&device_identifier={CLEVERTAPID}&platform=android&android_id=&city=Mumbai&match_type=gp_referrer` | Callback Error Codes [](https://docs.clevertap.com/docs/generic-attribution-partner#callback-error-codes) ============================================================================================================= The following table lists down the callback error codes: | Error Code | Description | | --- | --- | | 200 | Ok - Success

Indicates that the data was successfully sent to CleverTap. | | 401 | Authorization error | | 400 | Bad request.

* Case 1: {Mandatory Field} is missing
* Case 2: Partner name not whitelisted. Connect with the product team to get it whitelisted. | | 5XX | Service Unavailable. Please retry later. | **Sample Response** JSON { "status": "fail", "error": "Invalid Account Info", "code": 401 } JSON { "status": "fail", "error": "utm_source is missing", "code": 400 } FAQs [](https://docs.clevertap.com/docs/generic-attribution-partner#faqs) ============================================================================= #### Q. What attribution data is accepted by CleverTap? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-what-attribution-data-is-accepted-by-clevertap) Ans: CleverTap accepts the following three types of data from our attribution partners: * Inorganic Install Events * Organic Install Events * Custom Events For more information about these events, refer to [Types of Data](doc:attribution#types-of-data) . CleverTap accepts Inorganic install events from Attribution partners by default. Organic Install and Custom events must be enabled from the CleverTap dashboard by navigating to _Settings_ > _Partners_ page. #### Q. Where can I find the CleverTap project details? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-where-can-i-find-the-clevertap-project-details) Ans: CleverTap Project ID, Token, Passcode, and Region is available under _Settings_ > _Project_ on the CleverTap dashboard ![5724](https://files.readme.io/44d3714-Project_page.png "Project page.png") #### Q. Is there any validation API for validating credentials? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-is-there-any-validation-api-for-validating-credentials) Ans: No. Currently, CleverTap does not have an API for validating credentials. So, we recommend trimming the spaces before saving the credentials on the partner dashboard. #### Q. Any recommendation for integrating with CleverTap? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-any-recommendation-for-integrating-with-clevertap) Ans: Yes, we recommend that for Project ID, Token & Passcode, it should be a text input field accepting alphanumeric characters. For Region, we recommend a dropdown for input with the options EU, US, IN, SG & SK, defaulting to EU. #### Q. Is batching supported for API? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-is-batching-supported-for-api) Ans: No. #### Q. What are the different errors that we can encounter when performing generic partner attribution integration? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-what-are-the-different-errors-that-we-can-encounter-when-performing-generic-partner-attribution-integration) Ans: The following are the different errors that we can experience when performing this integration: * **Inorganic Installs**: Retry with an exponential back-off in case of 500X errors. * **Organic Install**: Retry with an exponential back-off in case of 500X errors. * **Custom**: Retry with an exponential back-off in case of 500X errors. * **Compulsory parameter missing or Empty**: It throws HTTP 400 and does not retry. * **Authorization error**: It throws HTTP 403 and does not retry. > 📘 > > ### > > Error 500X for More than 10 Minutes > > [](https://docs.clevertap.com/docs/generic-attribution-partner#error-500x-for-more-than-10-minutes) > > Write to [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#1a73746e7f7d687b6e737574695a79767f6c7f686e7b6a34797577) > if you observe a 500X error for more than 10 minutes or 99.5% SLA ([CleverTap System Status](https://status.clevertap.com/) > ). #### Q. When does the response timeout? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-when-does-the-response-timeout) Ans: 60 seconds. #### Q. How can I confirm that CleverTap is recording attribution events? [](https://docs.clevertap.com/docs/generic-attribution-partner#q-how-can-i-confirm-that-clevertap-is-recording-attribution-events) Ans: For organic and inorganic events, CleverTap captures the data under the _UTM Visited_ event. You can filter data by _UTM Visited_ by navigating to _Analytics_ > _Events_ from the dashboard. ![3448](https://files.readme.io/ed80aef-Events_page.png "Events page.png") For Custom events, CleverTap captures the data by adding a prefix to the event name. For example, if the partner name is _attribution partner_ and the custom event is _Checkout_, we save it as _AP\_Checkout_. Updated about 2 months ago * * * Ask AI --- # Cloud Storage * [Amazon EventBridge](doc:amazon-eventbridge) * [AWS S3](doc:data-export-to-aws-s3) * [Google Cloud Platform](doc:data-export-to-gcp) * [Microsoft Azure](https://docs.clevertap.com/docs/microsoft-azure) Updated 23 days ago * * * Ask AI --- # Microsoft Azure Overview [](https://docs.clevertap.com/docs/microsoft-azure#overview) ========================================================================= [Microsoft Azure](https://azure.microsoft.com/en-in/) , a Microsoft cloud computing platform, offers access to, management of, and development of applications and services through global data centers. The Microsoft Azure data export feature provides the capability to bulk export your CleverTap event data to Azure Blob Storage. You can use this for analysis in BI tools or storage in your data warehouse for analysis in the future. > 📘 > > ### > > Feature Availability > > [](https://docs.clevertap.com/docs/microsoft-azure#feature-availability) > > This capability is a part of the _Enterprise_, _Advanced_, and _Cutting Edge_ plan. To activate this for your account, contact your Account Manager. Setup [](https://docs.clevertap.com/docs/microsoft-azure#setup) =================================================================== The following are the two major steps involved in enabling this feature for your account: 1. [Create a Microsoft Azure Storage Account](doc:microsoft-azure#create-a-microsoft-azure-storage-account) . 2. [Create a Blob Service Container](doc:microsoft-azure#create-a-blob-service-container) . 3. [Generate a SAS Token](doc:microsoft-azure#generate-a-sas-token) . 4. [Configure Microsoft Azure Blob Container details on the CleverTap Dashboard](doc:microsoft-azure#configure-microsoft-azure-blob-container-on-clevertap-dashboard) . > 📘 > > ### > > Data Export > > [](https://docs.clevertap.com/docs/microsoft-azure#data-export) > > Once you have set up both dashboards, you can configure export from the CleverTap dashboard. For more information, refer to the following: > > * [Data Exports](doc:data-exports) > for Legacy Profile and Event Export flow > * [Profile Exports](doc:profile-exports) > for Enhanced Profile Export flow Create a Microsoft Azure Storage Account [](https://docs.clevertap.com/docs/microsoft-azure#create-a-microsoft-azure-storage-account) ----------------------------------------------------------------------------------------------------------------------------------------- To create a Microsoft Azure Storage Account: 1. Log in to your Microsoft Azure account and select _Storage Accounts_ from the left menu. 2. Click **\+ Create** to create a new storage account. ![Select Storage Account from Left Manu](https://files.readme.io/214a3e7-Select_Storage_Account_from_the_left_menu.gif) Select Storage Account from Left Manu 3. Enter the _Storage account name_, and do not modify the default settings. ![Enter Storage Account Name](https://files.readme.io/9304d54-Enter_Storage_Account_Name.png) Enter Storage Account Name 4. Click **Review** and click **Create**. The following screen displays once the storage account is created: ![Storage Account Created Successfully](https://files.readme.io/102207f-Storage_Account_created_successfully.png) Storage Account Created Successfully The storage account you created now appears under the _Storage accounts_ page. Create a Blob Service Container [](https://docs.clevertap.com/docs/microsoft-azure#create-a-blob-service-container) ----------------------------------------------------------------------------------------------------------------------- To create a Blob Service Container: 1. Navigate to the _Blobs_ menu under the _Blob Service_ section of your storage account. 2. Create **\+ Container** to create a Blob Service Container within the storage account you created in the previous section. ![Create a Blob Storage Container](https://files.readme.io/9763f96-Create_Blob_Service_Container.gif) Create a Blob Storage Container 3. Enter the _Name_ of your Blob Service Container, and do not modify the other default settings. 4. Click **Create**. ![](https://files.readme.io/9e9032e-New_Container_popup.png) Generate a SAS Token [](https://docs.clevertap.com/docs/microsoft-azure#generate-a-sas-token) ------------------------------------------------------------------------------------------------- A Shared Access Signature (SAS) Token is a Uniform Resource Identifier (URI) that provides limited access to an Azure Storage container. It is used when you want to authorize access to storage account assets within a defined time frame while keeping your storage account key confidential. For more information about SAS, refer to [Delegate access by using a SAS Token](https://learn.microsoft.com/en-gb/rest/api/storageservices/delegate-access-with-shared-access-signature) . To generate a SAS Token: 1. Select the _Container_ and click the ![](https://files.readme.io/a593067-Ellipses_icon.png) icon. 2. Select _Generate SAS_ from the dropdown list. The _Generate SAS_ window opens on the right side of the screen. ![Generate SAS Popup](https://files.readme.io/6e76239-Generate_SAS_Token.png) Generate SAS Popup 3. Enter the following details: | Field | Description | | --- | --- | | Signing method | Select **Account key** from the Signing method list. The Signing method provides secure delegated access to resources in your storage account. For more information, refer to [Types of shared access signatures](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#account-sas)
. | | Signing key | Select any one key from the following options:

* Key 1
* Key 2
. | | Stored access policy | Select the _Stored access policy_ you want to define for your storage. When defining a policy, you need to define the following: start time, expiry time, and permissions for the signature. To export data from CleverTap to Microsoft Azure, you need Read and Write permissions for the container.

When defined on a container, it grants permissions to the container itself or to the blobs that it contains. For more information, refer to [Define a stored access policy](https://learn.microsoft.com/en-us/rest/api/storageservices/define-stored-access-policy)
. | | Permissions | This is a mandatory field. Select the permission for the request made with the service SAS. To export data from CleverTap to Microsoft Azure, you need Read and Write permissions for the container. If you have already assigned the required permissions to your stored access policy, the same permissions will be assigned to the request made with the service SAS. For more information, refer to [Account SAS Permissions by Operation](https://learn.microsoft.com/en-gb/rest/api/storageservices/create-account-sas#account-sas-permissions-by-operation)
. | | Start and expiry date/time | Indicates the start and end date/time during which the blob SAS is valid. CleverTap recommends setting the expiration time to the maximum duration available. This is because you cannot export any data to the container if the expiration date has passed. For more information, refer to [Configure a SAS Expiration Policy](https://learn.microsoft.com/en-us/azure/storage/common/sas-expiration-policy?tabs=azure-portal#how-to-configure-a-sas-expiration-policy)
. | | Allowed IP address | CleverTap recommends not adding any IP address range in this field. It indicates that Microsoft will accept export requests only from the IP address or range of IP addresses defined under this field. If you still want to add the IP address(es), you must whitelist the IP addresses listed under [CleverTap IP Ranges](https://developer.clevertap.com/docs/clevertap-ip-ranges)
. | | Allowed protocols | Allowing requests over HTTPS only is recommended. This field indicates the protocols permitted for a request made with the service SAS. | 4. Click **Generate SAS token and URL**. Copy the generated SAS token and URL, as you cannot access it later. Configure Microsoft Azure Blob Container on CleverTap Dashboard [](https://docs.clevertap.com/docs/microsoft-azure#configure-microsoft-azure-blob-container-on-clevertap-dashboard) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- To add your Microsoft Azure Blob Container to Clevertap: 1. Navigate to _Settings_ > _Partners_ and click **Integrate** against Mircosoft Azure. The _Integrate analytics partner - Microsoft Azure_ window displays on the right side of the screen. ![Integrate analytics partner - Microsoft Azure](https://files.readme.io/372d7a1-MSAzure.jpg) Integrate analytics partner - Microsoft Azure 2. Click **\+ Microsoft Azure** to create a new bucket. The _Integrate Microsoft Azure Bucket_ window opens on the right side of the screen. 3. Enter the _Bucket Nickname_. 4. Select the _Azure Blob Storage Endpoint_. * Default: Enter the Blob Storage Account name. ![Default Blob Storage Account on Microsoft Azure Portal](https://files.readme.io/bb30e87-Default_Blob_Storage_Endpoint.png) Default Blob Storage Account on Microsoft Azure Portal * Custom: Add a custom domain mapped to your Azure Blob Storage Endpoint. For more information about defining a custom endpoint, refer to [Map a Custom Domain](https://learn.microsoft.com/en-gb/azure/storage/blobs/storage-custom-domain-name?tabs=azure-portal#map-a-custom-domain) . 2. Enter the container name that stores data on Azure and the SAS token we obtained in Step 4 of the Generate a SAS Token section. ![Integrate Microsoft Azure Bucket](https://files.readme.io/a27cb22-image.png) Integrate Microsoft Azure Bucket Updated 23 days ago * * * Ask AI --- # Formsuite Overview [](https://docs.clevertap.com/docs/formsuite#overview) =================================================================== [Formsuite](https://formsuite.co/) is a no-code platform that helps businesses create and embed custom forms for lead capture, user onboarding, and survey collection. With built-in integrations, conditional fields, and dynamic styling, Formsuite simplifies data collection across digital touchpoints. With the CleverTap and Formsuite integration, you can: * Collect real-time user data from forms embedded in CleverTap campaigns * Update CleverTap user profiles using Zapier workflows * Trigger journeys based on new responses * Personalize future campaigns with enriched profile data This integration captures Formsuite submissions and automatically maps them to CleverTap user properties, enabling hyper-personalized engagement based on user responses. Prerequisites for Integration [](https://docs.clevertap.com/docs/formsuite#prerequisites-for-integration) ============================================================================================================= Ensure the following before starting the integration: * An active Formsuite account with access to form sharing. * A valid CleverTap account with **Account ID** and **Passcode**. * An active Zapier account to create workflows Integrate Formsuite with CleverTap [](https://docs.clevertap.com/docs/formsuite#integrate-formsuite-with-clevertap) ======================================================================================================================= To integrate Formsuite with CleverTap, perform the following three major steps: 1. [Create and Embed a Formsuite Form](doc:formsuite#create-and-embed-formsuite-form) 2. [Create In-App Campaign in CleverTap](doc:formsuite#create-in-app-campaign-in-clevertap) 3. [Create Zap to Send Form Data to CleverTap](doc:formsuite#create-zap-to-send-form-data-to-clevertap) Create and Embed Formsuite Form [](https://docs.clevertap.com/docs/formsuite#create-and-embed-formsuite-form) ----------------------------------------------------------------------------------------------------------------- Consider a scenario where a FinTech app wants to promote a new investment product by embedding a Formsuite form in an In-App campaign to capture name, email, and interest level. They can send these responses to CleverTap via Zapier. The users can then be segmented as follows: high-interest users receive a webinar invite, medium get product details, and low enter a nurture journey. Now, build your form in Formsuite and prepare it for embedding in CleverTap. To do so, perform the following steps: 1. In your Formsuite dashboard, create a form with the following fields: * Full Name (Text) * Email Address (Email) * Investment Interest (Dropdown: High, Medium, Low) ![Create Form on Formshite dashboard](https://files.readme.io/54f77da334a8a038e17beee8b29cb4af7e1183c16d70f0c5844373cf6f36cf53-image.png) Create Form on Formshite dashboard 2. Click **Publish**, then go to the _Share_ tab and click ** Copy Code** to copy the form code. ![Create and Embed a FormSuite Form](https://files.readme.io/0ad97abba7803317dd74470b9aba2c023b4f09b4c272ed33e2014acf78391083-image.png) Create and Embed FormSuite Form Create In-App Campaign in CleverTap [](https://docs.clevertap.com/docs/formsuite#create-in-app-campaign-in-clevertap) ------------------------------------------------------------------------------------------------------------------------- Set up an In-App campaign in CleverTap to display your Formsuite form to users. To do so, perform the following steps: 1. Go to _Campaigns_ on the CleverTap dashboard, click **\+ Campaign** and select _In-App Messages_ from the list of messaging channels. ![Create In-App Campaign](https://files.readme.io/03be0be6a6a95eb8264710b0d853073f041640b3e0c528e4c5fb145a6527b4d2-image.png) Create In-App Campaign 2. Configure the following campaign settings: qualification criteria, target segment, and delivery preferences. 3. In the _What_ section, select _Custom HTML Template_ and select the _Interstitial_ layout. 4. Paste the embed code in the HTML editor copied from _Step 2_ of [Create and Embed a Formsuite Form](doc:formsuite#create-and-embed-formsuite-form) ![Set up an In-App campaign](https://files.readme.io/7529a95aca39b791b8cd098ee146b03ecd2a058e59f41448375d6dd46a14bc98-image.png) Set up an In-App campaign 5. Click **Preview & Test** to verify that the form renders correctly. Create Zap to Send Form Data to CleverTap [](https://docs.clevertap.com/docs/formsuite#create-zap-to-send-form-data-to-clevertap) ------------------------------------------------------------------------------------------------------------------------------------- Use Zapier to automate sending form responses from FormSuite to CleverTap user profiles. 1. Go to your [Zapier Dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. ![Create a Zap on Zapier Dashboard](https://files.readme.io/e5e73078a5614dec0bf4b039ccd6697ed6bb08851bf116e61d93a76b76675b34-image.png) Create a Zap on Zapier Dashboard 2. Set Formsuite as the trigger app as follows: 1. Select the Trigger Event as _New Response_. 2. Connect your Formsuite account by adding your Formsuite credentials. 3. Select the form and test the trigger. ![Set Trigger](https://files.readme.io/bdbe9389c9e4330727c316f4efa75600698cf073a9756aee8e5504abb0c9f49c-image.png) Set Trigger 3. Set CleverTap as the action app as follows: 1. Select the Action Event as _Create/Update User Profile_. ![Set CleverTap as the Action](https://files.readme.io/45a2915806d73600438255cc13563b8f14be09b01885bcf5932b18dc0a2b9643-image.png) Set CleverTap as the Action 2. Connect CleverTap using the CleverTap Account ID and Passcode. To find CleverTap project details, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . ![Connect CleverTap Account](https://files.readme.io/66d1ffebef9897504dfaccbb54b86a03bc761e28b00d50dbf5d982611a868acf-image.png) Connect CleverTap 4. Configure the Action by mapping the Formsuite data fields to CleverTap fields. For example: | CleverTap Field | Formsuite Field | | --- | --- | | Identity | Formsuite user ID / Email ID or any unique identity field corresponding to the user | | Object ID | Unique identifier for the user | | Creation Date | Date of the user’s creation in your system | | Profile Properties | JSON object of user properties (e.g., `{ "name": "John Doe", "email": "[[email protected]](https://docs.clevertap.com/cdn-cgi/l/email-protection) ", "role": "Investor", "investment_interest": "High" }`) | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/formsuite#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![](https://files.readme.io/f956929addf37d229d7285f6faad05c8ae3136c00bdf62eaa347495000231a93-image.png) 5. Click **Test & Review** to validate data mapping. You can verify if the correct user profile was updated with the correct data from the _Find People_ > _Profile Preview_ page on the CleverTap dashboard. ![Verify Data in CleverTap](https://files.readme.io/c6e4005803e53e9e41c3898104a3107b5cfb9e4310a8c17273c4589ed8d58e95-image.png) Verify Data in CleverTap Once verified, your integration is live and ready to capture and sync Formsuite responses in real time. Updated about 2 months ago * * * Ask AI --- # HubSpot Overview [](https://docs.clevertap.com/docs/hubspot-via-zapier#overview) ============================================================================ [HubSpot](https://www.hubspot.com/products/crm) , a leading CRM platform, helps businesses manage customer relationships, automate workflows, and analyze performance to drive growth and improve customer engagement. Using Zapier to integrate HubSpot with CleverTap, you can do the following: * **Automate Lead Sync**: When a new contact is added in HubSpot, [create a user profile](doc:hubspot-via-zapier#createupdate-user-profiles) in CleverTap with details such as name, email, and phone number to trigger personalized engagement campaigns. * **Keep Profile Data Updated**: When contact details (such as email or phone number) change in HubSpot, [update the user profile](doc:hubspot-via-zapier#createupdate-user-profiles) in CleverTap to ensure accurate segmentation and targeting in engagement campaigns. * **Track Contact Lifecycle Events**: When a contact performs a key action in HubSpot (for example, completes a deal or fills out a form), [upload an event](doc:hubspot-via-zapier#upload-event) in CleverTap with details such as event name, action type, and contact information. Use this event data to trigger relevant engagement campaigns or add contacts to tailored audiences for retargeting. Prerequisites for Integration [](https://docs.clevertap.com/docs/hubspot-via-zapier#prerequisites-for-integration) ====================================================================================================================== The following are the prerequisites for HubSpot: * Ensure you have access to your HubSpot account. * Ensure you have access to an active Zapier account to create the CleverTap app. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. Integrate HubSpot with CleverTap using Zapier [](https://docs.clevertap.com/docs/hubspot-via-zapier#integrate-hubspot-with-clevertap-using-zapier) ====================================================================================================================================================== The integration process involves the following two major steps: 1. [Create a Passcode on the CleverTap Dashboard](doc:hubspot-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 2. [Create/Update User Information](doc:hubspot-via-zapier#createupdate-user-profiles) . OR [Upload Event](doc:hubspot-via-zapier#upload-event) . Create a Passcode on CleverTap Dashboard [](https://docs.clevertap.com/docs/hubspot-via-zapier#create-a-passcode-on-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Profiles [](https://docs.clevertap.com/docs/hubspot-via-zapier#createupdate-user-profiles) ----------------------------------------------------------------------------------------------------------------- Consider an example where you want to automatically sync HubSpot contacts with CleverTap to trigger personalized engagement campaigns. This automation ensures that new HubSpot users are added to CleverTap while existing user profiles are updated when details change in HubSpot. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. Zapier can connect different applications. In this case, it will be HubSpot. ![Create a Zap on Zapier Dashboard](https://files.readme.io/9b71c999e832d4a3344a2216c4e72dfaacf78feabca42da8617b0ec20d049f49-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _HubSpot_ from the _App_ section. This starts the Zap when a trigger event takes place in HubSpot. 2. Select _Trigger Event_ from the dropdown list and then select _New Contact_ for this use case. 3. Select _Account_ and sign in using your HubSpot account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. From the _Configure_ section, default properties will be already defined. You can add _Additional properties_ from the dropdown. For more information about the properties provided by HubSpot, refer to [Properties](https://developers.hubspot.com/docs/guides/api/crm/properties) . 5. Click **Continue**. ![Set Up Trigger Event](https://files.readme.io/8c8e43d2ae7299e6e79b15e05341ad27d74528cd840c33403ca12f7e15724c72-hubspot_1.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Select any one record, and click **Continue with selected record**. 5. Select the Action that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Create/Update User Profile_ from the _Action event_ dropdown. This implies that whenever a new lead is generated, a new user profile is created, or an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained during the [Create a Passcode on CleverTap Dashboard](doc:hubspot-via-zapier#create-a-passcode-on-the-clevertap-dashboard) step. 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/7ebfce5b2976eb7c05e1f78da1a0ad1d2960d0240ecfa59f646c7d74b2571f21-hubbb1.1.gif) Select Action for Zap 6. **Configure the Action**. Map HubSpot data fields to CleverTap fields as follows: | **CleverTap Field** | **Description** | | --- | --- | | **Identity** | HubSpot user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Date of the user creation in HubSpot. | | **Profile Properties** | Include user properties in JSON format (for example, name, email, role, and other custom properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/hubspot-via-zapier#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/a303ee0133a36cc819514b7307040228eda352b74d549c075c8efd229f962659-hubb2.2.gif) Configure the Action 7. Click **Continue** and click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, a new user is created, or an existing user is updated on the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm the user profile has been created or updated. ![Verify user in CleverTap](https://files.readme.io/22d496be8a5e1407f768b1da28e7e73561e1f39613a71b5229193767f597293e-image.png) Verify user in CleverTap Upload Event [](https://docs.clevertap.com/docs/hubspot-via-zapier#upload-event) ------------------------------------------------------------------------------------ Consider an example where you want to track user interactions, such as new contact added, in HubSpot and sync it with CleverTap for better engagement. This automation ensures that user actions recorded in HubSpot are seamlessly uploaded to CleverTap, enabling more precise tracking and personalized engagement strategies. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. 2. **Set up a Trigger**. For this example, perform the following steps: 1. Select _HubSpot_ from the _App_ section. This starts the Zap when a trigger event takes place in HubSpot. 2. Select _Trigger Event_ from the dropdown list and select _New Deal_ in this case. 3. Select _Account_ and **Sign in** with your HubSpot account credentials. If your account does not appear in the dropdown, you can also connect a new account. 4. Click **Continue**. Under the _Configure_ section, default properties are already defined. You can add _Additional properties_ from the dropdown. For more information about the properties provided by HubSpot, refer to [Properties](https://developers.hubspot.com/docs/guides/api/crm/properties) . 5. Click **Continue**. ![Set Up Trigger Event](https://files.readme.io/82d397d156b832b034e6f6a3c436c345c57b0234cc826c5d9f2997dc6a5c3a01-h1b1.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue with selected records**. 5. **Select the Action the zap must perform** after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Upload Event_ from the _Action event_ dropdown. This implies that whenever a new event is generated, an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. For more information about how to do this, refer to _step 5 (iii)_ under [Create or Update User Profiles](doc:hubspot-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/418e2742b66486bdd58872e444adab8e40d5423da64a6e16cb9275b1b2ead993-2025-01-31_18-56-59_1.gif) Select Action for Zap 6. **Configure the Action**. Map HubSpot data fields to CleverTap fields as follows: | **CleverTap Field** | **Description** | | --- | --- | | **User ID** | HubSpot user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Event creation date. | | **Event Name** | Select a predefined event or create a custom event. You can also map the event name using the HubSpot data fields. | | **Event Properties** | Include metadata in JSON format (for example, event type, priority, event properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/hubspot-via-zapier#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/15fb9202fc85976eeec6196ee01ba320763402547310a93c3309eeb879ec9389-2025-01-31_18-58-36_1.gif) Configure the Action 7. Click **Continue**. Click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm if the event has been logged. ![Verify Events in CleverTap](https://files.readme.io/97691b0eb7a10b805c2f2ee8f7bdc6afe85fc94f39d0a43e6e8d04500e553eb6-image.png) Verify Events in CleverTap Updated about 2 months ago * * * Ask AI --- # LeadSquared Import Overview [](https://docs.clevertap.com/docs/leadsquared-import#overview) ============================================================================ [LeadSquared](https://www.leadsquared.com/) lets you export lead data into CleverTap, enabling automated journey triggers and enriched user profiles. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/leadsquared-import#support-for-integration) > > This integration is managed and continuously improved by LeadSquared. The CleverTap and LeadSquared integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [LeadSquared](https://docs.clevertap.com/cdn-cgi/l/email-protection#d9aaaca9a9b6abad99b5bcb8bdaaa8acb8abbcbdf7bab6b4) > for support and resolution. Import Lead Data from LeadSquared to CleverTap [](https://docs.clevertap.com/docs/leadsquared-import#import-lead-data-from-leadsquared-to-clevertap) ======================================================================================================================================================== To automate pushing lead data from LeadSquared into CleverTap. To do so, follow these steps: 1. [Install the Push Data to CleverTap Connector](doc:leadsquared-import#install-the-push-data-to-clevertap-connector) 2. [Generate a Webhook URL in LeadSquared](doc:leadsquared-import#generate-a-webhook-url-in-leadsquared) 3. [Create Automation in LeadSquared](doc:leadsquared-import#create-automation-in-leadsquared) Install the Push Data to CleverTap Connector [](https://docs.clevertap.com/docs/leadsquared-import#install-the-push-data-to-clevertap-connector) ---------------------------------------------------------------------------------------------------------------------------------------------------- Install the Push Data to CleverTap connector to send lead data from LeadSquared. To do so, follow these steps: 1. Go to _Apps_ > _Apps Marketplace_ in LeadSquared. 2. Search for _Push Data to CleverTap_ and click **Install**. 3. Click **Configure** and set access: * By user roles or advanced user-level logic. ![User-level settings](https://files.readme.io/f1ae8f98942673fb33fafe0ed79d60e1e85a077b09d4e50a9ced633585e3dc7f-950fcaf0-349c-42d3-9b47-9121cf96aebb.gif) User-level settings 4. Click **Save Details**. Generate a Webhook URL in LeadSquared [](https://docs.clevertap.com/docs/leadsquared-import#generate-a-webhook-url-in-leadsquared) -------------------------------------------------------------------------------------------------------------------------------------- Generate a webhook URL in LeadSquared to send lead data to CleverTap during automated workflows. To do so, follow these steps: 1. Go to _Apps_ > _Push Data to CleverTap_. ![Push Data to CleverTap](https://files.readme.io/62628a60b3492df7c6b5f9c6331ad62b5303f53e1db531ececc0888905a75eda-d0840152-8197-4b77-b7fd-74a2d465cbe4.gif) Push Data to CleverTap 2. Configure basic settings: | Property | Description | | --- | --- | | CleverTap Account ID | Locate the Project ID under _Settings_ > _Project_ from the CleverTap dashboard. | | CleverTap Passcode | Locate the Passcode under _Settings_ > _Project_ from the CleverTap dashboard. For more information, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode)
. | | Lead Source | Origin of leads (for example, email campaign). | | Unique Search Criteria | Key identifier for de-duplication. | | Default Country Code | Default country prefix for phone numbers. | | User to Notify on Failure | Contact for sync issues. | | Enable Notification | Enable email alerts. | 3. Click **Save & Next**. 4. On the **Mapping** screen: * Review and update default mappings. * Set defaults where necessary. * Mark key fields and add custom ones if required. 5. Click **Save & Next**. 6. Copy the generated webhook URL. > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/leadsquared-import#note) > > Sync behavior is set to "_Do Nothing_" by default. It is recommended not to change it. 7. Go to _More Actions_ > _Enable Sync Job_ to start data flow. Create Automation in LeadSquared [](https://docs.clevertap.com/docs/leadsquared-import#create-automation-in-leadsquared) ---------------------------------------------------------------------------------------------------------------------------- Set up automation workflows in LeadSquared to sync leads with CleverTap based on triggers. To do so, follow these steps: 1. Go to _Workflow_ > _Automation_. 2. Create a new automation and set a trigger (for example, _New Lead_). 3. Add a _Webhook_ action and enter the following details: | Field | Description | | --- | --- | | Name | For example, "CleverTap Lead Verification" | | URL | Paste the URL copied in _Step 6_ of [Generate a Webhook URL in LeadSquared](doc:leadsquared-import#generate-a-webhook-url-in-leadsquared)
. (remove `https://` if instructed) | | Content Type | `application/json` | | Save Response | Optional | | Notify on Failure | Select the user to notify | | Retry Count | Set the number of retry attempts | ![Create Automation in LeadSquared](https://files.readme.io/cafa8c56cbfc303a4aa63f94bf804a38585e6ed913e79c5d5ebc52140f5a7160-e67f9d6f-9ed7-476e-837f-eb5555485ff9.gif) Create Automation in LeadSquared 4. Click **Save** and **Publish**. Once published, the automation will ensure that lead data is pushed from LeadSquared to CleverTap based on the configured trigger. Updated about 2 months ago * * * Ask AI --- # Swipe Pages Overview [](https://docs.clevertap.com/docs/swipe-pages#overview) ===================================================================== [Swipe Pages](https://swipepages.com/) is a no-code landing page builder that helps create high-converting, mobile-optimized pages using a drag-and-drop interface. You can integrate Swipe Pages with CleverTap using Zapier to capture lead data from landing page forms and create or update user profiles in CleverTap. With the CleverTap and Swipe Pages integration, you can: * Automatically create or update user profiles in CleverTap from Swipe Pages form submissions. * Trigger welcome emails or onboarding campaigns when a user signs up. * Add users to specific journeys, such as event reminders or product interest flows. * Segment users based on form inputs (for example, topic of interest) and send personalized follow-ups. Prerequisites for Integration [](https://docs.clevertap.com/docs/swipe-pages#prerequisites-for-integration) =============================================================================================================== The following are the prerequisites for integrating Swipe Pages with CleverTap via Zapier: * A Swipe Pages account with access to create landing pages and generate API keys. * An active Zapier account. * A CleverTap account with **Account ID** and **Passcode**. Integrate Swipe Pages with CleverTap [](https://docs.clevertap.com/docs/swipe-pages#integrate-swipe-pages-with-clevertap) ============================================================================================================================= The integration process involves the following three major steps: 1. [Create Passcode on CleverTap Dashboard](doc:swipe-pages#create-passcode-on-clevertap-dashboard) 2. [Create Landing Page in Swipe Pages](doc:swipe-pages#create-landing-page-in-swipe-pages) 3. [Configure Zapier in Swipe Pages](doc:swipe-pages#configure-zapier-in-swipe-pages) Create Passcode on CleverTap Dashboard [](https://docs.clevertap.com/docs/swipe-pages#create-passcode-on-clevertap-dashboard) --------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API request must include the Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create Landing Page in Swipe Pages [](https://docs.clevertap.com/docs/swipe-pages#create-landing-page-in-swipe-pages) ------------------------------------------------------------------------------------------------------------------------- To create a landing page in Swipe Pages where form submissions will be collected. To do so, perform the following steps: 1. Log in to your [Swipe Pages](https://app.swipepages.com/signup) dashboard. 2. Go to _Integrations_ > _Landing Pages_ from the left panel. 3. Click **Create New Page** to create your landing pages. Refer to [Creating a new landing page in Swipe Pages](https://docs.swipepages.com/en/articles/4761649-creating-a-new-landing-page) . ![Create Landing Page in Swipe Pages](https://files.readme.io/eb23182763d908e0300e2c6c4731698fa791677d9bd8c11358b0088393a867ea-image.png) Create a Landing Page in Swipe Pages Configure Zapier in Swipe Pages [](https://docs.clevertap.com/docs/swipe-pages#configure-zapier-in-swipe-pages) ------------------------------------------------------------------------------------------------------------------- Zapier acts as the automation bridge between Swipe Pages and CleverTap. To enable this connection, you must configure Zapier within Swipe Pages. To do so, perform the following steps: 1. Go to _Integrations_ from the left panel on the Swipe Page dashboard 2. Click on **Zapier** and click **Create a New Zap**. ![Configure Zapier in Swipe Pages](https://files.readme.io/dd48f2d3928df662f5ee7e13cab401695bfe39b8e735874b566828eefd4083fc-image.png) Configure Zapier in Swipe Pages 3. To create the connection, you will be provided with a Swipe Pages API key here. 4. Copy it and keep it safe. Now that Zapier is configured in Swipe Pages, proceed further to set up the Zapier workflow with [Swipe Pages as the trigger](doc:swipe-pages#set-up-swipe-pages-trigger) and [CleverTap as the action](doc:swipe-pages#set-up-clevertap-action) . ### Set Up Swipe Pages Trigger [](https://docs.clevertap.com/docs/swipe-pages#set-up-swipe-pages-trigger) A trigger determines when your Zap will run. In this case, the trigger is a form submission on your Swipe Pages landing page. To set up swipe pages as a trigger, perform the following steps: 1. Set the **Trigger App** as _Swipe Pages_. 2. Select the _Trigger Event_. In this case, select _New Form Submission_ from the dropdown. This ensures the Zap is triggered every time a user submits a form on your Swipe Pages. ![Set Up Swipe Pages Trigger](https://files.readme.io/98b0004f3361e4ef45f170e4ccab762a3d9efa615406798032a6bb0536810d1a-image.png) Set Up Swipe Pages Trigger 3. Connect your Swipe Pages account using the previously generated **API Key** from _step 4_ of [Configure Zapier in Swipe Pages](doc:swipe-pages#configure-zapier-in-swipe-pages) . 4. Select the specific form whose submissions you want to capture. ![Select Record](https://files.readme.io/77b1a7d9e5b3a2fbc906749f021fd6629dc8e4c95d8c33f6fab5e581eca8e891-image.png) Select Record > 📘 > > #### > > Note > > [](https://docs.clevertap.com/docs/swipe-pages#note) > > Submit a test form on Swipe Pages to fetch sample data during setup. ### Set Up CleverTap Action [](https://docs.clevertap.com/docs/swipe-pages#set-up-clevertap-action) Once the trigger is defined, you need to configure what happens in CleverTap. This is done by setting up an action in Zapier. To set up CleverTap as an action, perform the following steps: 1. From the _Action App_, select _CleverTap_. ![CleverTap Action](https://files.readme.io/08e73fd34488daeecdb2da873d4a3603d8d60244da52e7de2d5a483a27987499-image.png) CleverTap Action 2. Select one of the following **Action Events**: * _Create/Update User Profile_ * _Upload Event_ ![Select Action for Zap](https://files.readme.io/4903bc675ec319b63eb13e8c8f1ff835fa184285b74afd1f3374cc8a212e9636-image.png) Select Action for Zap 3. Connect your CleverTap account by entering **Account ID**, **Passcode**, and **Region** of your CleverTap account. For detailed steps, refer to [Create a Passcode on the CleverTap Dashboard](doc:swipe-page#create-passcode-on-clevertap-dashboard) . ![Connect your CleverTap account](https://files.readme.io/b249b681569c721f0d90fa2b828b02f9630ac2f9fe80a59f764063453e0d1b3f-image.png) Connect your CleverTap account 4. Map Swipe Pages data to CleverTap fields: | **CleverTap Field** | **Description** | | --- | --- | | Identity / Object ID | Unique identifier (email, phone, or internal user ID) | | Creation Date | (Optional) Timestamp of form submission | | Profile Properties | JSON object of additional attributes (for example, `name`, `email`) | | Event Name | (If uploading event) for example, `submitted_landing_form` | | Event Properties | JSON of contextual details (for example, `page`, `campaign`) | > 🚧 > > #### > > Map Identity and Object ID > > [](https://docs.clevertap.com/docs/swipe-pages#map-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/6bd1cbfe817149f9bfb66dee8f27c341c8cd38cf03ccf28fd158cbf0b5e02088-Screenshot_2025-06-24_at_2.28.31_PM.png) Configure the Action 5. Click **Test & Review** to validate the setup. 6. Check your CleverTap dashboard for the test event. ![Verify Events in CleverTap](https://files.readme.io/045e57607db544d69b46f0dca5b31fceea96f7c84a122b0ab912bca075f0b8f1-9d5935f4-d6eb-410a-9309-e1d8a5305ac6.png) Verify Events in CleverTap 7. Click **Publish** to activate the Zap. Verify Integration Results [](https://docs.clevertap.com/docs/swipe-pages#verify-integration-results) ========================================================================================================= After publishing the Zap: * If you selected _Upload Event_, CleverTap logs a new event each time a form is submitted on your Swipe Pages site. Events appear in the _Events_ section of the CleverTap dashboard. * If you selected _Upload/Update User Profile_, CleverTap uses the `Identity` field to determine whether to create or update a user profile. This automation enables you to seamlessly capture form data into CleverTap, allowing for personalized engagement without manual intervention on the CleverTap dashboard. FAQs [](https://docs.clevertap.com/docs/swipe-pages#faqs) ============================================================= ### What happens if I do not map the required fields? [](https://docs.clevertap.com/docs/swipe-pages#what-happens-if-i-do-not-map-the-required-fields) Not mapping required fields may result in incomplete data being transferred or failure to update user profiles and events correctly. Updated about 1 month ago * * * Ask AI --- # Pipedrive Overview [](https://docs.clevertap.com/docs/pipedrive-via-zapier#overview) ============================================================================== [Pipedrive](https://www.pipedrive.com/) is a sales CRM and pipeline management tool that helps businesses track and manage leads efficiently. It enables sales teams to capture and store lead details, track deal progress, and automate workflows. By integrating Pipedrive with CleverTap via Zapier, businesses can automatically transfer lead information, update user profiles in real-time, and trigger personalized engagement campaigns based on sales activities. The following are some of the use cases that the CleverTap Pipedrive integration can address: * **Automatically Sync New Leads**: When a new deal is added to Pipedrive, [create a user profile](doc:pipedrive-via-zapier#createupdate-user-profiles) in CleverTap with details such as name, email, phone number, and deal information. * **Update User Profiles with Deal Progress**: When a deal moves to a new stage in Pipedrive, [update the user profile](doc:pipedrive-via-zapier#createupdate-user-profiles) in CleverTap with the latest status and insights. * **Trigger Personalized Campaigns**: When a deal reaches a specific stage, [upload an event](doc:pipedrive-via-zapier#upload-event) in CleverTap with event details like deal value, expected close date and pipeline stage to trigger automated engagement workflows. Prerequisites for Integration [](https://docs.clevertap.com/docs/pipedrive-via-zapier#prerequisites-for-integration) ======================================================================================================================== The following are the prerequisites for Pipedrive: * Ensure you have access to your Pipedrive account. * Ensure you have an active Zapier account to create the CleverTap app. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. Integrate Pipedrive with CleverTap using Zapier [](https://docs.clevertap.com/docs/pipedrive-via-zapier#integrate-pipedrive-with-clevertap-using-zapier) ============================================================================================================================================================ The integration process involves the following two major steps: 1. [Create a Passcode on the CleverTap Dashboard](doc:pipedrive-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 2. [Create/Update User Information](doc:pipedrive-via-zapier#createupdate-user-profiles) . OR [Upload Event](doc:pipedrive-via-zapier#upload-event) Create a Passcode on the CleverTap Dashboard [](https://docs.clevertap.com/docs/pipedrive-via-zapier#create-a-passcode-on-the-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------ CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Profiles [](https://docs.clevertap.com/docs/pipedrive-via-zapier#createupdate-user-profiles) ------------------------------------------------------------------------------------------------------------------- Consider an example where you want to automatically sync new deals created in Pipedrive with CleverTap to trigger personalized engagement campaigns. This automation ensures that new deals in Pipedrive are added to CleverTap while existing deals are updated when details change. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. ![Create a Zap on Zapier Dashboard](https://files.readme.io/9b71c999e832d4a3344a2216c4e72dfaacf78feabca42da8617b0ec20d049f49-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _Pipedrive_ from the _App_ section. This starts the Zap when a trigger occurs on Pipedrive. 2. Select _Trigger Event_ from the dropdown list and then select _New Deal_ for this use case. 3. Select _Account_ and sign in using your Pipedrive account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. ![Set up a Trigger](https://files.readme.io/025aad465c9d8525aefe051b3e00527a19be288fbc9c3783a580bcfa86d91ded-2025-02-05_21-11-27_1.gif) Set up a Trigger 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. After testing the trigger, you will see details of pulled records similar to the image below. ![Selected Record](https://files.readme.io/4228c30c6ec1a9d3459aa459992cb5956cc5d602646ad2542187f960b00453ea-image.png) Selected Record 5. Select any one record, and click **Continue with selected record**. 6. **Select the Action** that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Create/Update User Profile_ from the Action event dropdown. This implies that whenever a new deal is generated, a new user profile is created, or an existing user profile is updated with the new information. 3. Select Account to connect the CleverTap account. The Zapier window opens. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained during the [Create a Passcode on CleverTap Dashboard](doc:pipedrive-via-zapier#create-a-passcode-on-the-clevertap-dashboard) step. 4. Click **Continue** after successfully connecting your account. ![Select the Action for zap](https://files.readme.io/fc717f4c26a1621b3e2a0f2f4c5c00f00f5241fb10d22c8425c3b03a31c3dac9-2025-02-05_21-28-45_1.gif) Select the Action for Zap 7. **Configure the Action**. Map Pipedrive data fields to CleverTap fields as follows: | **CleverTap Field** | **Description** | | --- | --- | | **Identity** | Pipedrive user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Date of the user creation in Pipedrive. | | **Profile Properties** | Include user properties in JSON format (for example, name, email, role, and other custom properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/pipedrive-via-zapier#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/b137ee8d99e66d05b6ecf7509309bbff429e8dd34daef21bed9e10937c91323e-image.png) Configure the Action 8. Click **Continue** and click **Test Step** to test the zap after mapping the files. 9. Click **Publish**. After publishing this zap, a new user is created, or an existing user is updated on the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm the user profile has been created or updated. ![Verify user in CleverTap](https://files.readme.io/22d496be8a5e1407f768b1da28e7e73561e1f39613a71b5229193767f597293e-image.png) Verify user in CleverTap Upload Event [](https://docs.clevertap.com/docs/pipedrive-via-zapier#upload-event) -------------------------------------------------------------------------------------- Consider an example where you want to track key deal activities in CleverTap. This automation ensures that sales actions taken in Pipedrive are recorded in CleverTap, enabling better tracking and personalized engagement strategies. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. 2. **Set up a Trigger**. For this example, perform the following steps: 1. Select _Pipedrive_ as the App. This starts the Zap when a trigger event takes place in Pipedrive. 2. Select _Trigger Event_ from the dropdown list and select _Updated Deal Stage_ in this case. 3. Select _Account_ and sign in using your Pipedrive account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. ![Set up a Trigger](https://files.readme.io/d9e074e4b07540b143f61dc71ec4da4e1bcc9e42451b2c6f58f63c42b0102c24-2025-02-05_21-44-34_1.gif) Set up a Trigger 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. After testing the trigger, you will see details of pulled records similar to the image under step 4 of [Create/Update User Profiles](doc:pipedrive-via-zapier#createupdate-user-profiles) . Select any one record, and click **Continue with selected record**. 5. **Select the Action** the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Upload Event_ from the _Action event_ dropdown. This implies that whenever a new event is generated, an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. For more information about how to do this, refer to _step 6 (iii)_ under [Create or Update User Profiles](doc:pipedrive-via-zapier#createupdate-user-profiles) . 4. Click **Continue** after successfully connecting your account. ![Select the Action](https://files.readme.io/fed63e6f70382484136efce39f42f47753018a2caf535a70778a13e91637a8e5-2025-02-05_21-52-39_1.gif) Select the Action 6. **Configure the Action**. Map Pipedrive data fields to CleverTap fields as follows: | **CleverTap Field** | **Pipedrive Field** | | --- | --- | | **User ID** | Pipedrive user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Event creation date. | | **Event Name** | Select a predefined event or create a custom event. You can also map the event name using the Pipedrive data fields. | | **Event Properties** | Include metadata in JSON format (for example, event type, priority, event properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/pipedrive-via-zapier#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/4cef3c097583c00da8e273e8a493dd9411e6937bc24897765bed10f1a5f57e9d-image.png) Configure the Action 7. Click **Continue**. Click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the Identity field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm if the event has been logged. ![Verify Events in CleverTap](https://files.readme.io/3a99d9007e84cf54336a785f0e1482249157b58c9d03b37f8e5ea33cd1d4fb5c-image.png) Verify Events in CleverTap FAQs [](https://docs.clevertap.com/docs/pipedrive-via-zapier#faqs) ====================================================================== ### What happens if I do not map the required fields? [](https://docs.clevertap.com/docs/pipedrive-via-zapier#what-happens-if-i-do-not-map-the-required-fields) Not mapping required fields may result in incomplete data transfer or failure to update user profiles and events correctly. Updated about 2 months ago * * * Ask AI --- # HighTouch Overview [](https://docs.clevertap.com/docs/hightouch#overview) =================================================================== [HighTouch](https://hightouch.com/) , a modern data integration platform, enables you to sync customer, product, or proprietary data from your warehouse to any app you choose. The CleverTap and HighTouch integration allows seamless syncing of customer data from your data warehouse to CleverTap. This ensures data consistency and helps deliver superior customer experiences. With this integration, you can: * Sync user data from your data warehouse into CleverTap to create targeted, personalized campaigns. * Sync customer events from HighTouch to CleverTap, ensuring your events are always up-to-date and consistent. * Enhance user engagement by integrating data from other touchpoints, helping you deliver richer, more relevant experiences. Prerequisites for Integration [](https://docs.clevertap.com/docs/hightouch#prerequisites-for-integration) ============================================================================================================= The following are the prerequisites for integration with HighTouch: * Ensure you have access to your HighTouch account. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. > 🚧 > > ### > > Support For Integration > > [](https://docs.clevertap.com/docs/hightouch#support-for-integration) > > This integration is managed and continuously improved by HighTouch. The CleverTap and HighTouch integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [HighTouch](https://docs.clevertap.com/cdn-cgi/l/email-protection#c5b6b0b5b5aab7b185adaca2adb1aab0a6adebacaa) > for support and resolution. Integrate HighTouch with CleverTap [](https://docs.clevertap.com/docs/hightouch#integrate-hightouch-with-clevertap) ======================================================================================================================= The integration process involves the following three steps: 1. [Set Up CleverTap As Destination](doc:hightouch#set-up-clevertap-as-destination) . 2. [Create a Model to Sync Data with CleverTap](doc:hightouch#create-a-model-for-data-synchronization) . 3. [Synchronize Data with CleverTap](doc:hightouch#synchronize-data-with-clevertap) . Set Up CleverTap As Destination [](https://docs.clevertap.com/docs/hightouch#set-up-clevertap-as-destination) ----------------------------------------------------------------------------------------------------------------- Configure CleverTap to HighTouch for data transfer and enable data flow between them. 1. Go to _Integrations_ > _Destination_ on the HighTouch dashboard. 2. Select **Add destination**, search for _CleverTap_ and select it as your _Destination_. 3. Enter the following details: | Field | Description | | --- | --- | | Account ID | Locate the Project ID under _Settings_ > _Project_. from the CleverTap | | Account Passcode | Locate the Passcode under _Settings_ > _Project_ from the CleverTap dashboard. For more information, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode)
. | | Region | Locate _Region_ for the API endpoint you want to select under Settings > Project. To find the API endpoint for your region, refer to, refer to [API endpoints based on your data center region](https://developer.clevertap.com/docs/idc#api)
. | 4. Test the connection, assign a name to this _Destination_, and click **Finish** to save the configuration. ![Set Up CleverTap As Destination](https://files.readme.io/c08f3c7825ea39b3c9417294484aa599a3961c1913a17c6accb61bbe01b31215-hig_gg.gif) Create Destination Create a Model for Data Synchronization [](https://docs.clevertap.com/docs/hightouch#create-a-model-for-data-synchronization) --------------------------------------------------------------------------------------------------------------------------------- Create a model to define how data is prepared and structured before syncing it to CleverTap as the destination. To do so: 1. Go to _Activations_ > _Models_ and click **Add Model**. 2. Select the required Data Source and define and finalize the model. For more information, refer to [Creating Models](https://hightouch.com/docs/models/creating-models) . ![Add Model](https://files.readme.io/e16b2e36b8c68a20a5894eaa27af0d1b035e3f24fa965ca46d8415ccdabb1723-hightouch_gif_1.gif) Add Model Synchronize Data with CleverTap [](https://docs.clevertap.com/docs/hightouch#synchronize-data-with-clevertap) ----------------------------------------------------------------------------------------------------------------- With your model and destination ready, you can sync data to CleverTap. For example, in an e-commerce use case, you can configure and synchronize transaction data, such as the _Charged_ event. This ensures accurate data flow and improves user engagement. ### Sync Data [](https://docs.clevertap.com/docs/hightouch#sync-data) 1. **Set Up the Sync** 1. Go to _Activations_ > _Models_ from the HighTouch dashboard and locate the model you created. 2. Click **Add Sync**. ![Add Sync](https://files.readme.io/9e1b91bb7274fcb365f908560377d5e89351349a8113f2e7323accab4b5f866c-image.png) Add Sync 2. **Select CleverTap and Data Type** 1. Select _CleverTap_ as your sync destination. 2. Choose the type of data to sync: | Sync Option | Description | Examples | | --- | --- | --- | | **Objects** | Sync user profiles with personal and behavioural attributes. | Name, Email, Phone Number | | **Events** | Record user actions such as purchases or app interactions as events. | Transaction events such as Charged events. | | **Segments** | Maintain user groups dynamically for campaigns or targeting. | Excluded or targeted audiences. | ![Configure Sync to CleverTap](https://files.readme.io/23c9781f8c7f732f7c26acfaef65998a3f29c91b72a32b4ab063b0945decb880-image.png) Configure Sync to CleverTap 3. **Map Data Fields** 1. Match fields from your source to CleverTap: * `transaction_id` → `txnId` * `amount` → `amount` * `currency` → `currency` * `items` → `items` (e.g., `[{"name": "Product 1", "price": 50.25, "quantity": 1}]`) 2. Add custom fields such as `payment_method` for more insights. 3. Match your primary key (for example, `user_id`) with CleverTap’s Global Object ID. Enable profile creation for unmatched users. ![Mapping fields](https://files.readme.io/73a259039a9d9d0cb9ce54173b966a8c63b89afe46bdf8ccf1e41d6b48ecd07e-image.png) Mapping Fields 4. **Test the Sync**. Run a test to ensure: * Correct mapping of user profiles and data fields. * Proper formatting for complex fields such as `items`. * No errors during sync. ![Testing Sync](https://files.readme.io/1074693541a648cb1377f7534a6a91af41a1757f26114b6f5694b21ac715858d-image.png) Testing Sync 5. **Verify Data in CleverTap**. Log in to the CleverTap dashboard and verify the following: * Synced events under **Events** (for example, Charged). * Accurate mapping of fields such as `txnId`, `amount`, and `items`. * Events linked to the correct user profiles. ![Verify in CleverTap](https://files.readme.io/f460d33d5dac404d1e6cd8f8efc871fea195f5fa561077dc5c8993403d404447-image.png) Verify in CleverTap Troubleshooting and Best Practices [](https://docs.clevertap.com/docs/hightouch#troubleshooting-and-best-practices) ======================================================================================================================= Here are the best practices to ensure smooth integration and optimize the performance of your CleverTap and HighTouch integration: * Double-check credentials for both HighTouch and CleverTap connections. * Ensure accurate field mapping to avoid data inconsistencies. * Always test sync configurations before executing live syncs. Updated about 2 months ago * * * Ask AI --- # Salesforce CRM Overview [](https://docs.clevertap.com/docs/salesforce-via-zapier#overview) =============================================================================== [Salesforce](https://www.salesforce.com/) is a leading CRM platform that helps businesses manage customer relationships, track sales activities, and automate workflows. By integrating Salesforce with CleverTap via Zapier, businesses can automatically sync customer data, track engagement, and trigger personalized campaigns based on sales interactions. The following are some of the use cases that the CleverTap-Salesforce integration can address: * **Automatically Sync Salesforce Contacts**: When a new contact is added to Salesforce, [create a user profile](doc:salesforce-via-zapier#createupdate-user-profiles) in CleverTap with details such as name, email, phone number, and lead status. * **Update User Profiles with Sales Activities**: When a lead progresses to a new stage in the sales pipeline (For example, from Prospect to Qualified Lead or Negotiation to Closed-Won) in Salesforce, [update the user profile](doc:salesforce-via-zapier#createupdate-user-profiles) in CleverTap with the latest insights. * **Trigger Personalized Campaigns**: When a deal is closed in Salesforce, [upload an event](doc:salesforce-via-zapier#upload-event) in CleverTap with event details such as deal value, close date, and salesperson information to trigger automated engagement workflows. Prerequisites for Integration [](https://docs.clevertap.com/docs/salesforce-via-zapier#prerequisites-for-integration) ========================================================================================================================= The following are the prerequisites for Salesforce: * Ensure you have admin access to your Salesforce account. * Ensure you have an active Zapier account to create the CleverTap app. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. Integrate Salesforce with CleverTap using Zapier [](https://docs.clevertap.com/docs/salesforce-via-zapier#integrate-salesforce-with-clevertap-using-zapier) =============================================================================================================================================================== The integration process involves the following two major steps: 1. [Create Passcode on CleverTap Dashboard](doc:salesforce-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 2. [Create/Update User Profiles](doc:salesforce-via-zapier#createupdate-user-profiles) . OR [Upload Event](doc:salesforce-via-zapier#upload-event) . Create Passcode on CleverTap Dashboard [](https://docs.clevertap.com/docs/salesforce-via-zapier#create-passcode-on-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------- CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Profiles [](https://docs.clevertap.com/docs/salesforce-via-zapier#createupdate-user-profiles) -------------------------------------------------------------------------------------------------------------------- Consider an example where you want to automatically sync new Salesforce contacts with CleverTap to trigger personalized engagement campaigns. This automation ensures that new contacts in Salesforce are added to CleverTap while existing profiles are updated when details change. To do so, perform the following steps: 1. Log into the [Zapier Dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. ![Create a Zap on Zapier Dashboard](https://files.readme.io/f6a83adf175766819e979676ed2e40166e63233b96d64c3d1735ed2237ef43b7-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _Salesforce_ from the _App_ dropdown. This starts the Zap when a trigger occurs on Salesforce. 2. Select _Trigger Event_ from the dropdown list and then select _New contacts_ for this use case. 3. Select _Account_ and sign in using your Salesforce account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. ![Set up a Trigger](https://files.readme.io/49910d8377cf69dde60e41917fcf0f4f8bc3094d822ee80b81a79b2ad564a051-2025-02-06_02-08-49_1.gif) Set up a Trigger 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Select relevant Salesforce objects to monitor and click **Continue**. 5. **Select the Action** that the zap must perform after the trigger occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Create/Update User Profile_ from the _Action event_ dropdown. This implies that whenever a new contact is added in Salesforce, a new user profile is created, or an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained during the [Create a Passcode on CleverTap Dashboard](doc:salesforce-via-zapier#create-a-passcode-on-the-clevertap-dashboard) step. 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/3ab5447a6bfe7c10eea3c4c2b29b5e5380b2f868ffe471a50717c245346afaec-2025-02-06_02-20-52_1.gif) Select Action for Zap 6. **Configure the Action**. Map Salesforce data fields to CleverTap fields as follows: | **CleverTap Field** | **Salesforce Field** | | --- | --- | | **Identity** | Salesforce user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Date of the user creation in Salesforce. | | **Profile Properties** | Include user properties in JSON format (such as name, email, role, and other custom properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/salesforce-via-zapier#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/6dd75773f6f0c046b67da9909e18de805a3769e683136af8329b65a03cfe6a2e-image.png) Configure the Action 7. Click **Continue** and click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, a new user is created, or an existing user is updated on the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm the user profile has been created or updated. ![Verify user in CleverTap](https://files.readme.io/22d496be8a5e1407f768b1da28e7e73561e1f39613a71b5229193767f597293e-image.png) Verify user in CleverTap Upload Event [](https://docs.clevertap.com/docs/salesforce-via-zapier#upload-event) --------------------------------------------------------------------------------------- Consider an example where you want to track key sales activities or the status of sales records in CleverTap, this automation helps by seamlessly syncing sales interactions from Salesforce to CleverTap. This enables real-time tracking, better visibility into customer touchpoints, and the ability to trigger personalized engagement strategies based on sales progress. To do so, perform the following steps: 1. Log into the [Zapier Dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. 2. **Set up a Trigger**. For this example, perform the following steps: 1. Select _Salesforce_ as the _App_. This starts the Zap when a trigger event takes place in Salesforce. 2. Select _Trigger Event_ from the dropdown list and select _Updated Record_ in this case. 3. Select _Account_ and sign in using your Salesforce account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. ![Set up a Trigger](https://files.readme.io/2d6934cb8569b57a5d5be4ab64ee390a6418e94ac98a7d4067be6c3b65194117-2025-02-06_02-29-51_1.gif) Set up a Trigger 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue**. 5. **Select the Action** that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ dropdown. 2. Select _Upload Event_ from the _Action event_ dropdown. This implies that whenever a record is updated, an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. For more information about how to do this, refer to _step 5 (iii)_ under [Create or Update User Profiles](doc:salesforce-via-zapier#createupdate-user-profiles) . 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/4a721610d94c496a9da6bc85f50a26fb922907a5a0137ce1bf208bd0fecb121c-2025-02-06_02-37-47_1.gif) Select Action for Zap 6. **Configure the Action**. Map Salesforce data fields to CleverTap fields as follows: | **CleverTap Field** | **Salesforce Field** | | --- | --- | | **User ID** | Salesforce user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Event creation date. | | **Event Name** | You can select a predefined event or create a custom event. You can also map the event name using the Salesforce data fields. | | **Event Properties** | Include metadata in JSON format (for example, event type, priority, event properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/salesforce-via-zapier#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/883a5b33191ab0d8ea765b4621f83e8339db36668ed11a1642462d9d18fecee7-image.png) Configure the Action 7. Click **Continue**. Click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm if the event has been logged. ![Verify Events in CleverTap](https://files.readme.io/3a99d9007e84cf54336a785f0e1482249157b58c9d03b37f8e5ea33cd1d4fb5c-image.png) Verify Events in CleverTap FAQs [](https://docs.clevertap.com/docs/salesforce-via-zapier#faqs) ======================================================================= ### What happens if I do not map the required fields? [](https://docs.clevertap.com/docs/salesforce-via-zapier#what-happens-if-i-do-not-map-the-required-fields) Not mapping required fields may result in incomplete data transfer or failure to update user profiles and events correctly. Updated about 2 months ago * * * Ask AI --- # Treasure Data Overview [](https://docs.clevertap.com/docs/treasuredata-cdp#overview) ========================================================================== > 📘 > > ### > > Public Beta > > [](https://docs.clevertap.com/docs/treasuredata-cdp#public-beta) > > This feature is released in Public Beta. For more information about this feature or any queries, contact [Treasure Data Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#93e0e6e3e3fce1e7d3e7e1f6f2e0e6e1f6bef7f2e7f2bdf0fcfe) > . [Treasure Data](https://www.treasuredata.com/) , a Customer Data Platform (CDP), streamlines data transfer between systems. It enables businesses to consolidate data from one source and push it to multiple destinations, such as CleverTap, without requiring manual integration of each system. The CleverTap and Treasure Data integration allows seamless data synchronization, enabling businesses to efficiently manage customer profiles and enhance targeted marketing efforts across platforms. If you have any issues with this integration, write to [Treasure Data support](https://support.treasuredata.com/hc/en-us/requests) . > 📘 > > ### > > Cloud Mode Integration > > [](https://docs.clevertap.com/docs/treasuredata-cdp#cloud-mode-integration) > > This integration uses Cloud-mode integration, which facilitates efficient data synchronization between Treasure Data and CleverTap. If you require a Device-mode integration for more granular control or specific use cases, contact Treasure Data. Integrate Treasure Data with CleverTap [](https://docs.clevertap.com/docs/treasuredata-cdp#integrate-treasure-data-with-clevertap) ====================================================================================================================================== The integration process involves the following steps: 1. [Configure CleverTap Project on Treasure Data](doc:treasuredata-cdp#configure-clevertap-project-on-treasure-data) . 2. [Configure a Query Result for Import](doc:treasure-data#configure-a-query-result-for-import) . OR [Activate a Segment from Audience Studio](doc:treasure-data#activate-a-segment-from-audience-studio) . Configure CleverTap Project on Treasure Data [](https://docs.clevertap.com/docs/treasuredata-cdp#configure-clevertap-project-on-treasure-data) -------------------------------------------------------------------------------------------------------------------------------------------------- To configure CleverTap on Treasure Data: 1. Open _TD Console_ and log in to your Treasure Data account. 2. Select _Integrations Hub_ from the top navigation menu. 3. Click **Catalog** to view available integrations from the _Integrations Hub_. 4. Search and select _CleverTap_ from the list. ![Configure CleverTap Project On Treasure Data Dashboard](https://files.readme.io/60414a971ef64fc017a79e44dc64cd02cb87e74e96da0f26e7d72d307a2b3462-image.png) Configure CleverTap Project On Treasure Data Dashboard 5. Click **Create Authentication** and enter the required credential information as follows: | Field | Description | | --- | --- | | Account ID | Access the CleverTap dashboard and locate the Project ID under _Settings_ > _Project_. | | Account Passcode | Access the CleverTap dashboard and locate the Passcode under _Settings_ > _Project_. For more information, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode)
. | | Region | Access the CleverTap dashboard and locate _Region_ for the API endpoint you want to select under _Settings_ > _Project_. To find the API endpoint for your region, refer to [API endpoints based on your data center region](https://developer.clevertap.com/docs/idc#api)
. | 6. Click **Continue**. You are prompted to enter a name for the authentication setup. 7. Enter a _Name_ for the _Authentication_ and click **Done**. Once the setup is complete, save any changes and verify that the integration is successfully set up. For more information, refer to the [Treasure Data document](https://docs.treasuredata.com/articles/int/clevertap-export-integration/a/h2__1933218993) . Configure a Query Result for Import [](https://docs.clevertap.com/docs/treasuredata-cdp#configure-a-query-result-for-import) -------------------------------------------------------------------------------------------------------------------------------- This section provides information about steps to import user profiles, events, and segments from Treasure Data to CleverTap. This involves running a data query and setting options for the format and destination of the results. This process enables users to easily transfer and share data with other systems or tools. The following are the steps to import data from the Treasure Data: 1. Go to _Data Workbench_ > _Queries_. 2. Select **New Query** and define your SQL query. 3. Click **Export Results** to configure the data import and enter the required details. ![Connector Configuration Parameters](https://files.readme.io/d098d5803cbdf3c352460cdf0d2bd10edccba03cfc5ddd314c5c19838be45fea-Screen_Recording_2024-12-24_at_5.32.51_PM.gif) Connector Configuration Parameters | Parameter | Description | | --- | --- | | Target Data Entity | Indicates the CleverTap Import Target Data Entity. Supported Values:

* User Profiles: Upload the data related to user profiles.
* User Events: Upload the data related to user events.
* User Audiences - Custom List: Upload custom list segment.

For more information about each Target Data Entity, refer to [Detailed Guide for Each Target Data Entity](https://docs.treasuredata.com/articles/#!int/clevertap-export-integration/a/h2_771907757)
. | | Thread Count Number | Indicates the number of concurrent requests to the CleverTap server. The minimum is 1, the maximum is 10, and the default is 5. This parameter only applies to Target Data Entity: User Profiles and User Events. | | Skip on Invalid Record? | Select if the job must skip the invalid record and continue to handle the next record. Otherwise, the job will stop if it encounters an invalid record. | 4. Select or create a [CleverTap authentication](doc:treasure-data#set-up-clevertap-on-treasure-data) and click **Done**. For more information about each Target Data Entity, refer to [Detailed Guide for Each Target Data Entity](https://docs.treasuredata.com/articles/#!int/clevertap-export-integration/a/h2_771907757) . Activate a Segment from Audience Studio [](https://docs.clevertap.com/docs/treasuredata-cdp#activate-a-segment-from-audience-studio) ---------------------------------------------------------------------------------------------------------------------------------------- You can also import segment data to CleverTap by creating an activation in the Audience Studio. 1. Go to _Audience Studio_ and select a _parent segment_. 2. Right-click the target segment and select _Create Activation_. 3. Enter and configure an activation name based on the above configuration parameters from the _Details_ section. 4. Customize the activation output from the _Output Mapping_ section. ![Customize Activation Output from Output Mapping section](https://files.readme.io/9e5c4adbb62b4de6096d87699f0ee368c0d9b59ae652f0c21c6ade64706c6218-image.png) Customize Activation Output from Output Mapping section * Attribute Columns * Toggle ON the **Export All Columns** to import all columns without making any changes. * Click **\+ Add Columns** to add specific columns for the import. The _Output Column Name_ pre-populates with the same _Source_ column name. You can update the _Output Column Name_. Continue to select **\+ Add Columns** to add new columns for your activation output. * String Builder Add string to create strings for export. Select from the following values: * String: Choose any value; use text to create a custom value. * Timestamp: The date and time of the export. * Segment Id: The segment ID number. * Segment Name: The segment name. * Audience Id: The parent segment number. 5. Set a _Schedule_. Define your schedule and include optional email notifications. ![Define Schedule to Activate a Segment ](https://files.readme.io/8d7452193f2a768d2cdb2dd50edae0a93c11b28f1376b60c81caf762b19ddb70-snippet-output-connector-on-audience-studio-2024-08-28.png) Define Schedule to Activate a Segment 5. Click **Create** to finalize the activation. You are now ready to import data into the CleverTap dashboard. Updated about 2 months ago * * * Ask AI --- # Litmus Overview [](https://docs.clevertap.com/docs/litmus#overview) ================================================================ [Litmus](https://www.litmus.com/) is a powerful personalization platform that helps marketers create dynamic, real-time content for emails, In-app messages, and push notifications. With Litmus, you can generate personalized visuals such as countdown timers, sentiment trackers, and user-specific images that render upon message open, driving deeper engagement and urgency. CleverTap and Litmus integration enables you to deliver high-impact, personalized messaging experiences that drive conversions. With this integration, marketers can: * Create dynamic content in Litmus using real-time personalization. * Embed personalized images into CleverTap campaigns using HTML or image URLs. * Tailor content at send time with CleverTap Liquid tags for user-specific personalization. Prerequisites for Integration [](https://docs.clevertap.com/docs/litmus#prerequisites-for-integration) ========================================================================================================== The following are the prerequisites for Litmus: * Ensure you have access to your Litmus account with access to the Personalize module. * Ensure you have a CleverTap account. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/litmus#support-for-integration) > > This integration is managed and continuously improved by Litmus. The CleverTap and Litmus integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Litmus](https://help.litmus.com/) > for support and resolution. Integrate Litmus with CleverTap [](https://docs.clevertap.com/docs/litmus#integrate-litmus-with-clevertap) ============================================================================================================== Using content created with Litmus, you can deliver real-time personalized visuals in your CleverTap campaigns. For example, you can use Litmus to generate a dynamic countdown timer or personalized image and embed it directly into your Email, In-App, or Push Notification campaign. Consider a small example where you want to create an email campaign promoting a 48-hour flash sale. You can achieve this by adding a countdown timer to the campaign. The timer creates urgency by showing exactly how much time is left before the offer expires, encouraging users to take immediate action. To implement this, perform the following two major steps: 1. [Create Personalized Content in Litmus](doc:litmus#create-personalized-content-in-litmus) . 2. [Configure Litmus in CleverTap campaigns](doc:litmus#configure-litmus-in-clevertap-campaigns) . Create Personalized Content in Litmus [](https://docs.clevertap.com/docs/litmus#create-personalized-content-in-litmus) -------------------------------------------------------------------------------------------------------------------------- 1. Click **Create New** and select _Personalized Content_ from the [Litmus](https://litmus.com/sessions/new) dashboard to create dynamic content. 2. Select an image type such as: * **Countdown Timer**: Select this option to include a live countdown to create urgency for events or offers. For example, use it in a flash sale email showing _“Only 2 hours left!"_ * **Personalized Image**: Select this option to include user-specific details such as name, location, or plan type within an image. For example, in a subscription renewal campaign, show an image that reads: “John, your Pro Plan benefits in New York expire in 3 days!” The personalized details—John, Pro Plan, and New York—are rendered directly in the image, making the message feel tailor-made and more likely to catch the user's eye in a crowded inbox. * **Sentiment Tracker**: Select this option to show real-time emotional feedback (such as a smiley-to-sad scale) based on campaign engagement. For example, add it to post-purchase emails to gather satisfaction ratings. * **Scratch-off**: Select this option to create an interactive reveal experience, ideal for surprise discounts or offers. For example, use it in a festive campaign where users scratch to reveal a 20% coupon. For this example, we are selecting the _Personalized Image_ option. 3. Upload your own image or select from existing image templates. For our example, we are selecting an already existing template for customization. ![Personalized Image](https://files.readme.io/ec0275f98cf5c73a2dba86dbba292f4a51138e45215a8bac281d79157bc31c32-Screen_Recording_2025-04-11_at_12.49.26_PM_1.gif) Personalized Image 4. Design your image by using the following customization options: * **Add Text**: To place custom text on the image. * **Add Dynamic Text**: To assign a label (for example, first name). 5. Adjust styling and alignment as needed. 6. Save and generate HTML code. To do so, perform the following steps: 1. Click **Next: Preview your personalized image** to test the content with sample values. 2. Provide a _First Name_ and an _Email_ where the saved file details will be sent. 3. Click **Next: Save and Get HTML** 4. Click **Copy HTML** to copy the HTML and use it in CleverTap campaigns. ![Save and generate HTML code](https://files.readme.io/e536fc243cca766c1c946b6d404d5dcaa30e123b9c62517a0e4b9c7efc49671b-Screen_Recording_2025-04-08_at_12.16.03_PM_1.gif) Save and generate HTML code Configure Litmus in CleverTap campaigns [](https://docs.clevertap.com/docs/litmus#configure-litmus-in-clevertap-campaigns) ------------------------------------------------------------------------------------------------------------------------------ The [personalized content configured in Litmus](doc:litmus#create-personalized-content-in-litmus) can be used in any CleverTap campaign that supports HTML or image URLs. While this guide includes an example for an [email campaign](doc:litmus#configure-personalized-email-campaign-in-clevertap) , you can also use Litmus content in [Push Notification](doc:create-message-push) , [In-App campaigns](doc:create-message-in-app) , and other CleverTap messaging channels that support dynamic visuals. Configure Personalized Email Campaign in CleverTap [](https://docs.clevertap.com/docs/litmus#configure-personalized-email-campaign-in-clevertap) ---------------------------------------------------------------------------------------------------------------------------------------------------- Set up and personalize your email campaigns in CleverTap to engage users effectively. To do so, follow these steps: 1. Go to the _Campaigns_, click **\+ Campaign**, and select _Email_ from the list of messaging channels. 2. Configure the campaign as per your requirements and click **Go to Editor** under the _What_ section. 3. Select a _Basic Template_, _Pre-used Template_, or a _Saved Template_. 4. Switch to **Source** mode in the email editor to edit the HTML code of the email body. 5. Paste the copied **Litmus HTML snippet** inside the `` section in CleverTap Email editor Source. ![Insert the HTML Code Snippet](https://files.readme.io/a82d182e3a034f05bd88b203763165279bf1cd110701e6453540ddee75f199b1-Screen_Recording_2025-04-08_at_2.56.53_PM_1.gif) Insert the HTML Code Snippet 6. Replace the `MERGE_TAG` with the appropriate [CleverTap Liquid Tag](doc:personalize-message-all#liquid-tags) for personalization. Set default values to ensure a fallback is displayed when specific data is not available (for example, `{{Profile.name | default: "NULL"}}` will display "NULL" if the name field is empty). Refer to [Litmus Merge Tags](https://help.litmus.com/article/136-using-merge-tags) for more details. 7. Send a test email to verify personalization and ensure the Litmus integration functions correctly. ![Test Email](https://files.readme.io/5f7cf90d5ed0d2c60a1d160ab12535d30d66a7565af57ad3145c17bb752a8ca1-image.png) Test Email 8. Publish the email campaign once verification is complete. Users will receive personalized emails based on the configured Liquid Tags and settings. By combining Litmus's dynamic content capabilities with CleverTap’s advanced segmentation and messaging, you can create timely, relevant interactions that resonate with every user. For more information on using personalization in CleverTap, refer to [CleverTap Liquid Tags](doc:personalize-message-all#liquid-tags) . Updated about 2 months ago * * * Ask AI --- # Crash Analytics Partners This integration allows you to log crash events for your application. CleverTap offers integration with [Apteligent](doc:apteligent) to provide detailed iOS crash reporting and provide a better app experience. Updated about 2 months ago * * * Ask AI --- # Zoho Form Overview [](https://docs.clevertap.com/docs/zoho-form-via-zapier#overview) ============================================================================== [Zoho Forms](https://www.zoho.com/) is an online form builder that enables businesses to collect structured data for lead generation, feedback, event registrations, and more. Using Zapier to integrate Zoho Form with CleverTap, you can do the following: * **Keep CRM Data Synchronized**: When a new lead submits a Zoho Form, [create a user profile](doc:zoho-form-via-zapier#createupdate-user-profiles) in CleverTap with details such as name, email, phone number, and so on. * **Remove Converted Users from Re-Engagement Campaigns**: When a user converts through a Zoho Form (for example, completes a feedback), [update the user profile](doc:zoho-form-via-zapier#createupdate-user-profiles) in CleverTap (example, mark the profile as Converted). * **Track Lead Source**: When a new lead submits a Zoho Form, [upload an event](doc:zoho-form-via-zapier#upload-event) in CleverTap with details such as event name, lead source, campaign name, and lead contact information. You can then use the event data to add the lead to a Zoho Form for tailored retargeting ads. Prerequisites for Integration [](https://docs.clevertap.com/docs/zoho-form-via-zapier#prerequisites-for-integration) ======================================================================================================================== The following are the prerequisites for Zoho: * Ensure you have access to your Zoho account. * Ensure you have access to an active Zapier account to create the CleverTap app. * Ensure you have access to the CleverTap dashboard. Integrate Zoho with CleverTap [](https://docs.clevertap.com/docs/zoho-form-via-zapier#integrate-zoho-with-clevertap) ======================================================================================================================== The integration process involves the following two major steps: 1. [Create a Passcode on the CleverTap Dashboard](doc:zoho-form-via-zapier#create-a-passcode-on-the-clevertap-dashboard) . 2. [Create/Update User Information](doc:zoho-form-via-zapier#createupdate-user-profiles) . OR [Upload Event](doc:zoho-form-via-zapier#upload-event) Create a Passcode on the CleverTap Dashboard [](https://docs.clevertap.com/docs/zoho-form-via-zapier#create-a-passcode-on-the-clevertap-dashboard) ------------------------------------------------------------------------------------------------------------------------------------------------------ CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . Create/Update User Profiles [](https://docs.clevertap.com/docs/zoho-form-via-zapier#createupdate-user-profiles) ------------------------------------------------------------------------------------------------------------------- Consider an example where you want to automatically sync leads from Zoho with CleverTap to trigger personalized engagement campaigns. This automation ensures that new leads from Zoho are added to CleverTap while existing leads are updated when details change. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. Zapier can connect different applications, such as Zoho. ![Create a Zap on Zapier Dashboard](https://files.readme.io/9b71c999e832d4a3344a2216c4e72dfaacf78feabca42da8617b0ec20d049f49-image.png) Create a Zap on Zapier Dashboard 2. **Set up a Trigger**. To do so, perform the following steps: 1. Select _Zoho Forms_ from the _App_ section. This starts the Zap when a trigger event occurs on Zoho Forms. 2. Select _Trigger Event_ from the dropdown list and then select _New Form Entry_ for this use case. 3. Select _Account_ and sign in using your Zoho Forms account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. From the _Configure_ section, fill in the mandatory detail. 5. Click **Continue**. ![Set Up Trigger Event](https://files.readme.io/90d9d7ef7ab31873c44d939a041d78fa85a67855deffd9ac760e17ac8b448f32-2025-05-12_00-20-14_1.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue**. 5. **Select the Action the zap must perform after the trigger event occurs.** To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ event dropdown. 2. Select _Create/Update User Profile_ from the _Action event_ dropdown. This implies that whenever a new lead is generated, a new user profile is created, or an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. The Zapier window opens. 4. Enter all the required details to connect to the CleverTap account. Enter the same passcode you obtained in the [Create a Passcode on CleverTap Dashboard](doc:zoho-form-via-zapier#create-a-passcode-on-the-clevertap-dashboard) step. 5. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/4d0dfca0f6afd34b71d8af0a427d86d5dfb30c315691437c1d9e96da346f34c5-2025-05-12_00-27-30_1.gif) Select Action for Zap 6. **Configure the Action**. Map Zoho Form data fields to CleverTap fields as follows: | **CleverTap Field** | **Zoho Form** | | --- | --- | | **Identity** | Zoho Form user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Date of the user’s creation in Zoho Form. | | **Profile Properties** | Include user properties in JSON format (such as name, email, role, and other custom properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/zoho-form-via-zapier#mapping-identity-and-object-id) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/a78bcc46eb7dccb38faf8afc6f56cea9c0c0eaf810b0ad58a80490c17e1cc246-image.png) Configure the Action 7. Click **Continue** and click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, a new user is created, or an existing user is updated on the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm the user profile has been created or updated. ![Verify user in CleverTap](https://files.readme.io/2fa5b9906d44c1d52a372e152207bac731edb98bea70bb57d10ea5430e88d474-image.png) Verify user in CleverTap Upload Event [](https://docs.clevertap.com/docs/zoho-form-via-zapier#upload-event) -------------------------------------------------------------------------------------- Consider an example where you want to upload an event to CleverTap with details such as event name, lead source, campaign name, and lead contact information. Every time a new lead submits a Zoho form. This automation ensures that user actions or events tracked in Zoho form are automatically recorded in CleverTap, enabling better tracking and personalized engagement strategies. To do so, perform the following steps: 1. Log in to the [Zapier dashboard](https://zapier.com/app/home) and click **\+ Create Zap**. 2. **Set up a Trigger**. For this example, perform the following steps: 1. Select _Zoho Forms_ from the _App_ section. This starts the Zap when a trigger event occurs on Zoho Forms. 2. Select _Trigger Event_ from the dropdown list and then select _New Form Entry_ for this use case. 3. Select _Account_ and sign in using your Zoho Forms account credentials. You can also connect a new account if your account does not appear in the dropdown. 4. Click **Continue**. From the _Configure_ section, fill in the mandatory detail. 5. Click **Continue**. ![Set Up Trigger Event](https://files.readme.io/90d9d7ef7ab31873c44d939a041d78fa85a67855deffd9ac760e17ac8b448f32-2025-05-12_00-20-14_1.gif) Set Up Trigger Event 3. Click **Test Trigger**. This ensures that the right account is connected and the trigger is set up correctly. 4. Click **Continue**. 5. Select the Action that the zap must perform after the trigger event occurs. To do so, perform the following steps: 1. Select _CleverTap_ from the _App_ event dropdown. 2. Select _Upload Event_ from the Action _event_ dropdown. This implies that whenever a new event is generated, a new user profile is created, and an existing user profile is updated with the new information. 3. Select _Account_ to connect the CleverTap account. For more information about how to do this, refer to _step 5 (iii)_ under [Create or Update User Profiles](doc:zoho-form-via-zapier#createupdate-user-profiles) . 4. Click **Continue** after successfully connecting your account. ![Select Action for Zap](https://files.readme.io/5b789ebf6ebef1290e1cff3bea5b31bf06bb69129168c6e99d9450c8013fd3fe-2025-05-12_00-46-58_1.gif) Select Action for Zap 6. **Configure the Action**. Map Zoho Form data fields to CleverTap fields as follows: | **CleverTap Field** | **Zoho Form** | | --- | --- | | **User ID** | Zoho Form user ID field, email ID, or any unique identity field corresponding to the user. | | **Creation Date** | Event creation date. | | **Event Name** | Select a predefined event or create a custom event. You can also map the event name using the Zoho Form data fields. | | **Event Properties** | Include metadata in JSON format (for example, event type, priority, event properties). | > 🚧 > > ### > > Mapping Identity and Object ID > > [](https://docs.clevertap.com/docs/zoho-form-via-zapier#mapping-identity-and-object-id-1) > > You can keep the Identity field blank if you provide an Object ID, and vice versa. ![Configure the Action](https://files.readme.io/3322ece5499cfa79224e4f23f9639ce386e8f860d64131d31f43301bc8be4e22-image.png) Configure the Action 7. Click **Continue**. Click **Test Step** to test the zap after mapping the files. 8. Click **Publish**. After publishing this zap, an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to identify if it is a new user or an existing user. You can verify this by checking your CleverTap dashboard to confirm if the event has been logged. ![Verify Events in CleverTap](https://files.readme.io/9945540bf21ecc30ebe4930ed8545d4d62da118d2bdeafef19b9c986a802e3ab-image.png) Verify Events in CleverTap FAQs [](https://docs.clevertap.com/docs/zoho-form-via-zapier#faqs) ====================================================================== ### What happens if I do not map the required fields? [](https://docs.clevertap.com/docs/zoho-form-via-zapier#what-happens-if-i-do-not-map-the-required-fields) Not mapping required fields may result in incomplete data being transferred or failure to update user profiles and events correctly. Updated about 2 months ago * * * Ask AI --- # Omnissa Intelligence (Apteligent) Overview [](https://docs.clevertap.com/docs/omnissa-intelligence-apteligent#overview) ========================================================================================= [Omnissa Intelligence (Apteligent)](http://www.apteligent.com/) , a mobile application platform, helps build better and faster applications by providing application performance insights. The CleverTap and Omnissa Intelligence (Apteligent) integration sends crash events to CleverTap. This information helps you with the following: * Create audiences of application users to engage through in-app and push messages. For example, apologize for a crash instance and let the users know that a fix is on its way. * Detect if the application is having an outage and stop sending push notifications. How does it work? [](https://docs.clevertap.com/docs/omnissa-intelligence-apteligent#how-does-it-work) ========================================================================================================== The Omnissa Intelligence (Apteligent) SDK creates a notification that is triggered when the SDK detects a crash. This notification is fired when an iOS user loads the app after a crash. The notification contains the following information: * Crash Name: The name of the crash (i.e., NSRangeException). * Crash Reason: More details on why the crash occurred (i.e., "\*\*\* -\[\_\_NSArrayM objectAtIndex:\]: index 18446744073709551615 beyond bounds for empty array") * Crash Date: The date and time when the crash occurred. Integrate Omnissa Intelligence (Apteligent) with CleverTap [](https://docs.clevertap.com/docs/omnissa-intelligence-apteligent#integrate-omnissa-intelligence-apteligent-with-clevertap) =========================================================================================================================================================================================== This process involves the following two major steps: 1. Register an Observer To register an observer, add the following lines of code: Objective-C [[NSNotificationCenter defaultCenter] addObserver:self\ selector:@selector(crashDidOccur:)\ name:@"CRCrashNotification"\ object:nil]; > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/omnissa-intelligence-apteligent#note) > > Ensure that you add this code before you initialize Omnissa Intelligence (Apteligent) SDK. 2. Send an Event Upon Notification Log the crash event and update the CleverTap user attributes with data from Omnissa Intelligence (Apteligent) crash reporting analytics after receiving the notification. To do so, add the following lines of code: Objective-C - (void) crashDidOccur:(NSNotification*)notification { NSDictionary *crashInfo = notification.userInfo; NSString *crashName = crashInfo[@"crashName"]]; NSString *crashReason = crashInfo[@"crashReason"]; NSDate *crashDate = crashInfo[@"crashDate"]; // CleverTap [[CleverTap sharedInstance] recordEvent:@"ApteligentCrashEvent" withParameters:crashInfo]; } Updated about 2 months ago * * * Ask AI --- # mParticle Overview [](https://docs.clevertap.com/docs/mparticle-2#overview) ===================================================================== [mParticle](https://www.mparticle.com/) is a customer data platform that manages data quality and enhances customer interactions. Integrating CleverTap with mParticle enables seamless data exchange for enriched insights and analysis. * [mParticle Import (Audience)](doc:mparticle-import-audience) * [mParticle Export](doc:mparticle-export) * [mParticle Integrations](https://developer.clevertap.com/docs/mparticle) Updated about 2 months ago * * * Ask AI --- # Customer Data Platform CleverTap integrates with the following Customer Data Platforms, so you can send your user data to any system: * [Boltic](doc:boltic) * [Census](doc:census) * [HighTouch](doc:hightouch) * [mParticle Export](doc:mparticle-export) * [mParticle Import (Audience)](doc:mparticle-import-audience) * [Nexla](doc:nexla) * [RudderStack](https://developer.clevertap.com/docs/rudderstack) * [Segment Export](doc:segmentcom) * [Treasure Data](doc:treasuredata-cdp) Updated 23 days ago * * * Ask AI --- # Census Overview [](https://docs.clevertap.com/docs/census#overview) ================================================================ [Census](https://www.getcensus.com/) is a Reverse ETL platform that makes it easy to connect your data warehouse to sales, marketing, and other customer-facing tools that drive your business. With CleverTap and Census integration, you can: * Import user data from Census into CleverTap to create personalized campaigns. * Import customer events into CleverTap to keep them updated with data from the Census. * Enhance customer experiences by integrating data from other interactions, such as website visits or app usage. This powerful combination boosts customer engagement and drives impactful marketing and business results. > 🚧 > > ### > > Support For Integration > > [](https://docs.clevertap.com/docs/census#support-for-integration) > > This integration is managed and continuously improved by Census. The CleverTap and Census integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Census](https://docs.clevertap.com/cdn-cgi/l/email-protection#cab9bfbabaa5b8be8aadafbea9afa4b9bfb9e4a9a5a7) > for support and resolution. Prerequisites for Integration [](https://docs.clevertap.com/docs/census#prerequisites-for-integration) ========================================================================================================== The following are the prerequisites: * Ensure you have a Census account. * Ensure you have a CleverTap account with valid **Account ID**, **Passcode**, and **Region**. Integrate Census with CleverTap [](https://docs.clevertap.com/docs/census#integrate-census-with-clevertap) ============================================================================================================== This process involves the following two major steps: 1. [Add CleverTap as a Destination on Census](doc:census#add-clevertap-as-a-destination-on-census) . 2. [Connect Data Source in Census](doc:census#connect-data-source-in-census) . Add CleverTap as a Destination on Census [](https://docs.clevertap.com/docs/census#add-clevertap-as-a-destination-on-census) -------------------------------------------------------------------------------------------------------------------------------- To add CleverTap as a destination in Census: 1. Go to _Connections_ from your Census dashboard and click **\+ New Destination**. 2. Search for _CleverTap_ and select it. 3. Enter the following details: | Field | Description | | --- | --- | | Account ID | Locate the Project ID under _Settings_ > _Project_ from the CleverTap dashboard. | | Account Passcode | Locate the Passcode under _Settings_ > _Project_ from the CleverTap dashboard. For more information, refer to [Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode)
. | | Region | Locate _Region_ for the API endpoint you want to select under _Settings_ > _Project_. To find the API endpoint for your region, refer to [API endpoints based on your data center region](https://developer.clevertap.com/docs/idc#api)
. | 4. (Optional) Click **Test** to test the connection and verify your entered credentials. 5. Click **Finish** to add CleverTap as a destination once the connection is verified. ![Add New Destination](https://files.readme.io/d33e88b846d5495e75b278a7bee42e8601d3431f161fb578e3393f3c9268de05-image.png) Add New Destination Connect Data Source in Census [](https://docs.clevertap.com/docs/census#connect-data-source-in-census) ---------------------------------------------------------------------------------------------------------- Set up your preferred data source in Census to sync and manage data efficiently. To do so: 1. **Add a Data Source**: 1. Go to the _Sources_ section from the Census dashboard and click **\+ New Source**. 2. Select your preferred data source (For example, Google Sheets, databases, or data warehouses). 3. Follow the on-screen prompts to configure the connection and provide the required credentials, authentication tokens, or endpoint URLs as needed, based on the source. ![Add New Source](https://files.readme.io/128c8f952e6cc023e8d2eb56b3e749ca621fead8c9743c3c977d91debabf1b68-image.png) Add New Source 2. **Test the Connection**: After completing the setup, click **Test** to verify the details and ensure the source is successfully connected. For detailed instructions, refer to [Census](https://docs.getcensus.com/sources/overview) . Send Data from Census to CleverTap [](https://docs.clevertap.com/docs/census#send-data-from-census-to-clevertap) ==================================================================================================================== Import customer data, including user profiles and events, from your data sources into CleverTap to enhance targeting and engagement. > 🚧 > > ### > > IMPORTANT > > [](https://docs.clevertap.com/docs/census#important) > > If your data source, such as Google Sheets, does not update in real-time, the information sent from Census to CleverTap might not capture the latest user actions or events. For instance, if a user updates their profile or makes a purchase but the Google Sheet has not synced yet, CleverTap receives outdated data until the sheet is refreshed. To maintain up-to-date information, consider syncing the data more frequently or switching to a real-time data source. Send Profiles to CleverTap [](https://docs.clevertap.com/docs/census#send-profiles-to-clevertap) ---------------------------------------------------------------------------------------------------- To import user profiles from your data warehouse into CleverTap: 1. Go to _Syncs_ and **\+ Create a new Sync** from your Census Dashboard. 2. Under _Select a Source_, choose a connection and its source. 3. Select the schema and the table you want to sync. 4. Select _CleverTap_ as a _Connection_ from the _Select a Destination_ dropdown and select _Profile_ under the _Object_ dropdown. For more detailed instructions, refer to the [Census Documentation on CleverTap Integration](https://docs.getcensus.com/destinations/available-destinations/clevertap) . ![Select a Destination](https://files.readme.io/f18676993dd8c381c2112ac4c163572605a258fa17b46e6f543c24f5478d3bab-image.png) Select a Destination 5. Select a _Sync Behavior_. CleverTap supports _Update or Create_. ![Sync Behavior.](https://files.readme.io/ebcedc087324a96b4fd68d9fad9a901713233ed6fb6a5776d7f073e1109dee6e-image.png) Sync Behavior. 6. _Select a Sync Key_ defines the key identifier for matching data in CleverTap. Census uses this key to determine which data to sync during each run. The column and field must have the same unique value. For example, use `user_id` as the primary identity key (mapped to _User Identity_ in CleverTap). ![Select a Sync Key](https://files.readme.io/e781ed5595327bf3a3ad23eda38fac06a03383a5ea38c95e864aca8464fd5f46-image.png) Sync Key 7. Under **Set Up CleverTap Field Mappings**, select _Specific Columns_ properties or _Sync All Columns_ properties. * _Specific Columns_: Specify exactly which columns apply to the destination. * _Sync All Columns_: Sync all columns from the source to the destination. Any new columns will be automatically added. Map source columns to CleverTap profile fields (for example, `username ➔ Name`, `email ➔ Email`). When you add a mapping, Census automatically matches some of the standard properties in CleverTap. You can also opt to create new properties inside CleverTap. ![Set Up CleverTap Field Mappings](https://files.readme.io/bf0670666767126810e649f32be901d7cce4576a17bdc7467ec8f25094b566a7-image.png) Set Up CleverTap Field Mappings 8. **Confirm Sync Details**: After configuring the sync, confirm your sync details and click **Create Sync** to set up the new sync. 9. **Set Sync Trigger**: Configure either a manual (One-Time Sync) or automatic (Periodic Sync) trigger for the sync. * _One-Time Sync_: To trigger an immediate sync, select **Run Sync Now**. This initiates an instant, one-time data sync. * _Periodic Sync_: To schedule regular updates, select _Sync Trigger_ and define the schedule to run sync automatically. This ensures that data between Census and CleverTap remains up-to-date, with profiles and events continuously updated. ![Set Sync Trigger](https://files.readme.io/621caae7e177270298d628563d40198e85622b0f184ef66ece097b2b3f5c873d-pero.gif) Set Sync Trigger Go to the _Segments_ page from the CleverTap to confirm the synced profile data. ![Segments](https://files.readme.io/c0bf527c3ed911738e2aea29ea042200007a4e778501445a41c9b1c982d97032-image.png) Segments Send Events to CleverTap [](https://docs.clevertap.com/docs/census#send-events-to-clevertap) ------------------------------------------------------------------------------------------------ To send events from your data warehouse to CleverTap: 1. Go to _Syncs_ and click **\+ Create a new Sync** on your Census Dashboard. 2. Under _Select a Source_, choose a connection and its source. 3. Select the schema and the table you want to sync. 4. _Select a Destination_: 1. Under _Select a Destination_, choose _CleverTap_ as a connection. 2. Under _Object_, select _Event_. For detailed instructions, refer to the [Census Documentation on CleverTap Integration](https://docs.getcensus.com/destinations/available-destinations/clevertap) . ![Select a Destination](https://files.readme.io/a49a11318aad2f7200098a4c54898f4b4ab14804de7c9ef7067146230dd72f4a-image.png) Select a Destination 5. _Select a Sync Behavior_. The sync behavior determines how changes are handled between the source and CleverTap. If you select **Send**, an event is created on CleverTap every time new records are detected in the source system. ![Sync Behavior](https://files.readme.io/5499b9ecfbc6529fe13f60d6e5443f740ee37c4cf0a88cb4fa2a89587f99ab23-image.png) Sync Behavior 6. _Select a Sync Key_. The Sync Key is a column that identifies unique records in the source, such as `user_id`. When a new sync key is detected, an event is raised on Clevertap. ![Select a Sync Key](https://files.readme.io/e40f881cf95cb17bdcecef096a14901d565975f7f4fae8c30fd80fe080d86129-image.png) Sync Key 7. Under _Set Up CleverTap Field Mappings_, select whether you want to sync specific or all properties. When you add a mapping, Census automatically matches standard properties in CleverTap. You can also create new properties in CleverTap if needed. Syncing **Event Name** (Action) and **User Identity** (Customer ID) is mandatory. * **Configure Event Syncing**: Use `user_id` or another unique identifier to link events to user profiles. Map source columns to CleverTap event fields, such as: `transaction_value ➔ Transaction Value` or `currency ➔ Currency` * **Map Columns** : Map the source columns (for example, `user_email`) to corresponding fields in CleverTap. This ensures the correct data is sent to the proper fields. * **Assign Data Type**: Ensure each field is assigned the correct data type (for example, String, Number, Date, Boolean) for proper data processing. The following example shows the mapping for the _Charged_ event * `transaction_value ➔ Transaction Value` * `currency ➔ Currency` * `product_category ➔ Product Category` * `discount_applied ➔ Discount Applied` ![Set Up Field Mapping](https://files.readme.io/e6b21015a5c0936487caca2f942f432e46bd91bedda63b41cb5a958f0770e90b-image.png) Set Up Field Mapping 8. **Confirm Sync Details**: After configuring the sync, confirm your sync details and click **Create Sync** to set up the new sync. 9. **Set Sync Trigger**: Configure either a manual (One-Time Sync) or automatic (Periodic Sync) trigger for the sync. * _One-Time Sync_: To trigger an immediate sync, select **Run Sync Now**. This initiates an instant, one-time data sync. * _Periodic Sync_: To schedule regular updates, select _Sync Trigger_ and define the schedule to run sync automatically. This ensures that data between Census and CleverTap remains up-to-date, with profiles and events being updated continuously. ![Sync Trigger](https://files.readme.io/b79600a50a37e8f3fecf8b281c0e542c4aa8f9ac948c79b82b6afa2f5e1208d4-eevveesy.gif) Sync Trigger You can verify the synced event data by navigating to _User Profiles_ or _Event Analytics_ from the CleverTap dashboard. ![CleverTap Dashboard](https://files.readme.io/c9ce9d8f75bf67f5276b1e2c91c71b41a687bf8787e9c9010f28121f6ddd9dd9-image.png) User Profiles CleverTap Dashboard FAQs [](https://docs.clevertap.com/docs/census#faqs) ======================================================== ### What types of data can I sync to CleverTap from Census? [](https://docs.clevertap.com/docs/census#what-types-of-data-can-i-sync-to-clevertap-from-census) You can sync user profiles and event data from different data sources supported by Census, including data warehouses, Google Sheets, and databases. ### How frequently can I sync data? [](https://docs.clevertap.com/docs/census#how-frequently-can-i-sync-data) Syncs can be scheduled periodically or triggered on demand based on the business requirements. ### What happens if I map a field incorrectly? [](https://docs.clevertap.com/docs/census#what-happens-if-i-map-a-field-incorrectly) Incorrect mapping can lead to inaccurate data being updated in CleverTap. You can modify the field mapping in Census to resolve the issue and re-sync. ### Can I sync historical data? [](https://docs.clevertap.com/docs/census#can-i-sync-historical-data) You can configure Census to include historical data during the initial sync. ### Who should I contact for support? [](https://docs.clevertap.com/docs/census#who-should-i-contact-for-support) For any issues or queries, contact Census at [\[email protected\]](https://docs.clevertap.com/cdn-cgi/l/email-protection#7f0c0a0f0f100d0b3f181a0b1c1a110c0a0c511c1012) . Updated about 2 months ago * * * Ask AI --- # Boltic Overview [](https://docs.clevertap.com/docs/boltic#overview) ================================================================ [Boltic](https://boltic.io/) , a powerful platform for AI-driven workflows and automation, allows you to seamlessly connect various tools and services for efficient data synchronization and automation. Boltic offers two seamless ways to integrate with CleverTap, allowing you to push user profiles and events (custom and predefined) efficiently. You can choose between: * [API-based Integration (using Webhooks and API calls)](doc:boltic#method-1-api-based-integration) for real-time, event-driven automation. * [Data Hub Stream integration](doc:boltic#method-2-data-hub-stream-integration) for direct, scalable data synchronization from multiple sources. Boltic helps centralize user data, automate workflows, and enhance engagement campaigns in CleverTap. Common use cases include: * **Subscription Management**: Send payment and subscription events (for example, renewals, cancellations, and so on) to CleverTap to drive targeted messaging. * **Lifecycle Marketing**: Send key lifecycle events (for example, Signup, Login, Purchase, and so on) to CleverTap to trigger automated engagement workflows. * **E-Commerce Feedback**: Send events to CleverTap after closing a support ticket, enabling feedback collection and engagement. Prerequisites for Integration [](https://docs.clevertap.com/docs/boltic#prerequisites-for-integration) ========================================================================================================== The following are the prerequisites for Boltic: * For [API-based Integration](doc:boltic#method-1-api-based-integration) : * Boltic account with Webhook and API action permissions. * CleverTap account with valid **Account ID**, **Passcode**, and **Region**. * For [Data Hub Stream Integration](doc:boltic#method-2-data-hub-stream-integration) : * A Boltic account with access to Data Hub. * A CleverTap account with appropriate permissions to receive streamed data. Integrate Boltic with CleverTap [](https://docs.clevertap.com/docs/boltic#integrate-boltic-with-clevertap) ============================================================================================================== Boltic offers two methods to integrate with CleverTap, allowing you to push user profiles and event data seamlessly: * [Method 1: API-based Integration](doc:boltic#method-1-api-based-integration) * [Method 2: Data Hub Stream Integration](doc:boltic#method-2-data-hub-stream-integration) Method 1: API-based Integration [](https://docs.clevertap.com/docs/boltic#method-1-api-based-integration) ------------------------------------------------------------------------------------------------------------- With this method, you can directly transfer event and user profile data using Webhooks and API calls. To set up this integration, perform the following steps: 1. [Create Passcode on the CleverTap Dashboard](doc:boltic#create-passcode-on-clevertap-dashboard) 2. [Send Data to CleverTap (Using Webhooks & API Actions)](doc:boltic##send-data-to-clevertap-using-webhooks--api-actions) ### Create Passcode on CleverTap Dashboard [](https://docs.clevertap.com/docs/boltic#create-passcode-on-clevertap-dashboard) CleverTap uses a header-based authentication model to authenticate requests to the API. Every CleverTap API call must include the Account ID and Passcode as the request headers. To create a passcode, refer to [Create Account Passcode](https://developer.clevertap.com/docs/authentication#create-account-passcode) . ### Send Data to CleverTap (Using Webhooks & API Actions) [](https://docs.clevertap.com/docs/boltic#send-data-to-clevertap-using-webhooks--api-actions) Boltic allows you to send user profiles and event data to CleverTap using triggers such as Webhooks, Fynd, Slack, Calendly, and Webflow. These triggers help automate data flow based on predefined conditions. For example, you want to automate user engagement with CleverTap to run an E-commerce mobile app and want to: * **Track New User Sign-ups**: Every time new users register, their profile details (such as name, email, and phone number) should be updated in CleverTap to personalize their experience. * **Capture Purchase Events**: When a user makes a purchase, the event data (such as product ID, price, and currency) should be sent to CleverTap to trigger relevant engagement campaigns such as order confirmations, loyalty rewards, or cross-sell recommendations. For this specific use case, we will use the Webhook trigger to send real-time data updates to CleverTap, tracking new user sign-ups (user profiles) and capturing purchase data (event data). To do so, follow these steps: 1. Go to _Workflows_ on the Boltic dashboard and click **\+ Create Workflow** and assign it a unique name. 2. **Set Up a Trigger** to initiate actions when specific criteria are met, streamlining automation processes: 1. Select _Webhook_ from the _Trigger_ dropdown. 2. Click **Webhook** for configuration (refer to the following GIF): 1. Select the appropriate authentication type from the dropdown. 2. Enter a test payload in JSON format per the use case. The following are sample JSON payloads for pushing data. * Sample Payload for Sending User Profile Data (Track New User Sign-ups) json //for pushing user profile { "payload": { "name": "John D", "user_id": "1717" } } * Sample Payload for Sending Event Data (Capture Purchase Events) json //for pushing events { "payload": { "user_id": "1717", "event_name": "Product Purchased", "properties": { "amount": 499.99, "currency": "USD", "product_id": "98765" } } } 3. Click **Save** to test and save the trigger. ![Set Up a Trigger](https://files.readme.io/cb7e3928d47e82889cb218e08e3d3d5dff4aa01489e017e066d457f91855ef3b-boltic_step_1_.gif) 4. **Select the API Action** to send the events or user profiles to CleverTap from Boltic whenever the trigger event occurs. Follow these steps: 1. Drag the **API** block from the _Helpers_ panel on the left and drop it below the **Webhook** block in the workflow. 2. Click **API** for configuration: 1. Set the _HTTP Method_ to _POST_ to send the events and user profiles to CleverTap. 2. Enter the following _CleverTap API endpoint URL_, where you need to replace `` with the region of your CleverTap account. To know the region of your account, refer to [API Quick Start Guide](https://developer.clevertap.com/docs/api-quickstart-guide) : https://.api.clevertap.com/1/upload ![Select the API Action](https://files.readme.io/7fa13b1de6b61af8a238de9f75a0599066559dd417f36c5997a962b336a6d1b0-bolt_api_.gif) 5. Configure _Headers_ to connect the CleverTap Account. To do so, perform the following steps: 1. Enter the required details in the headers to connect the CleverTap account. Use the same passcode obtained during the [Create a Passcode on CleverTap Dashboard](doc:boltic#create-a-passcode-on-the-clevertap-dashboard) step. 2. Add the following key-value pairs in the headers: | **Header Key** | **Description** | | --- | --- | | **Content-Type** | `application/json` | | **X-CleverTap-Account-Id** | Your CleverTap Account ID | | **X-CleverTap-Passcode** | Your CleverTap Passcode | ![Configure Headers](https://files.readme.io/ec929b2cfeb58893c16e9e7795fa67aa9f21227c1325056b119340409e23bbf6-image.png) 6. **Configure the Request Body**. Based on your use case, you can send user profiles or events (custom/predefined). Use the following payload structure in the API body: Sending User Profiles { "d": [\ {\ "identity": "{{payload.user_id}}",\ "type": "profile",\ "profileData": {\ "Name": "{{payload.name}}",\ "Email": "{{payload.email}}"\ }\ }\ ] } Send Events { "d": [\ {\ "objectId": "{{payload.user_id}}",\ "type": "event",\ "evtName": "{{payload.event_name}}",\ "evtData": {\ "Product ID": "{{payload.properties.product_id}}",\ "Amount": "{{payload.properties.amount}}",\ "Currency": "{{payload.properties.currency}}"\ }\ }\ ] } 7. Click **Save** to save the API configuration. ![Save API configuration](https://files.readme.io/d933e5fa2afb27527ee712c9a5bf14c37cb246435aee13c110d0a489e8885826-image.png) 8. Click **Test** to verify the workflow. Check the inputs, outputs, and logs to verify: * Successful API requests. * Data reflecting accurately in CleverTap. ![Test and Publish](https://files.readme.io/41578b61a7a03a6c636d925dd28786cc375ec2cf10b6010b6e08eccbb97580b2-done_boltic.gif) 9. Click **Publish** to activate the workflow after testing is successful. After publishing the workflow for updating user profiles or uploading events, a new user is created, an existing user is updated, or an event is uploaded to the CleverTap dashboard every time a trigger occurs. CleverTap uses the _Identity_ field to determine whether the action applies to a new or existing user. Method 2: Data Hub Stream Integration [](https://docs.clevertap.com/docs/boltic#method-2-data-hub-stream-integration) ------------------------------------------------------------------------------------------------------------------------- This method leverages Boltic Data Hub to automate event and user profile data flow from various sources to CleverTap. To integrate using this method, perform the following steps: 1. [Create and Configure Data Stream](doc:boltic#create-and-configure-data-stream) 2. [Install and Verify the Data Flow](doc:boltic#install-and-verify-the-data-flow) ### Create and Configure Data Stream [](https://docs.clevertap.com/docs/boltic#create-and-configure-data-stream) Setting up a data stream in Boltic allows you to collect, process, and forward data to CleverTap. This method is ideal for handling large-scale event flows without manual intervention. To do so, follow these steps: 1. Go to your Boltic Dashboard and select _Data Hub_ > _Streams_ from the left navigation panel. 2. Click **\+ Create Stream** to start setting up a new data stream. ![Create Stream](https://files.readme.io/7a904e83231aa09949b3086151c011e6002d7613321b910bcfe15898d5485555-image.png) 3. Select the data source you want to connect from the _Select source_ dropdown to create for stream. 4. If the source is not yet configured, click **Add Source** and follow the setup instructions. ![Add Source](https://files.readme.io/8ef27bf0035e195fb31dfe0d8d00beb76b5977abf395ab871f2db3f21a2f69fa-image.png) 5. For this case, use the _Javascript_ Source Integration. ![Select type of source](https://files.readme.io/25ffca6e719736b7ea8099f2dd5b1991caf350833f5ada7c003e8e302eaf7f4b-image.png) ### Install and Verify Data Flow [](https://docs.clevertap.com/docs/boltic#install-and-verify-data-flow) Once your stream is configured, the next step is to install the stream snippet at the source and verify that data is successfully flowing to CleverTap. This ensures a seamless integration with real-time event tracking. To do so, follow these steps: 1. From the _Destination_ dropdown, select _CleverTap_. 2. If CleverTap is not yet configured, click **Add Destination** and enter your CleverTap account details. ![Add Destination](https://files.readme.io/7b6a90bfe8f7fc36a7d8b908fee4fa22a308dd382fb32df70e29c7efc0453f5b-Screen_Recording_2025-02-19_at_12.02.45_PM_1.gif) 3. Click **Test and Save** to validate the configuration. 4. After selecting the Source and Destination, click **Create Stream**. The newly created stream will now be visible in the Streams list in Boltic. ![Stream](https://files.readme.io/0be998dc0e975bcd3830edc4c3aa681dc2c1f0d2a2739ccb411dd0282e2d6508-image.png) 5. Open the stream you created and scroll down to find the _Install the stream snippet on your website_ for your selected source. 6. Follow the installation instructions carefully, as steps vary depending on the source type. ![Install the stream snippet on your website](https://files.readme.io/b627ebfe560bb7edb9cbd12359347de3cd62505b8f8daa5ad080364f488760c6-image.png) Once the stream snippet is installed, real-time event data flows from the source to CleverTap. ![Stream data](https://files.readme.io/2018f054d398b7736290e83aed403b782a8b5cf662a7e4a7ab4064e4347cc52f-image.png) 7. To ensure the data is successfully reflected in CleverTap, go to the CleverTap Dashboard and check if the events and user profiles are updating as expected. ![Verify data uploaded in CleverTap ](https://files.readme.io/6d945963834b4cb16e95cb30b30a04ade3ed6a2cf2cc3730d76a6665014a910f-Screen_Recording_2025-02-19_at_12.12.20_PM_1.gif) This alternative integration method offers an automated and scalable way to sync user data and events between Boltic and CleverTap, enabling enhanced tracking and engagement workflows. FAQs [](https://docs.clevertap.com/docs/boltic#faqs) ======================================================== ### What are the key differences between API-based integration and Data Hub Stream integration? [](https://docs.clevertap.com/docs/boltic#what-are-the-key-differences-between-api-based-integration-and-data-hub-stream-integration) | Integration Type | Best For | Pros | Con | | --- | --- | --- | --- | | **API-based (Webhooks & API Actions)** | Real-time event-driven automation | Provides instant updates and requires a simple setup | Requires API familiarity and may need rate-limiting | | **Data Hub Stream Integration** | Bulk data synchronization from multiple sources | Scales well for large datasets and does not require API calls | It may introduce slight latency and require a more complex initial setup | Choosing the right method: * Use **[API-based integration](doc:boltic#method-1-api-based-integration) ** for real-time updates. * Use **[Data Hub Stream integration](doc:boltic#method-2-data-hub-stream-integration) ** for large-scale data synchronization. ### Why is data not appearing in CleverTap? [](https://docs.clevertap.com/docs/boltic#why-is-data-not-appearing-in-clevertap) Check the following if the data is not appearing in CleverTap: * Ensure the **CleverTap API keys (Account ID and Passcode)** are correct. * Verify that the **endpoint URL** is correct for API-based integration (`https://.api.clevertap.com/1/upload`). * Confirm that the **source is correctly configured** in Boltic for Data Hub Stream integration. * Activate the **workflow** after testing. Updated about 2 months ago * * * Ask AI --- # mParticle Export Overview [](https://docs.clevertap.com/docs/mparticle-export#overview) ========================================================================== [mParticle](https://www.mparticle.com/) is a customer data platform that manages data quality and drives better customer interactions. Integrating CleverTap with mParticle allows you to export your CleverTap event data to your mParticle dashboard. You can use this event data for further analysis. Integrate mParticle with CleverTap [](https://docs.clevertap.com/docs/mparticle-export#integrate-mparticle-with-clevertap) ============================================================================================================================== This process involves the following two steps: 1. [Find mParticle Project Details](doc:mparticle-export#find-mparticle-project-details) . 2. [Configure CleverTap Dashboard](doc:mparticle-export#configure-clevertap-dashboard) . Find mParticle Project Details [](https://docs.clevertap.com/docs/mparticle-export#find-mparticle-project-details) ---------------------------------------------------------------------------------------------------------------------- To find your project details: 1. Log in to your mParticle account. 2. Navigate to _Setup_ > _Inputs_ > _Feeds_. 3. Click **Add Feed Input** and select _CleverTap_ from the dropdown list. The _Input: Feed Configuration_ popup opens. ![2862](https://files.readme.io/d09bae1-Add_Feed_Input.png "Click Add Feed Input") Click Add Feed Input 4. Enter the _Configuration Name_ and turn **ON** the _Feed Status_ toggle. ![2818](https://files.readme.io/1a0fc12-Feed_Config_popup.png "Enter Configuration Name and toggle ON Feed Status") Enter Configuration Name and Toggle ON Feed Status 5. Click **Save**. The _Server to Server Key_ and _Server to Server Secret_ are displayed. ![2806](https://files.readme.io/af1581a-Key_and_Secret_Details.png "Copy Key and Secret for configuring the CleverTap dashboard") Copy Project Details 5. Copy the project details. You will need them when configuring the CleverTap dashboard. Configure CleverTap Dashboard [](https://docs.clevertap.com/docs/mparticle-export#configure-clevertap-dashboard) -------------------------------------------------------------------------------------------------------------------- To configure the CleverTap dashboard: 1. Log in to your CleverTap account and navigate to the _Settings_ > _Partners_ > _Partner List_ page. Select _mParticle_ from the list. ![Navigating to the Partners Page](https://files.readme.io/0f5a42d7706085839929e3d0438c808e6922d942e85057213e91ee10ebceed88-Amplitude_Partner_Page.png) Navigating to the Partners Page 2. A popup opens on the right side of the screen. Enter the following details and click **Integrate**. | Field | Description | | --- | --- | | Partner Nickname | Enter the _Nickname_ for your integration. | | API key and API secret | These are the unique codes passed to mParticle to verify your credentials. For more information about obtaining the key, refer to [Find mParticle Project Details](doc:mparticle-export#find-mparticle-project-details)
. | | Customer ID Mapping | This is used as an identifier when sending event data to mParticle. | ![Enter mParticle Project Details to Integrate](https://files.readme.io/00f9e5c-image.png) Enter mParticle Project Details to Integrate After successful integration, navigate to the the _Export_ tab on the _Partner List_ page. ![Create Export](https://files.readme.io/3a1ff088b8dcf9b0546a982453df0a38ef2b7f9bce04da79b28c9bda3692fefe-mparticle_export.png) Create Export Create New Export [](https://docs.clevertap.com/docs/mparticle-export#create-new-export) ============================================================================================ To create a new export: 1. Navigate to **Settings** > **Partners** > **Exports** from the CleverTap dashboard. 2. Click **Create Export** and select **mParticle**. ![2376](https://files.readme.io/c3c9fbc-CreatemParticleExport.jpg "Click + Export and select mParticle from the Partner dropdown") Create Export The **Export to mParticle** pop-up displays. ![Enter Export Details](https://files.readme.io/2207974-mixpanel_live_streaming.png) Enter Export Details 3. Configure the following settings: * **Partner Nickname**: Nickname for the partner. To edit the nickname, go to **Partner List**. * **DATA TYPE & IDENTIFIER PRIORITY**: Select the type of data that you want to export from the available options. For more information, refer to [Export Details](doc:mparticle-export#export-details) . * **FREQUENCY**: Select from one of the following options: * **One time**: A single export for the selected export type. You can export data up to the last 60 days. You create an export for a specific day, date range, previous month, current month, and more. * **Recurring**: Set up a recurring frequency to export all the new events/user properties captured in the last window. You can export event data as frequently as every 4 hours and up to once every 24 hours. You can export user properties only once every 24 hours. * **Date to export data**: The export starts at 12:00 a.m. on the specified date by default. 4. Click **Export**. The popup closes, and the following message displays at the top of the **Exports** page: ![2284](https://files.readme.io/aefe720-mParticleExportCreated.jpg "mParticle export has initiated message displays at the top") mParticle Export Initiated CleverTap processes the export, and you can now see the newly created export for mParticle. ![2372](https://files.readme.io/6618e18-mParticlePending.jpg "New mParticle export displays on Exports page after processing") New mParticle Export Displays on Exports Page The status for each export is displayed as **PENDING** as soon as the export is created. The status changes to **RUNNING** after the processing starts. It changes to **DONE** when the export is complete. Stop Export [](https://docs.clevertap.com/docs/mparticle-export#stop-export) ================================================================================ You can also stop the export that you have created. Hover over the export. Click the **Stop** ![Stop export](https://files.readme.io/203208a-StopExport.jpg) button for the export request you want to stop. ![2372](https://files.readme.io/0ffce76-mParticleExportStopButton.jpg "Click the Stop icon to stop the ongoing mParticle export") Stop mParticle Export The **Stop export?** window appears. Click **Stop** to confirm your action. ![](https://files.readme.io/7dcac67-StopMParticleButton.jpg) You are navigated back to the **Exports** page, and the _mParticle data export stopped_ message displays at the top. The status for the data export now displays as **STOPPED**. ![2340](https://files.readme.io/afe1fb4-StoppedMParticle.jpg "mParticle export has initiated message displays at the top") mParticle Export Stopped Edit an Export [](https://docs.clevertap.com/docs/mparticle-export#edit-an-export) ====================================================================================== You might need to modify an export to meet specific business requirements or while waiting for the next run. This section describes editing a Recurring export in the **RUNNING** and **PENDING** (awaiting next run) state. > 📘 > > ### > > Points to Remember > > [](https://docs.clevertap.com/docs/mparticle-export#points-to-remember) > > * In the case of running exports, the new changes will apply to the next run. > * You cannot edit a One-time export, regardless its status (RUNNING, PENDING, DONE, or STOPPED). > * You cannot change the export from User Profile to Event and vice-versa. > * You cannot modify exports marked as **DONE** or **STOPPED**. To edit an export: 1. On the CleverTap dashboard, go to **Partners** > **Exports**. 2. Hover over the required export. The **View**, **Edit**, and the **Stop** buttons appear. ![Click the Edit Export Icon](https://files.readme.io/a033c60-EditMParticle.jpg) Click the Edit Export Icon 3. Click the **Edit** button. The **Export to mPartcile** section appears. ![Edit the Export](https://files.readme.io/a23dd27-UpdateMPartcileExport.jpg) Edit the Export 4. Edit the export details and click **Update export**. Filter Exports [](https://docs.clevertap.com/docs/mparticle-export#filter-exports) ====================================================================================== This section describes the different ways you can filter exports. Filter by Export Details [](https://docs.clevertap.com/docs/mparticle-export#filter-by-export-details) ---------------------------------------------------------------------------------------------------------- To filter by export details: 1. Click the **Filter** button at the top right corner. 2. You can filter exports by **Partner**, **Type**, **Format**, **Status**, or **Frequency**. 3. To clear the filter, click **Reset all**. ![Filter Exports](https://files.readme.io/6499e90-FilterButton.jpg) Filter Exports Filter Exports by Date Range [](https://docs.clevertap.com/docs/mparticle-export#filter-exports-by-date-range) ------------------------------------------------------------------------------------------------------------------ You can also filter the exports based on the export date. To filter exports by export date range: 1. Click the **Filter** button at the top right corner. 2. Click the **Exported on** button. The **Calendar** widget appears. ![Calendar Widget](https://files.readme.io/74ce34b-Amplitude_Exports_-_Calendar_Widget.png) Calendar Widget 1. Choose the custom date range and click **Apply**. The exports are filtered accordingly. Filter Exports by Pagination [](https://docs.clevertap.com/docs/mparticle-export#filter-exports-by-pagination) ------------------------------------------------------------------------------------------------------------------ To choose how many export items you view per page: 1. Use the **Items per page** drop-down at the bottom of the **Exports** page. 2. Options include 10, 20, 30, or 40. By default, the **Exports** page shows 20 exports. Export Details [](https://docs.clevertap.com/docs/mparticle-export#export-details) ====================================================================================== Select from one of the following options to export events from CleverTap to the mParticle dashboard: * [All system events](doc:mparticle-export#all-events) * [Selected events](doc:mparticle-export#selected-events) * [Engagement events](doc:mparticle-export#engagement-events) * [User properties](doc:mparticle-export#user-properties) All System Events [](https://docs.clevertap.com/docs/mparticle-export#all-system-events) -------------------------------------------------------------------------------------------- When you select this option, the following defined system events are exported: | CleverTap Event Name | Event Description | | --- | --- | | Notification Sent | The event is tracked when the notification is successfully sent from CleverTap to the communication channel you select for your campaign. | | Notification Viewed | This event is tracked when a user views an email, in-app notification, or a web notification sent from CleverTap. | | Notification Clicked | This event is tracked only when a user clicks on a notification sent via CleverTap.Recorded when a user clicks on a mobile push, in-app, email, web-popup, or web push message sent via the CleverTap dashboard or through the campaign API. | | Push Impressions | This event is tracked when a Push notification sent from CleverTap is delivered on a user’s device. | | Notification Replied | This event is recorded when a user replies to a WhatsApp message. | | Control Group | The event raised when a campaign is activated with a Control group. | | Channel Unsubscribed | The event raised when a user Unsubscribes to receive further communication through a channel | | Push Impressions | This event is tracked when a push notification sent from CleverTap is delivered on a user’s device. The funnels on the Push campaign statistics page reflect the count for this event. | | AB Experiment Stopped | This event is recorded when AB experiment is stopped. | | AB Experiment Rolled Out | This event is recorded when AB experiment is started | | AB Experiment Disqualified | This event is raised when the device is disqualified. | | Geocluster Entered | This event is recorded to mark when a device enters a geofence. | | Geocluster Exited | This event is recorded to mark when a device exits a geofence. | | Reply Sent | This event is recorded when an agent (CleverTap user) replies to a message from the end-user. | | App Version Changed | This event is raised when a user’s current app version is different from the user’s previous app version. | | App Launched | This event is recorded every time a user launches your application. | | App Installed | The event is raised when the user launches the app for the first time. | | App Uninstalled | This event is recorded when a user uninstalls your application. | | UTM Visited | This event is tracked when a user clicks on a link from a marketing campaign that has a UTM parameter defined on it. | For more information about these events, refer to [Events](doc:events) . Selected Events [](https://docs.clevertap.com/docs/mparticle-export#selected-events) ---------------------------------------------------------------------------------------- With this option, you can select the specific system events (from those listed in the above table) that you want to export from CleverTap to the mParticle dashboard. Engagement Events [](https://docs.clevertap.com/docs/mparticle-export#engagement-events) -------------------------------------------------------------------------------------------- When you select this option, the following engagement events are exported: * Notification Sent * Notification Viewed * Notification Clicked * Push Impressions * Notification Replied * Control Group * Channel Unsubscribed * Push Impressions * Notification Delivered * AB Experiment Rendered * AB Experiment Stopped * AB Experiment Rolled Out * Geocluster Entered * Geocluster Exited * Reply Sent * App Uninstalled * Webhook Delivered * State Transitioned * UTM Visited For more information about these events, refer to [Events](doc:events) . User Properties [](https://docs.clevertap.com/docs/mparticle-export#user-properties) ---------------------------------------------------------------------------------------- When you select this option, the following user profile attributes are exported: | Field | Description | | --- | --- | | Name | Indicates the name of the user. | | Gender | Indicates the gender of the user. | | DOB | Indicates the date of birth of the user. | | All communication preference | Flags that determine the communication preference of the user. | > 📘 > > ### > > Availability of Feature > > [](https://docs.clevertap.com/docs/mparticle-export#availability-of-feature) > > If you are a CleverTap for Enterprises user, contact your sales account manager to activate this feature at your end. In the case of CleverTap for Startups, it is available as a paid add-on. FAQs [](https://docs.clevertap.com/docs/mparticle-export#faqs) ================================================================== ### Q. Do CleverTap data exports allow special characters? [](https://docs.clevertap.com/docs/mparticle-export#q-do-clevertap-data-exports-allow-special-characters) A. Yes, CleverTap data exports allow the following special characters: * CleverTap's export system supports Unicode (UTF-8) character encoding. It facilitates the accurate representation of text in various languages and scripts. For example, Indian regional languages, Arabic, Korean, Russian, Japanese, Chinese, Spanish, Greek, Indonesian, etc. * It replaces the following characters with a hyphen to avoid issues in output file generation: * Whitespace * Tab * Slash * null (\\0) * Control characters are replaced with ?. For more information, refer to [Control Character](https://en.wikipedia.org/wiki/Control_character) . * Supports emoji characters; however, some emojis (UTF-16) may not render properly. Updated about 2 months ago * * * Ask AI --- # Nexla Overview [](https://docs.clevertap.com/docs/nexla#overview) =============================================================== [Nexla](https://www.nexla.com/) is a unified data operations platform that enables teams to connect, transform, and monitor ready-to-use data across any system. Designed for analytics and AI workflows, Nexla simplifies complex data integrations using no-code and low-code tools. With the CleverTap and Nexla integration, you can: * Export campaign interaction events from CleverTap to data warehouses using _Data Warehouse Exports_ or _Webhook campaigns_. * Transform and forward enriched data from Nexla to CleverTap using _Amazon S3_, _SFTP Imports_, or _Nexla’s REST API_. This integration enables real-time, high-quality data flow between CleverTap and your enterprise data stack, powering personalized engagement and advanced analytics. Prerequisites for Integration [](https://docs.clevertap.com/docs/nexla#prerequisites-for-integration) ========================================================================================================= Ensure the following before starting the integration: * An active Nexla account. * Automated _Data Warehouse Exports_ or _Webhook campaigns_ configured in CleverTap. * Access to your _BigQuery_ , or _Amazon S3_ account. Integrating Nexla with CleverTap [](https://docs.clevertap.com/docs/nexla#integrating-nexla-with-clevertap) =============================================================================================================== To integrate Nexla with CleverTap, perform the following five major steps: 1. [Export Data from CleverTap](doc:nexla#export-data-from-clevertap-to-your-data-warehouse) 2. [Add Data Source in Nexla](doc:nexla#add-data-source-in-nexla) 3. (Optional) [Send Webhook Data from CleverTap to Nexla](doc:nexla#optional-send-webhook-data-from-clevertap-to-nexla) 4. [Transform Data in Nexla](doc:nexla#transform-data-in-nexla) 5. [Import Data Back into CleverTap](doc:nexla#import-data-back-into-clevertap) Export Data from CleverTap to Your Data Warehouse [](https://docs.clevertap.com/docs/nexla#export-data-from-clevertap-to-your-data-warehouse) ------------------------------------------------------------------------------------------------------------------------------------------------- Use Data Warehouse Exports in CleverTap to send campaign interaction data to supported destinations such as: * [BigQuery](https://docs.clevertap.com/docs/bigquery) * [Amazon S3](https://docs.clevertap.com/docs/data-export-to-aws-s3) ![Create Export](https://files.readme.io/d2bd87a881b08611cf192e3ce42e5875793ac33c1830a6eabfe5fdbd6f7cac3b-image.png) Create Export Once configured, Nexla can pull this data directly from the connected source. Add Data Source in Nexla [](https://docs.clevertap.com/docs/nexla#add-data-source-in-nexla) ----------------------------------------------------------------------------------------------- To configure your data source, perform the following steps: 1. Log in to the Nexla dashboard. 2. Add the appropriate warehouse (such as BigQuery or Amazon S3). For more information, refer to [Add a Data Source in Nexla](https://docs.nexla.com/user-guides/data-sources/add-data-source) . 3. Authenticate using your access credentials. Once connected, Nexla begins ingesting the exported CleverTap data. (Optional) Send Webhook Data from CleverTap to Nexla [](https://docs.clevertap.com/docs/nexla#optional-send-webhook-data-from-clevertap-to-nexla) ----------------------------------------------------------------------------------------------------------------------------------------------------- You can optionally use Webhook campaigns in CleverTap to push event data to Nexla in real time. You can do so by creating a connector webhook campaign with Nexla’s webhook URL as the endpoint. Use this approach if you want immediate data delivery without waiting for exports. To configure Webhooks, refer to [Send Webhooks from CleverTap](doc:create-message-webhook) and [Nexla Webhook Reference](https://docs.nexla.com/user-guides/connectors/webhook) . Transform Data in Nexla [](https://docs.clevertap.com/docs/nexla#transform-data-in-nexla) --------------------------------------------------------------------------------------------- To apply custom logic or formatting before sending data to CleverTap, perform the following steps: 1. Locate the dataset in Nexla and click **Transform**. 2. Use the _Transform Builder_ to: * Rename fields * Apply conditions or filters * Add computed fields or enrichments 3. Click **Save** to transform the dataset. For more information, refer to [Using the Transform Builder](https://docs.nexla.com/dev-guides/modifying-data/transforms/transforms) . Import Data Back into CleverTap [](https://docs.clevertap.com/docs/nexla#import-data-back-into-clevertap) ------------------------------------------------------------------------------------------------------------- You can send data from Nexla into CleverTap using one of the following options: * [Nexla REST API Destination](doc:nexla#nexla-rest-api-destination) * [Using SFTP Imports](doc:nexla#using-sftp-imports) ### Nexla REST API Destination [](https://docs.clevertap.com/docs/nexla#nexla-rest-api-destination) * Configure [Nexla](https://docs.nexla.com/user-guides/connectors/rest-api/rest-api-generic#3-data-destination) to use [CleverTap’s Upload Users or Events API](https://developer.clevertap.com/docs/api-overview) . * Format the JSON payload to match the API requirements. * Ensure the following headers are set: HTTP X-CleverTap-Account-Id: X-CleverTap-Passcode: Content-Type: application/json ![Edit Credentials](https://files.readme.io/8e3197252c1565d94e0d79b56d15ba19467068d788e52ac40a4245dc9990cd94-image.png) Edit Credentials > ⚠️ > > #### > > Note > > [](https://docs.clevertap.com/docs/nexla#note) > > Select _Skip Credential Validation_ to set up header values manually using your CleverTap credentials. ### Using SFTP Imports [](https://docs.clevertap.com/docs/nexla#using-sftp-imports) Export the transformed dataset from Nexla to a supported destination (for example, SFTP). Configure CleverTap to import the data using the native import capability. For more information, refer to [SFTP Import](https://developer.clevertap.com/docs/imports-via-sftp) . ![SFTP Imports](https://files.readme.io/63788bc898378ab2ed85fc3bbdd67d7e5ad990db37e0d1db7ea80dad09df3db7-image.png) SFTP Imports Verify Integration [](https://docs.clevertap.com/docs/nexla#verify-integration) =================================================================================== Once your data flow is set up: * Nexla monitors source and destination schema changes. * Errors are flagged and visible in the Nexla dashboard. * Any edits to the flow (such as sources, transformations, and destinations) are reflected automatically. This enables a fully automated, scalable, and error-resilient integration between Nexla and CleverTap. Updated 23 days ago * * * Ask AI --- # Poplar Overview [](https://docs.clevertap.com/docs/poplar#overview) ================================================================ [Poplar](https://heypoplar.com/) is a performance-driven direct mail platform that enables businesses to send physical mailers to customers at any stage of the customer journey. With Poplar and CleverTap, you can trigger direct mail campaigns based on user activity, segmentation, or lifecycle stage. The Poplar CleverTap integration allows you to: * Send personalized direct mailers from within CleverTap campaigns * Automate physical mail delivery as part of omnichannel journeys * Enrich customer engagement with offline touchpoints triggered by real-time events Prerequisites for Integration [](https://docs.clevertap.com/docs/poplar#prerequisites-for-integration) ========================================================================================================== Ensure you have the following: * Access to your Poplar dashboard and Poplar API key. * Access to your CleverTap dashboard with permissions to configure webhooks and campaigns Integrate Poplar with CleverTap [](https://docs.clevertap.com/docs/poplar#integrate-poplar-with-clevertap) ============================================================================================================== The integration process involves the following two major steps: 1. [Set up Webhook in CleverTap](doc:poplar#set-up-webhook-in-clevertap) 2. [Configure Webhook Campaign in CleverTap](doc:poplar#configure-webhook-campaign-in-clevertap) Set up Webhook in CleverTap [](https://docs.clevertap.com/docs/poplar#set-up-webhook-in-clevertap) ------------------------------------------------------------------------------------------------------ To begin the integration, you'll first create a webhook in CleverTap. This webhook sends recipient and campaign-specific data to Poplar whenever the campaign is triggered. It ensures real-time delivery of personalized mailers to users based on their behavior and profile attributes. To do so, follow these steps: 1. Go to _Settings_ > _Channels_ > _Webhook_. 2. Click **\+ Add Webhook** and enter the following: | Field | Value | | --- | --- | | Name | Poplar | | HTTP Method | `POST` | | Endpoint URL | `https://api.heypoplar.com/v1/mailing` | | Authorization | `Bearer ` | | Content-Type | `application/json` | 3. Click **Save** to create the webhook. Configure Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/poplar#configure-webhook-campaign-in-clevertap) ------------------------------------------------------------------------------------------------------------------------------ Once the webhook is set up, the next step is to use it within a campaign. This campaign will send the recipient’s information and trigger mail delivery via Poplar’s API when users meet specific conditions. To trigger the direct mailer using CleverTap: 1. Go to _Campaigns_ > _\+ Campaign_ > _Webhook_. 2. Select the Webhook configured in [Create a Webhook in CleverTap](doc:poplar#create-a-webhook-in-clevertap) 3. In the _What_ section, under the _Webhook Content_ section, select the _Content Format_ as JSON and click the **Custom body** option. 4. Paste the following JSON payload: JSON { "campaign_id": "{{ Profile.campaign_id | default: "-" }}", "recipient": { "city": "Thane", "email": "{{ Profile.Email | default: "-" }}", "state": "Maharashtra", "address_1": "Rutu Towers", "address_2": "Thane", "first_name": "{{ Profile.name | default: "-" }}", "last_name": "test", "postal_code": "400607" }, "merge_tags": { "promo-code": "" }, "creative_id": "" } Use the personalization toolbar (`{`, `{{`, or `@`) to insert dynamic user profile values. 5. Click **Preview and Test** to validate the integration. ![Preview and Test](https://files.readme.io/dd275445e2b7ca1f1b8010e7ce9345751fef51c2ea942c306b1312744b9bf1d5-image.png) Preview and Test 6. In the Poplar dashboard: * Navigate to the campaign used in your payload * Go to the **History** section * Confirm if the test data is reflected ![Verify the data on Poplar](https://files.readme.io/2ab3a2469b2efef8ec31fc9365355b1bcf4d1c66dcb3a21edb2ed051adb3a7c6-Screen_Recording_2025-02-17_at_2.13.14_PM_1.gif) Verify the data on Poplar 7. Once confirmed, click **Publish** in CleverTap. ![](https://files.readme.io/53fb29f32d1aa8d08ad12da400902f3abae1a16cc1aea6acee2a23441a0b7136-image.png) By connecting Poplar with CleverTap, you can create impactful, timely direct mail campaigns as part of your user engagement strategy. Updated about 2 months ago * * * Ask AI --- # B.Layer Overview [](https://docs.clevertap.com/docs/blayer#overview) ================================================================ [B.Layer](https://blayer.phiture.com/) is Phiture’s no-code In-App message builder that enables CRM teams to design and launch custom, on-brand In-App messages quickly and without developer support. With the CleverTap and B.Layer integration, you can use B.Layer’s intuitive visual builder to craft responsive, high-conversion In-App messages and seamlessly launch them via CleverTap campaigns. You can use B.Layer to build the following: * Personalized product recommendation sliders * Multi-step onboarding or survey flows * Countdown banners for limited-time offers Prerequisites for Integration [](https://docs.clevertap.com/docs/blayer#prerequisites-for-integration) ========================================================================================================== The following are the prerequisites for B.Layer and CleverTap integration: * Ensure you have access to your B.Layer account. * Ensure you have a CleverTap account with access to campaign creation. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/blayer#support-for-integration) > > This integration is managed and continuously improved by B.Layer. The CleverTap and B.Layer integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [B.Layer](https://intercom.help/blayer/en/) > for support and resolution. Integrate CleverTap with B.Layer [](https://docs.clevertap.com/docs/blayer#integrate-clevertap-with-blayer) =============================================================================================================== To set up the CleverTap integration with your B.Layer account, perform the following steps: 1. [Create In-App Messages in B.Layer](doc:blayer#create-in-app-messages-in-blayer) . 2. [Configure In-App Campaign in CleverTap](doc:blayer#configure-in-app-campaign) . Create In-App Messages in B.Layer [](https://docs.clevertap.com/docs/blayer#create-in-app-messages-in-blayer) ----------------------------------------------------------------------------------------------------------------- Add your brand assets before designing the In-App message to ensure your messages reflect your brand identity. To do so, perform the following steps: 1. Log in to your [B.Layer account](https://app.blayer.phiture.com/users/sign_in) and go to Brand Assets from the left menu (![Edit Icon](https://files.readme.io/3c7ed7b247874aaf3867173af061fdd8591ea64dd0e956b7ba89720f13109b78-ea3493fa-866d-425a-82e7-c718f9488a09.png)). 2. Set your primary/secondary brand colors and fonts. ![Configure brand assets in B.Layer](https://files.readme.io/593bdb226a0c7742158d3af79914ceb9a0aa2569539a7293b19363ae5675abdd-29ae189d-b4da-4cae-9ba9-6e070d1dcadf.png) Configure Brand Assets in B.Layer 3. Design and create a customized In-App message in B.Layer. To do so, follow these steps: 1. Go to the In-App Message section in B.Layer. 2. Select a template layout, for example, the Single In-App Message template. Refer to the [Create a Single In-App Message](https://intercom.help/blayer/en/articles/7836328-create-a-single-in-app-message) on b.layer for more information. 3. Drag and drop components such as **Image**, **Text**, and **Buttons** from the Layout section. 4. Click **Add Block** to insert new elements. Use the layout panel to style each component. Preview your design on the canvas to ensure responsiveness. ![Design the In-App Message](https://files.readme.io/7cc9685b3d714ffd455aad073670721743b6f2f8e478368f5c09c0759f911e53-image.png) Design In-App Message 4. Click the ![Edit Icon](https://files.readme.io/e6801ee436ea754c866e6f65906fe0fb44871b72331ea186c7a12e4897bb02bf-2025-05-08_13-15-45.png) icon, and select _Copy HTML_ to copy the HTML code for your In-App message. You can now use this HTML snippet in the CleverTap [In-App campaign](doc:blayer#configure-in-app-campaign) . ![Copy the HTML snippet generated by B.layer](https://files.readme.io/1a77a80c793633435dc9be2d203faf0cf864a3c3dba70e1ffa1e80cbb5fe42e8-Screen_Recording_2025-02-18_at_3.15.34_PM_1.gif) Copy HTML Snippet Generated by B.Layer Configure In-App Campaign in CleverTap [](https://docs.clevertap.com/docs/blayer#configure-in-app-campaign-in-clevertap) ---------------------------------------------------------------------------------------------------------------------------- Set up and personalize your In-App campaigns in CleverTap to engage users effectively. To do so, perform the following steps: 1. Go to _Campaigns_ from the CleverTap dashboard. 2. Click **\+ Campaign** and select _In-App Messages_ from the dropdown. 3. Click **Go to Editor** under the _What_ section. 4. Select the template of your choice. For this example, we are using _Custom HTML Templates_. > 📘 > > ### > > Include Javascript > > [](https://docs.clevertap.com/docs/blayer#include-javascript) > > Ensure you select the _Include JavaScript_ checkbox. ![Custom HTML Templates](https://files.readme.io/bba3ad2b5f24447d2d31901ac4b17efe32de2cadc35424f7d8ad323841e5869f-image.png) Custom HTML Templates 5. Delete the default code and paste the HTML snippet copied from B.Layer in _Step 4_ of [Create In-App Messages in B.Layer](doc:blayer#create-in-app-messages-in-blayer) . ![Insert the HTML Code Snippet](https://files.readme.io/b78d02b1fcea9eb477a1945247318bca3c3b8b7bf81ac78888b3f06ad3422a81-Screen_Recording_2025-02-18_at_3.23.24_PM_1.gif) Insert HTML Code Snippet 6. Add personalization to your In-App message by typing `{{`, `{`, or clicking `@` inside the HTML editor. You can personalize elements such as the message body, button label, or title using [CleverTap Liquid Tags](doc:liquid-tags) . ![Personalization](https://files.readme.io/34fca332ac701eec9b74a2fca62054ffb8c2f9b30bbdd351abacb56a843eca92-image.png) Personalize Email Campaign 7. Click **Save** and **Publish** to send your In-App campaign. Once published, your campaign will display the In-App message created in B.Layer to targeted users based on your segmentation and scheduling settings. You can also use the same B.Layer design in an Email campaign using the Rich HTML template. For detailed instructions, refer to [CleverTap Email Campaigns](doc:create-message-email) . Updated about 2 months ago * * * Ask AI --- # Contentful Overview [](https://docs.clevertap.com/docs/contentful#overview) ==================================================================== [Contentful](https://www.contentful.com/) is a powerful headless Content Management System (CMS) that enables marketers to manage and deliver content across websites, mobile apps, and more. Unlike traditional CMSs, Contentful separates content from presentation, enabling flexible and reusable content modeling. The CleverTap and Contentful integration empowers teams to: * Pull structured content directly from Contentful using Linked Content APIs. * Personalize content dynamically using Liquid tags in CleverTap campaigns. * Deliver tailored messages across channels such as Email, Push Notification, and In-App. Prerequisites for Integration [](https://docs.clevertap.com/docs/contentful#prerequisites-for-integration) ============================================================================================================== The following are required to complete the integration: * A Contentful account with access to the Content Delivery API. * Your Contentful **Space ID**, **Environment ID**, and **API token**. * A CleverTap account with Linked Content enabled. Integrate Contentful with CleverTap [](https://docs.clevertap.com/docs/contentful#integrate-contentful-with-clevertap) ========================================================================================================================== The integration process involves the following three major steps: 1. [Find Contentful API Credentials](doc:contentful#find-contentful-api-credentials) 2. [Configure Linked Content in CleverTap](doc:contentful#configure-linked-content-in-clevertap) 3. [Create Personalized Campaign Using Linked Content](doc:contentful#create-personalized-campaign-using-linked-content) Find Contentful API Credentials [](https://docs.clevertap.com/docs/contentful#find-contentful-api-credentials) ------------------------------------------------------------------------------------------------------------------ Access your Contentful API credentials to connect your content with CleverTap securely. To do so, perform the following steps: 1. Go to _Settings_ > _API keys_ in your [Contentful dashboard](https://app.contentful.com/) . 2. If you don’t already have a key, click **\+ Add API key**. 3. Enter a name, select the appropriate environment (for example, `master`), and click **Save**. 4. Copy your **Space ID** and **Content Delivery API Access Token**. 5. Make note of your **Environment ID** (usually `master`, unless customized). ![Find Contentful API Credentials](https://files.readme.io/7b3940d43bdf6babd7aa8d8c5dadb3c15607f3c36c5bcfc9923f3b5cb519b135-image.png) Find Contentful API Credentials These credentials will be required to [Configure Linked Content in CleverTap](doc:contentful#configure-linked-content-in-clevertap) . Configure Linked Content in CleverTap [](https://docs.clevertap.com/docs/contentful#configure-linked-content-in-clevertap) ------------------------------------------------------------------------------------------------------------------------------ To display the personalized images in CleverTap campaigns, you must configure Linked Content. To do so, follow these steps: 1. Go to _Settings > Setup > Linked Content_ in CleverTap. 2. Click **\+ Add Linked Content**. 3. Fill in the following: | Field | Value | | --- | --- | | Name | Provide a name for the Linked Content. For example, Contentful API. | | Method | Set the HTTP method to `GET` | | Endpoint URL | Enter the following endpoint URL: `https://cdn.contentful.com/spaces/{space_id}/environments/{env_id}/entries`
Replace `{space_id}` and `{env_id}` with your actual Contentful credentials. | | Headers | `Bearer ` | 4. Click **Test Linked Content**. 5. Click **Auto-Fill Objects with Response** to automatically handle responses and populate objects. ![Configure Linked Content in CleverTap](https://files.readme.io/bb112d5cd763a21e64fff0dc2a4eea6b6607d985f327338f52435b4d8c144469-Screen_Recording_2025-04-15_at_1.57.08_PM_1.gif) Configure Linked Content in CleverTap 6. Click **Test & save changes** to complete the setup. You can now use this Contentful-generated linked content in various CleverTap campaigns. Create Personalized Campaign Using Linked Content [](https://docs.clevertap.com/docs/contentful#create-personalized-campaign-using-linked-content) ------------------------------------------------------------------------------------------------------------------------------------------------------ With Contentful connected to CleverTap via Linked Content, you can now add personalized content to your CleverTap campaigns. For this example, let us create a short, personalized Push Notification for promotional advertisement. To do so, perform the following steps: 1. Go to _Campaigns_ from the CleverTap dashboard and click **\+ Campaign**. 2. Select _Push Notifications_ from the _Messaging Channels_ list. 3. Configure all the campaign settings and then go to the _What_ section: 1. Click **Personalization**. 2. Select the _Linked Content_ configured under [Configure Linked Content in CleverTap](doc:contentful#configure-linked-content-in-clevertap) and click **Apply**. ![Personalization](https://files.readme.io/46b0a83646f6f4fc30d01d1966ea7b55510813fadeb22c2d9c82f9ea854f5609-image.png) Personalize Push Notification Using Linked Content 4. Type `{`, `{{`, or `@` to view available personalization options. For more information about how to personalize a message using Linked Content, refer to [CleverTap Liquid Tags](doc:personalize-message-all) . ![Linked content](https://files.readme.io/c8a23a4dd00ddf5acf75c0436f72401a6ca4ee2dfe4f621f1a27039e2ea122d2-789c4e27-201e-472d-ba5e-6925c7854506.png) Create Personalized Message Using Linked Content For this example, we will use the `items` object from the above-linked content options and use the `id` and `text` keys from the JSON response to retrieve the personalized message generated by Contentful. The following is the sample response generated by Contentful Linked Content: JSON { "total": 1, "items": [\ {\ "sys": {\ "id": "2DhLXpWYk9n5emtCA7GqfE",\ "type": "Entry",\ "createdAt": "2025-04-14T04:47:00.629Z",\ "updatedAt": "2025-04-14T04:47:00.629Z",\ "space": {\ "sys": {\ "type": "Link",\ "linkType": "Space",\ "id": "alu97stg42ry"\ }\ },\ "environment": {\ "sys": {\ "id": "master",\ "type": "Link",\ "linkType": "Environment"\ }\ }\ }\ }\ ] } Use the following Liquid Tag to fetch the personalized text: Liquid Tag Syntax {{ Linked[" Testing ContentFul"].items[0].fields.pageTitle | default: "NULL" }} {{ Linked[" Testing ContentFul"].items[0].fields.pageDescription | default: "NULL" }} 5. Click **Preview & Test** to see if the campaign correctly renders personalized content or default fallback values. ![Preview & Test](https://files.readme.io/c9c0aa2a3dae654eec27ad5d4466d06f52bb5a537f9fed1acb85e0601715cd7c-3e2277e3-8b08-48b3-b8ec-5e8d86c2c4c2.png) Preview and Test 6. From the Media subsection, use the following syntax to insert the Contentful image URL from the auto-mapped asset: Liquid {{ Linked[" Testing ContentFul"].Asset[0].fields.file.url | default:"fallback_image" }} 7. Click **Publish** to launch the campaign. Verify if everything works as intended, users will receive a push notification like the one below. ![Push Notifications](https://files.readme.io/8b6c852bb12809cbe58d074c9641ae81234b904632e3114c530d756b55d704d8-a7c45794-ff21-40ac-b4a0-f020fdb73ffe.png) Push Notification Using Contentful API By integrating Contentful with CleverTap, you can automate the creation of hyper-personalized content across different CleverTap campaigns. Whether you are creating [Push Notifications](doc:create-message-push) , [Email](doc:create-message-email) , [In-App messages](doc:create-message-in-app) , or [Web Pop-ups](doc:create-message-web-popup) , Contentful empowers you to deliver highly relevant, personalized messaging at scale. Updated about 2 months ago * * * Ask AI --- # Inkit Overview [](https://docs.clevertap.com/docs/inkit#overview) =============================================================== [Inkit](https://www.inkit.com/) enables you to reach and communicate with customers through automated and personalized direct mail campaigns. It allows rendering of paperless documents at scale and validating customer mailing addresses with precision. With the CleverTap Inkit integration, you can: * Send personalized Inkit mailers (postcards, letters) to users or segments from CleverTap. * Trigger document generation based on scheduled campaigns or qualifying user events. * Deliver paperless communication through automated workflows. Prerequisites for Integration [](https://docs.clevertap.com/docs/inkit#prerequisites-for-integration) ========================================================================================================= The following are the prerequisites for this integration: * You must have an Inkit [Account](https://app.inkit.io/) , an [API token](https://docs.inkit.com/docs/authentication#how-to-find-the-api-key-or-token-in-the-app) , and a [Template ID](https://docs.inkit.com/docs/inkit-postcards-api#api-token-and-template-id) to send requests from CleverTap using webhook. * You must have an account with CleverTap. Integrate Inkit with CleverTap [](https://docs.clevertap.com/docs/inkit#integrate-inkit-with-clevertap) =========================================================================================================== The integration process involves the following three major steps: 1. [Create a Template in Inkit](doc:inkit#create-a-template-in-inkit) 2. [Create Webhook in CleverTap](doc:inkit#create-webhook-in-clevertap) 3. [Create Webhook Campaign in CleverTap](doc:inkit#create-webhook-campaign-in-clevertap) Create a Template in Inkit [](https://docs.clevertap.com/docs/inkit#create-a-template-in-inkit) --------------------------------------------------------------------------------------------------- Create a reusable document template in Inkit that will be triggered from CleverTap. To do so, perform the following steps: 1. Log in to the Inkit platform. 2. Create or select a template you want to use in your CleverTap campaign. 3. Copy the **Template ID** from the URL. For example, in the URL: < https://app.inkit.io/#/templates/design/ > Refer to the [Inkit API documentation](https://docs.inkit.com/docs/api-endpoints) for guidance on template usage. Create Webhook in CleverTap [](https://docs.clevertap.com/docs/inkit#create-webhook-in-clevertap) ----------------------------------------------------------------------------------------------------- Connect CleverTap with Inkit by setting up a webhook that sends user-specific data to Inkit's API. To do so, perform the following steps: 1. Go to _Settings_ > _Channels_ > _Webhook_ in the CleverTap dashboard. 2. Click **\+ Webhook** to add a new webhook. 3. Enter the following configuration: | Field | Value | | --- | --- | | Name | Enter the nickname for your webhook to identify it uniquely. For example:`Inkit` | | HTTP Method | Select `POST` | | Endpoint URL | Paste the URL `https://api.inkit.com/v1/generate` | | Content-Type | `application/json` | | Headers | `X-Inkit-API-Token: ` | You can check out the [Inkit API documentation](https://docs.inkit.com/docs/api-endpoints) to learn about various endpoints, their uses, and the steps to set them up. 4. Click **Save** to register the webhook. Create Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/inkit#create-webhook-campaign-in-clevertap) ----------------------------------------------------------------------------------------------------------------------- Trigger Inkit document generation based on user activity by configuring a Webhook Campaign in CleverTap. To do so, perform the following steps: 1. Go to _Campaigns_ > _\+ Campaign_ > _Webhook_. 2. Select the Webhook configured in [Create Webhook in CleverTap](doc:inkit#create-webhook-in-clevertap) . 3. In the _What_ section, under the Webhook Content section, select the Content Format as `JSON` and click the **Custom body** option. ![Webhook Content](https://files.readme.io/5ab0b354bf07f27edb8b2b69e846047973875036d02d27c478a4b3bd059a77b4-image.png) Webhook Content 4. Paste the following JSON payload: JSON { "merge_parameters": { "Name": "{{ Profile.name | default: "test" }}", "email": "{{ Profile.Email | default: "-" }}", "phone number": "{{ Profile.Phone | default: "-" }}" }, "template_id": "", "description": "test" } Use the personalization toolbar `{`, `{{`, or `@` to dynamically populate user attributes. For more information about all the different types of payload Inkit supports for various use cases, refer to this doc [here](https://docs.inkit.com/reference/post_v1-generate-1) . 5. Click **Preview and Test** to validate the setup. ![Preview and Test](https://files.readme.io/3226d69648a7889c7e617a6169797aff8f060098d9e7170c7e7e7a7fb33be0b1-2d2e9f55aa0bf4ce79a939757630cae0c292d6de50bd2d83f2e223deedd59768-image.png) Preview and Test 6. Check the Inkit dashboard to confirm that the data has been received and processed under the _History_ section. ![Verify the data on Inkit](https://files.readme.io/dc0933d91ccd6ca65a6e40b22344708a266163162c21ded699488140121f2f86-inkits.png) Verify the data on Inkit 7. Once validated, click **Publish** in CleverTap. By integrating Inkit with CleverTap, you can seamlessly extend your engagement strategy beyond digital channels, automating timely, personalised direct mail campaigns that resonate with your users at scale. Updated about 2 months ago * * * Ask AI --- # Jasper AI Overview [](https://docs.clevertap.com/docs/jasper-ai#overview) =================================================================== [Jasper.ai](https://www.jasper.ai/) is a Generative AI platform that helps marketers create high-quality, personalized content at scale. The Jasper CleverTap integration allows you to automate the creation of personalized campaign content using Jasper’s Generative AI. By linking Jasper’s API with the CleverTap Linked Content feature, marketers can dynamically generate user-specific messages for push notifications, emails, and more, all in real time. This helps improve engagement, reduce manual effort, and drive better campaign performance. Prerequisites for Integration [](https://docs.clevertap.com/docs/jasper-ai#prerequisites-for-integration) ============================================================================================================= The following are the prerequisites for integrating Jasper.ai with CleverTap: * Ensure you have a valid Jasper.ai API token (available for Business/Enterprise plans). * Ensure you have a CleverTap account. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/jasper-ai#support-for-integration) > > This integration is managed and continuously improved by Jasper.ai. The CleverTap and Jasper.ai integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Jasper.ai](https://www.jasper.ai/contact-support) > for support and resolution. Integrating Jasper.ai with CleverTap [](https://docs.clevertap.com/docs/jasper-ai#integrating-jasperai-with-clevertap) ========================================================================================================================== You can dynamically personalize CleverTap campaigns using content generated by Jasper.ai via CleverTap's [Linked Content APIs](doc:linked-content) . For example, generate a personalized push notification using Jasper.ai and seamlessly include it in your CleverTap campaign. To do so, perform the following two major steps: 1. [Configure Linked Content API in CleverTap](doc:jasper-ai#configure-linked-content-api-in-clevertap) . 2. [Create a Personalized Campaign Using Linked Content](doc:jasper-ai#create-personalized-campaign-using-linked-content) . Configure Linked Content API in CleverTap [](https://docs.clevertap.com/docs/jasper-ai#configure-linked-content-api-in-clevertap) ------------------------------------------------------------------------------------------------------------------------------------- To set up Linked Content API in CleverTap, perform the following steps: 1. Go to _Settings_ > _Setup_ > _Linked Content_. 2. Click **\+ Linked Content** to create a new entry. ![Linked Content](https://files.readme.io/7c6113e542fec6cf53782cc73b8e8e82f54dd413c9dabbc2e298b9d672c3e7a6-2025-04-07_12-35-07_1.gif) Configure Linked Content 3. Enter the following details: | **Field** | **Details** | | --- | --- | | **Name** | Provide a name for the Linked Content. | | **HTTP Method** | Set the HTTP method to `POST`. | | **Endpoint URL** | Enter the following endpoint URL: `https://api.jasper.ai/v1/command` | 4. Leave URL Parameters blank and add the following under _Headers_: | **Header** | **Details** | | --- | --- | | `X-API-Key` | Jasper API token. [Generate a new Access Token](https://developers.jasper.ai/docs/authentication)
from Jasper.ai dashboard. _(Only available on Enterprise/Business plan)_ | | `content-type` | `application/json` | | `accept` | `application/json` | 5. Paste the following JSON payload under _Body_: JSON { "inputs": { "command": "Write a personalized short and simple push notification message for Christmas holiday discounts including the name of the person to whom it is sent as well. Make sure to only include the message in the response and nothing else and no details", "context": "push notification is being sent to {{Profile.name | default: \"shreyans\"}}", "toneId": "" }, "options": { "outputCount": 1, "outputLanguage": "English", "inputLanguage": "English", "languageFormality": "default", "completionType": "performance" } } The `{{Profile.name | default: "shreyans"}}` tag dynamically personalizes the content using the recipient name. For more information, refer to [Personalize Message](doc:personalize-messages-push) . To customize the tone of the generated content, use the appropriate tone ID. For more information about toneId, refer to [Retrieve all Tones](https://developers.jasper.ai/reference/getalltones) . 6. Click **Test Linked Content** to verify the response fetched successfully from the linked content. Then, click **Auto-Fill Objects with Response** to automatically handle responses and populate objects. ![Test Linked Content and AutoFill Objects with Response](https://files.readme.io/4fc890fbbd6040253e2ad52802ed4fafd5c07a37eec5e15f1bf7b3808c8727dc-Screen_Recording_2025-04-04_at_12.52.02_PM_1.gif) Test Linked Content and AutoFill Objects with Response 7. Click **Test & save changes** to complete the setup. You can now use this Jasper-generated linked content in various CleverTap campaigns. Create Personalized Campaign Using Linked Content [](https://docs.clevertap.com/docs/jasper-ai#create-personalized-campaign-using-linked-content) ----------------------------------------------------------------------------------------------------------------------------------------------------- With Jasper.ai connected to CleverTap via Linked Content, you can now add personalized content to your CleverTap campaigns. For this example, let us create a short, personalized push notification for Christmas holiday discounts. To do so, perform the following steps: 1. Go to _Campaigns_ from the CleverTap dashboard and click **\+ Campaign**. 2. Select _Push Notification_ from the _Messaging Channels_ list. 3. Configure all the campaign settings and then go to the _What_ section: 1. Click **Personalization**. 2. Select the _Linked Content_ configured under [Configure Linked Content API in CleverTap](doc:jasper-ai#configure-linked-content-api-in-clevertap) and click **Apply**. ![Personalization](https://files.readme.io/a12a6ad188b0cc866215d99eee2ee0c0486d34fcf9708c1c6c95f7acc4f2497a-Screen_Recording_2025-04-07_at_2.35.38_PM_1.gif) Personalization 4. Type `{`, `{{`, or `@` to view available personalization options. For more information about how to personalize a message using [Linked Content](doc:linked-content) . ![Linked content](https://files.readme.io/18d726edcfb80eb0b07a802ab360013d008bb4d125868fd86d59146868b852a6-image.png) Create Personalized Message Using Linked Content For this example, we will use the `data` object from the above-linked content options and use the `id` and `text` keys from the JSON response to retrieve the personalized message generated by Jasper. The following is the sample response generated by Jasper Linked Content: JSON { "requestId": "f255e62e-1c66-4ab6-b619-d55743c70b19", "resource": "content", "data": [\ {\ "id": "txt_58a9cb3595cc426eabfda0125a529246",\ "text": "\"Christmas Discounts Await You, Anu!\""\ }\ ] } Use the following Liquid tag to fetch the personalized text: {{ Linked["JASPER TEST"].data[0].text | default: "NULL" }} 5. Click **Preview & Test** to see if the campaign pushes the default values you configured. ![Preview & Test](https://files.readme.io/51b63129d7df8331049b337bdb0860d33129b441fa45826466849f4603f28776-image.png) Preview & Test 6. Click **Publish** to launch the campaign. Verify if everything works as intended, users will receive a push notification like the one below. ![Push Notifications](https://files.readme.io/857a4d4ea8885dfeb3f51371846ef17c4f06ae8246ce965f42226082ba52681b-image.png) Push notification By integrating Jasper.ai with CleverTap, you can automate the creation of hyper-personalized content across various campaign types. Whether you are creating [push notifications](doc:create-message-push) , [email subject lines](doc:create-message-email) , [In-app messages](doc:create-message-in-app) , or [web pop-ups](doc:create-message-web-popup) , Jasper.ai empowers you to deliver highly relevant, personalized messaging at scale. Updated about 2 months ago * * * Ask AI --- # Blitzllama Overview [](https://docs.clevertap.com/docs/blitzllama#overview) ==================================================================== [Blitzllama](https://blitzllama.com/) helps you gather targeted user feedback through micro-surveys. By integrating with CleverTap, you can push defined user cohorts from CleverTap into Blitzllama, enabling precise targeting and richer user insights. With this integration, you can: * Import CleverTap user segments via one-time, scheduled, or recurring campaigns. * Use these cohorts in Blitzllama to trigger micro-surveys to the right users. Prerequisites for Integration [](https://docs.clevertap.com/docs/blitzllama#prerequisites-for-integration) ============================================================================================================== Ensure the following before starting the integration: * Ensure you have access to your CleverTap account. * Ensure you have a Blitzllama account. * Ensure you have Blitzllama API access. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/blitzllama#support-for-integration) > > This integration is managed and continuously improved by Blitzllama. The CleverTap and Blitzllama integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Blitzllama](https://docs.clevertap.com/cdn-cgi/l/email-protection#93e7f6f0fbd3f1fffae7e9fffff2fef2bdf0fcfe) > for support and resolution. Integrate Blitzllama with CleverTap [](https://docs.clevertap.com/docs/blitzllama#integrate-blitzllama-with-clevertap) ========================================================================================================================== To integrate Blitzllama with CleverTap, perform the following three major steps: 1. [Find Blitzllama Details](doc:blitzllama#find-blitzllama-details) . 2. [Set Up Webhook in CleverTap](doc:blitzllama#set-up-webhook-in-clevertap) . 3. [Create Webhook Campaign in CleverTap](doc:blitzllama#create-webhook-campaign-in-clevertap) . Find Blitzllama Details [](https://docs.clevertap.com/docs/blitzllama#find-blitzllama-details) -------------------------------------------------------------------------------------------------- Access your Blitzllama destination and API key for integration. To do so, perform the following steps: 1. Go to the _Connections_ tab in the Blitzllama dashboard. 2. Select _CleverTap_ to find the _Destination URL_ and _API key_. 3. Copy the _Destination URL_ and _API key_ and save this information. ![Get Destination URL](https://files.readme.io/6a6fa1c5efe950a889257d00a6b6bf0ce6fe1c8601593685d7b6ad14a30ad95e-image.png) Get Destination URL Set Up Webhook in CleverTap [](https://docs.clevertap.com/docs/blitzllama#set-up-webhook-in-clevertap) ---------------------------------------------------------------------------------------------------------- Configure the Webhook channel in CleverTap to communicate with Blitzllama. To do so, perform the following steps: 1. Go to _Settings_ > _Channels_ > _Webhooks_ from the CleverTap dashboard. 2. Click **\+ Add Webhook** and provide a meaningful name for the webhook. 3. Set the _HTTP Method_ to `POST` and paste the _Destination URL_ copied in _step 3_ of [Find Blitzllama Details](https://docs.clevertap.com/docs/blitzllama) . 4. Add the following key-value pair under _Headers_: | Key | Value | | --- | --- | | `X-api-key` | Paste the _API key_ copied from _step 3_ of [Find Blitzllama Details](https://docs.clevertap.com/docs/blitzllama)
. | ![Create Webhook](https://files.readme.io/74eed9a262eb62b2879a2e6b672ca391f262ace3f359cff076481c73df85311b-image.png) Create Webhook 5. Click **Save** to create the webhook. After saving the webhook, CleverTap is now ready to send user profile data directly to Blitzllama. Create Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/blitzllama#create-webhook-campaign-in-clevertap) ---------------------------------------------------------------------------------------------------------------------------- Create a Webhook campaign in CleverTap to send user data to Blitzllama. To do so, follow these steps to configure and publish the campaign: 1. Go to _Campaigns_ on the CleverTap dashboard, click **\+ Campaign** and select _Webhook_ from the list of messaging channels. 2. Configure the following campaign settings: target audience, schedule, and other basic settings. 3. Perform the following steps under the _What_ section: 1. Select the webhook created in [Set Up Webhook in CleverTap](doc:blitzllama#set-up-webhook-in-clevertap) . 2. Set Content Format to `JSON`. 3. Select _Profile variables & custom key value pairs_, to define which user fields you want to send to Blitzllama, such as Name, Email, Phone, Created Date, and so on. ![Webhook Content](https://files.readme.io/b463e177d22f40be669ed15c0658bb2040e648a4376a768683e43276f8f9e707-29396b66-5ecf-44a7-ac2a-f3b7c4ace003.png) Webhook Content > 🚧 > > ### > > Note > > [](https://docs.clevertap.com/docs/blitzllama#note) > > You cannot preview or test this campaign before publishing. Ignore test errors. Once published, the sync works as expected. 4. Click **Publish**. Syncing may take up to 30 minutes. Once synced, you can view and manage cohorts under the _User & Cohorts_ > _View details_ in the Blitzllama dashboard. Clicking **View details** shows the list of users received from CleverTap. You can use these cohorts to target micro-surveys directly within Blitzllama’s survey configuration workflow. ![User & Cohorts](https://files.readme.io/fc2bed06a7e0a38bbff2510420878bd6dbcdbc1dc5999999eb4ac9912ab32a92-image.png) User & Cohorts Updated about 2 months ago * * * Ask AI --- # Delighted Overview [](https://docs.clevertap.com/docs/delighted#overview) =================================================================== [Delighted](https://delighted.com/) is a customer feedback platform that helps you gather real-time, actionable feedback through email, web, or SMS surveys. By integrating CleverTap with Delighted, you can: * Automatically trigger Delighted surveys when specific events are captured in CleverTap. * Pass user profile information to Delighted to personalize survey delivery. * Add users to Delighted Autopilot based on their interactions within your app or website. This integration allows you to send a survey to the user with pre-filled location and wallet balance data, giving you targeted, context-rich feedback. For example, a retail app wants to trigger a Delighted survey immediately after a successful purchase. Here, * Event trigger: For example, Charged * Survey type: NPS or CSAT * Expected output: personalized survey sent, feedback returned to the dashboard Prerequisites for Integration [](https://docs.clevertap.com/docs/delighted#prerequisites-for-integration) ============================================================================================================= Before setting up the integration, ensure you have the following: * Delighted Private API Key (available in your Delighted account settings). * Access to your CleverTap dashboard with permissions to configure webhooks and campaigns. > 🚧 > > ### > > Support for Integration > > [](https://docs.clevertap.com/docs/delighted#support-for-integration) > > This integration is managed and continuously improved by Delighted. The CleverTap and Delighted integration has undergone stringent testing to ensure seamless functionality. For any questions or issues, contact [Delighted](https://help.delighted.com/) > for support and resolution. Integrate Delighted with CleverTap [](https://docs.clevertap.com/docs/delighted#integrate-delighted-with-clevertap) ======================================================================================================================= To integrate Delighted with CleverTap, perform the following two major steps: 1. [Set Up Webhook in CleverTap](doc:delighted#set-up-webhook-in-clevertap) 2. [Create Webhook Campaign in CleverTap](doc:delighted#create-webhook-campaign-in-clevertap) These steps enable you to automate survey triggers based on user behavior and enrich your feedback data using user profile properties stored in CleverTap. Set Up Webhook in CleverTap [](https://docs.clevertap.com/docs/delighted#set-up-webhook-in-clevertap) --------------------------------------------------------------------------------------------------------- > ⚠️ > > ### > > Enable Webhooks > > [](https://docs.clevertap.com/docs/delighted#enable-webhooks) > > If Webhooks are not enabled for your account, contact [CleverTap Support](https://docs.clevertap.com/cdn-cgi/l/email-protection#e794929797889593a7848b82918295938697c984888a) > . 1. Go to _Settings_ > _Channels_ > _Webhooks_ from the CleverTap dashboard. 2. Click **\+ Add Webhook** and provide a meaningful name for the webhook. 3. Set the _HTTP Method_ to `POST` and enter the following _Endpoint URL_. For more information, refer to [Delighted API](https://delighted.com/docs/api) . JSON https://api.delighted.com/v1/people.json 4. Add the following key-value pair under _Headers_: JSON Content-Type: application/json 5. Select _Basic Authentication_ for Authentication and enter the following: * Username: Your Delighted _Private API Key_ * Password: Use a hyphen (`-`) ![Create Webhook](https://files.readme.io/c4dc71b36a758f944e28515775c5c0ae8f188fedc2716f0d4c10eee6b17cdd17-image.png) Create Webhook 6. Click **Save** to configure the Webhook in CleverTap. Create Webhook Campaign in CleverTap [](https://docs.clevertap.com/docs/delighted#create-webhook-campaign-in-clevertap) --------------------------------------------------------------------------------------------------------------------------- > 🚧 > > ### > > Prepare Delighted Survey in Advance > > [](https://docs.clevertap.com/docs/delighted#prepare-delighted-survey-in-advance) > > Ensure your Delighted survey is created and ready to receive user data via API. 1. Go to _Campaigns_ on the CleverTap dashboard, click **\+ Campaign** and select _Webhook_ from the list of messaging channels. 2. Configure the following campaign settings: target audience, schedule, and other basic settings. 3. Perform the following steps under the _What_ section: 1. Select the webhook created in the previous step. 2. Set Content Format to `JSON`. 3. Select _Custom Body_. ![Webhook Content](https://files.readme.io/8b0fc07b06e7eb830724731b27111799d57f1fa3fd1ce267189bdaf18888e668-image.png) Webhook Content 4. Enter the payload under the _Custom Body_ section using [Liquid Tags](doc:personalize-message-all#liquid-tags) : JSON { "email": "{{ Profile.Email | default: '[email protected]' }}", "properties": { "Purchase Experience": "Mobile App", "State": "{{ Profile.State | default: '-' }}", "City": "{{ Profile.City | default: '-' }}", "Wallet": "{{ Profile.wallet_balance | default: '0' }}" } } 5. Click the variable selector (`@`, `{`, or `{{`) in the editor to personalize the campaign. You can dynamically reference user profile properties using [Liquid Tags](doc:personalize-message-all#liquid-tags) . 6. Click **Preview and Test** to validate the webhook request. ![Preview and Test](https://files.readme.io/3a2efa50203f47d96add3b3979caf34edc281fc0c7ea9b69b72a43f734a709f1-image.png) Preview and Test 7. Click **Publish** to the campaign to your targeted users. Once a user qualifies for the campaign conditions: * Your Delighted Dashboard will reflect the data with the user properties corresponding to the users we sent as a request payload. ![Delighted Dashboard](https://files.readme.io/5ff2926681da4c84bd584fd7829829132379bd735efaf239461cab237223e92b-image.png) Delighted Dashboard * Delighted uses this information to trigger a personalized survey via email. ![Survey via Email](https://files.readme.io/b48153596e81151eec8a8667ef66dd906a9bc6a3f813fa9fc8f2cebeeeb94b3b-image.png) Survey via Email * Survey responses and associated user properties are visible on your Delighted dashboard. ![Survey responses](https://files.readme.io/df18c8d6d3fc4c05dc251ce79c3968de1269dcbba8dc3f659cf2e26cb6df7d73-image.png) Survey responses Integrating Delighted with CleverTap empowers your team to collect timely, contextual feedback at critical milestones in the user journey. By automatically triggering personalized surveys based on In-App behavior, you can close the loop between customer actions and sentiment. Updated about 2 months ago * * * Ask AI --- # Typeform Overview [](https://docs.clevertap.com/docs/typeform#overview) ================================================================== [Typeform](https://www.typeform.com/) is a powerful platform that helps you create interactive, conversational surveys that users actually want to complete. Whether you are collecting feedback, measuring NPS, or qualifying leads. Typeform makes it easy to capture high-quality responses. With CleverTap’s Typeform integration, you can now embed surveys directly into your Email, In-App, and Web Pop-up campaigns. This integration empowers you to: * Gather real-time feedback at key moments in the user journey * Automatically update user profiles based on survey responses * Trigger personalized campaigns based on how users respond Prerequisites for Integration [](https://docs.clevertap.com/docs/typeform#prerequisites-for-integration) ============================================================================================================ The following are the prerequisites for integrating Typeform with CleverTap: * Ensure you have access to your Typeform account. * Ensure you have a CleverTap account. Integrate Typeform with CleverTap [](https://docs.clevertap.com/docs/typeform#integrate-typeform-with-clevertap) ==================================================================================================================== Use Typeform surveys to collect actionable feedback from your users within CleverTap campaigns. This integration allows you to configure Email, In-App Message, and Web Pop-up campaigns with embedded Typeform surveys to drive engagement and capture insights. To do so, perform the following two major steps: 1. [Set Up Typeform Survey](doc:typeform#set-up-typeform-survey) . 2. [Configure Typeform in CleverTap Campaigns](doc:typeform#configure-typeform-in-clevertap-campaigns) . > 📘 > > ### > > Important > > [](https://docs.clevertap.com/docs/typeform#important) > > Always publish your survey on Typeform before attempting to embed it in a campaign. Set Up Typeform Survey [](https://docs.clevertap.com/docs/typeform#set-up-typeform-survey) ---------------------------------------------------------------------------------------------- Configure and publish your Typeform survey before embedding it into any campaign. This ensures that the survey is accessible and ready to be rendered across different channels. Follow these steps to prepare your survey: 1. Log in to your [Typeform](https://www.typeform.com/) account. 2. Create a new survey or open an existing one. 3. Click the **Share** tab. 4. Select one of the following: * **Embed in an Email**: Click **Start Embedding** to generate an HTML snippet. * **Standard URL**: Copy the survey URL (for In-App or Web Pop-up). ![Create a new survey](https://files.readme.io/8e9745bf2bace885248f018a0111efd834cc8a0492f32461953f2a5a3696be2d-2025-04-14_12-02-27_1.gif) Create a new survey > 📘 > > ### > > Note > > [](https://docs.clevertap.com/docs/typeform#note) > > Append query parameters to pass user identifiers for better targeting. Configure Typeform in CleverTap Campaigns [](https://docs.clevertap.com/docs/typeform#configure-typeform-in-clevertap-campaigns) ------------------------------------------------------------------------------------------------------------------------------------ Configure Typeform in CleverTap Campaigns to effectively embed the survey across different campaign types to collect user responses. You can configure the following campaign types to include your Typeform survey: * [Email Campaign](doc:typeform#configure-an-email-campaign) : Embed the survey in emails to reach users directly in their inbox. * [In-App Message Campaign](doc:typeform#configure-in-app-campaign) : Display the survey within your app at key moments. * [Web Pop-up Campaign](https://docs.clevertap.com/docs/typeform) : Surface the survey as a pop-up on your website. ### Configure an Email Campaign [](https://docs.clevertap.com/docs/typeform#configure-an-email-campaign) Set up and personalize your email campaigns in CleverTap to engage users effectively. To do so, follow these steps: 1. Go to the _Campaigns_ page, click **\+ Campaign**, and select _Email_ from the list of messaging channels. 2. Click **Go to Editor** under the _What_ section. * Select a **Basic Template, Pre-used Template, or a Saved Template**. * Switch to **Source** mode in the email editor to edit the HTML code of the email body. 3. Paste the copied **Typeform HTML snippet** (from step 4 of [Set Up Typeform Survey](doc:typeform#set-up-typeform-survey) ) inside the `` section in CleverTap Email editor Source. ![Insert the HTML Code Snippet](https://files.readme.io/1819eb876f94ad67d63576966fa6b2343927a1bae63bc0cd4882e1b988291807-email-_typeform_1.gif) Insert the HTML Code Snippet 4. Preview and test your email campaign to ensure the survey is embedded correctly. ![Preview and Test](https://files.readme.io/20ffe2b7e15f6a305d7c77fd7936acf8605fec3c77a01a1078e9440ffa541858-image.png) Preview and Test 5. Publish the email campaign once testing is complete. The embedded Typeform survey will be delivered as part of the personalized email to your users. Configure In-App Campaign [](https://docs.clevertap.com/docs/typeform#configure-in-app-campaign) ---------------------------------------------------------------------------------------------------- Before creating an In-App campaign, ensure your app is configured with the [CleverTap SDK](https://developer.clevertap.com/docs/clevertap-sdks) and has [Push Notifications](https://docs.clevertap.com/docs/setup-push-notification) enabled. This ensures seamless delivery and functionality of In-App messages. Set up and personalize your In-App campaigns in CleverTap to engage users effectively. To do so, follow these steps: 1. Go to **Campaigns** in the CleverTap dashboard. Click on **\+ Campaign** and select **In-App Messages** from the dropdown menu. 2. Click **Go to Editor** under the _What_ section. 3. Select any template from the available options. For this example, we will use **Custom HTML Templates**. ![Custom HTML Templates](https://files.readme.io/bba3ad2b5f24447d2d31901ac4b17efe32de2cadc35424f7d8ad323841e5869f-image.png) Custom HTML Templates 4. Paste the **Typform HTML snippet** (from step 4 of [Set Up Typeform Survey](doc:typeform#set-up-typeform-survey) ) inside the `` tag of the custom HTML. 5. Replace YOUR\_SURVEY\_URL with your Typeform survey URL, available in the Share section of your Typeform account. Adjust the width and height values as needed for optimal display. HTML