# Lytics Query Language

### About this export

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

> 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":"05","type":"video","duration_seconds":893,"video_url":"https://cdn.jwplayer.com/previews/g3xlbE7o","thumbnail_url":"https://cdn.jwplayer.com/v2/media/g3xlbE7o/poster.jpg?width=720","topics":["Lytics","Query","Language"]} -->

#### Video details

#### At a glance

- **Title:** Lytics Query Language - Learn LQL Basics
- **Duration:** 14m 53s
- **Media link:** https://cdn.jwplayer.com/previews/g3xlbE7o
- **Publish date (unix):** 1751912463

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113475 kbps
- video/mp4 · 180p · 200p · 154868 kbps
- video/mp4 · 270p · 300p · 189302 kbps
- video/mp4 · 360p · 400p · 217965 kbps
- video/mp4 · 406p · 450p · 233756 kbps
- video/mp4 · 540p · 600p · 296695 kbps

#### Timed text tracks (delivery)

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

#### Transcript

Hello and welcome to the Lytx training session LQL 101. On today's agenda we will cover what LQL is, where you can find it in the UI. I'll show you the default LQL that comes out of the box in any account. We'll cover some basic syntax explanation so that people can read LQL at a beginner level. I'll also point out where our public documentation lives for anyone to view. In addition we'll cover why it's important to go back and read our public documentation to learn more about LQL. There are many ways to transform an incoming field and how you choose to transform that field may impact your experience in the audience builder. So what is LQL? This is the long answer which I won't read aloud but it's here and also available on our public documentation. The short answer for what LQL is is that LQL transforms our incoming data. LQL enriches user profiles by structuring incoming data with unique identifiers. The result of this is the ability to build educated audiences in Lytx. So in general this is the high-level process of how things are happening. An event will come in such as page click or logs in and it will go to our cloud storage. It'll also go through our LQL where that data is transformed in meaningful ways to enrich user profiles. So here's a basic skeleton outline of what a LQL file looks like. At the very top we have we typically put in the file name and some important descriptions about the file. An important note is that this will appear in the Lytx UI. Next we have our select statement which is telling us to select incoming fields which you'll find on the far left side as a Lytx slug which is just the normalized version of the incoming field names for Lytx to process those fields. Next we have the option to use conditional statements and then we have short descriptions. This is the user-friendly name that you'll find in the Lytx UI. So instead of having first name as camel case, first name as snake case, we'll just have in title case first name. Next is the long description. This is completely optional and it's only found in a very specific place in the UI. At the end of the LQL files we have our unique identifiers, our by fields. We separate these from the other fields just for easy identification. Essentially all the fields above the by fields are able to be stored onto the user profile via the unique identifiers. So first names will come in with email UID or account ID and any other field from the above will have to come in with either email UID or account ID. At the very bottom of the LQL file we have the statements from, into, by, and alias. From denotes which stream name that the incoming data will come from. So if it's click stream data or data from the web layer etc that'll be denoted here. Into user. User is just the table that we're storing the fields on. It's the most popular table. We also have a content table but we won't get into that today. By is the by fields that we're using to store those incoming fields on. Again email UID, account ID. So the incoming fields will be stored onto the user profile again via email UID or account ID. The final statement is alias and this is just the unique file name. Unique is important here. Every LQL file name must be unique. So this is our demo account. If you go to the data tab and then the sub tab queries, you'll find all the LQL for the account. Starting from Linux content all the way user web path fora. These eight files right here come out of the box. Next to the LQL file names we'll see which table. User, content, etc. Those fields are going to be stored upon. On the far right hand side this is where we see the titles of the LQL files. So this top section here where I mentioned we typically store the file name and or some descriptions and where it appears in the Linux UI. That appears right here. So let's click into an LQL file. We'll start with user web default. This is user web default data out of the box. So we'll store things like the anonymous ID, first name, last name, city, state, country, company, city, URLs, email list, email sent, email clicks, etc. It's coming to the default stream into the user table via these by fields. UIDs, email, or phone number. And the name of the LQL file is user web default. These are the names you see in the audience builder and elsewhere in the UI. So to timestamp, sometimes stamp field, is going to be stored as time of last visit. Something I didn't mention earlier is that we have data types as well. We call them kinds, kind date, kind string, int, maps, many different data types we can use to transform your data from some subscription data, from some subscription status, to taking that subscription and mapping it to a subscription status. Now we'll take a look into some public documentation. If I search for Lix, go to our website, knowledge center, product documentation. I can search by LQL in here. And here's our LQL documentation for anyone to view. Scrolling through, we have some LQL examples, standard syntax descriptions, select from, into, where, by, alias, in case you were to forget. Here are all the functions available to transform your data from aggregate functions to logical functions, string functions, hash and encoding functions, and much much more. If you continue to scroll down, we'll eventually reach the data types we have, or kinds. Anything from an int, date, arrays, maps, many ways to take an incoming field to then transform it to enrich profiles. So now we'll take a look into the UI, and I'll show you how choosing specific functions or data types will change what you'll experience in the audience builder. So we're back at the queries tab, and before I go to the audience builder, we'll just click on this query here. So this is considered a custom LQL file based on email events. I'll open the new tab to the audience builder. Select create a new audience. In the custom rules tab here, we'll find all the fields from the LQL. Here I can choose a source. Custom email is what we just took a look at, and here are all the short descriptions from that LQL file. These. Going back to the LQL file, let's take a look at type date. So here we get this histogram where we can see on October 31st, 655 last email open dates came in, 587 on November 30th, and so on. We also have options to pick a relative date or a specific date. All of this is possible because the LQL is denoted type date. Now let's take a look at what happens with a string value in the audience builder, such as email address. So now we have the options to take a string and say I want to find a string that's exactly equal to something, contains some sort of substring, contains one string or another. If that string exists, equals one of, and there's also this be like button as well. So if that field simply exists, there's 10,000 users with it. In the case of email, we could say contains some email domain. In this case, approximately 3,000 users have an at demo in their email address. Now let's try to find a couple more different data types. I came back to the default web data LQL to find another data type for us to take a look at in the audience builder. Let's take a look at this one. We're mapping an email list to email sent. Email list is type string. Email sent, number of emails sent, is type int. I can find this field in the audience builder by searching for the short description. Now we have a different view. These are the different strings appearing in this map. Let's go to tech news. We can say we want tech news to be greater than two times, and this is our audience. We could say be less than 10, and now this is our audience. So we were able to select a string in that previous window and then select by the integers of how many email sents is stored on the user profile. There are many other ways to transform the audience builder based on the data type and functions that we're using along those incoming field names. Again, there is a lot to learn about LQL and this is meant to be an intro to just get you started. I highly recommend coming back to this page and reviewing all the different functions and data types and start thinking about different ways you can transform your incoming fields and enrich user profiles to meet your use cases. Thank you for watching. See you next time. Goodbye.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:08.400
Hello and welcome to the Lytx training session LQL 101. On today's agenda we

