Skip to main content
Skip table of contents

Retail Example

A global retailer uses the Zeta Marketing Platform to enable a single, comprehensive view of their customers and prospects, their buying behaviors, and their brick-and-mortar and digital retail experiences.

Please review Onboarding the Zeta Way for additional context prior to diving into this example.

Accounts

The retailer operates two different brands, so they load data into two separate ZMP Accounts (RetailCo 1 and RetailCo2) that are distinct and do not share data. A parent account (RetailCo Parent) enables a combined master view of both brands for the purpose of analyzing KPIs across these two brands.

People

The retailer gathers people-based data from a variety of different sources, unified into a consistent single customer view.

Identifiers

As the various subsystems for the retailer rely on different identifier types, the retailer uses the Zeta Marketing Platform’s Identity Manager Service to consolidate disparate records into a distinct customer and household identifier based on name, a client key they maintain, and email, phone, and postal information.

JSON
{
    "customer_id": "CUST123456",
    "client_key": "CKEY789012",
    "hh_id": "HH987654",
    "loyalty_number": "LOYAL3210",
    "email": "johndoe@example.com",
    "email_md5": "e13743a7f1db7f4246badd6fd6ff54ff",   // MD5 hash of "johndoe@example.com"
    "email_sha256": "2dcb9f3b5e3e555b5adfd91aae3c3f083b298a08e4862f9f7cfb6a88244701a7"   // SHA-256 hash of "johndoe@example.com"
}

Contacts

JSON
{
    "email": "johndoe@example.com",
    "phone": "+1-234-567-8901"
}

Properties

JSON
{
    "first_name": "John",
    "last_name": "Doe",
    "gender": "Male",
    "children": [
        {
            "age": 5,
            "gender": "Female",
            "name": "Emily"
        },
        {
            "age": 7,
            "gender": "Male",
            "name": "Michael"
        }
    ],
    "address_line_1": "1234 Elm Street",
    "address_line_2": "Apt 5B",
    "city": "Anytown",
    "state": "Stateville",
    "country": "USA",
    "zip": "12345",
    "other_address": {
        "address_line_1": "5678 Oak Street",
        "address_line_2": "Suite 12",
        "city": "Othertown",
        "state": "Stateplace",
        "country": "USA",
        "zip": "67890"
    },
    "age": 35,
    "date_of_birth": "1988-05-10",
    "year_of_birth": 1988,
    "store_credit_card_holder": true,
    "loyalty_points_balance": 500,
    "loyalty_status": "Gold",
    "loyalty_enrollment_date": "2015-01-01",
    "loyalty_disenrollment_date": "2023-01-01",
    "reward_balance": 200,
    "points_until_next_reward": 100,
    "preferred_store": 1234,
    "distance_from_nearest_store": 3.5,
    "lifetime_purchase_value": 5000.00,
    "last_purchase": {
        "date": "2023-07-20",
        "items": [101, 102, 103],
        "value": 150.00
    }
}

Events

In addition to standard campaign events including campaign sends, delivers, opens, and clicks, the retailer captures the following events to guide experiences and personalization for its customers.

Event Type

Description

Sample Event Properties

purchased

A purchase, either in store or online. Gathered from

JSON
{
  "store_id": "337",
  "timestamp": "2023-07-29T06:24:42.707Z",
  "associate_id": "1433",
  "order_id": "1331",
  "order_date": "2023-07-29T06:24:42.707Z",
  "customer_name": "Samantha Bose",
  "customer_id": "12345",
  "payment_method": "credit card",
  "billing_name": "Samantha Bose",
  "billing_address": {
    "address_line_1": "123 Main Street",
    "address_line_2": "Apt 5b",
    "city": "Ypsilanti",
    "state": "MI",
    "country": "USA",
    "postal_code": "48197"
  },
  "shipping_name": "Samantha Bose",
  "shipping_address": {
    "address_line_1": "123 Main Street",
    "address_line_2": "Apt 5b",
    "city": "Ypsilanti",
    "state": "MI",
    "country": "USA",
    "postal_code": "48197"
  },
  "shipping_type": "boss (buy online, ship to store)",
  "purchase_type": "in_store",
  "items": [
    {
      "product_id": "132",
      "product_name": "t-shirt",
      "size": "M",
      "price": 15,
      "QTY": "2",
      "discount": 6,
      "tax": 1,
      "net_amout": 10
    }
  ],
  "total": 14.33
}

