# Getting Started with Data and Insights

### About this export

| Field | Value |
| --- | --- |
| **content_type** | course |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/getting-started-with-data-insights |
| **language** | en |
| **product_area** | Contentstack Academy |
| **learning_path** | data-and-insights-practitioner-certification |
| **course_id** | getting-started-with-data-insights |
| **slug** | getting-started-with-data-insights |
| **version** | 2026-03-01 |
| **last_updated** | 2026-05-22 |
| **status** | published |
| **keywords** | ["Contentstack Academy"] |
| **summary_one_line** | What You'll Learn This introductory session provides essential background on customer data platforms and hands-on experience with basic functionality. You'll understand the strategic importance of data & insights platfor… |
| **total_duration_minutes** | 34 |
| **lessons_count** | 9 |
| **video_lessons_count** | 8 |
| **text_lessons_count** | 1 |
| **linked_learning_path** | data-and-insights-practitioner-certification |
| **linked_assessment_ref** | LMS_UNCONFIGURED_COURSE_ASSESSMENT |
| **markdown_file_url** | /academy/md/courses/getting-started-with-data-insights.md |
| **generated_at** | 2026-05-22T14:37:28.599Z |
| **intended_audience** | [] |
| **prerequisites** | [] |
| **related_courses** | [] |

> **Academy MD v3** — companion `.md` for Ask AI. Quizzes and graded assessments are **LMS-only**; this file never contains answer keys.

## Course Overview

| Metadata | Value |
| --- | --- |
| Catalog duration | 33m 59s |
| Released (if known) | 2026-03-01 |
| Product area | Contentstack Academy |

### Description

### What You'll Learn

This introductory session provides essential background on customer data platforms and hands-on experience with basic functionality. You'll understand the strategic importance of data & insights platforms (CDPs) and see real-time profile building in action before we dig into the details of how it all comes together.

### What We'll Cover

We’ll start with the fundamentals—what a Data & Insights platform is, the role it plays in personalization and marketing, and why clearly defined use cases are essential before implementation. You’ll see real-time customer profiles come to life, learn the basics of identity resolution, and get introduced to our streamlined approach to data collection, schema management, and audience building. Let’s dive in!

### Learning objectives

1. Follow each lesson in order.
2. Practice in a training stack using placeholders **YOUR_STACK_API_KEY** and **YOUR_DELIVERY_TOKEN** in local `.env` files only.
3. Validate API responses against the official documentation.

### Topics covered

Contentstack Academy

## Course structure

```text
getting-started-with-data-insights/
├── 01-data-insights-course-1--what-are-data-and-insights · video · 215s
├── 02-data-insights-course-1--the-importance-of-use-cases · video · 115s
├── 03-data-insights-course-1--demonstration-real-time-profiles · video · 509s
├── 04-data-insights-course-1--demonstration-identity-resolution · video · 370s
├── 05-data-insights-course-1--demonstration-connecting-data-sources · video · 82s
├── 06-data-insights-course-1--demonstration-building-profiles-schema-management · video · 431s
├── 07-data-insights-course-1--demonstration-enriching-profiles-with-audiences-and-scores · video · 188s
├── 08-data-insights-course-1--demonstration-building-audiences · video · 129s
├── 09-data-insights-course-1--quiz · quiz (LMS only) · 3 min
```

## Lessons

### Lesson 01 — What is a "data & insights" platform?

<!-- ai_metadata: {"lesson_id":"01","type":"video","duration_seconds":215,"video_url":"https://cdn.jwplayer.com/previews/stxmFf5O","thumbnail_url":"https://cdn.jwplayer.com/v2/media/stxmFf5O/poster.jpg?width=720","topics":["What","data","insights","platform"]} -->

#### Video details

#### At a glance

