SAS CI 360

📘

This integration is currently in beta. Contact your MetaRouter support team to get started.

What Is SAS CI 360?

SAS Customer Intelligence 360 (SAS CI 360) is a cloud-based marketing platform from SAS. It helps brands plan, run, and measure customer engagement across digital and offline channels. It collects website and mobile app activity and combines it with known customer data to build customer profiles. Marketers use these profiles to build audiences, plan customer journeys, personalize content, and measure results. Its Server-Side Events API lets brands send web and mobile events to SAS CI 360 from their own systems, without using the SAS tag or the SAS Mobile SDK.


Product Type: Marketing
Integration Type: Starter Kit
Event Source Type: Web and Mobile App
Event Scope: Full-Funnel Events


Capabilities

  • Sends page views, screen views, product views, add-to-cart actions, cart views, purchases, and customer identify events to SAS CI 360 from the server.
  • Works without loading the SAS tag or the SAS Mobile SDK.
  • Labels each event as web or mobile so it matches the right event setup in SAS CI 360.
  • Fills SAS CI 360 commerce reports, such as product views, cart activity, and orders.
  • Sends IP address and browser details so SAS CI 360 can identify device type and location.
  • Links anonymous visitor activity to known customers.
  • Lets events sent by MetaRouter be used as triggers and goals in SAS CI 360 campaigns.

Considerations

  • Product Viewed, Product Added, Cart Viewed, and Order Completed must each be set up and published in SAS CI 360 with an API event key before data is sent. Events sent before then will not be processed.
  • Web events need a key from an Event API setup. Mobile events need a key from a Mobile App Action setup. Using the wrong key type may cause events to be dropped.
  • The starter kit includes placeholder event keys ('ADD_WEB_API_EVENT_KEY_HERE' and 'ADD_MOBILE_API_EVENT_KEY_HERE'). Replace them with your own keys from SAS CI 360.
  • The starter kit includes a placeholder app ID ('ADD_APP_ID_HERE'). Replace it with your Mobile Application ID from SAS CI 360.
  • Mobile events must include a Mobile Application ID that is set up and active in SAS CI 360. Otherwise, most mobile events are rejected.
  • Only the events listed in Event Mappings are sent. Except for Identify, events must also include a page URL or app name, or they are not sent.
  • Each event is sent as its own request. Batching is not supported.
  • When a userId is present, events are sent under the customer ID. Otherwise, they are sent under the anonymous visitor ID.
  • Identify events link the anonymous visitor ID to the customer ID so SAS CI 360 can connect past anonymous activity to the known customer.
  • To save any extra fields that are not part of the standard SAS CI 360 event, first add them as custom attributes to the event's setup in SAS CI 360. Otherwise, SAS CI 360 ignores them.
  • SAS CI 360 returns a success response even when an event has errors. Failed events can only be found in the SAS CI 360 error table.
  • IP address and browser details must be on the first event of a session for device and location data to work. The starter kit sends them on every event.
  • Visitor IDs must only use numbers and the letters a–f (hexadecimal), be 8 to 128 characters long, and stay the same for each device or browser. The starter kit removes dashes from anonymousId to meet this rule.
  • SAS CI 360 creates and manages sessions on its own. You do not need to send a page view before other events to start a session. When an event comes in with a new page URL, SAS CI 360 creates its own page load record for that page and links the event to the visitor's current session.
  • SAS CI 360 lets you set different session timeout lengths for web and mobile. The timeout used for a session is based on the first event in that session. For example, if a session starts with a web event, the web timeout applies to the whole session, even if mobile events come in later.
  • SAS CI 360 uses a different server address for each region. The HOST parameter defaults to the US server (i-us.ci360.marketing). Update it if your account is in another region.
  • SAS CI 360 privacy settings for approved domains and form fields only apply to the SAS tag, not to server-side events. SAS CI 360 stores whatever data it receives, so hash or remove any sensitive data before sending it.
  • If your SAS CI 360 account is set to exclude certain IP addresses, browsers, or locations (for example, internal company traffic or bots), those settings also apply to server-side events. Events from excluded sessions are not saved.
  • Each cart item needs at least one of a product ID, name, or SKU.

