Skip to Content

Xtremepush

Sync user profiles and audience lists to Xtremepush for omnichannel customer engagement including push notifications, email, SMS, and in-app messaging. Zeotap keeps your Xtremepush user profiles and list-based segments in sync with your warehouse data.

Prerequisites

  • An Xtremepush account with API access enabled
  • An Xtremepush App Token (found in Settings > Integrations > API Integration)
  • Your Xtremepush API region (EU or US)

Authentication

Xtremepush uses App Token authentication.

  1. In Xtremepush, go to Settings > Integrations > API Integration
  2. Copy your App Token (unique to your project, requires admin role)
  3. Paste it into the App Token field in Zeotap

Note: The App Token grants full API access to the project. Take care when sharing it.

Configuration

FieldTypeRequiredDescription
API RegionSelectYesThe Xtremepush API endpoint for your region. Options: EU (api.eu.xtremepush.com), US (api.us.xtremepush.com).

Target Settings

FieldTypeRequiredDescription
Object TypeSelectYesThe type of data to sync. Options: User Profiles (default), List Members.
List IDTextYes (when List Members)The numeric ID of the Xtremepush user list. Found in Data > Audiences. Only shown when Object Type is List Members.

Supported Operations

Sync Modes

ModeSupported
UpsertYes
Insert
Update
Mirror

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes
UpsertYes

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

FieldDescription
user_idUnique user identifier in Xtremepush. Required when Object Type is User Profiles.
identifierThe user identifier value (email or user_id) for list membership operations. Required when Object Type is List Members.

Default Destination Fields

user_id, email, first_name, last_name, mobile_number, email_subscription, sms_subscription, language, timezone

How It Works

User Profiles (Default)

When the object type is User Profiles, Zeotap imports user profile data via the Xtremepush Profile Import API. This creates new profiles or updates existing ones based on the user_id or email identifier.

For each batch:

  1. Zeotap collects all mapped fields into a columnar format (columns + rows)
  2. Rows are sent in chunks of 5,000 to the /api/external/import/profile endpoint
  3. Batches of 100+ records are processed asynchronously by Xtremepush (HTTP 202 response)
  4. Smaller batches are processed synchronously (HTTP 200 response)

Custom profile attributes can be synced by mapping source columns to attribute key names defined in your Xtremepush project.

List Members

When the object type is List Members, Zeotap manages user list membership via the Xtremepush List Import API. User lists in Xtremepush are collections of identifiers used for campaign targeting and segmentation.

  • Add / Upsert: Adds identifiers to the specified list (mode: create)
  • Remove: Removes identifiers from the specified list (mode: delete)
  • Mirror: Adds identifiers for new/changed rows, removes identifiers for removed rows

Identifiers are typically email addresses or user IDs. Items are sent in chunks of 5,000 per request.

Rate Limits

Xtremepush does not publish strict rate limits for the External API. However, the following best practices apply:

RecommendationDetail
Profile import batch sizeUp to 10,000 records per request (Zeotap uses 5,000)
Concurrent importsStagger imports by 5 minutes if importing the same user profiles across multiple syncs
Retry strategyOne immediate retry on 5xx errors, then retry after exponential backoff

Zeotap automatically retries requests that receive HTTP 429 or 5xx responses with exponential backoff.

Best Practices

  • Use consistent identifiers: Either user_id or email should be consistently mapped across all syncs to avoid duplicate profiles.
  • E.164 phone format: Mobile numbers must use international format with country code and no plus symbol (e.g., 353850123456 for Ireland, 447700900900 for UK).
  • Set subscription status alongside channels: When syncing email or mobile_number, also map email_subscription or sms_subscription (1 = opted in, 0 = opted out) to ensure proper channel addressability.
  • Create lists before syncing: When using the List Members object type, create the user list in Xtremepush first (under Data > Audiences) and note its numeric ID.
  • Stagger large imports: For very large datasets, schedule syncs during off-peak hours and avoid overlapping imports for the same user profiles.

Troubleshooting

Authentication failed: invalid App Token

Verify that you are using the correct App Token from Settings > Integrations > API Integration. The App Token is project-specific and requires admin role access. Ensure you have not confused it with an OAuth bearer token.

Profile import returns 400 error

Check that your mapped fields include either user_id or email in the columns. The Xtremepush Profile Import API requires at least one identifier field. Also verify that column names match existing profile attribute keys in your project.

List not found (404)

Verify that the List ID is correct and that the list exists in Data > Audiences. The List ID must be a numeric identifier, not the list name.

Mobile numbers not appearing on profiles

Ensure mobile numbers are in E.164 international format without the plus symbol. For example, use 353850123456 (Ireland) or 447700900900 (UK). Numbers in local format will be rejected.

Subscription status not updating

When syncing email_subscription or sms_subscription, use numeric values: 1 for opted-in and 0 for opted-out. String values like "true" or "yes" are not supported.

Async import shows 202 but data not appearing

Batches of 100+ records are processed asynchronously. The 202 response indicates the import was accepted for processing. Check the Task History in Xtremepush for import status, including any row-level failures or warnings.

Duplicate profiles after import

This typically happens when using inconsistent casing for identifiers (e.g., User123 vs user123). Use consistent casing for user_id and email values across all imports. Trim leading and trailing spaces from identifier fields.

List member operations timing out

Large list operations (adding or removing thousands of members) may take longer than expected. Zeotap sends items in chunks of 5,000 with a 120-second timeout per request. If timeouts persist, consider reducing sync batch sizes.

Last updated on