Marigold Engage
Sync contacts to Marigold Engage (formerly Selligent) for omnichannel marketing automation campaigns. Zeotap keeps your Marigold Engage lists and segments in sync with your warehouse data, enabling personalized email, SMS, push, and web campaigns with up-to-date customer attributes.
Prerequisites
- A Marigold Engage account with API access enabled
- A service account created in Admin Configuration > Access Management
- Your Marigold Engage hostname (e.g.,
yourcompany.slgnt.euoryourcompany.slgnt.us) - Your organization name within the platform
- The service account must have permissions for the following API endpoints:
/organizations/{org}/lists/organizations/{org}/lists/{list}/data/load/organizations/{org}/lists/{list}/data/organizations/{org}/lists/{list}/segments/organizations/{org}/lists/{list}/segments/{segment}/data/load/organizations/{org}/lists/{list}/segments/{segment}/data
Authentication
Marigold Engage uses API Key + Secret authentication via service accounts.
- Log in to your Marigold Engage platform
- Navigate to Admin Configuration > Access Management > Service Accounts
- Click Create Service Account
- Select type Custom and set an expiration date
- Configure endpoint permissions to allow access to list and segment data endpoints
- Copy the generated API Key and API Secret
- In Zeotap, paste the API Key and API Secret into the corresponding fields
Keep your API credentials secure. The key and secret carry significant privileges and should not be shared publicly.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Hostname | Text | Yes | Your Marigold Engage hostname (e.g., yourcompany.slgnt.eu or yourcompany.slgnt.us). |
| Organization | Text | Yes | The organization name in Marigold Engage where your lists are located. |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Object Type | Select | Yes | Choose between List (Contacts) for syncing directly to a list, or Static Segment for managing segment membership within a list. |
| List API Name | Text | Yes | The API name of the list to sync contacts to. Found in your list configuration settings. |
| Segment API Name | Text | When Object Type is Static Segment | The API name of the static segment within the list. Only required when Object Type is set to Static Segment. |
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Upsert | Yes |
Marigold Engage’s LoadData endpoint is a single key-based upsert operation. Records with a matching key field (EMAIL by default) are updated; new records are created. Zeotap exposes only “upsert” to avoid implying that dedicated “insert” or “update” semantics are available.
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 |
|---|---|
| Contact email address (primary identifier in Marigold Engage lists) |
Default Destination Fields
EMAIL, FIRSTNAME, LASTNAME, MOBILE, LANGUAGE
These fields map to the standard Marigold Engage list columns. Additional custom fields can be mapped if they exist in your list configuration.
How It Works
Contact Sync (Upsert Mode)
- Zeotap batches contacts in groups of up to 500
- Each batch is sent to the Marigold Engage Load Data endpoint (
POST /organizations/{org}/lists/{list}/data/load) withkeyFields=EMAILand afieldsquery parameter listing the mapped columns - The body is a raw 2D JSON array of row values (no header row; columns are identified by the
fieldsparameter) - Existing contacts are updated; new contacts are created based on the EMAIL field
- If targeting a static segment, contacts are also loaded into the segment via
POST /organizations/{org}/lists/{list}/segments/{segment}/data/load
Audience Sync (Add/Remove/Mirror)
- Add: Contacts are created/updated in the list, then added to the static segment via
POST /organizations/{org}/lists/{list}/segments/{segment}/data/load - Remove: Contacts are removed from the segment via
DELETE /organizations/{org}/lists/{list}/segments/{segment}/data(or from the list when the object type is List) - Mirror: Added/changed contacts are upserted into the list and segment; removed contacts are deleted from the segment or list
Partial Success Handling
When the API returns result_code: PartiallySucceeded, Zeotap splits the batch between succeeded and failed rows using the API’s number_of_failed_records and invalid_records fields. Each invalid record is logged with its validation code and message.
Rate Limits
| Constraint | Limit |
|---|---|
| Connection timeout | 15 seconds per request |
| Maximum request size | 2 MB |
| Rate limiting | 429 status code when exceeded (no published per-second threshold) |
Zeotap automatically retries on 429 Too Many Requests responses with exponential backoff. The batch size of 500 records per request is designed to stay well within the 2 MB request size limit.
For the data load endpoints, Marigold Engage supports higher inbound request limits compared to other API endpoints.
Best Practices
- Use upsert mode for most contact syncs to handle both new and existing contacts seamlessly
- Use static segments for audience syncs to manage campaign targeting lists without affecting the underlying contact list
- Match field names exactly to your Marigold Engage list column names — the API is case-sensitive
- Set appropriate service account permissions to limit API access to only the endpoints your sync requires
- Set a reasonable expiration date on service accounts and rotate credentials before they expire
- Keep batch sizes manageable — Zeotap automatically chunks requests to stay within the 2 MB limit
Troubleshooting
Authentication failed: invalid API key or secret
Verify that both the API Key and API Secret are correct. Ensure the service account has not expired. Navigate to Admin Configuration > Access Management in Marigold Engage to check the account status and regenerate credentials if needed.
Organization not found
Confirm that the organization name entered in Zeotap matches exactly the organization name in your Marigold Engage platform. The name is case-sensitive.
List not found (404)
Ensure the List API Name matches the API name (not the display name) of the list in Marigold Engage. Navigate to your list settings to find the correct API name.
Segment not found
Verify that the segment API name is correct and that the segment is a static segment. Dynamic segments cannot be managed via the data load API.
Request too large (413)
The API enforces a 2 MB request size limit. Zeotap batches records at 500 per request, but if your records have many fields with large values, reduce the number of mapped fields or contact support.
Rate limit exceeded (429)
Zeotap retries automatically with exponential backoff. If errors persist, consider spacing out your sync schedule or contacting Marigold Engage support to discuss rate limit increases.
Connection timeout
The Marigold Engage API has a 15-second connection timeout. If your data payloads are large, ensure you are not mapping excessive fields. Zeotap uses a 120-second request timeout to accommodate processing time.
Field not recognized or data not appearing
Ensure the field names in your mapping match the exact column names configured in your Marigold Engage list. Fields that do not exist in the list schema may be silently ignored by the API.