# CleverTap

[CleverTap](https://clevertap.com/) is a customer engagement and retention platform that enables customer lifecycle management and mobile marketing services. With CleverTap, you can integrate analytics and marketing all in one place.

{% hint style="warning" %}
Client-side only integrations cannot be used in HIPAA mode.
{% endhint %}

## Destination Info

* Accepts [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track) and [Identify](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#identify) calls
* Connection Modes:

<table><thead><tr><th width="158.33333333333331" align="right"> </th><th width="215" data-type="checkbox">Client-side</th><th data-type="checkbox">Server-side</th></tr></thead><tbody><tr><td align="right">Web</td><td>true</td><td>false</td></tr><tr><td align="right">Mobile</td><td>false</td><td>false</td></tr><tr><td align="right">Server</td><td>false</td><td>false</td></tr></tbody></table>

## Getting Started

### Follow these steps to enable the CleverTap destination in Freshpaint:

1. Navigate to the [CleverTap destination page](https://app.freshpaint.io/destinations/apps/clevertap) in Freshpaint
2. Copy your CleverTap Account ID and region from your CleverTap your dashboard's URL and Configure the values in Freshpaint. You can also find the Account ID by going to Project > Details. &#x20;

   <figure><img src="/files/j2HfJQnZcbRhJ0lzMyP3" alt=""><figcaption></figcaption></figure>

   <figure><img src="/files/OqdzpYvLrbI2w1eOOL0L" alt=""><figcaption></figcaption></figure>
3. [Enable](https://documentation.freshpaint.io/readme/setting-up-your-destinations/enabling-and-disabling-a-destination) the destination.
4. Continue following the steps below to use this destination.

### Set up User Identification

In order to create user profiles and attribute events to those profiles in CleverTap, you need to have [User Identification ](https://documentation.freshpaint.io/readme/setting-up-identify)set up. You can use events and user properties to segment, or cohort users in CleverTap for targeted marketing campaigns. Read more [here](https://docs.clevertap.com/docs/segments) for user segmentation in CleverTap. See [this section ](#identify)below for more on user identification specifically for CleverTap.

### Enable the CleverTap Destination for Event(s)

In order to send events to CleverTap, you'll need to enable the CleverTap destination for the desired event in the event definition.&#x20;

<figure><img src="/files/zAAtD1Vl37dgjPPX0BrM" alt=""><figcaption></figcaption></figure>

### Confirm events are sending successfully to CleverTap

You can see events in CleverTap by going to Analytics > Events and searching by the event name. See the section [below](#events) for more information on events sent to CleverTap.

<figure><img src="/files/pAYduOujCtXPeCTbl0WI" alt=""><figcaption></figcaption></figure>

## Identify

When you call [freshpaint.identify()](/reference/developer/freshpaint-sdk-reference.md#identify), Freshpaint will create user profile in CleverTap for the user and set properties on their profile. If a userId The following Freshpaint user properties map to CleverTap's [standard user profile fields](https://developer.clevertap.com/docs/concepts-user-profiles#:~:text=A%20CleverTap%20user%20profile%20has,fields%20specific%20to%20your%20business.):

| Freshpaint User Property | CleverTap Standard User Profile Field | Format Restrictions                                                                                            |
| ------------------------ | ------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `name`                   | `Name`                                |                                                                                                                |
| `birthday`               | `DOB`                                 | Must be a [Date object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) |
| `gender`                 | `Gender`                              | Must be "M" or "F"                                                                                             |
| `phone`                  | `Phone`                               |                                                                                                                |
| `email`                  | `Email`                               |                                                                                                                |
| `avatar`                 | `Photo`                               |                                                                                                                |

All other user properties will be sent to CleverTap as custom user properties.

{% hint style="info" %}
It is recommended that you send at least either `email` or `userId` to identify a user for CleverTap
{% endhint %}

Here is an example of an identify call to Freshpaint with properties that would map to CleverTap standard user profile fields:

```
freshpaint.identify("test_user_id", {
    "email": "john.doe@example.com",
    "name": "John Doe",
    "gender": "M",
    "birthday": "1988-09-28",
    "phone": 5555555555
  }
)
```

You can search for users under Segments > Find People and search by `userId` or `email`&#x20;

<figure><img src="/files/5mA7kPbztFHhKpuKNoxL" alt=""><figcaption></figcaption></figure>

You can segment users in CleverTap by going to Segments > Find People and choosing the desired options you'd like to segment your users by. For example, you can segment users by behavior by finding users who triggered a Freshpaint event sent to CleverTap:

<figure><img src="/files/r84tZk0LyzAZmTrp3q2Z" alt=""><figcaption></figcaption></figure>

You can learn more about segmenting users and creating cohorts in CleverTap [here](https://docs.clevertap.com/docs/cohorts).

## Events

When you send an event to CleverTap from Freshpaint, Freshpaint calls CleverTap's [track](https://developer.clevertap.com/docs/events#custom-events) method from their SDK to create a [custom event ](https://developer.clevertap.com/docs/events#custom-events)in CleverTap.&#x20;

{% hint style="info" %}
CleverTap does not support nested objects or arrays with events. Event properties kept in arrays or objects will be rejected by CleverTap.
{% endhint %}

CleverTap requires `identify` properties such as `userId` or `email` to record and associate the event. Without these properties, the Track event does not appear in CleverTap.

## Configuration Options

### Event Transformations

Set up transformations to modify your data before it's sent to your destination. Read more about transformations [here](https://documentation.freshpaint.io/transformations).

<figure><img src="/files/aOKkpLvEjEmGXuzLhTCA" alt=""><figcaption></figcaption></figure>

### Connection Mode Settings

Only client-side connection mode is available for this destination. Events originating from the user's web browser will be sent directly to CleverTap.

## Event Limitations

CleverTap has the following event limitations that should be considered:

* The maximum number of User Event types per application is 512. However, the volume of events submitted per account across those user event types is practically unlimited.
* For each User Event recorded, the maximum number of Event Properties is limited to 256.
* ‘Charged’ Event supports up to 256 item 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: &, $, “, , %, >, <, !
* User Event keys are limited to 120 characters in length.
* User Event property values are limited to 512 characters in length.


---

# Agent Instructions: Querying This Documentation

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

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

```
GET https://documentation.freshpaint.io/integrations/destinations/apps/clevertap.md?ask=<question>
```

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

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