- **Title:** 1-data-insights-cdp-overview
- **Duration:** 3m 35s
- **Media link:** https://cdn.jwplayer.com/previews/stxmFf5O
- **Publish date (unix):** 1752803085

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113858 kbps
- video/mp4 · 180p · 180p · 133751 kbps
- video/mp4 · 270p · 270p · 141871 kbps
- video/mp4 · 360p · 360p · 150867 kbps
- video/mp4 · 406p · 406p · 155778 kbps
- video/mp4 · 540p · 540p · 171924 kbps
- video/mp4 · 720p · 720p · 195868 kbps
- video/mp4 · 1080p · 1080p · 257326 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/stxmFf5O-120.vtt`

#### Video transcript

Before we jump into all of that, though, it probably makes sense just to talk a little bit about what a CDP is, what Linux is at the core. This brings in some of the architecture that Drew and John and the product team have been pulling together as well to tell that unified story. This is also a thing that we could probably spend an entire session on, but really I think at the core from an explanation standpoint, a CDP is pretty simple to talk about, pretty difficult to execute historically. But all the goal of our CDP is to bring all of your customer interaction data across all of your different channels, so web, email, SMS, your POC system, your CRM system, your whatever, all these different places that this data lives, give our customers a mechanism, a process, an approach, and the tools to bring all of that data together and unify it into a single profile. So taking the information that lives, say, in your warehouse, associating it with the actual individual user events when they visit the website, tie that to your email events that are driving traffic to the website. So you have this 360 degree or holistic view of a person, of a human being user, and then allow you to segment, model, learn from it, and ultimately push that out and execute it in your marketing channels. So I think in the future, this is kind of the vision that we'll see is that Linux becomes the data activation layer. I know one thing, and Drew can speak more to this in the future sessions, but trying to get away of the verbiage of a CDP, because there's current customers that already have a CDP, and they're like, why would we want two CDPs? So it's really more about being that data activation layer. So many of our big customers already have two, quote unquote, CDPs, because somewhere along the line, all of the data tools became CDP-like. So the activation layer allows us to be that connective tissue between all of these raw sources, one of which can be a CDP, and ultimately the content stack platform, the personalized platform, the automation platform, as well as all of the third party channel tools like ads and analytics that content stack native doesn't necessarily integrate with today. So that's kind of like the simplistic picture, and in reality, this is a little bit of a deeper dive into what Linux actually does. So all of the collection is on the left-hand side, so there's streaming or scheduled. We'll talk about all of that as we get into sort of integrations and the different capabilities. Ultimately though, it's all about getting all of those events into Linux, routing them to where they need to be, mapping them to a unified profile, applying a number of enrichments on top of that data for our behavioral scores, our interest scores. Segmentation logic, which we'll touch on, is pretty unique in Linux. It's not necessarily the traditional means of segmentation. And then ultimately, all of that enriched information in this unified profile, we kind of push back out to channel tools. This is the thing that can drive personalizing content through personalize on content stack. It's the thing that can drive surfacing the right ad campaigns to particular users based on the logic. So that's at a high level, a very quick level, kind of what a CDP is.

#### Key takeaways

- Connect **What is a "data & insights" platform?** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 02 — The importance of use cases

<!-- ai_metadata: {"lesson_id":"02","type":"video","duration_seconds":115,"video_url":"https://cdn.jwplayer.com/previews/6flGRiG3","thumbnail_url":"https://cdn.jwplayer.com/v2/media/6flGRiG3/poster.jpg?width=720","topics":["The","importance","use","cases"]} -->

#### Video details

#### At a glance

- **Title:** 2-data-insights-importance-of-usecases
- **Duration:** 1m 55s
- **Media link:** https://cdn.jwplayer.com/previews/6flGRiG3
- **Publish date (unix):** 1752805377

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113695 kbps
- video/mp4 · 180p · 180p · 146420 kbps
- video/mp4 · 270p · 270p · 168050 kbps
- video/mp4 · 360p · 360p · 176733 kbps
- video/mp4 · 406p · 406p · 187259 kbps
- video/mp4 · 540p · 540p · 228563 kbps
- video/mp4 · 720p · 720p · 295330 kbps
- video/mp4 · 1080p · 1080p · 489076 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/6flGRiG3-120.vtt`

#### Video transcript

So, one of the common problems or common things that our customers do and people get excited about the Linux platform do incorrectly is just install and expect magic to happen without having some idea of what you want to achieve. That idea can be super simple. It can just be, I want to merge my email users with my web users to understand how the campaign is impacting them. Or I want to build known profiles where I have an email address and I can communicate them with them outside of just the web. It doesn't have to be these big, crazy strategies, but some idea of what you're trying to achieve allows us to kind of refine the experience in the UI and drive you in the right direction so that you don't get lost in all of the things that you could do in Linux because it's super broad and a little bit challenging in some cases to get value if you just jump in expecting it to be simple. So, I won't go through all of these, but if you're bored, if you just want some ideas on how Linux can power different things, we have this inspiration library. This is an area where we want to continue to expand, but it'll give you some ideas from a marketing standpoint what Linux can do out of the box. So, don't need to go into too much more detail than that, but if you click on some of these, they'll give examples, they'll walk through. Many of them will actually have a tutorial on how to go through them, and the ones that don't, if there's questions, we can sort of, you know, maybe spend a session or whatever later on how we would walk through and execute that. So, it's a good way to just sort of get the ideas flowing on what it might mean for end users.

#### Key takeaways

- Connect **The importance of use cases** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 03 — Demonstration: Real-time Profiles

<!-- ai_metadata: {"lesson_id":"03","type":"video","duration_seconds":509,"video_url":"https://cdn.jwplayer.com/previews/ZgOtsMdH","thumbnail_url":"https://cdn.jwplayer.com/v2/media/ZgOtsMdH/poster.jpg?width=720","topics":["Demonstration","Real","time","Profiles"]} -->

#### Video details

#### At a glance