signed_up

A signup for an email newsletter

JSON
{
  "email": "user@example.com",
  "event_timestamp": "2023-07-24T18:15:00Z",
  "customer_id": "12345",
  "customer_name": "Samantha Bose",
  "signup_method": "website",
  "newsletter": "Best Buys",
  "frequency": "weekly",
  "order_id": "1331",
  "timestamp": "2023-07-24T16:45:00Z",
  "items": [
    {
      "product_id": "132"
    }
  ],
  "shipping_method": "express",
  "shipping_address": {
    "address_line_1": "123 Main Street",
    "address_line_2": "Apt 5b",
    "city": "Ypsilanti",
    "state": "MI",
    "country": "USA",
    "postal_code": "48197"
  },
  "tracking_number": "TRK123456789",
  "shipping_carrier": "DHL",
  "status": "shipped",
  "estimated_arrival": "2022-10-13"
}

order_shipped

An update on a customer order

JSON
{
  "order_id": "1331",
  "timestamp": "2023-07-24T16:45:00Z",
  "items": [
    {
      "product_id": "132"
    }
  ],
  "shipping_method": "express",
  "shipping_address": {
    "address_line_1": "123 Main Street",
    "address_line_2": "Apt 5b",
    "city": "Ypsilanti",
    "state": "MI",
    "country": "USA",
    "postal_code": "48197"
  },
  "tracking_number": "TRK123456789",
  "shipping_carrier": "DHL",
  "status": "shipped",
  "estimated_arrival": "2022-10-13"
}

returned

A return of a purchase

JSON
{
  "store_id": "337",
  "event_timestamp": "2023-07-24T18:15:00Z",
  "return_id": "RETU123456",
  "order_id": "1331",
  "return_status": "processing",
  "associate_id": "1433",
  "purchase_type": "in_store",
  "reason": "defective",
  "refund_type": "store_credit",
  "total": 14.33,
  "items": [
    {
      "product_id": "132",
      "price": 15
    }
  ]
}

mobile_open

An open of the RetailCo mobile app

JSON
{
  "device_os": "Apple iOS 14",
  "device": "Apple iPhone SE",
  "event_timestamp": "2023-07-24T18:15:00Z",
  "customer_id": "123450",
  "customer_name": "Samantha Bose",
  "location": {
    "lat": "42.2411° N",
    "long": "83.6130° W"
  }
}	 

survey_response

A response submitted on a customer survey

JSON
{
  "source": "retailco.com",
  "event_timestamp": "2023-07-24T18:15:00Z",
  "url": "retailco.com/how-did-we-do",
  "score": 5,
  "comments": "Loved the customer service!"
}	 

points_activity

An update to the number of points earned, used, or expired, triggered from a loyalty platform.

JSON
{
  "points_earned": 25,
  "point_balance": 425,
  "items": [
    {
      "product_id": "132",
      "price": 15
    }
  ]
}

Resources

Resource Types

Sample Resource Schema

Description

product

JSON
{
    "resource_type": "product",
    "resource_id": "E_2M891AB",
    "First Seen": "01/01/2023",
    "Last Updated": "8 hours ago",
    "Modified Date": "01/01/2023",
    "Published Date": "02/01/2023",
    "Description": "A versatile shoe for both casual and formal occasions, offering maximum comfort and a touch of elegance.",
    "age": "01/2023",
    "brand": "ElegantFootwear",
    "categories": "Men, Formal, Casual, Bestsellers, Clearance, Leather Shoes, All Seasons, Fashion Forward, Sneakers, Comfort Series",
    "color": "Black",
    "gender": "male",
    "in_stock": false,
    "offer_price": 50,
    "price": 100,
    "segment": "Adult",
   
}

Products represent the items that the retailer sells online and in store, including details about variants and other product metadata. These are reference in purchase events and used for product recommendations.

store

