As you continue to work with the CleverTap platform, you will eventually reach a point where you have to do two things: 

  • bringing data in—so CleverTap knows who your customers are, their history, segments  and habits, or
  • sending data out—so the rest of your marketing stack stays in sync. 

This guide is your quick guide to both sides of that journey, outlining the simplest ways to import what you need and export what you want.


1 · Exporting Data from CleverTap

MethodBest forHighlights
Outbound WebhooksReal‑time pushes to third‑party systemsData push method; supports live and PBS qualification; event-triggered payloads with retry logic
Get Events & Get Profiles APIsPulling historical data or syncing to a data warehouseData pull method; cursor-based batch export; supports CQL-based filtering
Amazon S3 / Azure / GCP ExportsScheduled batch exports to cloud storageFile-based dumps of events and user profiles every 4+ hours; segmentation is done post-export
EventBridgeIf EventBus mechanism already runningEventBus similar to Webhooks; integrates directly with AWS EventBridge

1. A CleverTap Webhook

A CleverTap webhook is an HTTP request that sends user data to a third-party system based on specific campaign triggers or segment conditions.
Webhooks allow you to stream user-level data in real time for live actions or push data periodically as part of scheduled or one-time campaigns.

Depending on your goal, you can trigger webhooks using:

CategoryTrigger TypeExampleIdeal For
Live – based on actionsSingle Action / Multiple ActionsUser launched the app, or launched the app and viewed a notificationSupports real-time data streaming with event properties included
Live – inaction within timeInaction + time gapUser added to cart but didn’t purchase within 24 hrsReal-time trigger; commonly used for nudges and follow-ups
Scheduled – based on past behaviorPast Actions / InactionsUser launched the app but didn’t open a notification last weekPBS (Past Behavior Segment); data pushed once or on schedule
Scheduled – based on time conditionsDate-time propertyTen days since a user’s last purchaseTriggered by time-bound user attributes
Scheduled – based on static user listsCSV upload / custom segmentImported list of users from a CRMIdeal for one-time campaigns or backfills
Segmented – using user propertiesDemographics / locationUsers in Canada who purchased an itemCan be applied in both real-time and scheduled modes

Setting up a Webhook Template 

  1. Dashboard path: Settings → Channels → Webhooks → + Add Webhook
  1. Configure webhook template by choosing HTTP method: POST, GET, PUT, or DELETE.
  2. Enter Name & Destination URL – use a tool like requestcatcher.com for dry‑runs.

Webhook authorization on CleverTap ensures that only verified sources can send data through your Webhooks. It uses one of the following methods:

  • No authentication: Authenticate users by adding credentials such as a password or token via the Headers tab.
  • Basic Authorization: Authenticate using a username and password in the request headers to verify the sender’s identity.
  • OAuth 2.0: Authenticate requests by obtaining an access token from CleverTap and adding the token to the request headers to ensure that only authorized systems can send data.
  1. Save – CleverTap pings the URL with a test payload; a 200 response locks the template. 

For a more detailed understanding of using a partner tool for set up, look at our in-depth documentation

Creating an Export Webhook Campaign

Now that we’ve set up an endpoint for the webhook, we can create a webhook campaign to export the data. 

  1. Campaigns → + Campaign → Webhooks.
  2. Qualification criteria:
    • Live actions/inactions (e.g., “Charged” event) for real‑time export, or
    • Past behavior for backfills.
  3. Audience filters: slice by user property (e.g., Country = “US”) or event property.
  4. Select the webhook template you created earlier.

Compose payload:
json
CopyEdit
{

  “key_values”: {

    “source”: “billing-service”,

    “batch”: “{{CampaignID}}”

  },

  “profiles”: {{Profiles}}

}

  1. Choose JSON or plain text; you can personalize with Liquid tags or @Personalization variables.
  2. Schedule: run immediately, at a fixed time, or with a delay (seconds → days).
  3. Publish.

Handling Responses & Retries

ScenarioCleverTap behaviourYour receiver should…
HTTP 200 response code within 5 sMarks delivery SuccessfulReturn 200 (or any 2xx) as fast as possible
Timeout or ≥ 300 codeRetry 2 times (exponential back‑off)Respond quickly; queue heavy work internally
All retries failStats show “Webhook Dispatch Failed”Alert & inspect logs

6. Best‑Practice Checklist

AreaRecommendation
SecurityPrefer OAuth 2.0; use HTTPS; verify CleverTap’s User-Agent or add an HMAC header.
Schema evolutionVersion your receiver; ignore unknown keys to stay forward‑compatible.
ThrottlingCampaign > 100k users? Use Targeting Cap or split by segment to avoid rate‑limiting downstream APIs.
MonitoringBuild Grafana alerts on webhook 4xx/5xx rates; cross‑check CleverTap “Webhook Stats”.
GDPR/PIIMask or hash emails/phones in transit if your data policy requires it.