- **Title:** 3-data-insights-demo-real-time-profiles
- **Duration:** 8m 29s
- **Media link:** https://cdn.jwplayer.com/previews/ZgOtsMdH
- **Publish date (unix):** 1752807640

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113589 kbps
- video/mp4 · 180p · 180p · 140595 kbps
- video/mp4 · 270p · 270p · 159797 kbps
- video/mp4 · 360p · 360p · 177409 kbps
- video/mp4 · 406p · 406p · 190323 kbps
- video/mp4 · 540p · 540p · 228708 kbps
- video/mp4 · 720p · 720p · 288340 kbps
- video/mp4 · 1080p · 1080p · 464689 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/ZgOtsMdH-120.vtt`

#### Video transcript

So first and foremost, if we just jump into an account, I guess maybe a quick overview of just the structure at a super high level. On the left hand side, you'll have the nav. Like I mentioned, the navigation is structured in the same way that we structured these sessions and that there's one all about data pipeline. This is how you get data analytics. And then there's a section for building profiles, which is all of your schema management, your identity controls, which we'll go through in great detail. Using profiles is then all of your modeling, your reporting, your experiences, which is our own personalization, web personalization tool. And then content has its own section for classification and customization and recommendations and all the stuff that you can do there. But to get started, first and foremost, it's super easy. You can either hit install from the dashboard or you can go over here to the different SDKs. But the easiest way to kind of just understand how to install Linux is to go to the JavaScript snippet. So for anybody that's installed Google Analytics or Google Tag Manager or any other sort of client side software, it's as simple as just copying and pasting this JavaScript snippet into the site. So you can do that in Google Tag Manager. You can drop it natively into the header, which is going to have an integration, already has an integration where you can just toggle it on and install it. So there's lots of ways to get started. But the more important thing to understand is what the tag does. So one in this initialization payload, and we can share some documentation on the different options and we can come back to all the different ways that you can configure it. But one important thing to know is that in this init call, there's a lot of different options of things that you can turn on. So in our demo that we walked through, it'll show like how to push data to Google Analytics as an example, which is a client side integration and a server side integration, or Google DFP, which is their ad manager platform. It's a client side and a server side integration. So there's lots of things that you can actually toggle on and off in this init call. The net result when you install the Lytx tag is kind of twofold. So on one hand, it gives you the mechanism to collect the data from the web. So I can just, and we'll go through and kind of show an example of this. You can fire events just like any other sort of analytics platform to collect page view data, to collect custom events, to collect any information really that you want that you want to fire from JavaScript. So the collection mechanism is part of it. And then on the other hand, it's also the personalization mechanism. So to kind of showcase that, if I go to one of our sandbox sites, just petsy.lytx.com, this will also work on any site that Lytx is installed on. So I know there's like Red Panda is out there. I'm not sure what the kind of current URL is that the ContentCon demo folks are using, but we have this Chrome extension that you can find in the Chrome store. It's just called Lytx DevTools that makes it super easy to see the profile. I'll show you also how to pull all this information from the console that our tag is surfacing. But in the case of this Petsy site, if I just turn the Chrome extension on, our tag is already installed. So what it's going to do, but at the bottom of this Chrome extension, you can, once you turn it on and pin to the URL, you can click the Profile tab, and this is going to actually show you a real-time view of this particular user's profile. So if I were to open, for instance, an incognito window and go to Petsy.com, so this is the first time that this user's ever visited this page in this context. There's no cookie, there's no session, and pull up my profile. There's not going to be a lot of information, right? Like we haven't calculated interest yet because the user hasn't browsed the site. We have some super basic scores based on one single page view. But as I browse the site, the scores are going to be calculated in real time. So we're collecting a page view event. That data is being sent to Lytx for every single event that gets processed. We actually update the scores, update the interest scores. As I continue to click around, you'll see those scores adjust. So you'll see as I browse, like this particular user has some basic topics. So I'm interested in dogs, I'm interested in dog fashion. As I browse around, you'll actually see those interest scores adjust. There's no smoke and mirrors here. What Lytx is doing is we're collecting information about the page view. We'll talk a lot about content and what it does, but at a high level we actually go out, we scrape the content, we classify it to understand the topics that that particular URL is about. And then because we know what pages that a user is visiting and what that URL in particular represents, we can associate those in the form of interest scores for a particular user. This is one of the aspects that we'll cover in the kind of deeper dive on the Lytx plus content stack story that is super unique and interesting. And that with content stack, obviously as a CMS, we have much greater access to the content and the topics and whatnot. And then really the magic that's happening if you click on the person or if you click on the details tab, it shows the full profile that's being returned. So just by installing the tag, by doing nothing else, Lytx is already going to start to build these very high value profiles that have a series of scores that will cover how these are getting calculated and what they represent, a number of interest scores, which should be in here. I think so a question just came in the chat I think is worthy of actually speaking out loud, which is, are the interests dynamically depending on the page or the site or are they predetermined? Yeah. So the interests are calculated. So interests are made up of topics and scores. The topics are related to the pages in aggregate. So if you have a hundred pages on your website, we'll actually go out and scrape every single one of those and classify all of those to generate a bank of topics. So your corpus of topics across your domain. And then for a particular user, when I visit a page, there might be three or 15 topics associated with that page. That topic sort of existence will impact my individual score. So when I browse the site and you can, it's probably a little bit small on the big screen. I don't think I can make it bigger either. You can see here, these are my initial interest scores. So obviously it's a sandbox site. So the topics are pretty limited to not very useful necessarily, but there's a score from zero to one that represents my particular level of interest in that topic based on my global activity across your domain. So we don't share any information across different accounts. So it's like, if it's, they don't get visibility into the interest scores, like it's all sandboxed to a particular Linux instance. But it is global across all of the pages in aggregate, if that makes sense. Does that answer the question? Hopefully. Yeah, I think so. I think one thing that an analogy I like to give is like, for the topics and affinities is if you're a cashier and you see someone come in with a basket of candles and balloons and cake mix, you probably can use those as to extract that they're probably going to throw a birthday party. So that's like the topics are the things in the basket. You bring those together and you can put together what their interests are, which in this case would be a birthday party. Yep. Yeah. And we'll definitely in one of the follow-up sessions, we'll spend a lot more time on content and talk about interest engines and configuration and how the scores actually work. This is just to introduce the idea that based on any channel, and this one in particular, it's web, we're building in real time, these very, very robust profiles that contain all of this contextual information that can power experiences, that can power agents and AI, that can power kind of anything that you want to do. Yeah.

#### Key takeaways

- Connect **Demonstration: Real-time Profiles** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 04 — Demonstration: Identity Resolution

<!-- ai_metadata: {"lesson_id":"04","type":"video","duration_seconds":370,"video_url":"https://cdn.jwplayer.com/previews/yudFDGZv","thumbnail_url":"https://cdn.jwplayer.com/v2/media/yudFDGZv/poster.jpg?width=720","topics":["Demonstration","Identity","Resolution"]} -->

#### Video details

#### At a glance

- **Title:** 4-data-insights-demo-identity-resolution
- **Duration:** 6m 10s
- **Media link:** https://cdn.jwplayer.com/previews/yudFDGZv
- **Publish date (unix):** 1752809177

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113606 kbps
- video/mp4 · 180p · 180p · 144671 kbps
- video/mp4 · 270p · 270p · 164557 kbps
- video/mp4 · 360p · 360p · 179454 kbps
- video/mp4 · 406p · 406p · 192278 kbps
- video/mp4 · 540p · 540p · 233523 kbps
- video/mp4 · 720p · 720p · 298688 kbps
- video/mp4 · 1080p · 1080p · 493782 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/yudFDGZv-120.vtt`

