# Working with Integrations

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/data-insights-data-ingestion-profile-construction/data-insights-course-3--working-with-integrations |
| **course_slug** | data-insights-data-ingestion-profile-construction |
| **lesson_slug** | data-insights-course-3--working-with-integrations |
| **markdown_file_url** | /academy/md/courses/data-insights-data-ingestion-profile-construction/data-insights-course-3--working-with-integrations.md |
| **generated_at** | 2026-04-28T06:55:44.151Z |

> Part of **[Data Ingestion & Profile Construction](https://www.contentstack.com/academy/courses/data-insights-data-ingestion-profile-construction)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- ai_metadata: {"lesson_id":"08","type":"video","duration_seconds":450,"video_url":"https://cdn.jwplayer.com/previews/gzn6uDlP","thumbnail_url":"https://cdn.jwplayer.com/v2/media/gzn6uDlP/poster.jpg?width=720","topics":["Working","with","Integrations"]} -->

#### Video details

#### At a glance

- **Title:** 16-data-insights-working-with-integrationsed
- **Duration:** 7m 30s
- **Media link:** https://cdn.jwplayer.com/previews/gzn6uDlP
- **Publish date (unix):** 1752876102

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113470 kbps
- video/mp4 · 180p · 180p · 143275 kbps
- video/mp4 · 270p · 270p · 163596 kbps
- video/mp4 · 360p · 360p · 184251 kbps
- video/mp4 · 406p · 406p · 198040 kbps
- video/mp4 · 540p · 540p · 243738 kbps
- video/mp4 · 720p · 720p · 316433 kbps
- video/mp4 · 1080p · 1080p · 530638 kbps

#### Timed text tracks (delivery)

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

#### Transcript

The other popular way to get data into Lytics, which is super nice and magical because all of the fields and mappings have already been handled by our data team, is using one of our pre-built integrations. So out of the box, there are hundreds of different ways to connect with different tools. And under most of these tools, there's several different jobs. So for instance, if I search for Google Cloud, as an example, and I go under here, not only can we integrate with Google Cloud, you can integrate with BigQuery and Cloud Storage and PubSub and Event Stream, essentially any way that you'd ever dream of pulling data in or pushing data out. There is probably already a connector for it. If there's not a connector for it, there's some really cool capabilities that we'll probably cover in tomorrow's session around webhooks and webhook templates that allow you to essentially build your own integration. But for our example, real quick, just to kind of walk through what it looks like to connect data from a typical marketing tool, we will go here, Create New. Before this meeting, I created a free MailChimp account. So hopefully I remember all of my passwords and stuff, but we'll just do MailChimp. We'll import audiences and activity data. You can also export your audience and do some webhook stuff within MailChimp. First thing that's going to ask you to do is create an authorization. Authorizations are going to be dependent on the particular downstream tool. Sometimes it's OAuth, sometimes it's a JWT, sometimes it's just an access token, just depends on what that sort of downstream tool needs. I'll hit Create New. MailChimp, I believe, just uses OAuth. So I will sign in. Hopefully this pre-fills and it locks me in. I will allow it. Perfect. I'll just name it so that it's in the account. I'll continue. And then so now once I have an authorization over here in MailChimp, I don't know how many folks have seen MailChimp or any ESP sort of system. They all fundamentally work the same in that they have some sort of list mechanism. I just ingested sort of like 50 records, 20 records, whatever it is of sample email addresses with first name, last name, just to kind of show what it looks like to connect that information. So this is the account that we actually connected to. If I go back over here to the right screen. So all of our pre-built integrations have a set of configuration options. It's obviously going to be custom for the particular channel. Some are super simple. Some have a lot of different options. In the case of, say, like Salesforce Marketing Cloud, you can choose specifically which fields to pull in and how those fields map to the profile fields. And there's lots of different configuration options. MailChimp is pretty simple in that you just say this is kind of like demo MailChimp import. We don't need a description. You'll choose the list to import. My list was just named Lytx because it's in the lytx.com account. You'll have some options on, do you want to sync subscribes and unsubscribes? Do you want to import just a portion of the data? Maybe you have 100 million records and some of them are old, so you only want to do the last year, whatever, controls like that. You can import activity data as well. This account's not going to have any activity data, but in most ESPs, traditionally, you would have opens and clicks and bounces and that kind of information that you also want to pull in. And then you can have the same sort of mechanism to control how far back you go. This account is brand new as of like 45 minutes ago, so there's not a whole lot of history there. So I'm not going to do any of those toggles. And then when I hit complete, two things are going to happen. So one very important thing is that the job will automatically kick off in the background. All of our integrations are built to be real time if they can be. So that means that as a user enters the audience, we have that trigger capability. We're going to sync individual profiles as fast as we possibly can. Many of our integrations don't support real time syncs, so they'll do some sort of batch cadence on every hour, every day, whatever it may be. There's a whole bunch of functionality at the end of the day that we can support in real time and throttling and controls, which I know have come up a lot in kind of the Linux to content stack integration. MailChimp, I believe, is real time. So as users enter that audiences that we ultimately push out, they're going to be pushed to those lists in real time. So the job on the back end is sort of thing one that happens. Thing two that is really important that our customers love is it's also going to automatically update your schema based on what we know about MailChimp. So over here, just as a example, so all of our prebuilt integrations outside of webhooks and like CSV and like custom data type integrations come with a predefined set of fields and mappings. What you see on the screen is our older logic, still very useful. We call it LQL. So it's kind of more of a raw view of how those mappings happen. But you can see. So in the case of MailChimp, these are all the fields and mappings that come out of the box. So we map email to the email field. We pull off the domain with the email domain function. We hash it. We pull in the list IDs. Some of the consent stuff that comes from MailChimp, first name, last name. So all of our integrations come pre-mapped, which makes it really, really simple to get data in. In the case that you're, you inevitably have some custom mechanism in these tools. You can update the schema to kind of match accordingly. But for most of our customers, the out of the box sort of integrations do the heavy lifting and that you don't have to think about identity or how the things merge together or which ID to use. We've already done all of that work for every single one of our integrations, which makes connecting things super easy. You'll also see in this case. So now that I've connected MailChimp, there's actually 54 unpublished changes. This is one of the things that we're working on in our UI to make a little bit more seamless and easy. But it'll actually ask me to go through and publish the MailChimp fields. Oops. I think I need to refresh. So you could see all of the fields and mappings and stuff that come from MailChimp that ultimately get added all of the different mappings. All of this stuff gets added out of the box. Soon we'll bypass the having to actually approve the schema changes that will just apply what we call a patch. So this is sort of a temporary thing that we're working through that's a little bit clunky, but it allows you to sort of see all the things that are happening out of the box. I'll just say MailChimp connect and publish. So now all of those fields are also in my account. As the MailChimp data comes in, you'll see those users and profiles. So lots of different mechanisms to kind of pull data in automatically. But most of our pre-built integrations are that easy. It's just clicking through, doing an auth, filling in some questions, and then we do all the heavy lifting on the back end.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:22.240
The other popular way to get data into Lytics, which is super nice and magical because all

2
00:00:22.240 --> 00:00:27.120
of the fields and mappings have already been handled by our data team, is using one of

3
00:00:27.120 --> 00:00:28.560
our pre-built integrations.

4
00:00:28.560 --> 00:00:34.680
So out of the box, there are hundreds of different ways to connect with different tools.

5
00:00:34.680 --> 00:00:38.120
And under most of these tools, there's several different jobs.

6
00:00:38.120 --> 00:00:43.680
So for instance, if I search for Google Cloud, as an example, and I go under here, not only

7
00:00:43.680 --> 00:00:46.960
can we integrate with Google Cloud, you can integrate with BigQuery and Cloud Storage

8
00:00:46.960 --> 00:00:52.360
and PubSub and Event Stream, essentially any way that you'd ever dream of pulling data

9
00:00:52.360 --> 00:00:54.440
in or pushing data out.

10
00:00:54.440 --> 00:00:57.780
There is probably already a connector for it.

11
00:00:57.780 --> 00:01:01.380
If there's not a connector for it, there's some really cool capabilities that we'll probably

12
00:01:01.380 --> 00:01:06.040
cover in tomorrow's session around webhooks and webhook templates that allow you to essentially

13
00:01:06.040 --> 00:01:08.480
build your own integration.

14
00:01:08.480 --> 00:01:11.660
But for our example, real quick, just to kind of walk through what it looks like to connect

15
00:01:11.660 --> 00:01:17.220
data from a typical marketing tool, we will go here, Create New.

16
00:01:17.220 --> 00:01:20.940
Before this meeting, I created a free MailChimp account.

17
00:01:20.940 --> 00:01:26.020
So hopefully I remember all of my passwords and stuff, but we'll just do MailChimp.

18
00:01:26.020 --> 00:01:28.300
We'll import audiences and activity data.

19
00:01:28.300 --> 00:01:33.300
You can also export your audience and do some webhook stuff within MailChimp.

20
00:01:33.300 --> 00:01:36.460
First thing that's going to ask you to do is create an authorization.

21
00:01:36.460 --> 00:01:39.940
Authorizations are going to be dependent on the particular downstream tool.

22
00:01:39.940 --> 00:01:43.740
Sometimes it's OAuth, sometimes it's a JWT, sometimes it's just an access token, just

23
00:01:43.740 --> 00:01:47.220
depends on what that sort of downstream tool needs.

24
00:01:47.220 --> 00:01:48.940
I'll hit Create New.

25
00:01:48.940 --> 00:01:51.660
MailChimp, I believe, just uses OAuth.

26
00:01:51.660 --> 00:01:53.300
So I will sign in.

27
00:01:53.620 --> 00:01:55.620
Hopefully this pre-fills and it locks me in.

28
00:02:00.460 --> 00:02:02.660
I will allow it.

29
00:02:02.660 --> 00:02:03.660
Perfect.

30
00:02:07.300 --> 00:02:09.460
I'll just name it so that it's in the account.

31
00:02:09.460 --> 00:02:12.140
I'll continue.

32
00:02:12.140 --> 00:02:17.540
And then so now once I have an authorization over here in MailChimp, I don't know how many

33
00:02:17.540 --> 00:02:20.920
folks have seen MailChimp or any ESP sort of system.

34
00:02:20.920 --> 00:02:24.880
They all fundamentally work the same in that they have some sort of list mechanism.

35
00:02:24.880 --> 00:02:30.720
I just ingested sort of like 50 records, 20 records, whatever it is of sample email addresses

36
00:02:30.720 --> 00:02:35.600
with first name, last name, just to kind of show what it looks like to connect that information.

37
00:02:35.600 --> 00:02:38.120
So this is the account that we actually connected to.

38
00:02:38.120 --> 00:02:44.800
If I go back over here to the right screen.

39
00:02:44.800 --> 00:02:49.240
So all of our pre-built integrations have a set of configuration options.

40
00:02:49.240 --> 00:02:52.120
It's obviously going to be custom for the particular channel.

41
00:02:52.120 --> 00:02:53.120
Some are super simple.

42
00:02:53.120 --> 00:02:54.120
Some have a lot of different options.

43
00:02:54.120 --> 00:02:58.520
In the case of, say, like Salesforce Marketing Cloud, you can choose specifically which fields

44
00:02:58.520 --> 00:03:02.000
to pull in and how those fields map to the profile fields.

45
00:03:02.000 --> 00:03:04.920
And there's lots of different configuration options.

46
00:03:04.920 --> 00:03:11.800
MailChimp is pretty simple in that you just say this is kind of like demo MailChimp import.

47
00:03:11.800 --> 00:03:13.400
We don't need a description.

48
00:03:13.400 --> 00:03:14.980
You'll choose the list to import.

49
00:03:14.980 --> 00:03:19.780
My list was just named Lytx because it's in the lytx.com account.

50
00:03:19.780 --> 00:03:25.440
You'll have some options on, do you want to sync subscribes and unsubscribes?

51
00:03:25.440 --> 00:03:27.900
Do you want to import just a portion of the data?

52
00:03:27.900 --> 00:03:30.540
Maybe you have 100 million records and some of them are old, so you only want to do the

53
00:03:30.540 --> 00:03:34.320
last year, whatever, controls like that.

54
00:03:34.320 --> 00:03:36.260
You can import activity data as well.

55
00:03:36.260 --> 00:03:39.940
This account's not going to have any activity data, but in most ESPs, traditionally, you

56
00:03:39.940 --> 00:03:43.060
would have opens and clicks and bounces and that kind of information that you also want

57
00:03:43.060 --> 00:03:44.900
to pull in.

58
00:03:44.900 --> 00:03:49.420
And then you can have the same sort of mechanism to control how far back you go.

59
00:03:49.420 --> 00:03:53.460
This account is brand new as of like 45 minutes ago, so there's not a whole lot of history

60
00:03:53.460 --> 00:03:54.460
there.

61
00:03:54.460 --> 00:03:55.460
So I'm not going to do any of those toggles.

62
00:03:55.460 --> 00:03:59.360
And then when I hit complete, two things are going to happen.

63
00:03:59.360 --> 00:04:05.900
So one very important thing is that the job will automatically kick off in the background.

64
00:04:05.900 --> 00:04:09.140
All of our integrations are built to be real time if they can be.

65
00:04:09.140 --> 00:04:14.000
So that means that as a user enters the audience, we have that trigger capability.

66
00:04:14.000 --> 00:04:18.380
We're going to sync individual profiles as fast as we possibly can.

67
00:04:18.380 --> 00:04:22.700
Many of our integrations don't support real time syncs, so they'll do some sort of batch

68
00:04:22.700 --> 00:04:26.440
cadence on every hour, every day, whatever it may be.

69
00:04:26.440 --> 00:04:29.740
There's a whole bunch of functionality at the end of the day that we can support in

70
00:04:29.740 --> 00:04:34.420
real time and throttling and controls, which I know have come up a lot in kind of the Linux

71
00:04:34.420 --> 00:04:37.060
to content stack integration.

72
00:04:37.060 --> 00:04:39.220
MailChimp, I believe, is real time.

73
00:04:39.220 --> 00:04:43.620
So as users enter that audiences that we ultimately push out, they're going to be pushed to those

74
00:04:43.640 --> 00:04:45.640
lists in real time.

75
00:04:45.640 --> 00:04:49.400
So the job on the back end is sort of thing one that happens.

76
00:04:49.400 --> 00:04:54.360
Thing two that is really important that our customers love is it's also going to automatically

77
00:04:54.360 --> 00:04:59.240
update your schema based on what we know about MailChimp.

78
00:04:59.240 --> 00:05:08.480
So over here, just as a example, so all of our prebuilt integrations outside of webhooks

79
00:05:08.540 --> 00:05:15.820
and like CSV and like custom data type integrations come with a predefined set of fields and mappings.

80
00:05:15.820 --> 00:05:19.320
What you see on the screen is our older logic, still very useful.

81
00:05:19.320 --> 00:05:20.320
We call it LQL.

82
00:05:20.320 --> 00:05:23.000
So it's kind of more of a raw view of how those mappings happen.

83
00:05:23.000 --> 00:05:24.000
But you can see.

84
00:05:24.000 --> 00:05:27.920
So in the case of MailChimp, these are all the fields and mappings that come out of the

85
00:05:27.920 --> 00:05:28.920
box.

86
00:05:28.920 --> 00:05:31.160
So we map email to the email field.

87
00:05:31.160 --> 00:05:35.160
We pull off the domain with the email domain function.

88
00:05:35.160 --> 00:05:36.160
We hash it.

89
00:05:36.160 --> 00:05:38.200
We pull in the list IDs.

90
00:05:38.200 --> 00:05:40.760
Some of the consent stuff that comes from MailChimp, first name, last name.

91
00:05:40.760 --> 00:05:45.680
So all of our integrations come pre-mapped, which makes it really, really simple to get

92
00:05:45.680 --> 00:05:46.680
data in.

93
00:05:46.680 --> 00:05:52.560
In the case that you're, you inevitably have some custom mechanism in these tools.

94
00:05:52.560 --> 00:05:55.600
You can update the schema to kind of match accordingly.

95
00:05:55.600 --> 00:06:00.360
But for most of our customers, the out of the box sort of integrations do the heavy

96
00:06:00.360 --> 00:06:04.560
lifting and that you don't have to think about identity or how the things merge together

97
00:06:04.560 --> 00:06:05.800
or which ID to use.

98
00:06:05.800 --> 00:06:11.160
We've already done all of that work for every single one of our integrations, which makes

99
00:06:11.160 --> 00:06:14.240
connecting things super easy.

100
00:06:14.240 --> 00:06:16.600
You'll also see in this case.

101
00:06:16.600 --> 00:06:21.160
So now that I've connected MailChimp, there's actually 54 unpublished changes.

102
00:06:21.160 --> 00:06:24.680
This is one of the things that we're working on in our UI to make a little bit more seamless

103
00:06:24.680 --> 00:06:25.680
and easy.

104
00:06:25.680 --> 00:06:29.040
But it'll actually ask me to go through and publish the MailChimp fields.

105
00:06:29.040 --> 00:06:30.040
Oops.

106
00:06:30.040 --> 00:06:35.240
I think I need to refresh.

107
00:06:35.240 --> 00:06:38.960
So you could see all of the fields and mappings and stuff that come from MailChimp that ultimately

108
00:06:38.960 --> 00:06:41.360
get added all of the different mappings.

109
00:06:41.360 --> 00:06:44.320
All of this stuff gets added out of the box.

110
00:06:44.320 --> 00:06:48.840
Soon we'll bypass the having to actually approve the schema changes that will just apply what

111
00:06:48.840 --> 00:06:50.680
we call a patch.

112
00:06:50.680 --> 00:06:53.240
So this is sort of a temporary thing that we're working through that's a little bit

113
00:06:53.240 --> 00:06:56.840
clunky, but it allows you to sort of see all the things that are happening out of the box.

114
00:06:56.840 --> 00:07:03.280
I'll just say MailChimp connect and publish.

115
00:07:03.320 --> 00:07:06.840
So now all of those fields are also in my account.

116
00:07:06.840 --> 00:07:09.600
As the MailChimp data comes in, you'll see those users and profiles.

117
00:07:09.600 --> 00:07:13.680
So lots of different mechanisms to kind of pull data in automatically.

118
00:07:13.680 --> 00:07:15.720
But most of our pre-built integrations are that easy.

119
00:07:15.720 --> 00:07:19.240
It's just clicking through, doing an auth, filling in some questions, and then we do

120
00:07:19.240 --> 00:07:20.600
all the heavy lifting on the back end.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] The other popular way to get data into Lytics, which is super nice and magical because all
[00:22] of the fields and mappings have already been handled by our data team, is using one of
[00:27] our pre-built integrations.
[00:28] So out of the box, there are hundreds of different ways to connect with different tools.
[00:34] And under most of these tools, there's several different jobs.
[00:38] So for instance, if I search for Google Cloud, as an example, and I go under here, not only
[00:43] can we integrate with Google Cloud, you can integrate with BigQuery and Cloud Storage
[00:46] and PubSub and Event Stream, essentially any way that you'd ever dream of pulling data
[00:52] in or pushing data out.
[00:54] There is probably already a connector for it.
[00:57] If there's not a connector for it, there's some really cool capabilities that we'll probably
[01:01] cover in tomorrow's session around webhooks and webhook templates that allow you to essentially
[01:06] build your own integration.
[01:08] But for our example, real quick, just to kind of walk through what it looks like to connect
[01:11] data from a typical marketing tool, we will go here, Create New.
[01:17] Before this meeting, I created a free MailChimp account.
[01:20] So hopefully I remember all of my passwords and stuff, but we'll just do MailChimp.
[01:26] We'll import audiences and activity data.
[01:28] You can also export your audience and do some webhook stuff within MailChimp.
[01:33] First thing that's going to ask you to do is create an authorization.
[01:36] Authorizations are going to be dependent on the particular downstream tool.
[01:39] Sometimes it's OAuth, sometimes it's a JWT, sometimes it's just an access token, just
[01:43] depends on what that sort of downstream tool needs.
[01:47] I'll hit Create New.
[01:48] MailChimp, I believe, just uses OAuth.
[01:51] So I will sign in.
[01:53] Hopefully this pre-fills and it locks me in.
[02:00] I will allow it.
[02:02] Perfect.
[02:07] I'll just name it so that it's in the account.
[02:09] I'll continue.
[02:12] And then so now once I have an authorization over here in MailChimp, I don't know how many
[02:17] folks have seen MailChimp or any ESP sort of system.
[02:20] They all fundamentally work the same in that they have some sort of list mechanism.
[02:24] I just ingested sort of like 50 records, 20 records, whatever it is of sample email addresses
[02:30] with first name, last name, just to kind of show what it looks like to connect that information.
[02:35] So this is the account that we actually connected to.
[02:38] If I go back over here to the right screen.
[02:44] So all of our pre-built integrations have a set of configuration options.
[02:49] It's obviously going to be custom for the particular channel.
[02:52] Some are super simple.
[02:53] Some have a lot of different options.
[02:54] In the case of, say, like Salesforce Marketing Cloud, you can choose specifically which fields
[02:58] to pull in and how those fields map to the profile fields.
[03:02] And there's lots of different configuration options.
[03:04] MailChimp is pretty simple in that you just say this is kind of like demo MailChimp import.
[03:11] We don't need a description.
[03:13] You'll choose the list to import.
[03:14] My list was just named Lytx because it's in the lytx.com account.
[03:19] You'll have some options on, do you want to sync subscribes and unsubscribes?
[03:25] Do you want to import just a portion of the data?
[03:27] Maybe you have 100 million records and some of them are old, so you only want to do the
[03:30] last year, whatever, controls like that.
[03:34] You can import activity data as well.
[03:36] This account's not going to have any activity data, but in most ESPs, traditionally, you
[03:39] would have opens and clicks and bounces and that kind of information that you also want
[03:43] to pull in.
[03:44] And then you can have the same sort of mechanism to control how far back you go.
[03:49] This account is brand new as of like 45 minutes ago, so there's not a whole lot of history
[03:53] there.
```

#### Key takeaways

- Connect **Working with Integrations** 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

Working with Integrations. Working with Integrations in Data Ingestion & Profile Construction (data-insights-data-ingestion-profile-construction).

### Retrieval tags

- Working
- with
- Integrations
- data-insights-data-ingestion-profile-construction
- lesson 08
- Working with Integrations
- data-insights-data-ingestion-profile-construction lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "08" and topics: [Working, with, Integrations].
Parent course slug: data-insights-data-ingestion-profile-construction. 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: Working with Integrations | `https://cdn.jwplayer.com/v2/media/gzn6uDlP/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/` |
