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.
- In Agillic, navigate to Integration > API Settings
- Click Create new API credentials
- Copy the Developer Key and Developer Secret
- In Zeotap, paste the Developer Key into the Developer Key field
- 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
| Field | Type | Required | Description |
|---|---|---|---|
| API Endpoint | Text | Yes | Your Agillic API base URL (e.g., https://api-eu1.agillic.net). Found in your Agillic instance settings under Integration > API Settings. |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Object Type | Select | Yes | The type of object to sync: Recipients or One-to-Many Table. |
| Recipient ID Field | Text | No | The Person Data field used to uniquely identify recipients (e.g., EMAIL, CUSTOMER_ID). Defaults to EMAIL. |
| One-to-Many Table ID | Text | Conditional | The ID of the One-to-Many table to sync records to. Required when Object Type is One-to-Many Table. |
| Static Target Group Name | Text | No | The 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
| Mode | Supported |
|---|---|
| Upsert | Yes |
| Insert | Yes |
| Update | Yes |
Audience Sync Modes
| Mode | Supported |
|---|---|
| Add | Yes |
| Remove | Yes |
| Mirror | Yes |
| Upsert | Yes |
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| Recipient 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)
- Zeotap batches recipients in groups of up to 1,000
- Each batch is sent to the Agillic async batch upsert endpoint (
POST /recipients/v2/:upsert) - Existing recipients are updated; new recipients are created
- 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
| Limit | Value |
|---|---|
| Daily API calls | 5x the number of Unique Active Recipients (UAR) |
| Concurrent requests | 20 maximum |
| Payload size | 20 MB maximum |
| Batch size (recipients) | 1,000 per request |
| Batch size (target groups) | 100 per request |
| Staging environment | 5,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.,
EMAILorCUSTOMER_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).