#### Video transcript

To sort of demonstrate kind of what's happening under the hood to just take a step back, I always like to show Dorothy Robinson, so you'll probably see me show this profile a few different times, but if we jump into Linux, the actual platform, so when I'm on this website, I'm back over here to this page, one of them, you saw the profile that was being generated, right? And that profile is represented by, in this case, just a cookie because they haven't identified themselves. There's no email address. I haven't logged in or done anything to sort of authenticate. So all you have to understand who I am is this single cookie. In the case of Dorothy's profile, what we're doing under the hood is actually leveraging our identity graph to build a specific sort of identity graph or our identity capabilities to build Dorothy's specific identity graph. So in her case, different sandbox account, but this is the thing that actually represents all of the information that we have about Dorothy. So on the right-hand side, you'll see all the different identifiers, which we'll talk about identifiers and the importance and how they work in the sort of schema session, but in her case, you can see that she has a number of cookies, which are represented by UIDs. At some point, we've been able to associate that with an email address and a loyalty ID and some other imports and Shopify and Zappos and all of that under the hood in real time. The thing that Eric and his team have built, which is the actual magic of Linux, is this identity capability. So on the left-hand side, you'll actually see a visual representation of Dorothy's graph, and you can see literally that if I click on one of the nodes, this is the email address that we've collected somewhere along the way. And because we've made that association, we can link that with a loyalty ID, likewise with a UID, and then through that UID, we can link that with a trade desk ID, through the trade desk ID, we can link it through another UID. So we're building this complex sort of network of data fragments that ultimately come together to build, in this case, Dorothy Robinson's unified profile of all of her data. So it's super, super powerful. And I think the one way, hopefully, if this demo works, I've gotten okay at it, but sometimes I also botch it. It's easier to understand if you do it and see it in real time. So let me close all of my incognito windows. So if I open a new incognito window, so again, no session parameters, no cookies, no nothing that doesn't have any idea who I am. And I go to petsy.linux.com again. So in this case, I just want to pull this user's ID so that I can show it the UI. This is just going to make a call to our JS tag and ultimately spit that ID back out. So there's a series of commands that can give you a little bit more access and granular control over what's actually happening under the hood, which is what we power our Chrome extension with. So in this case, they'll all just browse around for a couple clicks, just to build a profile. And then if I go back over here to the proper Linux account and go to search, so I can find that profile, which is a single fragment with a single UID. So nothing magical here. Don't know a whole lot about anything. And then if I were to go over here again, and let's say, so with our JavaScript tag, you can send it events. A lot of these happen automatically, so you don't have to do it. So in this case, all I'm going to do is just send an event to Linux. All of this information is already mapped. We'll talk about the importance of mappings and how you actually resolve this into a profile. But I'm going to send a first name, a last name, and a status. So it's John Stowe, and the status is just live event demo. If I enter that, our tag is going to send that to Linux. And then if I go back over here to this profile and refresh it, so in real time, it updated that, but still for that single fragment, if I send an event with an email address. So when I did that, you can see that it associated a UID for John Stowe with the actual email address, those profiles. So now anybody that has the email address of John Stowe, it's going to continue to link these different fragments of data together. It's an important kind of concept to understand because when we import data from, say, Salesforce Marketing Cloud, it's going to create a bunch of fragments, and you're not going to be able to associate those with, say, web fragments until there's some identification event. So maybe you pass an ID with an email click. Maybe you have them log in, and that authenticated email comes together. But the identity resolution strategy of how you start to link these fragments is super important. All of our built-in integrations come with that sort of strategy already defined. But it's one of the things in, like, as you play with and demo and beat on things, I almost always do it in incognito windows so that you don't create this massive monster profile of a whole bunch of things that are confusing because Lytx is going to be smart enough to continue to link events together. Sometimes that can be a little bit challenging for actual end users that are trying to test because their profiles kind of get bunched. So that's a very basic example of sort of, like, how we build the profiles, how fragments work, and how we can kind of link all of those things together. Microsoft Mechanics www.microsoft.com.au www.microsoft.com.au www.microsoft.com.au

