Skip to Content

Agillic

Sync recipients and audience segments to Agillic for omnichannel marketing automation. Zeotap keeps your Agillic recipient data and target group memberships in sync with your warehouse, enabling personalized campaigns across email, SMS, push, and more.

Prerequisites

  • An Agillic account with API access enabled
  • API credentials (Developer Key and Secret) created in your Agillic instance
  • Your Agillic API endpoint URL (e.g., https://api-eu1.agillic.net)

Permissions

The API credentials must have sufficient permissions to:

  • Create, read, update, and delete recipients
  • Manage One-to-Many table records (if syncing OTM data)
  • Add and remove recipients from static target groups (if using audience syncs)

Authentication

Agillic uses OAuth 2.0 Client Credentials authentication.

  1. In Agillic, navigate to Integration > API Settings
  2. Click Create new API credentials
  3. Copy the Developer Key and Developer Secret
  4. In Zeotap, paste the Developer Key into the Developer Key field
  5. Paste the Developer Secret into the Developer Secret field

Zeotap automatically handles OAuth2 token refresh. Tokens are valid for 2 hours and are refreshed transparently before expiry.

Configuration

FieldTypeRequiredDescription
API EndpointTextYesYour Agillic API base URL (e.g., https://api-eu1.agillic.net). Found in your Agillic instance settings under Integration > API Settings.

Target Settings

FieldTypeRequiredDescription
Object TypeSelectYesThe type of object to sync: Recipients or One-to-Many Table.
Recipient ID FieldTextNoThe Person Data field used to uniquely identify recipients (e.g., EMAIL, CUSTOMER_ID). Defaults to EMAIL.
One-to-Many Table IDTextConditionalThe ID of the One-to-Many table to sync records to. Required when Object Type is One-to-Many Table.
Static Target Group NameTextNoThe name of the static target group for audience syncs. Required for audience sync modes (add/remove/mirror). Agillic’s add/remove endpoints accept the target group name.

To find your target group name, navigate to Audiences > Target Groups in Agillic. Use the name shown in the target group list.

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
EMAILRecipient email address (primary identifier).

Default Destination Fields

EMAIL, FIRSTNAME, LASTNAME, MOBILE, CUSTOMER_ID

These are commonly used Agillic Person Data fields. You can map any field that exists in your Agillic instance as a Person Data attribute.

How It Works

Recipient Sync (Upsert Mode)

  1. Zeotap batches recipients in groups of up to 1,000
  2. Each batch is sent to the Agillic async batch upsert endpoint (POST /recipients/v2/:upsert)
  3. Existing recipients are updated; new recipients are created
  4. Agillic processes the batch asynchronously and returns a task ID for tracking

Recipient Sync (Insert Mode)

Recipients are created individually via POST /recipients. If a recipient already exists (identified by the Recipient ID Field), the sync reports an error for that row. Use upsert mode if you want to update existing recipients.

Recipient Sync (Update Mode)

Existing recipients are updated individually via PUT /recipients/{recipientId}. The Recipient ID Field is used to locate the recipient. Recipients that do not exist in Agillic will return an error.

Audience Sync (Add/Remove/Mirror)

Audience syncs manage membership in Agillic static target groups. A Static Target Group Name must be configured in the target settings.

  • Add: Recipients are upserted first, then added to the static target group via POST /recipients/:addToStaticTargetGroup (max 100 per request)
  • Remove: Recipients are removed from the target group via POST /recipients/:removeFromStaticTargetGroup (max 100 per request)
  • Mirror: New/changed recipients are upserted and added to the target group; removed recipients are removed from the target group
  • Upsert: Same behavior as Add (idempotent membership operation)

One-to-Many Table Sync

One-to-Many (OTM) tables store per-recipient data such as orders, transactions, or product interactions. Records are grouped by recipient ID and sent via the async upsert endpoint (POST /recipients/v2/oneToManyTables/:upsert).

Rate Limits

LimitValue
Daily API calls5x the number of Unique Active Recipients (UAR)
Concurrent requests20 maximum
Payload size20 MB maximum
Batch size (recipients)1,000 per request
Batch size (target groups)100 per request
Staging environment5,000 API calls per day

Zeotap automatically retries on 429 Too Many Requests responses with exponential backoff.

Best Practices

  • Use upsert mode for most recipient syncs to handle both new and existing recipients
  • Configure a Static Target Group ID for audience syncs to manage group membership automatically
  • Set the Recipient ID Field to match your Agillic instance configuration (e.g., EMAIL or CUSTOMER_ID)
  • Use Person Data field names that match your Agillic schema when mapping fields (e.g., FIRSTNAME, LASTNAME, MOBILE)
  • Keep batches within limits — Zeotap automatically chunks recipients to 1,000 and target group operations to 100

Troubleshooting

Authentication failed: invalid Developer Key or Secret

Verify your API credentials are correct and have not been revoked. Generate new credentials in Agillic under Integration > API Settings if needed.

API endpoint not reachable

Ensure the API Endpoint URL is correct and includes the protocol (e.g., https://api-eu1.agillic.net). Check that your network allows outbound HTTPS connections to the Agillic API.

Recipient not found (update mode)

The update sync mode requires that recipients already exist in Agillic. If you are syncing new recipients, use upsert mode instead.

Target group not found

Verify the Static Target Group Name exactly matches an existing static target group in your Agillic instance (names are case-sensitive). Navigate to Audiences > Target Groups to confirm. Only static target groups can be managed via the API; dynamic/computed target groups are read-only.

One-to-Many table ID not found

Ensure the One-to-Many Table ID matches an existing table in your Agillic instance. Table IDs are case-sensitive.

Rate limit exceeded (429 errors)

Zeotap retries automatically with exponential backoff. If errors persist, consider spacing out your sync schedule. The daily API call limit is 5x your Unique Active Recipients count.

Batch upsert returning errors for specific recipients

Check that all required Person Data fields are populated for each recipient. Agillic validates field formats and may reject individual records in a batch if required fields are missing or malformed.

Recipient ID field mismatch

If recipients are being created as duplicates instead of updated, ensure the Recipient ID Field in Zeotap matches the unique identifier configured in your Agillic instance (e.g., EMAIL, CUSTOMER_ID).

Last updated on