2
00:00:08.400 --> 00:00:14.520
will cover what LQL is, where you can find it in the UI. I'll show you the

3
00:00:14.520 --> 00:00:19.880
default LQL that comes out of the box in any account. We'll cover some basic

4
00:00:19.880 --> 00:00:25.680
syntax explanation so that people can read LQL at a

5
00:00:25.680 --> 00:00:31.000
beginner level. I'll also point out where our public documentation lives for

6
00:00:31.000 --> 00:00:38.240
anyone to view. In addition we'll cover why it's important to go back and read

7
00:00:38.240 --> 00:00:43.000
our public documentation to learn more about LQL. There are many ways to

8
00:00:43.000 --> 00:00:48.160
transform an incoming field and how you choose to transform that field may

9
00:00:48.160 --> 00:00:59.160
impact your experience in the audience builder. So what is LQL? This is the long

10
00:00:59.160 --> 00:01:04.560
answer which I won't read aloud but it's here and also available on our public

11
00:01:04.560 --> 00:01:14.080
documentation. The short answer for what LQL is is that LQL transforms our

12
00:01:14.080 --> 00:01:20.800
incoming data. LQL enriches user profiles by structuring incoming data

13
00:01:20.800 --> 00:01:27.720
with unique identifiers. The result of this is the ability to build educated

14
00:01:27.720 --> 00:01:37.040
audiences in Lytx. So in general this is the high-level process of how things are

15
00:01:37.040 --> 00:01:44.920
happening. An event will come in such as page click or logs in and it will go to

16
00:01:44.920 --> 00:01:52.600
our cloud storage. It'll also go through our LQL where that data is transformed

17
00:01:52.600 --> 00:02:02.960
in meaningful ways to enrich user profiles. So here's a basic skeleton

18
00:02:02.960 --> 00:02:11.920
outline of what a LQL file looks like. At the very top we have we typically put