Limitations

  • Business process events (multi-step flows defined in SAS CI 360, such as signup) cannot be sent directly. SAS CI 360 creates them on its own from the basic events it receives, such as page views, clicks, or form submits.
  • SAS CI 360 allows up to 700,000 requests from one IP address every five minutes. High-volume setups should plan for this limit.
  • Custom fields cannot be added to individual cart items. They can only be added to the cart as a whole.
  • Unlike the SAS tag, this integration cannot show on-site content, offers, or personalization.
  • Events older than five minutes cannot be processed, so past data cannot be backfilled.
  • SAS CI 360 does not check events when they arrive, so there is no error message when an event fails.
  • Events, data tables, and access points cannot be created through the API. They must be set up in SAS CI 360.

Starter Kit Setup Guide

1. Gather Credentials

  • Collect the following from your SAS CI 360 account:
    • Host: The SAS CI 360 server address for your account's region. Your SAS representative can confirm which one to use.
    • External Tenant ID: In SAS CI 360, go to General Settings > External Access > Access Points. Create or open an access point and copy its Tenant ID.
    • Authorization Token: From the same access point, copy the Client Secret. Use it with the Tenant ID to create a token. The token stays valid until the access point is deleted or its credentials change.
    • Mobile Application ID (mobile events only): In SAS CI 360, go to Administration > Mobile Applications and copy the ID of an active app. Add it to the event mappings in place of the placeholder app ID.
    • API Event Keys: For each event, create an event in SAS CI 360 (Event API for web, Mobile App Action for mobile), add an API Event Key, and publish it. Add each key to the event mappings in place of the placeholder keys.
  • If you need help, ask your SAS representative for these credentials.

2. Add a SAS CI 360 Integration

  • From the integration library, add a SAS CI 360 integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
HOSTSAS CI 360 server address for your account's region. Defaults to the US server (i-us.ci360.marketing).
EXTERNAL_TENANT_IDTenant ID from your SAS CI 360 access point. Used in the endpoint address.
AUTH_TOKENToken created from your access point's Tenant ID and Client Secret. Used to authorize requests.

3. Configure Event Mapping

  • MetaRouter provides all of the event mappings that SAS CI 360 integrations typically require. You may add custom events, parameters, or mappings in accordance with SAS CI 360's API documentation.

4. Deploy to Pipeline

  • In the Pipelines tab, add your SAS CI 360 integration.
  • Select the correct integration revision.
  • Click Add Integration and finalize deployment.

Event Mappings

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
id_typeString: Type of customer ID. Used in the endpoint address, not sent in the event body.Enrichment – 'customer_id'
anonymousIdString: Anonymous visitor ID, with dashes removed and cut to 128 characters. Used in the endpoint address when no userId is present.anonymousId
userIdString: Known customer ID. Used in the endpoint address when present.userId
channel RequiredString: Event type, web for browser events or mobile for app events.Expression – returns 'mobile' when app, device type, or OS details are present, otherwise 'web'
mobile Required for mobile app trafficObject: App and device details (app ID, app version, device model, type, maker, platform, language, screen size, carrier). Sent for mobile events only.Expression – builds from context.app, context.device, context.os, context.locale, context.screen, and context.network; app ID set to 'ADD_APP_ID_HERE'
uri RequiredString: Page URL for web events, or the app name for mobile events.Expression – uses context.page.url; for mobile events, uses the URL-encoded context.app.name
properties.ipString: User's IP address, used for location.context.ip
clientTimeString: Time the event happened.Expression – uses timestamp, then originalTimestamp, then sentAt
clientTimeStampString: Time the event happened, in milliseconds.Expression – converts the event timestamp to milliseconds
web.userAgentString: User's browser details. Sent for web events only.Expression – returns context.userAgent for web events

Event Specific

Identify

Output KeyDescriptionExpected Input
userIdString: Known customer ID. Linked to the anonymous visitor ID in SAS CI 360. Only the IDs are sent; no other event details are included. Identify events are only sent when a userId is present.userId

Page

Output KeyDescriptionExpected Input
eventName RequiredString: SAS CI 360 event type for a page load.Enrichment – 'load'
uriString: Page URL. Replaces the global uri when present.properties.url
properties.pageTitleString: Page title.properties.title
properties.referrerString: Address of the previous page.properties.referrer
properties.userAgentString: User's browser details.context.userAgent

Screen

Output KeyDescriptionExpected Input
eventName RequiredString: SAS CI 360 event type for a screen load.Enrichment – 'load'
properties.pageTitleString: Screen name.Expression – uses properties.name, then name

Cart Viewed