#### Key takeaways

- Connect **Demonstration: Identity Resolution** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 05 — Demonstration: Connecting Data Sources

<!-- ai_metadata: {"lesson_id":"05","type":"video","duration_seconds":82,"video_url":"https://cdn.jwplayer.com/previews/uorE5Mf1","thumbnail_url":"https://cdn.jwplayer.com/v2/media/uorE5Mf1/poster.jpg?width=720","topics":["Demonstration","Connecting","Data","Sources"]} -->

#### Video details

#### At a glance

- **Title:** 5-data-insights-demo-connecting-data-sources
- **Duration:** 1m 22s
- **Media link:** https://cdn.jwplayer.com/previews/uorE5Mf1
- **Publish date (unix):** 1752846141

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 114599 kbps
- video/mp4 · 180p · 180p · 146256 kbps
- video/mp4 · 270p · 270p · 165957 kbps
- video/mp4 · 360p · 360p · 170869 kbps
- video/mp4 · 406p · 406p · 179296 kbps
- video/mp4 · 540p · 540p · 213776 kbps
- video/mp4 · 720p · 720p · 267056 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/uorE5Mf1-120.vtt`

#### Video transcript

There's a number of ways that you can get data into Lytx, so the JavaScript tag uses our collect SDK or our collect APIs. We have a bunch of APIs to accept JSON data and CSV data and single events and bulk events and all that kind of stuff. And then we also, and we'll go through a lot of these in another session, but we have hundreds and hundreds of pre-built integrations with basically every marketing tool out there that you can sort of click your way through. So in the case of Salesforce, I can say, I want to pull in my audience's activity data. You would authenticate, we'll skip that. You can configure kind of what you want to pull in. You start this backend work, and then it's also going to stream and pull in the information to Lytx. So we'll go into the kind of work configuration and all of what it can do and how it works with warehouses and webhooks a little bit later. But our pre-built integrations are one of the kind of major ways that you can pull data in along with all of our APIs.

#### Key takeaways

- Connect **Demonstration: Connecting Data Sources** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 06 — Demonstration: Building Profiles (Schema Management)

<!-- ai_metadata: {"lesson_id":"06","type":"video","duration_seconds":431,"video_url":"https://cdn.jwplayer.com/previews/PYsTOtvp","thumbnail_url":"https://cdn.jwplayer.com/v2/media/PYsTOtvp/poster.jpg?width=720","topics":["Demonstration","Building","Profiles","Schema","Management"]} -->

#### Video details

#### At a glance

- **Title:** 6-data-insights-demo-schema-management
- **Duration:** 7m 11s
- **Media link:** https://cdn.jwplayer.com/previews/PYsTOtvp
- **Publish date (unix):** 1752862583

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113628 kbps
- video/mp4 · 180p · 180p · 139284 kbps
- video/mp4 · 270p · 270p · 153662 kbps
- video/mp4 · 360p · 360p · 165552 kbps
- video/mp4 · 406p · 406p · 174715 kbps
- video/mp4 · 540p · 540p · 204743 kbps
- video/mp4 · 720p · 720p · 252363 kbps
- video/mp4 · 1080p · 1080p · 393881 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/PYsTOtvp-120.vtt`

