Skip to Content
DestinationsMarketingRetention Science

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.

  1. Log in to your ReSci dashboard
  2. Navigate to Settings > API settings
  3. Click API Password to reveal your API key
  4. Copy the key and paste it into the API Key field in Zeotap

Configuration

FieldTypeRequiredDescription
Send Transactional WelcomeBooleanNoSend a welcome email to new users if a template is available. Defaults to true.
Merge Before UpsertBooleanNoMerge 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

ModeSupported
UpsertYes
Insert
UpdateYes

Audience Sync Modes

Retention Science does not provide list or segment membership management endpoints, so audience sync modes are not available.

ModeSupported
Add
Remove
Mirror
Upsert

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

FieldDescription
emailUser 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)

  1. Zeotap sends each user profile individually to the ReSci Users endpoint (POST /v3/users)
  2. If a user with the same email or record_id already exists, the profile is updated
  3. If no matching user exists, a new user record is created
  4. Custom attributes beyond the standard fields are passed in the custom_attributes object

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 the record_id and email reference different existing profiles
  • Map accepts_marketing explicitly if you need to control email opt-in status — new users default to true if 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.

Last updated on