1.2  Cursor‑based Exports with Get Events & Get Profiles API 

It is a self‑serve, on‑demand way to pull bulk data from CleverTap—perfect for a one‑time historical back‑fill or a nightly warehouse sync. You can choose and configure  what you need in the export  and use the API to retrieve it.. Common outputs are:

  • Get Events API – raw event stream
  • Get Profiles API – full user attributes
  • CleverTap Query Language (CQL) – optional SQL‑style filter you can attach to either call

Everything travels in batches of up to 5 000 rows. To collect them all, you pivot through a cursor token that CleverTap hands back on the first call. 

At‑a‑glance

What you exportEndpointTypical use
Events only/1/events.jsonFunnel, retention, or revenue modelling in BI tools
User profiles only/1/profiles.jsonCRM enrichment, audience uploads
Both, pre‑filtered with CQLSame endpoints, but include a queryblock“Only users in Egypt who spent >$50 last week”

How the cursor dance works 

  1. Kick off – Send a small JSON telling CleverTap the date window (and a CQL filter if you wish).
  2. Receive a cursor – Think of it as a pickup token for box #1.
  3. Loop – Re‑call the API with that cursor; CleverTap gives you another 5 000 rows plus the next cursor. Keep looping until the cursor field disappears.

One‑time setup

  1. Copy your Account ID & Passcode from Settings → API Credentials.
  2. Write a tiny script (Bash, Python, Airflow—whatever you use) that follows the 3‑step dance above.
  3. Point the output to your warehouse’s staging area (Snowflake, BigQuery, Redshift, etc.).

That’s it. No CleverTap dashboard clicks required.

Day‑to‑day operations

  • Scheduling – Drop the script into your scheduler (cron, Airflow, GitHub Actions).
  • Monitoring – Alert if a batch file is missing or smaller than expected; CleverTap itself does not email on cursor errors.
  • Segmentation – Because API supports CQL runs which export doesn’t support, you can keep files lean and avoid post‑processing heavy joins.

Good‑to‑know limits & tips

  • Batch size max = 5 000 rows; larger asks are silently trimmed.
  • API rate Limits =15 concurrent requests
  • Payload format – Responses are returned in JSON and can be gzip-compressed if requested via headers..
  • Retries – If CleverTap says “Request still in progress, retry later”, wait ~60 seconds and hit the same cursor again.
  • Profiles extras – Add app=true if you also need device info in every profile blob.
  • Security – Always call the HTTPS domain for your region (in1.api…, eu1.api…, etc.).

1.3 Method 3 · Partner Exports (AWS, Google, Azure)

Think of Partner Exports as a scheduled “bulk dump” from CleverTap straight into your own cloud account.
Unlike Webhooks (real‑time) or the Get Events API (script‑driven), these connectors:

  • move both events and user‑profiles in batches
  • can refresh as often as every 4 hours (or as rarely as once per day) 
  • hand you everything you asked for—you filter or segment the data after it lands in your storage

Below is a non‑technical snapshot of each partner connector and the common setup flow.

PartnerWhere the data landsTypical usesQuick highlights
Amazon S3Your S3 bucketFeed Redshift/Glue, keep a cold archiveChoose JSON, CSV, XML or Parquet; filenames chunk at 100 MB; IAM write‑only policy required. 
Amazon EventBridgeEventBridge bus → any AWS target (Lambda, Kinesis, Step Functions)Pipe CleverTap activity into real‑time AWS workflowsNear‑instant events; you still configure it under “Exports” with a 4‑hour minimum schedule to ensure durability. 
Google Cloud PlatformDataset in your GCP projectBI & SQL‑style analysis in minutesCleverTap creates the tables (events, profiles); each run appends the latest 4‑hour slice. 
Microsoft AzureAzure Blob / Data Lake Gen 2Feed Synapse, Data Factory, or Power BISame 4‑hour cadence, same file‑format choices as S3. 
AmplitudeAmplitude dashboardProduct and behavioral analytics; cohort trackingExport CleverTap events into Amplitude; supports one-time or recurring exports 
MixpanelMixpanel dashboardProduct analytics, funnel tracking, retention analysisExports CleverTap events to Mixpanel; supports one-time or recurring exports 
mParticlemParticle dashboard Customer data platform integration; cross-channel data unificationExports CleverTap events to mParticle; supports one-time or recurring exports 

