Personyze
Sync user profiles and audience lists to Personyze for website personalization and product recommendations. Zeotap pushes data from your warehouse into Personyze via their REST API, enabling you to personalize website experiences based on your unified customer data.
Prerequisites
- A Personyze account with API access enabled
- A REST API key from your Personyze account settings
- If syncing list members, the numeric ID of the target user list in Personyze
Authentication
Personyze uses API Key authentication with HTTP Basic auth.
- Log in to your Personyze account
- Navigate to Settings > API
- Locate or generate your REST API key
- Copy the API key
- Paste it into the API Key field in Zeotap
The API key is sent as the password in HTTP Basic authentication, with api as the username. All requests are made over HTTPS.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Object Type | Select | Yes | The type of resource to sync: Users (Profiles) for user profile data, or User List Members for audience list membership. |
Target Settings
Target settings appear based on the selected object type.
When Object Type is “User List Members”
| Field | Type | Required | Description |
|---|---|---|---|
| List ID | Text | Yes | The numeric ID of the user list in Personyze. Find this in the Personyze UI or by querying the User Lists API. |
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Upsert | Yes |
| Insert | Yes |
| Update | Yes |
| Mirror | — |
Audience Sync Modes
| Mode | Supported |
|---|---|
| Add | Yes |
| Remove | Yes |
| Mirror | Yes |
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| The user’s email address, used as the primary identifier in Personyze |
Default Destination Fields
| Field | Type |
|---|---|
email | string |
first_name | string |
last_name | string |
internal_id | string |
phone | string |
company | string |
How It Works
User Profile Syncs
- Zeotap extracts user records from your warehouse model or audience
- Each user record is sent individually to the Personyze Users API
- For Upsert and Insert modes, records are POSTed to
/rest/users— Personyze automatically merges records when identifiers (email, internal_id) match existing users - For Update mode, records are sent via PUT filtered by email address
- User records in Personyze have flexible schemas — any key-value pairs sent are stored as profile attributes
Audience List Syncs
- Zeotap extracts user identifiers from your audience
- For each user, a list membership record is sent to the Personyze User List Users API
- For Add mode, users are associated with the list via POST to
/rest/user_list_users - For Remove mode, users are disassociated from the list via DELETE
- For Mirror mode, added/changed users are included and removed users are excluded — keeping the list in sync with your warehouse
Error Handling
- Records missing an email address are skipped with an error logged per row
- HTTP 503 responses (temporary unavailability) are retried with exponential backoff
- Each row is processed individually, so failures on one record do not affect others
Rate Limits
Personyze enforces rate limits at the API level:
- HTTP 503 responses indicate temporary unavailability — Zeotap retries with exponential backoff
- There is no published request-per-second limit, but sending requests too rapidly may trigger 503 responses
- Each user record is sent individually (no batch API available)
Zeotap automatically handles rate limiting with exponential backoff and retry logic to ensure reliable delivery.
Best Practices
- Use email as the primary identifier for consistent user matching across systems
- Set the
internal_idfield to your own user ID for cross-reference between Zeotap and Personyze - Use User List Members with audience sync modes for targeted personalization campaigns
- Use Mirror mode for audience lists to keep list membership fully in sync with your warehouse
- Create dedicated user lists in Personyze before configuring the sync in Zeotap
- Start with a small test audience to verify data flow before syncing your full user base
Troubleshooting
Authentication failed
Verify your API key is correct and still active. The API key is used with HTTP Basic authentication where the username is api and the password is your API key. Check your Personyze account under Settings > API to confirm the key.
User list not found
Ensure the List ID is the numeric ID of the list, not the list name. You can find list IDs by querying the Personyze User Lists API or checking the list details in the Personyze UI.
Records not appearing in Personyze
Personyze user records require at least one identifier (email, internal_id, or user_id). Ensure your field mapping includes the email field. Records without a valid email are skipped by Zeotap.
Duplicate users created
Personyze merges users when identifiers match. If you see duplicates, ensure the email addresses are consistent (case-sensitive matching may apply). Consider normalizing email addresses in your model before syncing.
Rate limit errors (503 responses)
Personyze returns HTTP 503 when temporarily unavailable or rate-limited. Zeotap retries automatically with exponential backoff. For persistent issues, consider reducing sync frequency or splitting large audiences across multiple sync schedules.
User list membership not updating
When using audience sync modes, ensure the List ID matches an existing list in Personyze. The list must be created in Personyze before syncing — Zeotap does not create lists automatically. Verify the list exists by checking the connection test results.
Mirror mode removing unexpected users
Mirror mode synchronizes the user list to exactly match your audience. Users not in the current audience will be removed from the list. If you only want to add users without removing existing ones, use Add mode instead.