19
00:02:11.920 --> 00:02:16.800
in the file name and some important descriptions about the file. An important

20
00:02:16.800 --> 00:02:23.720
note is that this will appear in the Lytx UI. Next we have our select

21
00:02:23.720 --> 00:02:28.280
statement which is telling us to select incoming fields which you'll find on the

22
00:02:28.280 --> 00:02:35.960
far left side as a Lytx slug which is just the normalized version of the

23
00:02:35.960 --> 00:02:45.080
incoming field names for Lytx to process those fields. Next we have the option to

24
00:02:45.080 --> 00:02:51.320
use conditional statements and then we have short descriptions. This is the

25
00:02:51.320 --> 00:02:56.600
user-friendly name that you'll find in the Lytx UI. So instead of having first

26
00:02:56.720 --> 00:03:03.760
name as camel case, first name as snake case, we'll just have in title case first

27
00:03:03.760 --> 00:03:10.920
name. Next is the long description. This is completely optional and it's only

28
00:03:10.920 --> 00:03:17.160
found in a very specific place in the UI. At the end of the LQL files we have our

29
00:03:17.160 --> 00:03:22.160
unique identifiers, our by fields. We separate these from the other fields

30
00:03:22.160 --> 00:03:26.880
just for easy identification. Essentially all the fields above the

31
00:03:26.880 --> 00:03:32.640
by fields are able to be stored onto the user profile via the unique identifiers.

32
00:03:32.640 --> 00:03:39.440
So first names will come in with email UID or account ID and any other field

33
00:03:39.440 --> 00:03:48.320
from the above will have to come in with either email UID or account ID. At the

34
00:03:48.320 --> 00:03:55.920
very bottom of the LQL file we have the statements from, into, by, and alias. From

35
00:03:55.920 --> 00:04:03.040
denotes which stream name that the incoming data will come from. So if it's

36
00:04:03.040 --> 00:04:13.160
click stream data or data from the web layer etc that'll be denoted here. Into

37
00:04:13.280 --> 00:04:19.600
user. User is just the table that we're storing the fields on. It's the most

38
00:04:19.600 --> 00:04:24.680
popular table. We also have a content table but we won't get into that today.

39
00:04:24.680 --> 00:04:33.120
By is the by fields that we're using to store those incoming fields on. Again

40
00:04:33.120 --> 00:04:39.640
email UID, account ID. So the incoming fields will be stored onto the user

41
00:04:39.760 --> 00:04:47.960
profile again via email UID or account ID. The final statement is alias and this

42
00:04:47.960 --> 00:04:53.720
is just the unique file name. Unique is important here. Every LQL file name must

43
00:04:53.720 --> 00:05:05.880
be unique. So this is our demo account. If you go to the data tab and then the

44
00:05:05.880 --> 00:05:15.400
sub tab queries, you'll find all the LQL for the account. Starting from Linux

45
00:05:15.400 --> 00:05:21.480
content all the way user web path fora. These eight files right here come out of

46
00:05:21.480 --> 00:05:30.520
the box. Next to the LQL file names we'll see which table. User, content, etc. Those

47
00:05:30.560 --> 00:05:36.840
fields are going to be stored upon. On the far right hand side this is where we

48
00:05:36.840 --> 00:05:45.000
see the titles of the LQL files. So this top section here where I mentioned we

49
00:05:45.000 --> 00:05:50.280
typically store the file name and or some descriptions and where it appears

50
00:05:50.280 --> 00:05:59.240
in the Linux UI. That appears right here. So let's click into an LQL file. We'll

51
00:05:59.240 --> 00:06:07.120
start with user web default. This is user web default data out of the box. So

52
00:06:07.120 --> 00:06:16.280
we'll store things like the anonymous ID, first name, last name, city, state, country,

53
00:06:16.280 --> 00:06:28.960
company, city, URLs, email list, email sent, email clicks, etc. It's coming to the

54
00:06:28.960 --> 00:06:37.600
default stream into the user table via these by fields. UIDs, email, or phone

55
00:06:37.600 --> 00:06:48.560
number. And the name of the LQL file is user web default. These are the names

56
00:06:48.560 --> 00:06:54.640
you see in the audience builder and elsewhere in the UI. So to timestamp,

57
00:06:54.640 --> 00:07:00.320
sometimes stamp field, is going to be stored as time of last visit. Something I