Output KeyDescriptionExpected Input
eventName RequiredString: SAS CI 360 event type.Enrichment – 'cart'
cart.action RequiredString: Cart action.Enrichment – 'cartview'
cart.id RequiredString: Unique cart ID. Events without a cart ID are not sent.properties.cart_id
cart.totalCartValueFloat: Total value of all items in the cart.Expression – totals the price and quantity of properties.products
cart.itemsArray: Items in the cart with ID, name, SKU, category, quantity, price, and currency.Expression – maps each item in properties.products; currency from properties.currency
apiEventKey RequiredString: API event key from the published SAS CI 360 event.Expression – returns 'ADD_MOBILE_API_EVENT_KEY_HERE' for mobile events, otherwise 'ADD_WEB_API_EVENT_KEY_HERE'

Order Completed

Output KeyDescriptionExpected Input
eventName RequiredString: SAS CI 360 event type.Enrichment – 'cart'
cart.action RequiredString: Cart action.Enrichment – 'purchase'
cart.id RequiredString: Checkout ID, used as the cart ID. Events without a checkout ID are not sent.properties.checkout_id
cart.orderIdString: Unique order ID. Must be different for each order to avoid duplicates.properties.order_id
cart.totalCartValueFloat: Total order value.properties.total
cart.taxFloat: Tax amount for the order.properties.tax
cart.itemsArray: Purchased items with ID, name, SKU, category, quantity, price, and currency.Expression – maps each item in properties.products; currency from properties.currency
apiEventKey RequiredString: API event key from the published SAS CI 360 event.Expression – returns 'ADD_MOBILE_API_EVENT_KEY_HERE' for mobile events, otherwise 'ADD_WEB_API_EVENT_KEY_HERE'

Product Added

Output KeyDescriptionExpected Input
eventName RequiredString: SAS CI 360 event type.Enrichment – 'cartAction'
cart.action RequiredString: Cart action.Enrichment – 'add'
cart.id RequiredString: Unique cart ID. Events without a cart ID are not sent.properties.cart_id
product.idString: Product ID. At least one of ID, name, or SKU is required.properties.product_id
product.nameString: Product name.properties.name
product.skuString: Product SKU.properties.sku
product.groupString: Product category.properties.category
product.quantityInteger: Number of units added to the cart.properties.quantity
product.unitPriceFloat: Price of one unit.properties.price
apiEventKey RequiredString: API event key from the published SAS CI 360 event.Expression – returns 'ADD_MOBILE_API_EVENT_KEY_HERE' for mobile events, otherwise 'ADD_WEB_API_EVENT_KEY_HERE'

Product Viewed

Output KeyDescriptionExpected Input
eventName RequiredString: SAS CI 360 event type.Enrichment – 'productView'
product.idString: Product ID. At least one of ID, name, or SKU is required.properties.product_id
product.nameString: Product name.properties.name
product.skuString: Product SKU.properties.sku
product.groupString: Product category.properties.category
product.unitPriceFloat: Price of one unit.properties.price
apiEventKey RequiredString: API event key from the published SAS CI 360 event.Expression – returns 'ADD_MOBILE_API_EVENT_KEY_HERE' for mobile events, otherwise 'ADD_WEB_API_EVENT_KEY_HERE'

Required & Recommended Identifiers

These identifiers must be mapped to SAS CI 360 in order for successful user matching to occur. Without these IDs, any events sent to SAS CI 360 may not be accurately reflected in reporting.

AttributeExampleSync Injector Required?
anonymousId Required3f6c2a9e-1b7d-4c58-9e2f-7a1d0b4c8e21No
userId Recommendedcustomer-48213No
context.ip Recommended203.0.113.42No
context.userAgent RecommendedMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36No

Integration Validation

  • Send a few test events through your pipeline, such as a page view, product view, cart view, and purchase. Write down the anonymousId you used and the time you sent the events.
  • SAS CI 360 events do not show up in the SAS CI 360 dashboard. To check them, use the SAS diagnostics agent or the SAS Download API and search by your anonymousId and send times. Events show up about 30 minutes after they are sent and are kept for 62 days.
  • Check that each event landed in the right SAS CI 360 table:
    • Page views: PAGE_DETAILS and VISIT_DETAILS
    • Product views: PRODUCT_VIEWS
    • Cart views and purchases: one row in ORDER_SUMMARY and one row per item in ORDER_DETAILS
    • Location and device details: SESSION_DETAILS
  • Check that all events from the same visitor are grouped into one session.
  • SAS CI 360 only keeps the first view of a page URL within a session. Repeat views of the same page are dropped without an error. This is expected.

Additional SAS CI 360 Documentation