# Lytics Data Flow

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/beyond-the-basics/lytics-data-flow |
| **course_slug** | beyond-the-basics |
| **lesson_slug** | lytics-data-flow |
| **markdown_file_url** | /academy/md/courses/beyond-the-basics/lytics-data-flow.md |
| **generated_at** | 2026-04-28T06:55:35.201Z |

> Part of **[Beyond the Basics](https://www.contentstack.com/academy/courses/beyond-the-basics)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- ai_metadata: {"lesson_id":"01","type":"video","duration_seconds":120,"video_url":"https://cdn.jwplayer.com/previews/FQmwlMCw","thumbnail_url":"https://cdn.jwplayer.com/v2/media/FQmwlMCw/poster.jpg?width=720","topics":["Lytics","Data","Flow"]} -->

#### Video details

#### At a glance

- **Title:** Lytics Data Flow - Data Transformation
- **Duration:** 2m
- **Media link:** https://cdn.jwplayer.com/previews/FQmwlMCw
- **Publish date (unix):** 1751879785

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 114318 kbps
- video/mp4 · 180p · 246p · 147073 kbps
- video/mp4 · 270p · 370p · 164152 kbps
- video/mp4 · 360p · 494p · 185037 kbps
- video/mp4 · 406p · 556p · 193660 kbps

#### Timed text tracks (delivery)

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

#### Transcript

The next place that we're going to look in this process is going to be the LQL. LQL stands for Linux Query Language. It's a transformative language that we use to map your data as it's coming in onto the user profile. This can be very powerful in that it can enrich the downstream tools with additional data that they may not have had beforehand. And what this can also do is allow you to merge data that you wouldn't have otherwise been able to merge onto the user profile. An example of this would be if you had a first name field that existed in multiple different systems upstream of Linux. We can take those multiple fields and actually map them to the same place on the user profile. What this will allow us to do then is create a more educated user profile. And when we use the term educated user profile, what we mean is that it has more sources feeding into it and therefore is less specific to one type of channel or one type of user behavior. The reason that this is super, super important is that's going to give us a more colorful picture of what this user is doing and what different channels they're interacting with throughout your ecosystem. Finally, the last place in this data channel or data process is going to be our audiences. Once the user profiles have been created and mapped to, they will be able to go into audiences that can be built out in the UI of Linux. An audience is just going to be a group of users that have a certain set of criteria associated to them. So if we're going to think about creating an audience of users that have all interacted with a certain ad or a certain pop-up or a certain form, that's going to be the sort of criteria that we're going to want to set on the audience itself. Then anybody that's interacted with that information will fall into this audience, and that audience can then be sent downstream for activation.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:05.000
The next place that we're going to look in this process is going to be the LQL.

2
00:00:05.000 --> 00:00:08.000
LQL stands for Linux Query Language.

3
00:00:08.000 --> 00:00:12.000
It's a transformative language that we use to map your data

4
00:00:12.000 --> 00:00:15.000
as it's coming in onto the user profile.

5
00:00:15.000 --> 00:00:20.000
This can be very powerful in that it can enrich the downstream

6
00:00:20.000 --> 00:00:24.000
tools with additional data that they may not have had beforehand.

7
00:00:24.000 --> 00:00:28.000
And what this can also do is allow you to merge data that you wouldn't have

8
00:00:28.000 --> 00:00:32.000
otherwise been able to merge onto the user profile.

9
00:00:32.000 --> 00:00:37.000
An example of this would be if you had a first name field that existed in

10
00:00:37.000 --> 00:00:40.000
multiple different systems upstream of Linux.

11
00:00:40.000 --> 00:00:44.000
We can take those multiple fields and actually map them to the same place

12
00:00:44.000 --> 00:00:46.000
on the user profile.

13
00:00:46.000 --> 00:00:51.000
What this will allow us to do then is create a more educated user profile.

14
00:00:51.000 --> 00:00:54.000
And when we use the term educated user profile,

15
00:00:54.000 --> 00:00:59.000
what we mean is that it has more sources feeding into it

16
00:00:59.000 --> 00:01:03.000
and therefore is less specific to one type of channel

17
00:01:03.000 --> 00:01:05.000
or one type of user behavior.

18
00:01:05.000 --> 00:01:08.000
The reason that this is super, super important is that's going to give us

19
00:01:08.000 --> 00:01:12.000
a more colorful picture of what this user is doing and what different

20
00:01:12.000 --> 00:01:16.000
channels they're interacting with throughout your ecosystem.

21
00:01:16.000 --> 00:01:20.000
Finally, the last place in this data channel or data process

22
00:01:20.000 --> 00:01:22.000
is going to be our audiences.

23
00:01:22.000 --> 00:01:26.000
Once the user profiles have been created and mapped to,

24
00:01:26.000 --> 00:01:30.000
they will be able to go into audiences that can be built out in the UI

25
00:01:30.000 --> 00:01:31.000
of Linux.

26
00:01:31.000 --> 00:01:35.000
An audience is just going to be a group of users that have a certain set

27
00:01:35.000 --> 00:01:38.000
of criteria associated to them.

28
00:01:38.000 --> 00:01:41.000
So if we're going to think about creating an audience of users that have

29
00:01:41.000 --> 00:01:46.000
all interacted with a certain ad or a certain pop-up or a certain form,

30
00:01:46.000 --> 00:01:49.000
that's going to be the sort of criteria that we're going to want to set

31
00:01:49.000 --> 00:01:51.000
on the audience itself.

32
00:01:51.000 --> 00:01:55.000
Then anybody that's interacted with that information will fall into this

33
00:01:55.000 --> 00:02:00.000
audience, and that audience can then be sent downstream for activation.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] The next place that we're going to look in this process is going to be the LQL.
[00:05] LQL stands for Linux Query Language.
[00:08] It's a transformative language that we use to map your data
[00:12] as it's coming in onto the user profile.
[00:15] This can be very powerful in that it can enrich the downstream
[00:20] tools with additional data that they may not have had beforehand.
[00:24] And what this can also do is allow you to merge data that you wouldn't have
[00:28] otherwise been able to merge onto the user profile.
[00:32] An example of this would be if you had a first name field that existed in
[00:37] multiple different systems upstream of Linux.
[00:40] We can take those multiple fields and actually map them to the same place
[00:44] on the user profile.
[00:46] What this will allow us to do then is create a more educated user profile.
[00:51] And when we use the term educated user profile,
[00:54] what we mean is that it has more sources feeding into it
[00:59] and therefore is less specific to one type of channel
[01:03] or one type of user behavior.
[01:05] The reason that this is super, super important is that's going to give us
[01:08] a more colorful picture of what this user is doing and what different
[01:12] channels they're interacting with throughout your ecosystem.
[01:16] Finally, the last place in this data channel or data process
[01:20] is going to be our audiences.
[01:22] Once the user profiles have been created and mapped to,
[01:26] they will be able to go into audiences that can be built out in the UI
[01:30] of Linux.
[01:31] An audience is just going to be a group of users that have a certain set
[01:35] of criteria associated to them.
[01:38] So if we're going to think about creating an audience of users that have
[01:41] all interacted with a certain ad or a certain pop-up or a certain form,
[01:46] that's going to be the sort of criteria that we're going to want to set
[01:49] on the audience itself.
[01:51] Then anybody that's interacted with that information will fall into this
[01:55] audience, and that audience can then be sent downstream for activation.
```

#### Lesson text

Get an overview of how data flows in and out of Lytics, and the data transformations that occur inside Lytics.

## Lytics Data Flow

### Introduction

#### What will I learn?

*   What are the main ingress and egress methods?
*   What data transformations take place inside of Lytics?
*   What are Events, LQL, and Audiences?

This guide will give you an overview of the main steps the process of data flowing in and out of Lytics.

**What's Ingress and Egress?**

*   Ingress: Data going into Lytics AKA data import
*   Egress: Data going out of Lytics AKA data export

### Data Ingress

The first step is getting your customer data into Lytics. In this video (2.5 min), we will cover the main data ingress methods at a high-level.

#### Methods to send data to Lytics

Events can be ingested into Lytics through a few methods.

*   SFTP
    *   CSV or JSON
    *   Batch process - can run hourly, daily, monthly
    *   Also can be used for a one-time backfill of historical data
*   Real-time APIs
    *   Lytics JavaScript Tag - real-time connector, capturing onsite user behavior
    *   Custom APIs (Collect endpoints) - powerful option for custom connections and setting the frequency needed for your use case
*   Bulk API
    *   Separate channel to not interrupt the real-time data coming into Lytics

#### Knowledge Check

**What data formats are supported by the SFTP method? Select all that apply.**

A. CSV

B. Free Form

C. JSON

D. XML

Answer: A, C

**The Lytics JavaScript Tag constantly pushes data into Lytics in real time.**

A. True

B. False

Answer: A

### Data Transformation

Once your customer data has been ingested into Lytics, the next step is to **transform** that data so that it can be activated on for your marketing use cases.

In the second part of the "Lytics Data Flow - Data Transformation" video (2 min), we'll give a brief overview of the data transformation process that occurs in Lytics:

*   Lytics Query Language (LQL)
*   User Profiles
*   Audiences

#### Data Transformation in Lytics

**Lytics Query Language (LQL)**: LQL is a transformative language that maps data as it comes into Lytics. LQL enables 2 key capabilities of the Lytics CDP: 

*   **Enrich** data - provide additional data to your downstream tools that wasn't available beforehand.
*   **Merge** data - combining multiple sources of data onto a single user profile.

**User Profiles**: Lytics builds "educated" user profiles, meaning:

*   There are more data sources feeding into a profile (such as web, email, CRM, etc.)
*   Not limited to a specific channel (such as email)
*   Not limited to a specific type of user behavior (such as email opens)

**Audiences**: Audiences are group of users that have certain set of criteria associated with them.

*   For example, users that have interacted with an ad, email, web form, etc.
*   Can be sent downstream for activation

**What does LQL stand for?**

A. Laughing Quite Loudly

B. Lytics Query Language

C. Learning Query Language

Answer: B

**Which of the following are benefits of LQL? Select all that apply.**

A. Map incoming data into user profiles

B. Enrich data with additional information from other sources

C. Remove duplicated fields across data sources

D. Merge data from multiple sources into an individual user profile

Answer: A, B, D

### Data Egress

Once your customer data has been transformed and enriched, you can then send user profile data and audiences from Lytics to your marketing tools for activation.  
This last section of the "Lytics Data Flow - Data Egress" video (3 min) will highlight a few of the main data egress options:

*   Website personalization
*   Email personalization
*   Enriching data in your database or CRM

#### Personalize the web experience based on user behavior

*   Main channel, used the most
*   Real-time, based on audience behavior
*   For example, you can surface different information for first time visitors vs. frequent users

#### Email customers the right content at the right time

*   Evaluate and serve the right campaigns to users based on user behavior and what's relevant to their interests.
*   Send email data (opens, clicks) back into Lytics to further refine audiences

#### Enrich other data sources for downstream activations

*   Send user profiles with rich, behavioral data from Lytics to your CRM, database, or data lake
*   Opens up new opportunities for activation on your customer data that wouldn't have been possible otherwise

**Match the data egress option to its example use case**.

Data enrichment

Show a modal relevant for a first-time site visitor

Web Personalization

Send a product newsletter based on the user's previous purchase

Email Personalization

Add cross-channel information to previously siloed data sources

## Summary and Next Steps

### Recap

As a quick recap, in this Lytics Data Flow we guide we covered:

*   Data Ingress - different methods and different frequencies for sending data to Lytics.
*   Data Transformation - how Lytics merges and enriches data into actionable user profiles and audiences.
*   Data Egress - important downstream tools that you can activate on your customer data.

#### Start with the RIGHT data

Your first instinct may be to send ALL of your data to Lytics. However, our most successful implementations start with just the RIGHT data to execute their key use cases.

### More Resource

#### Academy Courses

*   Lytics JavaScript Tag
*   Lytics Query Language

#### Documentation

*   [How does Lytics work?](https://learn.lytics.com/documentation/product/features/getting-started/how-does-lytics-work)
*   [Onboarding Web Data](https://learn.lytics.com/documentation/product/features/data-onboarding-and-management/onboarding-web-data)
*   [Integrated Marketing Tools](https://learn.lytics.com/documentation/product/features/data-onboarding-and-management/integrated-marketing-tools)

#### Key takeaways

- Connect **Lytics Data Flow** 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

Lytics Data Flow. Get an overview of how data flows in and out of Lytics, and the data transformations that occur inside Lytics. Lytics Data Flow Introduction What will I learn? What are the main ingress and egress methods? What data transformations take place inside of Lytics? What are Events, LQL, and Audiences? This guide will give you an overview of the main steps the process of data flowing in and out of Lytics. What's Ingress and Egress? Ingress: Data going into Lytics AKA data import Egress: Data going out of Lytics AKA data export Data Ingress The first step is getting your customer data into Lytics. In this video (2.5 min), we will cover the main data ingress methods at a high-level. Methods to send

### Retrieval tags

- Lytics
- Data
- Flow
- beyond-the-basics
- lesson 01
- Lytics Data Flow
- beyond-the-basics lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "01" and topics: [Lytics, Data, Flow].
Parent course slug: beyond-the-basics. 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: Lytics Data Flow | `https://cdn.jwplayer.com/v2/media/FQmwlMCw/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/` |
| How does Lytics work? | `https://learn.lytics.com/documentation/product/features/getting-started/how-does-lytics-work` |
| Onboarding Web Data | `https://learn.lytics.com/documentation/product/features/data-onboarding-and-management/onboarding-web-data` |
| Integrated Marketing Tools | `https://learn.lytics.com/documentation/product/features/data-onboarding-and-management/integrated-marketing-tools` |