58
00:07:00.320 --> 00:07:06.000
didn't mention earlier is that we have data types as well. We call them kinds,

59
00:07:06.000 --> 00:07:16.400
kind date, kind string, int, maps, many different data types we can use to

60
00:07:16.400 --> 00:07:24.040
transform your data from some subscription data, from some subscription

61
00:07:24.040 --> 00:07:34.800
status, to taking that subscription and mapping it to a subscription status. Now

62
00:07:34.800 --> 00:07:43.920
we'll take a look into some public documentation. If I search for Lix, go to

63
00:07:43.920 --> 00:07:55.720
our website, knowledge center, product documentation. I can search by LQL in

64
00:07:55.720 --> 00:08:11.240
here. And here's our LQL documentation for anyone to view. Scrolling through, we

65
00:08:11.240 --> 00:08:20.560
have some LQL examples, standard syntax descriptions, select from, into, where, by,

66
00:08:20.560 --> 00:08:27.880
alias, in case you were to forget. Here are all the functions available to

67
00:08:27.880 --> 00:08:34.120
transform your data from aggregate functions to logical functions, string

68
00:08:34.200 --> 00:08:44.680
functions, hash and encoding functions, and much much more. If you continue to

69
00:08:44.680 --> 00:08:52.640
scroll down, we'll eventually reach the data types we have, or kinds. Anything

70
00:08:52.640 --> 00:09:02.080
from an int, date, arrays, maps, many ways to take an incoming field to then

71
00:09:02.080 --> 00:09:09.360
transform it to enrich profiles. So now we'll take a look into the UI, and I'll

72
00:09:09.360 --> 00:09:17.720
show you how choosing specific functions or data types will change what you'll

73
00:09:17.720 --> 00:09:24.400
experience in the audience builder. So we're back at the queries tab, and before

74
00:09:24.400 --> 00:09:29.840
I go to the audience builder, we'll just click on this query here. So this is

75
00:09:29.840 --> 00:09:39.200
considered a custom LQL file based on email events. I'll open the

76
00:09:39.200 --> 00:09:43.040
new tab to the audience builder.

77
00:09:50.680 --> 00:09:59.160
Select create a new audience. In the custom rules tab here, we'll find all the

78
00:09:59.160 --> 00:10:08.320
fields from the LQL. Here I can choose a source. Custom email is what we just took

79
00:10:08.320 --> 00:10:15.960
a look at, and here are all the short descriptions from that LQL file.

80
00:10:16.200 --> 00:10:19.200
These.

81
00:10:20.040 --> 00:10:32.360
Going back to the LQL file, let's take a look at type date.

82
00:10:36.680 --> 00:10:45.280
So here we get this histogram where we can see on October 31st, 655 last email

83
00:10:45.320 --> 00:10:57.440
open dates came in, 587 on November 30th, and so on. We also have options to pick a

84
00:10:57.440 --> 00:11:01.480
relative date or a specific date.

85
00:11:05.920 --> 00:11:14.160
All of this is possible because the LQL is denoted type date. Now let's take a

86
00:11:14.160 --> 00:11:24.840
look at what happens with a string value in the audience builder, such as

87
00:11:24.840 --> 00:11:33.800
email address. So now we have the options to take a string and say I want to find

88
00:11:33.800 --> 00:11:38.320
a string that's exactly equal to something, contains some sort of

89
00:11:38.320 --> 00:11:46.520
substring, contains one string or another. If that string exists, equals one

90
00:11:46.520 --> 00:11:51.680
of, and there's also this be like button as well.

91
00:11:55.920 --> 00:12:05.520
So if that field simply exists, there's 10,000 users with it. In the case of

92
00:12:05.520 --> 00:12:15.160
email, we could say contains some email domain. In this case, approximately 3,000

93
00:12:15.160 --> 00:12:25.880
users have an at demo in their email address. Now let's try to find a couple

94
00:12:25.880 --> 00:12:32.280
more different data types. I came back to the default web data LQL to find

95
00:12:32.280 --> 00:12:39.160
another data type for us to take a look at in the audience builder. Let's take a

96
00:12:39.160 --> 00:12:49.440
look at this one. We're mapping an email list to email sent. Email list is type

97
00:12:49.440 --> 00:12:56.760
string. Email sent, number of emails sent, is type int.

98
00:13:02.280 --> 00:13:13.880
I can find this field in the audience builder by searching for the short

99
00:13:13.880 --> 00:13:16.480
description.

