FullStory

Digital experience analytics platform. Sync your warehouse data to set user properties and send custom events to FullStory via their Server API.

Prerequisites

  • A FullStory account with access to the Server API
  • A FullStory API key with Standard or higher permissions
  • The API key must be generated from Settings > API Keys in FullStory

Authentication

FullStory uses API Key authentication with HTTP Basic auth.

  1. In FullStory, navigate to Settings > API Keys
  2. Click Create API Key
  3. Select Standard permission level (sufficient for creating and updating users and events)
  4. Copy the API key immediately — it cannot be viewed again after creation
  5. Enter the API key in Zeotap when configuring the destination

Important: Store your API key securely. FullStory only displays it once at creation time.

Configuration

FullStory does not require additional configuration fields beyond authentication. The API automatically routes requests to the correct data center based on your API key prefix (na1 for US, eu1 for EU).

Target Settings

FieldTypeRequiredDescription
Data TypeSelectYesType of data to send: Users (Set User Properties) or Events (Custom Events)

Supported Operations

Sync Modes

ModeSupported
UpsertYes
InsertYes
Update
Mirror

Audience Sync Modes

ModeSupported
AddYes
UpsertYes
Remove
Mirror

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

Data TypeRequired FieldsDescription
UsersuidFullStory user identifier. Users are upserted by this ID.
Eventsuid, event_nameUser identifier and the name of the custom event.

Default Destination Fields

Users: uid, display_name, email, properties

Events: uid, event_name, timestamp, properties

How It Works

User Properties

When the Users data type is selected, Zeotap sends user data to the FullStory Server API v2 /v2/users/batch endpoint. Users are upserted by their uid — if a user with the given UID exists, their properties are updated; otherwise, a new user is created.

The following fields are mapped to top-level FullStory user attributes:

  • uid — The unique user identifier
  • display_name — The user’s display name
  • email — The user’s email address

All other mapped fields are sent as custom properties in the properties object. FullStory automatically infers property types, or you can declare them explicitly via the optional schema.

Custom Events

When the Events data type is selected, Zeotap sends event data to the /v2/events/batch endpoint. Each row becomes a custom event associated with the specified user.

  • uid — Identifies which user the event belongs to
  • event_name — The name of the custom event (e.g., purchase_completed)
  • timestamp — When the event occurred (ISO 8601 format)

All other mapped fields are sent as event properties.

Batch Processing

Zeotap sends data in batches of up to 500 rows per API request. This keeps individual request payloads manageable while staying well within FullStory’s 50,000-record batch import limit. Failed batches are retried automatically with exponential backoff.

Rate Limits

FullStory applies rate limits to protect against traffic bursts:

  • Rate-limited requests receive an HTTP 429 response with a Retry-After header
  • Zeotap automatically respects the Retry-After delay and retries
  • FullStory limits in-progress batch operations to 100 concurrent batches per organization
  • Beyond 200 in-progress batches or 500,000 individual operations, requests are rejected with 429

For high-volume syncs, consider scheduling during off-peak hours to minimize rate limiting.

Best Practices

  • Use consistent UIDs: Ensure the uid values match what your frontend FullStory snippet uses so server-side data is stitched to the correct user sessions
  • Keep property names clean: FullStory v2 API does not require type suffixes on property names (unlike v1). Use plain names like plan_name instead of plan_name_str
  • Sync user properties before events: If you are setting up both user properties and custom events, configure the user properties sync first to ensure user records exist
  • Monitor your server event quota: FullStory tracks server events against your account’s monthly quota. Check Settings > Account Management > Subscription to monitor usage

Troubleshooting

Authentication failed: invalid API key

Verify you copied the complete API key from FullStory Settings > API Keys. Keys are only shown once at creation time. If lost, generate a new key. Ensure the key has at least Standard permissions.

Events not appearing in FullStory

Server-side events may take a few minutes to appear in FullStory. Check the FullStory event search to verify events are being received. Ensure the uid matches a known user.

User properties not updating

Confirm the uid in your sync matches the UID used in your frontend FullStory snippet. Mismatched UIDs create separate user records instead of updating existing ones.

429 Too Many Requests errors

Your organization has too many in-progress batch operations. Zeotap retries automatically, but if errors persist, reduce sync frequency or batch size. Check FullStory for any concurrent imports from other tools.

Custom properties showing wrong types

FullStory infers property types from the first value received. If a property was initially sent as a string but should be a number, contact FullStory support to reset the property type, then re-sync with the correct data type.

Events missing user context

Server events require a valid uid to associate with a user. If events appear without user context, verify the uid field is mapped and contains non-empty values matching existing FullStory user identifiers.