Set-up

  1. Go to: Settings → Partners → Exports → + New Export
  2. Pick a partner (S3, GCP, or Azure, Mixpanel, mParticle, Amplitude).
  3. Paste your cloud details
    • Bucket name / Project ID / Storage account
    • Credentials with write permission only (CleverTap never needs read/delete).
  4. Choose what to send
    • All events or Select events
    • All user profiles (full + incremental after day 1).
  5. Set the frequency (every 4 hours, 8 hours, 12 hours, or 24 hours).
  6. Pick a file format (JSON, CSV, XML, or Parquet).
  7. Create export – CleverTap pushes the first full batch; you’ll see a green “Running” badge when it succeeds.

Heads‑up on first run
The initial export is a full back‑fill (can be large). From the second run onward you only receive the changes since the last window, saving storage and processing time. 

Day‑to‑day operations

  • Identity priority: Decide whether “Identity”, “Email”, or “Phone” should populate the identity column if you export profiles. 
  • Edits & stop: Hover over the export → Edit to tweak frequency or stop it altogether.

Things to remember

  • Minimum refresh = 4 hours – these connectors are not meant for real‑time dashboards.
  • Segment later: Because the export is bulk, you’ll filter by event type, user cohort, or date after ingesting the files into your warehouse or lake.
  • Cost awareness: You pay only your own cloud‑storage and egress costs; CleverTap doesn’t charge per‑GB for exports.
  • Security first: Always give CleverTap a dedicated service account/bucket path with write access only, rotate keys at least twice a year, and use encryption at rest.

2 · Importing Data into CleverTap

Importing Data into CleverTap – the 4 Practical Paths

MethodBest forRefresh styleStand‑out points
SFTP UploadMassive back‑fills or weekly “data drops” from a data teamPush the file, CleverTap sweeps for the dataUp to 5 GB per file; JSON or CSV; manifest maps columns; resumable if network flakes.
Upload APIs(/1/upload/events.json& /1/upload/profiles.json)App/server code that wants to log events or update profiles in real‑timeYour script / server can upload events in real-timeUp to 1 000 records per call, epoch timestamps, same headers for both events & profiles. 
CSV Upload (UI)Just for profile upload.
Quick, manual edits by a marketer—“fix these 200 user attributes”
Drag‑and‑drop in the dashboardUp to 1 GB per file, in‑browser mapping & preview, status email on completion. 

1 · SFTP Upload (events or profiles)

  1. Generate an SSH key and register it under Settings → Import → SFTP.
  2. Connect to imports.clevertap.com (port 22).
  3. Drop two files for every job:
    • Data file – events_YYYYMMDD_hhmm.csv.gz or profiles_…
    • Manifest file – YAML that maps each column to a CT property.
  4. CleverTap auto‑picks the pair, processes within ≈ 2 h, and emails a success/fail report.
  5. View history under Settings → Import → Activity Log.

Pro tip: Ooredoo Tunisia pipes nightly Telescope data this way—extract → gzip → sftp → sleep.

2 · Upload APIs (real‑time from your code)

  • Endpoint: POST https://<region>.api.clevertap.com/1/upload
  • Headers: X-CleverTap-Account-Id, X-CleverTap-Passcode, Content-Type: application/json.
  • Body: top‑level “d”: [ … ] array; each object is either an “event” or “profile” update.
  • Limits: 1 000 objects / 4 MB per request; ~30 req/sec typical throttle.
  • Dry run: add ?dryRun=1 to validate without ingesting. 

4 · CSV Upload (Only for profile uploads)

  • Path: Settings → Engage → CSV Uploads → +Upload.
  • Map columns in‑browser (identity, phone, any custom property).
  • Preview the diff, then Save & Upload; status and any error rows land in your inbox.
  • Multiple files can process in parallel; 1 GB max per upload.

Which one should I use?

If you need…Go with…
Huge historical loads or regular batch drops from data engineeringSFTP Upload
Server‑side event logging or real‑time profile tweaksUpload APIs
A one‑off manual fix by the marketing teamCSV Upload

In a nutshell: pick the file‑based SFTP or CSV routes for bulk jobs, fire the Upload APIs straight from your code for streaming updates.

Conclusion

When data can move smoothly both into and out of CleverTap, the platform can do what it does best—unify customer insights, power intelligent segmentation, and drive timely, personalized engagement across every channel you choose. Pick the import method that keeps profiles and events fresh, tap the export option that keeps your other systems aligned, and let the continuous flow of information turn every campaign, analysis, and experiment into a data-driven win.

We hope you found this guide useful and for any further questions, please contact your support team.

Posted on May 7, 2025

Author

Agnishwar Banerjee LinkedIn

Leads content and digital marketing.Expert in SaaS sales, marketing and GTM strategies.

Please enter a valid work email

Smiling Woman Holding Phone