Acoustic
Sync contacts to Acoustic Campaign (formerly IBM Watson Campaign Automation / Silverpop) for enterprise email marketing and marketing automation. Zeotap keeps your Acoustic databases and contact lists in sync with your warehouse data, enabling personalized campaigns with up-to-date customer attributes.
Prerequisites
- An Acoustic Campaign account with API access enabled
- OAuth credentials (Client ID, Client Secret, and Refresh Token) from Acoustic Organization Admin
- The numeric ID of the Acoustic database (list) you want to sync to
- Knowledge of your Acoustic pod (datacenter region)
Authentication
Acoustic uses OAuth 2.0 with a refresh token grant type.
- Log into Acoustic Campaign and navigate to Settings > Organization Settings
- Under Application Account Access, create a new application or use an existing one
- Copy your Client ID and Client Secret
- Generate a Refresh Token for your application
- In Zeotap, select OAuth Client Credentials as the auth method
- Paste your Client ID, Client Secret, and Refresh Token into the corresponding fields
Access tokens are automatically refreshed every 4 hours. You do not need to manage token rotation manually.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Pod | Select | Yes | Your Acoustic API pod (datacenter region). Determines the API base URL. Options include US Pods 1-6, EU Pod 1, AP Pods 2-3, and CA Pod 1. |
To determine your pod, check the URL you use to log into Acoustic Campaign. For example, if you log in at https://api-campaign-us-1.goacoustic.com, your pod is US Pod 1.
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Database (List) ID | Text | Yes | The numeric ID of the Acoustic Campaign database to sync contacts to. |
| Contact List ID | Text | No | Optional contact list ID for audience membership management. Required for audience syncs. |
To find your Database ID, navigate to Data > Databases in Acoustic Campaign. Click on the database name and check the URL or properties panel for the numeric ID.
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 |
|---|---|
| Contact email address (primary identifier in Acoustic) |
Default Destination Fields
EMAIL, First Name, Last Name, Phone, Company
These fields correspond to standard Acoustic Campaign database columns. You can map additional custom fields defined in your Acoustic database.
How It Works
Contact Sync (Upsert Mode)
- Zeotap sends each contact to the Acoustic AddRecipient XML API endpoint
- The
UPDATE_IF_FOUNDflag is set totrue, so existing contacts are updated and new contacts are created - Contacts are identified by their
EMAILsync field - If a Contact List ID is configured, contacts are automatically subscribed to that list
Insert Mode
Contacts are added via the AddRecipient API with UPDATE_IF_FOUND set to false. If a contact with the same email already exists, Acoustic returns an error for that row.
Update Mode
Existing contacts are updated via the UpdateRecipient API. Contacts are matched by the EMAIL sync field. If a contact does not exist, Acoustic returns an error.
Audience Sync (Add/Remove/Mirror)
- Add: Contacts are added to the database and subscribed to the configured contact list via
AddRecipientwithUPDATE_IF_FOUNDset totrue - Remove: Contacts are removed from the database via
RemoveRecipient - Mirror: Added/changed contacts are upserted; removed contacts are deleted from the database
API Format
Acoustic Campaign uses an XML-based API. Zeotap automatically constructs the XML envelope for each contact operation. Each contact is synced individually (Acoustic does not support batch upsert in a single request).
Rate Limits
| Resource | Limit |
|---|---|
| Concurrent API requests | 10 per organization |
| Access token validity | 4 hours |
| Token refresh window | After 3 hours |
Zeotap automatically manages OAuth token refresh and retries on transient errors with exponential backoff.
Best Practices
- Use upsert mode for most contact syncs to handle both new and existing contacts seamlessly
- Configure a Contact List ID for audience syncs to manage list membership automatically
- Map the EMAIL field as the primary identifier — this is required for all sync operations
- Select the correct pod to ensure API calls reach the right datacenter
- Keep sync frequency reasonable — Acoustic limits concurrent API requests to 10 per organization across all applications
- Use standard column names that match your Acoustic database schema to avoid data loss
Troubleshooting
Authentication failed: invalid client credentials or refresh token
Verify your Client ID, Client Secret, and Refresh Token in Acoustic Organization Admin settings. Refresh tokens do not expire but can be revoked if a new one is generated. Ensure you are using the latest credentials.
Pod not found or connection refused
Verify you selected the correct pod in the configuration. Check the URL you use to access Acoustic Campaign (e.g., api-campaign-us-1.goacoustic.com) and match it to the pod dropdown.
Contact not found (update mode)
The update sync mode requires that contacts already exist in the Acoustic database. If you are syncing new contacts, use upsert mode instead.
Missing EMAIL field
The EMAIL field is required for all sync operations. Ensure your field mapping includes a column mapped to EMAIL. Acoustic uses email as the primary contact identifier.
Database (List) ID not found
Verify the Database ID exists by navigating to Data > Databases in Acoustic Campaign. The ID is a numeric value displayed in the database properties.
Contact list subscription failed
If contacts are not appearing in the expected contact list, verify the Contact List ID is correct and that the list exists within the specified database. Contact lists must belong to the same database.
Rate limit exceeded
Acoustic allows only 10 concurrent API requests per organization. If you see throttling errors, reduce sync frequency or stagger multiple syncs. Zeotap automatically retries on transient failures.
XML parse error in response
This typically indicates a network issue or Acoustic service disruption. Check the Acoustic Status Page for ongoing incidents. Zeotap automatically retries transient errors.