Retention Science
Sync user profiles to Retention Science (ReSci) for AI-powered email marketing and customer retention campaigns. Zeotap keeps your ReSci user base in sync with your warehouse data, enabling personalized campaigns with accurate, up-to-date customer attributes.
Prerequisites
- A Retention Science (ReSci) account
- An API key from your ReSci dashboard
Authentication
Retention Science uses API Key authentication.
- Log in to your ReSci dashboard
- Navigate to Settings > API settings
- Click API Password to reveal your API key
- Copy the key and paste it into the API Key field in Zeotap
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Send Transactional Welcome | Boolean | No | Send a welcome email to new users if a template is available. Defaults to true. |
| Merge Before Upsert | Boolean | No | Merge users with matching record_id and email into one profile. Defaults to false. |
Send Transactional Welcome
When enabled (the default), ReSci sends a welcome email to newly created users if you have a welcome email template configured. Set this to false if you are performing a bulk data migration and do not want to trigger welcome emails for every imported user.
Merge Before Upsert
By default, if a request contains a record_id and an email that match two separate existing users, the API returns an error. Enabling this option merges those two user records into a single profile automatically.
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Upsert | Yes |
| Insert | — |
| Update | Yes |
Audience Sync Modes
Retention Science does not provide list or segment membership management endpoints, so audience sync modes are not available.
| Mode | Supported |
|---|---|
| Add | — |
| Remove | — |
| Mirror | — |
| Upsert | — |
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| User email address (primary identifier) |
Default Destination Fields
email, record_id, full_name, phone, city, state, zip, country, gender, birthday, accepts_marketing
How It Works
User Sync (Upsert Mode)
- Zeotap sends each user profile individually to the ReSci Users endpoint (
POST /v3/users) - If a user with the same email or
record_idalready exists, the profile is updated - If no matching user exists, a new user record is created
- Custom attributes beyond the standard fields are passed in the
custom_attributesobject
User Sync (Update Mode)
Users are updated via the same POST /v3/users endpoint. The behavior is identical to upsert mode since the ReSci API always creates a user if one does not already exist.
Identifier Resolution
ReSci identifies users by email address. You can also provide a record_id (your system’s internal user ID) for cross-system linking. If no record_id is provided, ReSci generates one by computing an MD5 hash of the lowercase email address.
Custom Attributes
Any mapped fields that are not part of the standard ReSci user schema are automatically passed as custom_attributes in the API payload. These appear as custom user properties in your ReSci dashboard and can be used for campaign personalization and segmentation.
Rate Limits
Retention Science does not publish explicit rate limits for the Data API. Zeotap automatically retries on 429 Too Many Requests responses with exponential backoff to handle any rate limiting transparently.
Best Practices
- Use upsert mode for most syncs — it handles both new and existing users without errors
- Provide a record_id to link ReSci profiles with your internal user IDs for reliable cross-system identification
- Disable welcome emails (
Send Transactional Welcome = false) during bulk imports or initial data migrations to avoid sending mass welcome emails - Enable merge (
Merge Before Upsert = true) if your data may contain users where therecord_idandemailreference different existing profiles - Map accepts_marketing explicitly if you need to control email opt-in status — new users default to
trueif this field is not provided - Use custom attributes for any non-standard user properties you need for campaign personalization
Troubleshooting
Authentication failed: invalid API key
Verify your API key by navigating to Settings > API settings in the ReSci dashboard. Click API Password to reveal the key and confirm it matches what you entered in Zeotap. Regenerate the key if needed.
Missing email error
Every user record must include an email field. Ensure your field mapping includes a source column mapped to email. Rows without a valid email address are skipped and reported as failed.
Merge conflict error
If a record_id and email in the same request match two different existing users, the API returns an error unless Merge Before Upsert is enabled. Enable this option in your destination configuration to merge conflicting profiles automatically.
Users not receiving welcome emails
Welcome emails require a configured welcome email template in your ReSci account. Verify that a template exists and that Send Transactional Welcome is set to true in the destination configuration.
Custom attributes not appearing
Custom attributes are passed in the custom_attributes field of the API payload. They appear in the ReSci dashboard under the user profile. Ensure the attribute names match what your ReSci account expects. Some attributes may need to be pre-defined in ReSci before they appear.
accepts_marketing not updating for existing users
The accepts_marketing field defaults to true for new users but is not changed for existing users unless you explicitly map and send a value. Include accepts_marketing in your field mapping with the desired value to update existing users’ opt-in status.