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