Skip to Content

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.

  1. Log in to your Personyze account
  2. Navigate to Settings > API
  3. Locate or generate your REST API key
  4. Copy the API key
  5. 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

FieldTypeRequiredDescription
Object TypeSelectYesThe 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”

FieldTypeRequiredDescription
List IDTextYesThe 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

ModeSupported
UpsertYes
InsertYes
UpdateYes
Mirror

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

FieldDescription
emailThe user’s email address, used as the primary identifier in Personyze

Default Destination Fields

FieldType
emailstring
first_namestring
last_namestring
internal_idstring
phonestring
companystring

How It Works

User Profile Syncs

  1. Zeotap extracts user records from your warehouse model or audience
  2. Each user record is sent individually to the Personyze Users API
  3. For Upsert and Insert modes, records are POSTed to /rest/users — Personyze automatically merges records when identifiers (email, internal_id) match existing users
  4. For Update mode, records are sent via PUT filtered by email address
  5. User records in Personyze have flexible schemas — any key-value pairs sent are stored as profile attributes

Audience List Syncs

  1. Zeotap extracts user identifiers from your audience
  2. For each user, a list membership record is sent to the Personyze User List Users API
  3. For Add mode, users are associated with the list via POST to /rest/user_list_users
  4. For Remove mode, users are disassociated from the list via DELETE
  5. 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_id field 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.

Last updated on