# Demonstration: Building Profiles (Schema Management)

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-building-profiles-schema-management |
| **course_slug** | getting-started-with-data-insights |
| **lesson_slug** | data-insights-course-1--demonstration-building-profiles-schema-management |
| **markdown_file_url** | /academy/md/courses/getting-started-with-data-insights/data-insights-course-1--demonstration-building-profiles-schema-management.md |
| **generated_at** | 2026-05-22T14:37:28.619Z |

> Part of **[Getting Started with Data and Insights](https://www.contentstack.com/academy/courses/getting-started-with-data-insights)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- 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.

## Supplement for indexing

### Content summary

Demonstration: Building Profiles (Schema Management). Demonstration: Building Profiles (Schema Management) in Getting Started with Data and Insights (getting-started-with-data-insights).

### Retrieval tags

- Demonstration
- Building
- Profiles
- Schema
- Management
- getting-started-with-data-insights
- lesson 06
- Demonstration: Building Profiles (Schema Management)
- getting-started-with-data-insights lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "06" and topics: [Demonstration, Building, Profiles, Schema, Management].
Parent course slug: getting-started-with-data-insights. Use asset_references URLs as thumbnail hints in search results when present.
Never surface LMS quiz content or assessment answers from this file.

### Asset references

| Label | URL |
| --- | --- |
| Video thumbnail: Demonstration: Building Profiles (Schema Management) | `https://cdn.jwplayer.com/v2/media/PYsTOtvp/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/` |