#### Video transcript

One thing as sort of an introduction that's probably worth touching on is streams and how data comes into Linux. So we won't spend a lot of time today talking about how you can configure the identity resolution and map data to fields. But conceptually, it is important to understand that data collected in Linux for every source other than the data warehouse, which can be a little bit different depending on how you do it. So we'll come back to that one. But every one of them is going to come in on a data stream that we call it. So streams are important for a couple of different reasons. One, you have full control over what goes to what stream. The separation in streams, that was what allows you to map data differently. So for instance, if from the website, I get email address, and the key is email underscore address. But from MailChimp, it's email address camel case. And from over here, I need to lowercase it and from over here, I need to do some of their cleansing. The sort of stream separation allows you to do a lot of those kind of mapping cleansing organizational type things. So in general, our recommendation is to send unique channels to unique streams. This though, more importantly, is the place that you'll start to be able to debug and look at data coming into Linux in the raw. So the web stream is the default stream. So this is the web stream for the Petsy site. And if I were to go in here, you can find like the email field and you can look at sample values and you would probably start to see some of the test data that I've been sending in. So this is kind of like the first point that you're able to see what's coming into Linux in the UI. From here, streams get ultimately mapped into the schema. As you kind of click around, you'll see the building profile section and under schema, there's a concept of fields and mappings. We will spend an entire session on fields and mappings, but at a super high level. Mappings are the thing that allows you to say this is how you translate these raw keys from the event streams into the profile. So for instance, if I go into say like email as a field, which is the thing that lives on the actual profile, it's the schema, it's the attribute that multiple streams can kind of populate. If I go into email, you'll see there's a number of different mappings. So basically from all these different streams where email address might come in, how do I actually transform it? How do I kind of tweak it and curate it so that when it meets up to the profile, it's doing the thing that I anticipate? So you create, in many cases, these mappings come automatic. So you generally don't have to create them manually unless you're bringing in custom data. But the mappings are the thing that translate that raw data, that raw event stream into the actual profile that you saw in the Chrome extension that you can see on the website. So like I said, we will spend an entire session on fields and mappings because there's a lot of controls, there's a lot of things that it's definitely worth knowing as you start to get in here and play. But just know that it sort of like comes in on the stream, streams go through mappings to ultimately end up on the profile. And that same processing pipeline is when we do our sort of segment evaluation to where we evaluate all of our behavioral scores and all the sort of enrichment stuff that we'll go a little bit deeper into that lives on the profile. Important point there that I did skip that, like I said, we'll go over more detail. But an important thing to understand in fields, you have some fields that are just attributes that you can sort of segment on and you can use. You have a number of fields that are actually what we call identifier fields, or I think a lot of the engineers you'll hear them say called by fields is what we used to call them. Those are the actual fields that allow you to merge fragments across streams. So for instance, if I go into actually I can go to. And real quick, while there's a really complex topic that's kind of like spread across two different chats about whether or not we use user agents or screen size, time zone, OS as identifiers. And the answer is no, those are almost never used as what we would call direct identifiers or identifiers that are deterministically matched. But we do have the ability to do fuzzy matching. That would use characteristics like screen size, OS, time zone, fonts, user agent, anything. It would use that to increase its confidence that two visitors are the same visitor. But for deterministic matching, yeah, those things are not used. So. All right. Sorry, Mark. No, you're totally, totally fine. So back to the identity rules or the fields that are identifiers, like I said, we'll cover this in depth tomorrow. But it's important to know that there are some fields that are special. You can either delineate or not on these particular fields that you can set what are identifiers and what the rules are around how it merges, which we'll go into. But just know that when data comes into a stream, there has to be at least one identifier that you can link the fragments that are created from that stream with other fragments that have already been existed by that identifier. So in the identity rules section under building profiles, identity and rules, you'll see all of the fields that actually represent that sort of identity mechanism. So in this case, in this account, there's UIDs, which is a by field, a device ID, a Shopify customer ID, an email ID or email address, user ID, et cetera, et cetera. These are all of the keys that if you see the same email address between two streams, it's okay to merge those fragments. Or if you see the same Shopify customer ID, you can merge those fragments. Important to know because one, you don't want like you want to understand your identity strategy. This is one of the places where customers can kind of shoot themselves in the foot a little bit in that we've had people, you know, make a identity field that's like a category of interest or whatever. And then you end up with this giant super profile of everybody that shared an interest with, because it kind of merges those profiles together. So a lot of this, as you'll find, we've built to be automated. So when you connect to Shopify, we automatically alter the schema. We already build in the identity rules. So in most cases, customers don't necessarily need to go and tweak and configure this. But it's all there kind of in the UI for some of those more advanced use cases. And then enterprise customers always want their own sort of special configuration as well.

