Free YouTube Transcribe

Video transcript

I Built a MILLION-Dollar Data Pipeline and You Can Too

Max Mitcham · 2,123 words · 10 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

Building an automated data pipeline

0:00Okay, everyone. Have you ever wondered

0:02how could you build an entire data

0:05pipeline that connects your product

0:07through to your sales team through to

0:08your product team through to your

0:10marketing team through to every single

0:12operational team within your business

0:14and do it all seamlessly and automated?

0:17Well, I've done that and spoiler alert

0:20probably built close to 50 to 100

0:22different micro to macro automations.

0:25combination of agents, combination of

0:27using tools like triggery, clay, n10,

0:31segment, post hog, atio to name just a

0:35few. And what I'm going to do is I'm

0:37going to break this down. I'm going to

0:38start today with a very high level

High-level overview of the entire system

0:40about, you know, what am I doing here?

0:42How does this flow work? How am I

0:44monitoring clients for signals? How am I

0:46taking data from my product from

0:48Postgress, from Superbase through to my

0:51CRM? How am I doing all of this? And

0:54then over the next five to maybe 10

0:56episodes, I'm going to go deeper into

0:59every single individual part of this

1:01entire web and then break down how I'm

1:04actually using these automations, how I

1:06set them up, and how I think about it.

1:08So, if you like what you're seeing,

1:10like, subscribe, do whatever you need to

1:12do. Stick around because over the next

1:14few weeks, I'm going to be dropping

1:15these videos, and I think they will

1:17hopefully be gold dust for you. So,

1:20let's dive into this kind of um data

1:23pipeline flow that we have going on here

1:25and explain how I'm doing everything.

1:29So, this is um I will preface this is at

User sign-up flow through Clerk

1:32point of sign up. We've I've got a load

1:34of other stuff here. I've done videos on

1:36this in the past. I'm not going to go

1:37into that. So, this is at the point of

1:39where a user signs up. What we have is

1:42as they come in, they come in via Clerk.

1:45clerk is basically um syncing and

1:47speaking to two different systems

1:49essentially. One, it's speaking to this

1:52um clay table where I'm basically

1:53pulling through um trigger fire users

1:56and running a bunch of enrichment that's

1:58going to do a lot of different things

2:00and it's also speaking to Postgress

2:03which is hooked up to segment. So

2:05segment's a tool that allows you to do

2:06data pipelines. Segment is essentially

2:09syncing all of my data to Atio. any new

2:12users that come in, it syncs across to

2:15Atio, which is awesome. Um, at the same

2:18time, we're also syncing um some data

2:21from the Clay table that I have. So,

2:23this would be like, you know, who are

2:24they, the demographics, their LinkedIn

2:26URLs, like everything, right? Because

2:28they only give me the first name, last

2:29name, and email. And I take that and I

2:31go get a whole ton of information.

2:34From there, what we're doing is we're

Plan changes and lifecycle routing

2:36going to start to routt um these

2:38individuals depending on their plan. So

2:41the nice thing because we have segment

2:43hooked up to Postgress when their plans

2:45change i.e. if they go from a free trial

2:47to a paid or they go to a premium or

2:49whatever it is that's going to uh signal

2:53um to Atio to update

2:56um the life cycle and from there it's

3:00then going to update uh inside of the

3:02clay table because I'm constantly

3:04looking at the life uh cycle stage

3:06within the clay table as well. So here's

3:10what happens when they're on um a trial

3:12of some sort. They're coming through

3:14here. We've got the clay table. It's

3:16basically going to check ATIO to see

3:18what stage they're at. It's going to

3:20update Atio with any enrichment plus

3:22plan details. So this would be, you

3:24know, company size, URL, things like I

3:26just mentioned previously.

3:28Then what we have is we have an internal

Trial user automation and ICP checking

3:30automation running inside of Atio which

3:32is updating a particular field they have

3:34in there called a life cycle stage. This

3:36is like are they a trial, are they

3:38ex-trial, are they customer, are they

