Skip to Content

Adestra

Sync contacts and manage list subscriptions in Adestra (Upland) for email marketing campaigns, automated journeys, and transactional messaging. Zeotap keeps your Adestra contact tables and subscriber lists in sync with your warehouse data, enabling targeted campaigns with up-to-date subscriber attributes.

Prerequisites

  • An Adestra (Upland) account with API access enabled
  • A REST API token generated from your Adestra user settings
  • Your Adestra account name (visible on the login screen)
  • At least one core table created in Adestra
  • A subscriber list created in Adestra (required for audience syncs)

Authentication

Adestra uses API Token authentication for its REST API.

  1. Log in to your Adestra account at https://<account-name>.adestra.com
  2. Click your username in the top-right corner and select User Settings
  3. Navigate to the API section
  4. Ensure API access is enabled for your user account
  5. Generate or copy your REST API token
  6. Paste the token into the API Token field in Zeotap

Your API token provides the same level of access as your user account. Ensure your user has write permissions for the core tables and lists you want to sync to.

Configuration

FieldTypeRequiredDescription
Account NameTextYesYour Adestra account name (visible on the login screen). Used to construct the API URL: https://<account-name>.adestra.com/api/rest/1.

Target Settings

FieldTypeRequiredDescription
Core Table IDTextYesThe ID of the Adestra core table where contacts are stored.
List IDTextNoThe Adestra list ID to manage subscriptions for. Required for audience sync modes (add, remove, mirror).

Finding Your Core Table ID

  1. In Adestra, navigate to Data > Core Tables
  2. Select the core table you want to sync contacts to
  3. The Core Table ID is displayed in the URL or table settings (e.g., 1)

Finding Your List ID

  1. In Adestra, navigate to Data > Lists
  2. Select the list you want to manage subscriptions for
  3. The List ID is displayed in the URL or list settings (e.g., 123)

Supported Operations

Sync Modes

ModeSupported
UpsertYes
InsertYes
UpdateYes

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes
UpsertYes

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

FieldDescription
emailContact email address (primary identifier for deduplication and lookups)

Default Destination Fields

email, firstname, lastname, company, title, phone

Any additional mapped fields are synced directly as core table columns. Column names must match the fields configured in your Adestra core table.

How It Works

Contact Sync (Upsert / Add Mode)

  1. Zeotap batches contacts in groups of up to 1,000
  2. Each batch is sent to the Adestra contact.create endpoint with email-based deduplication
  3. Existing contacts (matched by email) are updated; new contacts are created
  4. If a List ID is configured, contacts are automatically subscribed to the list

Insert Mode

Contacts are created individually via the contact.create endpoint without deduplication. If a contact with the same email already exists, the API may return a duplicate error depending on your core table configuration.

Update Mode

  1. Each contact is first looked up by email via the contact.search endpoint
  2. The contact record is then updated via PUT /contact/{id} with the new field values
  3. Contacts that do not exist in Adestra will return an error

Audience Sync (Remove / Mirror)

  • Remove: Contacts are looked up by email, then removed from the configured list via the list membership endpoint
  • Mirror: Added/changed contacts are upserted via the bulk endpoint; removed contacts have their list membership revoked

Field Mapping

All mapped fields are sent directly as core table column values. Field names in your mapping must match the column names configured in your Adestra core table. Adestra does not use a separate custom fields structure — all data lives in core table columns.

Rate Limits

Adestra’s API documentation states that API functions are not designed to be called in bulk. The platform reserves the right to reject requests if volume impacts server performance.

Zeotap mitigates this by:

  • Batching contacts in groups of up to 1,000 per request (the maximum supported by contact.create)
  • Using sequential processing (no concurrent API calls)
  • Automatically retrying on transient errors with exponential backoff

If you experience rate limiting, consider reducing your sync frequency or contacting Adestra support to discuss your API usage limits.

Best Practices

  • Use upsert mode for most contact syncs to handle both new and existing contacts automatically
  • Configure deduplication in your Adestra core table settings to prevent duplicate contacts
  • Set a List ID when using audience sync modes — it is required for add, remove, and mirror operations
  • Match field names exactly to your core table column names — Adestra is case-sensitive for column mapping
  • Use the bulk contact.create endpoint (upsert/add mode) for large syncs — it handles up to 1,000 contacts per request
  • Ensure API access is enabled for your user account before generating an API token

Troubleshooting

Authentication failed: invalid API token or account name

Verify that your API token is correct and has not been revoked. Check that your account name matches what is shown on the Adestra login screen. The API URL is constructed as https://<account-name>.adestra.com/api/rest/1.

Contact not found (update mode)

The update sync mode requires that contacts already exist in the core table. If you are syncing new contacts, use upsert mode instead. Contacts are looked up by email address.

List ID is required for remove operations

Audience sync modes (add, remove, mirror) require a List ID to be configured in the target settings. Navigate to Data > Lists in Adestra to find your List ID.

Core Table ID not found

Verify the Core Table ID is correct by checking your core table settings in Adestra. Navigate to Data > Core Tables to see available tables and their IDs.

Duplicate contact errors (insert mode)

In insert mode, contacts are created without deduplication. If your core table has unique constraints on the email field, duplicate contacts will be rejected. Use upsert mode to automatically handle duplicates.

API access denied (403 error)

Ensure your user account has API access enabled and has the correct permissions (read/write) for the core tables and lists you are syncing to. Contact your Adestra administrator to enable API access.

Request rejected due to volume

Adestra may reject API requests if the volume impacts server performance. Reduce your sync frequency or batch size. Contact Adestra support to discuss your API usage limits.

Field values not updating

Ensure that the field names in your mapping match the exact column names in your Adestra core table. Adestra column names are case-sensitive. Check your core table schema under Data > Core Tables in Adestra.

Last updated on