100
00:13:23.480 --> 00:13:29.080
Now we have a different view. These are the different strings appearing in this

101
00:13:29.080 --> 00:13:41.360
map. Let's go to tech news. We can say we want tech news to be greater than two

102
00:13:41.360 --> 00:13:51.640
times, and this is our audience. We could say be less than 10, and now this is our

103
00:13:51.640 --> 00:14:01.200
audience. So we were able to select a string in that previous window and then

104
00:14:01.200 --> 00:14:09.280
select by the integers of how many email sents is stored on the user profile. There

105
00:14:09.280 --> 00:14:13.960
are many other ways to transform the audience builder based on the data type

106
00:14:14.080 --> 00:14:23.320
and functions that we're using along those incoming field names. Again, there

107
00:14:23.320 --> 00:14:28.240
is a lot to learn about LQL and this is meant to be an intro to just get you

108
00:14:28.240 --> 00:14:33.480
started. I highly recommend coming back to this page and reviewing all the

109
00:14:33.480 --> 00:14:38.400
different functions and data types and start thinking about different ways you

110
00:14:38.400 --> 00:14:46.520
can transform your incoming fields and enrich user profiles to meet your use

111
00:14:46.520 --> 00:14:54.400
cases. Thank you for watching. See you next time. Goodbye.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Hello and welcome to the Lytx training session LQL 101. On today's agenda we
[00:08] will cover what LQL is, where you can find it in the UI. I'll show you the
[00:14] default LQL that comes out of the box in any account. We'll cover some basic
[00:19] syntax explanation so that people can read LQL at a
[00:25] beginner level. I'll also point out where our public documentation lives for
[00:31] anyone to view. In addition we'll cover why it's important to go back and read
[00:38] our public documentation to learn more about LQL. There are many ways to
[00:43] transform an incoming field and how you choose to transform that field may
[00:48] impact your experience in the audience builder. So what is LQL? This is the long
[00:59] answer which I won't read aloud but it's here and also available on our public
[01:04] documentation. The short answer for what LQL is is that LQL transforms our
[01:14] incoming data. LQL enriches user profiles by structuring incoming data
[01:20] with unique identifiers. The result of this is the ability to build educated
[01:27] audiences in Lytx. So in general this is the high-level process of how things are
[01:37] happening. An event will come in such as page click or logs in and it will go to
[01:44] our cloud storage. It'll also go through our LQL where that data is transformed
[01:52] in meaningful ways to enrich user profiles. So here's a basic skeleton
[02:02] outline of what a LQL file looks like. At the very top we have we typically put
[02:11] in the file name and some important descriptions about the file. An important
[02:16] note is that this will appear in the Lytx UI. Next we have our select
[02:23] statement which is telling us to select incoming fields which you'll find on the
[02:28] far left side as a Lytx slug which is just the normalized version of the
[02:35] incoming field names for Lytx to process those fields. Next we have the option to
[02:45] use conditional statements and then we have short descriptions. This is the
[02:51] user-friendly name that you'll find in the Lytx UI. So instead of having first
[02:56] name as camel case, first name as snake case, we'll just have in title case first
[03:03] name. Next is the long description. This is completely optional and it's only
[03:10] found in a very specific place in the UI. At the end of the LQL files we have our
[03:17] unique identifiers, our by fields. We separate these from the other fields
[03:22] just for easy identification. Essentially all the fields above the
[03:26] by fields are able to be stored onto the user profile via the unique identifiers.
[03:32] So first names will come in with email UID or account ID and any other field
[03:39] from the above will have to come in with either email UID or account ID. At the
[03:48] very bottom of the LQL file we have the statements from, into, by, and alias. From
[03:55] denotes which stream name that the incoming data will come from. So if it's
[04:03] click stream data or data from the web layer etc that'll be denoted here. Into
[04:13] user. User is just the table that we're storing the fields on. It's the most
[04:19] popular table. We also have a content table but we won't get into that today.
[04:24] By is the by fields that we're using to store those incoming fields on. Again
[04:33] email UID, account ID. So the incoming fields will be stored onto the user
[04:39] profile again via email UID or account ID. The final statement is alias and this
[04:47] is just the unique file name. Unique is important here. Every LQL file name must
[04:53] be unique. So this is our demo account. If you go to the data tab and then the
[05:05] sub tab queries, you'll find all the LQL for the account. Starting from Linux
[05:15] content all the way user web path fora. These eight files right here come out of
[05:21] the box. Next to the LQL file names we'll see which table. User, content, etc. Those
[05:30] fields are going to be stored upon. On the far right hand side this is where we
[05:36] see the titles of the LQL files. So this top section here where I mentioned we
[05:45] typically store the file name and or some descriptions and where it appears
[05:50] in the Linux UI. That appears right here. So let's click into an LQL file. We'll
[05:59] start with user web default. This is user web default data out of the box. So
[06:07] we'll store things like the anonymous ID, first name, last name, city, state, country,
[06:16] company, city, URLs, email list, email sent, email clicks, etc. It's coming to the
[06:28] default stream into the user table via these by fields. UIDs, email, or phone
[06:37] number. And the name of the LQL file is user web default. These are the names
[06:48] you see in the audience builder and elsewhere in the UI. So to timestamp,
[06:54] sometimes stamp field, is going to be stored as time of last visit. Something I
[07:00] didn't mention earlier is that we have data types as well. We call them kinds,
[07:06] kind date, kind string, int, maps, many different data types we can use to
[07:16] transform your data from some subscription data, from some subscription
```

#### Lesson text

Developer training on basic LQL syntax and how Lytics transforms incoming data into actionable user profiles.

## Intro to LQL

### Learn LQL basics

**Note:** On January 10, 2023, we upgraded our UI with a new, refreshed interface. All of the underlying functionality is the same, but you will notice that things look a little different from this Academy guide. The most notable change is that the navigation menu has moved from the top of the app to the left side. We appreciate your patience as we work on updating our Academy.

### What will I learn?

*   What is LQL? 
*   Where can I view LQL files in the Lytics UI?
*   What is the basic syntax?
*   What are the different ways to transform incoming data fields?

Watch the "Lytics Query Language - Learn LQL Basics" training video below (15 mins) for an overview of **Lytics Query Language** (LQL). We'll cover the basics of how LQL transforms data, the difference between default and custom LQL, and how key identifiers merge user profiles.

**Keep in Mind** - The end result of LQL is the ability to build educated user profiles and audiences in Lytics.

### Knowledge Check

Before you dive into writing your own LQL files, check your understanding of the key concepts covered.

**Copies of raw events are stored prior to LQL processing.**

A. True

B. False

Answer: A

**Which name on the LQL file is displayed and searchable in the Lytics Audience Builder?**

A. SELECT Field

B. Short Description

C. BY Field

D. Long Description

Answer: B

**Each LQL file must have a unique name set as the alias.**

A. True

B. False

Answer: A

**How are data types (i.e. string, integer, map, etc.) referenced in LQL files?**

A. SORT

B. TYPE

C. KIND

Answer: C

**KINDs will impact the data visualizations in the Audience Builder.**

A. True

B. False

Answer: A

**How many out-of-the-box LQL files are there?**

A. 4

B. 3

C. 8

D. 0

Answer: C

### More Resources

### Documentation

*   [Lytics Query Language](https://learn.lytics.com/documentation/product/features/data-onboarding-and-management/lytics-query-language) - more detailed explanation and syntax examples
*   [LQL & Data Import Basics](https://learn.lytics.com/documentation/developer/academy/lql-and-data-import-basics) - introductory API documentation

#### Key takeaways

- Connect **Lytics Query Language** 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 Query Language. Developer training on basic LQL syntax and how Lytics transforms incoming data into actionable user profiles. Intro to LQL Learn LQL basics Note: On January 10, 2023, we upgraded our UI with a new, refreshed interface. All of the underlying functionality is the same, but you will notice that things look a little different from this Academy guide. The most notable change is that the navigation menu has moved from the top of the app to the left side. We appreciate your patience as we work on updating our Academy. What will I learn? What is LQL? Where can I view LQL files in the Lytics UI? What is the basic syntax? What are the different ways to transform incoming data fields? Watch the "Lytics

### Retrieval tags

- Lytics
- Query
- Language
- beyond-the-basics
- lesson 05
- Lytics Query Language
- beyond-the-basics lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "05" and topics: [Lytics, Query, Language].
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 Query Language | `https://cdn.jwplayer.com/v2/media/g3xlbE7o/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/` |
| Lytics Query Language | `https://learn.lytics.com/documentation/product/features/data-onboarding-and-management/lytics-query-language` |
| LQL & Data Import Basics | `https://learn.lytics.com/documentation/developer/academy/lql-and-data-import-basics` |
