Talon.One
Loyalty and promotion engine for creating and managing personalized incentive campaigns. Sync customer profiles and audience memberships from your warehouse to Talon.One via their Integration API.
Prerequisites
- A Talon.One account with an active deployment
- An Integration API key generated in the Talon.One Campaign Manager
- Your deployment URL (e.g.
https://yourcompany.talon.one) - For audience syncs: the numeric Audience ID of the target audience in Talon.One
Permissions
The Integration API key must have access to the following endpoints:
PUT /v2/customer_profiles— for customer profile syncsPOST /v2/customer_audiences— for audience membership syncs
Authentication
Talon.One uses API Key authentication with the Integration API.
- Log in to the Talon.One Campaign Manager
- Navigate to Settings > Developer (or Settings > Integration API Keys)
- Click Create API Key and give it a descriptive name
- Copy the generated API key
- In Zeotap, select API Key as the authentication method
- Paste the API key into the Integration API Key field
The API key is sent as Authorization: ApiKey-v1 <your-key> on every request.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Deployment URL | Text | Yes | Your Talon.One deployment URL (e.g. https://yourcompany.talon.one). Found in the address bar of your Campaign Manager. |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Object Type | Select | Yes | The type of data to send: Customer Profiles (upsert profile attributes) or Customer Profile Audiences (manage audience memberships). |
| Audience ID | Text | Conditional | The numeric ID of the Talon.One audience. Required when Object Type is Customer Profile Audiences. Find this in Campaign Manager under Audiences. |
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Upsert | Yes |
| Insert | — |
| Update | — |
| Mirror | — |
Customer profiles are always upserted: new profiles are created and existing profiles are updated based on the Integration ID.
Audience Sync Modes
| Mode | Supported |
|---|---|
| Add | Yes |
| Remove | Yes |
| Mirror | Yes |
| Upsert | — |
Audience sync modes require the Object Type to be set to Customer Profile Audiences. In Mirror mode, rows that leave the source query are automatically removed from the audience.
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Object Type | Required Fields | Description |
|---|---|---|
| Customer Profiles | integration_id | A unique, stable identifier for each customer profile (e.g. a database ID). Do not use mutable values like email addresses. |
| Customer Profile Audiences | integration_id | The same stable profile identifier used for audience membership operations. |
Default Destination Fields
Customer Profiles
integration_id, email, name, phone, signup_date
Any additional mapped fields are sent as custom profile attributes. Custom attributes must be defined in Talon.One before syncing — they are not created automatically.
Customer Profile Audiences
Only the integration_id field is used. The Audience ID is configured in Target Settings.
How It Works
Customer Profile Syncs
- Zeotap reads rows from your model or audience query
- Rows are transformed according to your field mappings
- Each row is mapped to a Talon.One customer profile with
integrationIdand custom attributes - Records are batched into groups of up to 1,000 per API call
- Each batch is sent to
PUT /v2/customer_profiles - New profiles are created automatically; existing profiles are updated
- Zeotap retries transient failures (HTTP 429, 5xx) with exponential backoff
Audience Membership Syncs
- Zeotap reads rows from your audience query
- Each row is mapped to an audience membership action (
addordelete) - In Add mode, all rows are sent as
addactions - In Remove mode, all rows are sent as
deleteactions - In Mirror mode, new/changed rows are sent as
addand removed rows asdelete - Actions are batched into groups of up to 1,000 per API call
- Each batch is sent to
POST /v2/customer_audiences
API Payload Examples
Customer Profile upsert:
{
"customerProfiles": [
{
"integrationId": "cust_12345",
"attributes": {
"email": "user@example.com",
"name": "Jane Doe",
"phone": "+1234567890"
}
}
]
}Audience membership action:
{
"data": [
{
"action": "add",
"profileIntegrationId": "cust_12345",
"audienceId": 42
}
]
}Rate Limits
- Batch size: Up to 1,000 customer profiles or audience actions per API call
- Rate limit: Varies by plan; typically 60 requests per second per deployment
- Maximum throughput: Up to 5,000 messages per minute (contact Talon.One for higher limits)
Zeotap automatically handles rate limiting with retry and exponential backoff.
Best Practices
- Use stable Integration IDs: Use a database primary key or immutable customer number as the Integration ID. Do not use email addresses or other mutable values, as changing the ID creates a new profile instead of updating the existing one.
- Pre-create custom attributes: Custom profile attributes must be defined in Talon.One before syncing. Navigate to Account > Tools > Attributes in Campaign Manager to create them.
- Use audience syncs for campaign targeting: For loyalty and promotion campaigns, sync audiences rather than relying solely on profile attributes. This gives you fine-grained control over which customers are targeted.
- Prefer upsert mode for profiles: Since Talon.One automatically creates new profiles and updates existing ones, upsert is the natural choice for profile syncs.
- Add per-application prefixes: If you use multiple Talon.One applications in the same environment, add a prefix to Integration IDs (e.g.
app1_cust_123) to avoid profile collisions.
Troubleshooting
Authentication failed: invalid API key
Verify that you are using an Integration API key, not a Management API key. Integration keys are found in Settings > Developer in the Campaign Manager. Ensure the key has not been revoked or expired.
Deployment URL returns connection error
Check that the deployment URL follows the format https://yourcompany.talon.one. Do not include a trailing slash or path suffix. Verify the URL by opening it in a browser — you should see the Talon.One API documentation page.
Audience ID not found (404)
The Audience ID must be the numeric id value returned when creating an audience via the API or visible in the Campaign Manager. It is not the audience name. Navigate to Audiences in Campaign Manager and check the ID column.
Custom attributes not appearing on profiles
Custom attributes must be pre-created in Talon.One before syncing. Navigate to Account > Tools > Attributes and ensure each attribute name matches the destination field name exactly (case-sensitive). Attributes created after the sync are ignored for previously synced records.
Profiles created but not visible in application
Customer profiles are shared across all applications in an environment. However, a profile will not appear in an application’s context until a session or profile update occurs within that application. To make profiles visible, ensure at least one session update is triggered for the application.
Rate limit exceeded (HTTP 429)
Talon.One rate-limits requests to approximately 60 per second per deployment. If multiple syncs run simultaneously, they may exceed this limit. Zeotap retries automatically with backoff, but consider staggering sync schedules or contacting Talon.One to increase your rate limit.
Audience membership changes not reflected in campaigns
After adding or removing audience members, campaign rules that reference the audience will apply on the next customer session update. Changes are not retroactive — they only affect future rule evaluations. Trigger a session update for affected profiles to see immediate results.
Integration ID mismatch between profiles and audiences
Ensure the integration_id used in audience membership syncs matches the integration_id used when creating or updating customer profiles. Mismatched IDs result in audience actions targeting non-existent profiles, which Talon.One silently creates as empty profiles.