JSON
{
    "resource_type": "store",
    "resource_id": "5678",
    "store_id": 5678,
    "brand_desc": "ElegantShoe",
    "store_desc": "Los Angeles, CA",
    "region_id": 5,
    "region_desc": "WEST",
    "district_id": 508,
    "district_desc": "LA Metropolitan",
    "dm": 9090,
    "store_sqft": 5000,
    "open_dt": "01/5/23",
    "mall_name": "LA Plaza",
    "center_format_type": "SOLO",
    "retail_store_category_desc": "PREMIUM STORE",
    "address": "123 Fashion Blvd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90001",
    "phone": "+1-123-456-7890",
    "fax": "N/A",
    "old_store_code": "OLD_5678",
    "previous_store": "N/A",
    "dual_brand_impact": "N/A",
    "active_flag": 1,
    "store_close_date": "N/A",
    "spring_climate_cd": "MILD",
    "summer_climate_cd": "HOT",
    "fall_climate_cd": "MILD",
    "store_country": "USA",
    "latitude": 34.0522,
    "longitude": -118.2437,
    "parent_store_id": 5678,
    "international_store": "NOT INTERNATIONAL"
}

Stores represent store locations and their details for the retailer. These are referenced in purchase events, preferred store properties on user profiles, and employee resources.

employee

JSON
{
    "resource_type": "employee",
    "resource_id": "789012",
    "customer_id": 123456789,
    "emplid": 789012,
    "iid": "IID12345",
    "firstname": "John",
    "lastname": "Doe",
    "status": "A",
    "hiredate": "5/5/21",
    "location": "95",
    "jobcode": "95A002",
    "jobtitle": "Store Manager",
    "companyid": "ECC",
    "country": "USA",
    "workemail": "john.doe@company.com",
    "homeemail": "johndoe@gmail.com"
}

Employees represent associates and employees associated with the retailer. These are referenced in purchase events and to customize email communications from the managers of the customer’s preferred store.

coupon

JSON
{
    "COUPON_CD_TYPE_1": "Newsletter",
    "COUPON_CD_TYPE_2": "Promotion",
    "BARCODE": 12345,
    "COUPON_CD": 67890,
    "CAMPAIGN_NAME": "ElegantShoe Summer Sale 2023",
    "OFFER_NAME": "15% off on select items",
    "COUPON_OFFER": "15% off on select items",
    "STORE": "All Branches",
    "ISSUE_DT": "7/15/23",
    "EFFECTIVE_DT": "7/20/23",
    "EXPIRATION_DT": "8/20/23",
    "PADDED_DT": "No",
    "NUM_DAYS_PADDED": 2,
    "TACK_ON": "No",
    "NOTES": "Effective 7/20.",
    "FIELD16": "Additional Info",
    "DIVISION": "ElegantShoe Summer Campaign",
    "CAMPAIGN_CATEGORY": "ElegantShoe July Promo",
    "VERSION": 3,
    "SEGMENT_GROUP": "VIP Customers",
    "HF_PROSPECT": "Regular",
    "CAMPAIGN_TYPE": "ElegantShoe Exclusive",
    "REDEMPTION_CHANNEL": "Online",
    "ISSUANCE_CHANNEL": "Newsletter",
    "ISSUANCE_MEDIA1": "Email",
    "ISSUANCE_MEDIA2": "Website",
    "PERCENT_DOLLAR": "Percent",
    "DISCOUNT_AMT": 0.15,
    "HURDLE_AMT": 50,
    "DISCOUNT_LEVEL": "Order Total",
    "SHIPPING_STATUS": "Available"
}

Coupons represent one-time coupon codes that are sent via marketing and displayed as bar codes. See Coupon Code Setup for more details.

Data Connections

The retailer connects data from a variety of sources within its enterprise.

Source

Formats

Data Types

RetailCo Websites

JavaScript API

People, Events

Details about customer interactions and information gathered from their websites.

RetailCo Mobile App

Mobile SDK Events

People, Events

Point of Sale System

CSV

People, Events

Details about customers who have made purchases and returns in store.

eCommerce Platform

XML

People, Events

Details and preferences about customers who have made online purchases and returns.

Order Management System

CSV

Events

Details about order updates from fulfillment center.

Legacy Marketing Platform

CSV

People, Events

Details about prior marketing activity and communication preferences from an old ESP platform.

Loyalty Data Platform

Semicolon-Separated Text File

People, Events

Details about loyalty rewards status

Human Capital Management Platform

Pipe-Delimited Text File

Resources

Details about store employees/associates.

Consent Management Platform

CSV

People, Events

Details about user consent

Enterprise Database

Postgres Database

Resources

Details about store locations and product SKUs.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.