#### Key takeaways

- Connect **Demonstration: Building Profiles (Schema Management)** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 07 — Demonstration: Enriching Profiles w/ Audiences & Scores

<!-- ai_metadata: {"lesson_id":"07","type":"video","duration_seconds":188,"video_url":"https://cdn.jwplayer.com/previews/H0jOWRS8","thumbnail_url":"https://cdn.jwplayer.com/v2/media/H0jOWRS8/poster.jpg?width=720","topics":["Demonstration","Enriching","Profiles","Audiences","Scores"]} -->

#### Video details

#### At a glance

- **Title:** 7-data-insights-demo-enriching-profiles
- **Duration:** 3m 8s
- **Media link:** https://cdn.jwplayer.com/previews/H0jOWRS8
- **Publish date (unix):** 1752863432

#### Streaming renditions

- application/vnd.apple.mpegurl
- video/mp4 · 180p · 180p · 138862 kbps

#### Video transcript

So, for every profile that comes into Lytx, you'll actually start to get these behavioral scores. We can share the docs that walk through specifically like what the momentum score is, the intensity score, but essentially it's nine behavioral scores that the intent of these was to prevent people from having to build their own complicated business logic to understand things like momentum. Traditionally in marketing, people are, you know, the rules are pretty simple in that it's if I visited, you know, five pages in the last week, then it represents this thing. We try to be a little bit more intelligent on how we calculate these. Some of them are specific to a user. Some of them take into account the sort of global audience to balance what that frequency is, for instance. So, we can go into more detail on exactly how all of these are calculated and how to use them, but it's one of the ways that we enhance the profile out of the box to make it more usable in a similar way to the sort of interest scores. While we're in here, we'll go to the segment builder and we can show how audiences are created. But audiences in Lytx are quite a bit different than most marketing tools for those that have used Martech. In a lot of cases, historically, audiences are sort of this static idea of I build a list, that list doesn't change, I send an email to everybody on that list, and then that list goes away. Audiences or segments in Lytx are really much more akin to sort of a computed attribute. So you configure the logic, the rules, the conditions that need to be met to either put you in or out of this audience. And then the state of that audience membership lives on the profile in real time. So as a single event comes in, we're reevaluating the membership that gets updated on the profile. The important thing about audiences is also the triggers that they can create. So when we're evaluating that audience membership per event, if they enter an audience, that's one of the trigger mechanisms that we can use to then send information to downstream tools through our exports. When they exit that audience, that's a trigger that we can use to send those events. So all of Lytx audiences are more living and breathing in real time. There's not a concept of sort of a static list that sits there and doesn't ever change and you can export it. So I always like to describe them as much more of a computed attribute, a way to get more insight and intelligence on the profile. And then they're surfaced in real time as they sort of change and evolve. Audience membership, to sort of a teaser for the content stack plus Lytx conversation, audience membership and flow membership are the two attributes that we're pushing to the content stack personalized product today. Maybe in the future we'll push more attributes, but you could do a lot with segment membership and flow membership, which we haven't touched on yet.

#### Key takeaways

- Connect **Demonstration: Enriching Profiles w/ Audiences & Scores** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 08 — Demonstration: Building Audiences

<!-- ai_metadata: {"lesson_id":"08","type":"video","duration_seconds":129,"video_url":"https://cdn.jwplayer.com/previews/CLuuc7vE","thumbnail_url":"https://cdn.jwplayer.com/v2/media/CLuuc7vE/poster.jpg?width=720","topics":["Demonstration","Building","Audiences"]} -->

#### Video details

#### At a glance