3:40just a lead, whatever it is. And it does

3:42the same for a company level.

3:45Then what we're doing is we've hooked up

3:47triggery into this clay table, which is

3:49then also updating our post hog to see

3:52if they have engaged with us on social

3:54media or not, which is also updating our

3:56atio. So now we have loads of

3:59information. We have who they are,

4:01whether they've engaged with us on

4:02LinkedIn or Twitter or YouTube or Reddit

4:05or whatever it is before. We know we

4:08have the correct life cycle stage of

4:10where they are. And then we are also

4:12checking to see whether they're ICP or

4:14not. If they're ICP, this um triggers an

4:17NA10 workflow that basically sends them

4:20a Gmail inviting them to an onboarding

4:21call. Uh and we also get a Slack

4:24notification saying, "Hey, a new user

4:25signed up."

4:28Um what's happening uh here is we also

Active trial table and newsletter segmentation

4:31create a secondary table within clay. So

4:34we have a master table which is called

4:37the um triggery users. Then we have the

4:40active trial table. Here in the active

4:42trial table we're getting their stripe

4:44information. We're getting their beehive

4:47information. And if they haven't signed

4:49up to our our beehive, then we're

4:50automatically adding them to our

4:52newsletter because that's one of the the

4:54tooss when you sign up with us is you

4:55get automatically added unless you don't

4:57wish to. So we add them automatically to

4:59the beehive and then what we're doing

5:02inside of this particular trial is we've

5:03created a new table as well called the

5:06beehive table inside of clay which then

5:08checks to see the life stage of the

5:11individual from Atio and updates their

5:14custom field within Beehive. So that we

5:16have four different types of newsletters

5:18within the same newsletter if that makes

5:19sense. So we have a newsletter for

5:21clients, we have a newsletter for

5:22exclients, we have a newsletter for

5:24people who are actively on trial and we

5:26can segment the type of content going

5:28forward as a result. And that's what's

5:30happening in our active trial table. So

5:33bear with me. What we've done so far is

5:35we've taken segment and we're syncing

5:37every single day the plan information to

5:39Atio. What's also happening is we have a

5:42master clay table with all of our

5:44trigger fire users where it then sprouts

5:46a new one called the active trial table

5:49and it also then sends all of this

5:50information through to the particular

5:53field that's been created from segment

5:54into all this other information around

5:57engagement um ICP all of that stuff as

Non-conversion flow and re-engagement tracking

6:00well.

6:02So what happens if they don't um convert

6:06on their 14-day trial? Well, this

6:08triggers a new NA10 automation which is

6:11going to fire a custom event into loops

6:13which is our marketing automation email

6:15system that we use. Um, it updates at

6:18from free trial. Um, it basically says

6:21the free trial field that I have is

6:23false and the life cycle goes to X trial

6:25and it updates the person and company

6:27records appropriately. It also then is

6:31on constant lookout. We have an internal

6:33Attoio automation running here that's

6:36seeing if they have attempted to log

6:38back in. How are we tracking that? Well,

6:41we have Post Hog syncing to Atio as

6:43well, which tells us anytime someone

6:45logs in. So, if a user is on a premium

6:47account and attempts to log in, we get a

6:50notification. The notification goes from

6:52Postgog to Atio to Slack. um it

6:55automatically triggers us to find the

6:57mobile number as well and adds that

7:00mobile number into the field inside of

7:01postg. So then we can just get on the

7:03phone and call them and say hey saw you

7:05tried to log in etc which is pretty

7:07cool.

7:09if uh if they converted into a client,

Client conversion and monitoring system

7:13we are going to create again a new table

7:15inside of clay. And this is the closed

7:17one, you know, active clients um table.

7:20And here we're monitoring them and we're

7:23doing a few different things. Um we're

7:25monitoring them for kind of custom

7:26signals. We're understanding if these

7:28people ever change roles. We're

7:30understanding if they have engaged with

7:32X content or X people. Um and we're

7:35doing that via trigger. So, this is

7:37like, okay, are they engaging with

