Skip to Content

Gladly

Sync customer profiles from your warehouse to Gladly, the customer service platform built around people instead of tickets. Keep your Gladly customer profiles enriched with the latest data so your support agents have full context for every conversation.

Prerequisites

  • A Gladly organization with an active subscription
  • A dedicated API user account with the API User permission
  • Your organization domain (e.g., mycompany from mycompany.gladly.com)
  • An API token generated for the API user

Permissions

The API user must have:

  • API User permission enabled in Gladly
  • Access to create and update customer profiles via the REST API

Gladly recommends creating a dedicated user for API calls rather than using an agent account. This separates API activity from agent activity for auditing purposes.

Authentication

Gladly uses Basic Authentication with an API user email and token.

  1. Navigate to Destinations in the Zeotap sidebar
  2. Click Add Destination and select Gladly
  3. Enter the Username (the email address of your Gladly API user)
  4. Enter the API Token (generated in Gladly under the API user’s settings)
  5. These credentials are stored securely and never exposed in the UI after saving

Generating an API Token

  1. Log in to your Gladly organization as an admin
  2. Navigate to Settings > API Tokens
  3. Click Create Token and assign it to your dedicated API user
  4. Copy the token immediately — it will not be shown again

Configuration

FieldTypeRequiredDescription
DomainTextYesYour Gladly organization domain (e.g., mycompany for mycompany.gladly.com). Do not include the full URL.

Supported Operations

Sync Modes

ModeSupported
UpsertYes
InsertYes
UpdateYes
Mirror

Audience Sync Modes

ModeSupported
Add
Remove
Mirror
Upsert

Gladly does not have a native list, segment, or audience membership API. Customer profiles are individual records without group membership management, so audience sync modes are not supported.

Features

  • Field Mapping: Yes — map your warehouse columns to Gladly customer profile fields
  • Schema Introspection: No — configure field mappings manually based on the Gladly customer profile schema

Required Mapping Fields

FieldDescription
emailCustomer email address. Used to identify and create customer profiles in Gladly.

Default Destination Fields

These fields appear as suggestions in the field mapping editor:

FieldTypeDescription
nameStringFull name of the customer
emailStringPrimary email address
phoneStringPrimary phone number
addressStringCustomer mailing address
externalCustomerIdStringYour system’s unique identifier for the customer
customAttributesObjectKey-value pairs for custom data fields

How It Works

  1. Field mapping: Zeotap maps each warehouse row to a Gladly customer profile using your configured field mappings
  2. Field transformation: Email and phone fields are automatically converted to Gladly’s array format (e.g., {"emails": [{"original": "user@example.com"}]})
  3. API calls: Each record is sent individually via the Gladly REST API:
    • Insert: POST /api/v1/customers — creates a new customer profile
    • Update: PATCH /api/v1/customers/{id} — updates an existing profile by Gladly customer ID
    • Upsert: Searches by email first; if a matching profile is found it is updated via PATCH, otherwise a new profile is created via POST
  4. Custom attributes: Any mapped fields that are not standard Gladly profile fields are automatically placed into customAttributes
  5. Retry logic: Transient failures (HTTP 429 rate limits, 5xx server errors) are retried with exponential backoff (up to 3 retries per request)

Batch Size

The Gladly REST API processes one customer profile per request. Zeotap handles the batching internally, sending records sequentially with automatic retry and error tracking for each individual record.

Rate Limits

Gladly enforces the following default rate limits:

  • 10 requests per second across all HTTP methods (GET, POST, PUT, PATCH, DELETE)
  • Rate limit headers are included in responses: Ratelimit-Limit-Second and Ratelimit-Remaining-Second
  • Exceeding the limit returns HTTP 429 Too Many Requests
  • Zeotap automatically respects rate limit responses and applies exponential backoff

If you experience frequent rate limiting, consider:

  • Reducing sync frequency
  • Syncing smaller batches by filtering your model
  • Contacting Gladly support to discuss increased rate limits for your organization

Best Practices

  • Create a dedicated API user in Gladly specifically for Zeotap integrations rather than using an agent account
  • Map the email field as it is required for customer profile identification during upsert operations
  • Use upsert mode when you want to create new profiles and update existing ones in a single sync
  • Include externalCustomerId in your mappings to maintain a cross-reference between your system and Gladly
  • Test with a small batch before running a full sync to verify field mappings and authentication
  • Monitor sync results in the Zeotap sync run history to catch mapping or authentication errors early

Troubleshooting

Authentication failed: invalid username or API token

Verify that the username is the email address of a valid Gladly API user and the API token is correct. Ensure the API user account is active and has the API User permission. Regenerate the token if necessary.

Gladly API returned error 403

The authenticated user does not have sufficient permissions. Verify the API user has the API User role enabled in Gladly settings.

Update requires a primary key (Gladly customer ID)

When using Update sync mode, each row must have a Gladly customer ID mapped as the primary key. Without it, Gladly cannot identify which profile to update. Switch to Upsert mode to automatically look up customers by email.

Customer not found during upsert

If the email address does not match any existing Gladly customer profile, a new profile will be created. This is expected behavior for upsert mode. If you expect the customer to exist, verify the email address in your source data matches the one in Gladly.

Domain validation failed

The domain must be just the subdomain portion of your Gladly URL. For example, if your Gladly URL is https://mycompany.gladly.com, enter mycompany — not the full URL.

Rate limited (HTTP 429)

Your sync is exceeding Gladly’s 10 requests per second limit. Zeotap automatically retries with backoff, but persistent rate limiting may slow down your sync. Consider reducing sync frequency or syncing smaller datasets.

Fields not appearing in Gladly

Ensure your field mappings use the correct Gladly field names. Standard fields like name, email, phone, and address are mapped directly. All other fields are placed into customAttributes. Check that custom attributes are enabled for your Gladly organization.

Connection timeout

Large syncs may experience timeouts if the Gladly API is under heavy load. Zeotap uses a 30-second timeout per request with automatic retries. If timeouts persist, try syncing during off-peak hours or reducing batch sizes.

Last updated on