- **Title:** 8-data-insights-demo-building-audiences
- **Duration:** 2m 9s
- **Media link:** https://cdn.jwplayer.com/previews/CLuuc7vE
- **Publish date (unix):** 1752863946

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 114315 kbps
- video/mp4 · 180p · 180p · 143791 kbps
- video/mp4 · 270p · 270p · 160636 kbps
- video/mp4 · 360p · 360p · 167817 kbps
- video/mp4 · 406p · 406p · 178101 kbps
- video/mp4 · 540p · 540p · 209746 kbps
- video/mp4 · 720p · 720p · 260252 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/CLuuc7vE-120.vtt`

#### Video transcript

Building a segment in Linux, and we'll spend time on this on the using profiles day, but it's super simple. You can just go into using profiles, audiences, and then we have a robust segment builder. What you will all see today is this one. So you can go in here, and you can select any of the attributes. So if I wanted to say, if to be a member of this audience, I want an email address to contain at contentstack.com, I could type. I'll save the rule. It's going to actually calculate the number of users in that audience in real time. You can also exclude to see the count, include to see the count. And then you can chain any number of rules together. So if I want to say, andcontentstack.com or blitix.com, I could do that. You can have it be an OR. You can add wrapper rules around it. So kind of a traditional but very powerful segmentation engine. You can also include other audiences. We call them building block audiences. So like in the concept of, say, consent is a popular one. So if I only want to email users that have consented, you have an audience of users that have consented to receive emails. Then you make sure that you include that in all of your email sort of attribute targeting lists and exports. So we'll double back to this and build more audiences together. But a pretty powerful rules engine that ultimately ends up surfacing itself on the profile to then personalize based on that membership or trigger a downstream export.

#### Key takeaways

- Connect **Demonstration: Building Audiences** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 09 — Data Insights: Getting Started Quiz

<!-- ai_metadata: {"lesson_id":"09","type":"text","duration_minutes":1,"topics":["LMS","Knowledge check"]} -->

#### Lesson text

**This lesson is a knowledge check hosted in the Academy LMS.** This companion Markdown contains **no quiz questions, answers, scoring rules, or explanations**.

#### Key takeaways

- Connect **Data Insights: Getting Started Quiz** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

## Resources & references

| Page | Companion Markdown |
| --- | --- |
| /courses/getting-started-with-data-insights/data-insights-course-1--what-are-data-and-insights | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--what-are-data-and-insights.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--the-importance-of-use-cases | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--the-importance-of-use-cases.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--demonstration-real-time-profiles | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-real-time-profiles.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--demonstration-identity-resolution | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-identity-resolution.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--demonstration-connecting-data-sources | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-connecting-data-sources.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--demonstration-building-profiles-schema-management | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-building-profiles-schema-management.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--demonstration-enriching-profiles-with-audiences-and-scores | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-enriching-profiles-with-audiences-and-scores.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--demonstration-building-audiences | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-building-audiences.md |
| /courses/getting-started-with-data-insights/data-insights-course-1--quiz | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--quiz.md |

## Supplement for indexing

### Content summary

What You'll Learn This introductory session provides essential background on customer data platforms and hands-on experience with basic functionality. You'll understand the strategic importance of data & insights platfor… What You'll Learn This introductory session provides essential background on customer data platforms and hands-on experience with basic functionality. You'll understand the strategic importance of data & insights platforms (CDPs) and see real-time profile building in action before we dig into the details of how it all comes together. What We'll Cover We’ll start with the fundamentals—what a Data & Insights platform is, the role it plays in personalization and marketing, and why clearly defined use cases are essential before implementation. You’ll see real-time customer profiles come to life, l

### Retrieval tags

- Contentstack Academy
- getting-started-with-data-insights
- What
- data
- insights
- platform
- The
- importance
- use
- cases
- Demonstration
- Real
- time
- Profiles

### Indexing notes

Chunk at each "### Lesson NN — Title" heading; copy lesson_id and topics from the preceding HTML comment into chunk metadata for RAG filters.
Course slug: getting-started-with-data-insights. Union of lesson topic tokens: What, data, insights, platform, The, importance, use, cases, Demonstration, Real, time, Profiles, Identity, Resolution, Connecting, Data, Sources, Building, Schema, Management, Enriching, Audiences, Scores, Insights, Getting, Started, Quiz.
Do not embed or retrieve LMS-only quiz items or mastery exam answer keys from this export.

### Asset references

| Label | URL |
| --- | --- |
| Video thumbnail: What is a "data & insights" platform? | `https://cdn.jwplayer.com/v2/media/stxmFf5O/poster.jpg?width=720` |
| Video thumbnail: The importance of use cases | `https://cdn.jwplayer.com/v2/media/6flGRiG3/poster.jpg?width=720` |
| Video thumbnail: Demonstration: Real-time Profiles | `https://cdn.jwplayer.com/v2/media/ZgOtsMdH/poster.jpg?width=720` |
| Video thumbnail: Demonstration: Identity Resolution | `https://cdn.jwplayer.com/v2/media/yudFDGZv/poster.jpg?width=720` |
| Video thumbnail: Demonstration: Connecting Data Sources | `https://cdn.jwplayer.com/v2/media/uorE5Mf1/poster.jpg?width=720` |
| Video thumbnail: Demonstration: Building Profiles (Schema Management) | `https://cdn.jwplayer.com/v2/media/PYsTOtvp/poster.jpg?width=720` |
| Video thumbnail: Demonstration: Enriching Profiles w/ Audiences & Scores | `https://cdn.jwplayer.com/v2/media/H0jOWRS8/poster.jpg?width=720` |
| Video thumbnail: Demonstration: Building Audiences | `https://cdn.jwplayer.com/v2/media/CLuuc7vE/poster.jpg?width=720` |

### External links

| Label | URL |
| --- | --- |
| Contentstack Academy home | `https://www.contentstack.com/academy/` |
| Training instance setup | `https://www.contentstack.com/academy/training-instance` |
| Academy playground (GitHub) | `https://github.com/contentstack/contentstack-academy-playground` |
| Contentstack documentation | `https://www.contentstack.com/docs/` |