7:38competitors of ours? That's a that's a

7:40potential churn signal. Are they

7:42engaging with content that would suggest

7:43that there is an upsell opportunity? Are

7:46they engaging with content that would

7:47suggest there's a cross-ell opportunity?

7:49And so on and so on. Um, and we're also

7:52monitoring to see if they're posting

7:54about anything that's, you know,

7:55topically relevant to Triggery so that

7:58we can get involved, comment, and

8:00whatnot. And it's also a potential

8:01signal for us depending on the type of

8:03post. All of these signals feed through

8:05to a notification to the sales teams and

8:07updates at appropriately.

8:11Then what we have is as you come on

8:13board it triggers this onboarding flow.

Onboarding flow and churn risk detection

8:16This onboarding flow is controlled from

8:17NA10 which triggers our loops automation

8:20that we have where it be day 1, day 3,

8:21day 6, day 10, you get an email. um as

8:24well. Not only that, we have an NA10

8:27automation flow running in the

8:28background which is querying the post

8:30hog data which is our product analytics

8:32to understand how active is someone,

8:34what features are they using and this

8:36then in turn updates at um and so on and

8:39so on and if anything enters into a

8:42threshold of redeem a churn risk the

8:44team gets instantly notified uh as well.

8:48Not only that, we then are updating the

8:51CL uh client based on month one, month

8:53two, three, 3, six, so on. Um, and we're

8:56basically sending custom content

8:58depending on the life cycle and stage

9:00that they're in.

9:02Now, if they churn and they go to closed

Churn analysis and customer success notifications

9:06uh lost, first of all, this triggers a

9:08NA10 flow monitoring cancellation which

9:10picks this up. What then happens with

9:13this uh agent is it triggers based on

9:16the stripe change. It looks up their

9:19data within postog to understand what's

9:20happened, what's happened over the last,

9:22you know, the course of their entire

9:24journey with us. We have a churn agent

9:26that's analyzing this data. This data is

9:28then sent to Slack. Um we add this to a

9:31clay table and the reason we add this to

9:34the clay table is we run some further

9:35enrichment that we deem necessary and

9:37then we update atio. A common question

9:40that I might get asked is why do you use

9:41NA10 and clay? Well, I use NA10 to do a

9:44lot of um infrastructure and

9:46organizational um flows and if the if

9:50the automation is more complex and

9:51requires better agent capabilities, I

9:54use clay primarily purely just for data

9:56enrichment um to to do things there. So

9:59that's kind of when I that's when I

10:00discern the difference between the two.

10:03After that, we then um the customer

10:06success team get notified by the agent

10:08that this person has churned along with

10:09all this information. We update the

10:11beehive field. Uh we update the custom

10:14cancellation reasons inside of Atio. And

10:16then we're doing the same thing. We're

10:17monitoring this close loss PLG signal,

10:20which is are they attempting to log in

10:21ever since they've churned? Uh if they

10:23do, we reach out off the back end uh of

10:26that. And that so far is everything that

Wrap-up and upcoming video

10:30we have. Now, I'm actually continuously

10:32adding to this. Would you believe it or

10:33not? But what I'm going to do, like I

10:34said, this is high level what's going

10:36on. I'm breaking down every single

10:39section, every single agent, every

10:41single automation that I have over the

10:42course of multiple videos coming uh over

10:45the next um month or so. So, stay tuned.

10:48This is going to get really interesting

10:50and really exciting as I show what I'm

10:52doing. I've been building it solidly for

10:53the last couple of weeks, getting this

10:55all in place. And there are so much

10:56nuances from the amount of Atto

10:58workflows that we have, from the amount

11:00of NA10 workflows, from the amount of

11:02clay tables that we have, how we've

11:04created this data orchestration with the

11:05data pipeline. It's going to get

11:07technical. It's going to get good. It's

11:08going to get really interesting. So, if

11:10you're a founder, if you're revops, if

11:12you're ops, uh if you're marketing, if

11:14whatever you are, um GTM focused, this

11:18one is for

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.