Kameleoon
Sync visitor data and events to Kameleoon for A/B testing, feature flagging, and AI-powered personalization. Zeotap supports sending visitor attribute maps and event data to power experiment targeting and personalization campaigns.
Prerequisites
- A Kameleoon account with API access enabled
- OAuth2 API credentials (client ID and client secret) with appropriate permissions
- Your Kameleoon project site code
Authentication
Kameleoon uses OAuth2 Client Credentials authentication.
- In Kameleoon, navigate to your profile by clicking your avatar, then select My profile
- Go to the API credentials section
- Create or copy your Client ID and Client Secret
- Enter both values in Zeotap when configuring the destination
Zeotap automatically handles token refresh. Tokens are valid for 2 hours by default.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Site Code | Text | Yes | Your Kameleoon project site code. Found in your Kameleoon project settings. Example: f17c21u1ag |
| Object Type | Select | Yes | The type of data to sync. Options: Visitor Data (Map) (store key-value attributes for visitors) or Events (send visitor events like conversions, page views, and custom data). |
| Data Region | Select | Yes | The Kameleoon data region for your account. Options: Europe (EU) or United States (US). Must match where your Kameleoon project is hosted. |
Target Settings
Target settings change based on the selected Object Type.
| Field | Type | Required | Condition | Description |
|---|---|---|---|---|
| Data TTL (Hours) | Text | No | Object Type = Visitor Data (Map) | Time-to-live for visitor data in hours. Maximum 8784 (366 days). Default is 2208 hours (~92 days). |
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Upsert | Yes |
| Insert | — |
| Update | — |
| Mirror | — |
Audience Sync Modes
Kameleoon does not support audience membership sync modes. Segments in Kameleoon are condition-based (computed from visitor attributes and behavior), not list-based. Use Visitor Data sync to send attributes that Kameleoon segments can target.
Features
- Field Mapping: Yes
- Schema Introspection: No
Field Mapping
| Destination Field | Type | Required | Description |
|---|---|---|---|
visitor_code | String | Yes | The unique visitor identifier or internal user ID used by Kameleoon for targeting. This becomes the key in the visitor data map. |
email | String | No | Visitor email address |
custom_data | JSON | No | Custom attributes as a JSON object. All key-value pairs are stored as visitor data properties in Kameleoon. |
How It Works
Visitor Data (Map)
- Zeotap extracts the
visitor_codefrom each row to use as the map key - All other mapped fields are sent as visitor attribute data
- Rows are batched into groups of up to 50 visitors per API request to stay within the 1 MB body size limit
- Data is sent to the Kameleoon Data API via
POST /map/mapswith the configured site code and TTL - The API responds with HTTP 202 (accepted) for asynchronous processing
- Stored data can be used in Kameleoon segments to target visitors in experiments and personalizations
Events
- Zeotap extracts the
visitor_codefrom each row - Each row is sent as a visitor event via
POST /visit/eventswith the visitor code as a query parameter - Events must include an
eventTypefield (e.g.,CUSTOMDATA,CONVERSION,PAGE) and type-specific fields - The API responds with HTTP 202 (accepted) for asynchronous processing
Rate Limits
Kameleoon enforces rate limits on the Data API:
- GET requests:
(500,000 + MUV) / 500per minute per account - POST requests:
(500,000 + MUV) / 50per minute per account - Unauthenticated requests: 120 GET / 1,200 POST per minute per IP
Zeotap authenticates all requests and processes batches sequentially with automatic retry and exponential backoff for HTTP 429 responses.
Best Practices
- Use Visitor Data for targeting attributes: Send user properties, segments, and scores that Kameleoon can use in experiment targeting conditions
- Match your data region: Ensure the Data Region setting matches your Kameleoon project’s hosting region (EU or US) to avoid latency and data residency issues
- Set appropriate TTL: The default TTL of 2208 hours (~92 days) works for most use cases. Reduce it for transient data like session attributes
- Use consistent visitor codes: The
visitor_codemust match the visitor identifier used by Kameleoon’s SDK on your site for proper data association - Batch visitor data, not events: Visitor Data mode batches multiple visitors per request for efficiency. Events are sent per-visitor due to API constraints
Troubleshooting
Authentication failed
Verify your Client ID and Client Secret in Kameleoon under My profile > API credentials. Regenerate credentials if they have been revoked. Ensure the credentials have appropriate API permissions.
Site code not found
Ensure the Site Code matches your Kameleoon project. Find it in your Kameleoon project settings. The site code is a short alphanumeric string (e.g., f17c21u1ag).
Missing visitor_code
Every record must include a visitor_code value. Records without a visitor code are skipped. Verify your field mapping includes this required field.
Data not appearing in Kameleoon
The Data API processes requests asynchronously (HTTP 202). Data may take a few minutes to appear. Verify the data was accepted by checking for errors in the sync run details. Also confirm the visitor code matches an existing or future visitor in your Kameleoon project.
Wrong data region
If requests fail with connectivity errors, verify the Data Region setting matches your Kameleoon account’s hosting region. EU accounts use eu-data.kameleoon.io and North America (US) accounts use na-data.kameleoon.io.
Rate limit exceeded
Kameleoon returns HTTP 429 when rate limits are exceeded. Zeotap automatically retries with exponential backoff. If you consistently hit rate limits, consider reducing sync frequency or batch sizes. Authenticated requests have higher rate limits than unauthenticated ones.
Event type validation errors
When syncing events, each event must include a valid eventType field. Supported types include CUSTOMDATA, CONVERSION, PAGE, STATICDATA, and others. Refer to the Kameleoon Data API documentation for the required fields per event type.
Body size limit exceeded
The Data API enforces a 1 MB body size limit for POST /map/maps and a 3 MB limit for POST /visit/events. Zeotap batches visitor data into groups of 50 to stay within limits. If individual rows contain very large JSON objects, reduce the amount of data per visitor.