Insider One
Insider One is a cross-channel marketing automation platform for personalizing user experiences and triggering journeys across web, mobile, and messaging channels. This destination sends events to Insider One using the server-side Upsert API, making it immune to ad blockers and browser restrictions.
Use this destination alongside the Insider Pixel device-mode destination for maximum coverage.
Getting Started
This is a cloud-mode destination. You will need:
- Account Name — your Insider One account name. Found in InOne Panel > Settings > Inone Settings > Account Preferences.
- API Key — your Insider One API key. Found in InOne Panel > Settings > Preferences > Integration Settings.
Connecting to the Insider One CDP Destination
- Log into the Chord data platform.
- Navigate to the CDP.
- Click the "Add" button next to Destinations.
- Select Insider One from the destination catalog.
- Enter the destination name, Account Name, and API Key.
- Optionally configure:
- Treat Email as Identifier — if enabled, the user's email address is included as an Insider One identifier in addition to the user ID.
- Treat Phone Number as Identifier — if enabled, the user's phone number is included as an Insider One identifier.
- Click "Create" to connect.
Events
Event Mapping
Chord Event Type | Insider One API | Notes |
|---|---|---|
identify | POST /api/user/v1/upsert | Updates user attributes and identifiers; no event recorded |
track | POST /api/user/v1/upsert | Sends one or more events; user attributes updated simultaneously |
page | POST /api/user/v1/upsert | Sent as a page_view event |
Unsupported event types (e.g. group, alias) are silently dropped.
Ecommerce Event Name Mapping
Chord ecommerce track event names are translated to Insider One's reserved event names:
Chord Event Name | Insider One Event Name |
|---|---|
Product Viewed | product_detail_page_view |
Product List Viewed | listing_page_view |
Product Added | item_added_to_cart |
Product Removed | item_removed_from_cart |
Cart Viewed | cart_page_view |
Order Completed | confirmation_page_view |
Checkout Started | checkout_page_view |
Checkout Step Viewed | checkout_page_view |
User Registered | sign_up_confirmation |
All other event names are lowercased and spaces are replaced with underscores (e.g. Button Clicked → button_clicked). Note: camelCase names are not converted — myCustomEvent becomes mycustomevent, not my_custom_event.
Identify Events
Identify events update user attributes in Insider One. No event entry is recorded.
Insider One Field | Chord Source (Priority Order) | Notes |
|---|---|---|
identifiers.uuid | userId | Primary user identifier |
identifiers.email | context.traits.email > traits.email | Only included if Treat Email as Identifier is enabled |
identifiers.phone_number | context.traits.phone > traits.phone > traits.phone_number | Only included if Treat Phone Number as Identifier is enabled |
identifiers.custom.segment_anonymous_id | anonymousId | Always included as a custom identifier |
attributes.* | traits merged with context.traits | Reserved attribute names mapped directly; others placed in attributes.custom — see Attribute Mapping below |
Track Events
Track events send one or more event entries to Insider One alongside updated user attributes.
Insider One Field | Chord Source (Priority Order) | Notes |
|---|---|---|
identifiers.uuid | userId | Primary user identifier |
identifiers.email | context.traits.email > traits.email | Only included if Treat Email as Identifier is enabled |
identifiers.phone_number | context.traits.phone > traits.phone > traits.phone_number | Only included if Treat Phone Number as Identifier is enabled |
identifiers.custom.segment_anonymous_id | anonymousId | Always included as a custom identifier |
attributes.* | context.traits merged with traits | Reserved attribute names mapped directly; others placed in attributes.custom — see Attribute Mapping below |
events[].event_name | event (translated via ecommerce map) | See Ecommerce Event Name Mapping above |
events[].timestamp | timestamp | ISO 8601 format |
events[].event_params.* | properties | Reserved param names mapped directly; others placed in event_params.custom — see Event Parameter Mapping below |
If properties.products is a non-empty array, each product is expanded into its own event entry. Top-level properties (e.g. currency, order_id) are merged into each product's event params.
Page Events
Page events are sent as page_view events.
Insider One Field | Chord Source (Priority Order) | Notes |
|---|---|---|
identifiers.uuid | userId | Primary user identifier |
identifiers.email | context.traits.email > traits.email | Only included if Treat Email as Identifier is enabled |
identifiers.phone_number | context.traits.phone > traits.phone > traits.phone_number | Only included if Treat Phone Number as Identifier is enabled |
identifiers.custom.segment_anonymous_id | anonymousId | Always included as a custom identifier |
attributes.* | context.traits merged with traits | Reserved attribute names mapped directly; others placed in attributes.custom — see Attribute Mapping below |
events[].event_name | (hardcoded) page_view | |
events[].timestamp | timestamp | ISO 8601 format |
events[].event_params.url | properties.url > context.page.url | |
events[].event_params.referrer | properties.referrer > context.page.referrer | |
events[].event_params.* | remaining properties | Reserved params mapped directly; others in event_params.custom |
Attribute Mapping
Chord trait names are lowercased and spaces replaced with underscores before being matched against Insider One's reserved attribute names. Note: camelCase traits are not converted to snake_case — send reserved attributes using Insider One's expected names to have them mapped correctly. Unrecognized traits are placed in the attributes.custom object.
Special-cased trait mappings:
Chord Trait | Insider One Attribute | Notes |
|---|---|---|
firstName | name | Renamed to match Insider's reserved field |
lastName | surname | Renamed to match Insider's reserved field |
address.city | city | Nested trait flattened |
address.country | country | Nested trait flattened |
locale | locale | Hyphens converted to underscores, e.g. en-US → en_US |
Reserved attributes (mapped directly when sent with the exact Insider field name):
Insider One Attribute | Notes |
|---|---|
| |
phone_number | |
age | |
birthday | |
name | |
gender | |
surname | |
city | |
country | |
app_version | |
idfa | |
model | |
last_ip | |
carrier | |
os_version | |
platform | |
timezone | |
locale | |
gdpr_optin | |
email_optin | |
sms_optin | |
whatsapp_optin | |
language | |
Any trait not in the special-cased list or reserved attributes list is placed in attributes.custom.
Event Parameter Mapping
Chord property names are lowercased and spaces replaced with underscores. Note: camelCase property names are not converted to snake_case. Known property aliases are remapped to Insider One's reserved event parameter names:
Aliased property mappings:
Chord Property | Insider One Event Param | Notes |
|---|---|---|
order_id or cart_id | event_group_id | |
category | taxonomy | Wrapped in array if not already |
image_url | product_image_url | |
price | unit_sale_price | Fallback only — applied when unit_sale_price is not explicitly set on the product or top-level properties |
Reserved event parameters (mapped directly when sent with the exact Insider field name):
Insider One Event Param |
|---|
campaign_id |
campaign_name |
url |
product_id |
user_agent |
taxonomy |
name |
variant_id |
unit_sale_price |
unit_price |
quantity |
product_image_url |
event_group_id |
referrer |
currency |
Any property not in the aliased or reserved lists is placed in event_params.custom.
Testing and Validation
After connecting the destination:
- Trigger a test event from your storefront or use the Live Events tab in the Chord CDP.
- In Insider One, navigate to InOne Panel > Audience and verify the user profile was created or updated.
- Check event history under the user profile to confirm events were received.
- Review the Live Events diagnostics in the Chord CDP for any API errors or credential issues.
Use Cases
- Personalize onsite experiences using purchase history and loyalty tier attributes synced from Chord.
- Trigger re-engagement journeys when Chord sends a track event like Subscription Cancelled or Cart Abandoned.
- Build high-value segments in Insider using enriched customer attributes from Chord (e.g., LTV tier, acquisition channel).
- Suppress messaging by syncing opted-out users from Chord to keep Insider audiences up to date.
- Activate post-purchase flows by sending Order Completed events with product and revenue details.
Best Practices
- Always include an identifier. Insider needs at least one identifier (email, phone, or UUID) to match or create a profile. Events without identifiers will be dropped.
- Use consistent user IDs. Ensure the userId sent from Chord matches the UUID Insider already has on file for existing profiles.
- Format phone numbers correctly. Include the country code (e.g., +14155550123). Incorrectly formatted numbers will not match existing profiles.
- Filter events deliberately. Sending all track events is rarely necessary. Start with high-signal events (e.g., Order Completed, Product Viewed) and expand from there.
- Monitor delivery logs after launch. Check for 4xx errors in the first few days — these typically indicate a mapping or credential issue.
Troubleshooting
Data not sending
Problem: Events are not appearing in Insider One after the destination is enabled.
- Confirm the destination is enabled in Chord.
- Verify your API Key and Account Name are correct — a single character error will cause all requests to fail.
- Check the Live Events diagnostics in the Chord CDP for error responses (look for 401 or 403 status codes).
- Confirm that the event types you want to send (identify, track, page) are being emitted by your storefront.
Missing attributes
Problem: User profiles appear in Insider One but expected attributes (e.g., custom traits) are missing.
- Custom traits not in Insider's reserved attribute list are nested under attributes.custom. Verify the attribute name in Insider includes the custom. prefix.
- Check whether the attribute exists in Insider's schema. New custom attributes may need to be created in Insider before data can be written to them.
- Confirm the trait is present on the identify event being sent from Chord by inspecting the Live Events payload.
Duplicate users
Problem: Insider One is creating multiple profiles for the same customer.
- Confirm that identify events consistently include the same identifier (email or UUID). Inconsistent identifiers cause Insider to create separate profiles.
- If your store captures both anonymous and logged-in sessions, ensure an identify call is sent when a user logs in so Insider can merge the profiles.
- Check that phone numbers are formatted consistently — a mismatch (e.g., with and without country code) can prevent profile matching.
Updated 15 Apr 2026