# Example: End-to-end w/ Flows

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/data-insights-automating-journeys-with-flows/data-insights-course-5--example-end-to-end-with-flows |
| **course_slug** | data-insights-automating-journeys-with-flows |
| **lesson_slug** | data-insights-course-5--example-end-to-end-with-flows |
| **markdown_file_url** | /academy/md/courses/data-insights-automating-journeys-with-flows/data-insights-course-5--example-end-to-end-with-flows.md |
| **generated_at** | 2026-06-08T14:32:02.451Z |

> Part of **[Automating Journeys with Flows](https://www.contentstack.com/academy/courses/data-insights-automating-journeys-with-flows)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- ai_metadata: {"lesson_id":"03","type":"video","duration_seconds":522,"video_url":"https://cdn.jwplayer.com/previews/adRsOgB6","thumbnail_url":"https://cdn.jwplayer.com/v2/media/adRsOgB6/poster.jpg?width=720","topics":["Example","End","end","Flows"]} -->

#### Video details

#### At a glance

- **Title:** 36-data-insights-flows-end-to-end
- **Duration:** 8m 42s
- **Media link:** https://cdn.jwplayer.com/previews/adRsOgB6
- **Publish date (unix):** 1752897067

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113579 kbps
- video/mp4 · 180p · 180p · 134956 kbps
- video/mp4 · 270p · 270p · 148015 kbps
- video/mp4 · 360p · 360p · 158901 kbps
- video/mp4 · 406p · 406p · 166770 kbps
- video/mp4 · 540p · 540p · 190494 kbps
- video/mp4 · 720p · 720p · 229306 kbps
- video/mp4 · 1080p · 1080p · 328591 kbps

#### Timed text tracks (delivery)

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

#### Video transcript

For our initial demonstration, we've already set up a welcome series. Probably worth noting that this is a use case, but likely not the primary use case for a couple of reasons. One being basically every customer's already going to have their own kind of welcome series set up. We don't want to create confusion on what flows can and can't do. That said, a welcome series is a really good way to demonstrate the capabilities from a sort of like enter into the audience or enter into the flow, set up some weights, set up some exports and be able to see things happening in real time. Lots of different use cases that we can go over. So if I go into this existing flow, just to sort of walk through the mechanics of how it works, it's currently in a running state. So for flows that have been published and are running, which is represented by the green bar at the top, you'll first and foremost see all of the different steps that have been configured. Again, we'll walk through exactly how to configure those and the different options. In this case, though, there's what we call the trigger step. It's always at the top. You can't delete the trigger step. This is the entry point into the flow. In this case, anytime that the user transitions from an unknown status to a known status, meaning they have an email address, they're going to get automatically entered into this flow. And then the first thing that will happen as soon as that trigger occurs is they're going to hit this export step. Our export steps have been set up in this case to leverage SendGrid. So it's going to actually deploy in this welcome series example, basically, I fill out a form on the site. As soon as that gets processed, I'm going to get a welcome email and say, welcome to Petsy. And then it's going to go into this state of wait for our demo. It's a five minute wait. Obviously, in real cases, it would be like a one day or a seven day wait or something like that in kind of a traditional drip campaign. From there, you'll get another follow up email, which I believe is like a 20 percent off. It's going to wait five minutes and it'll send you one more follow up to donate. And then it's going to go into a final wait state and then exit the canvas. So lots of different ways you can configure this. But at the end of the day, it's organizing the different steps and interactions to take somebody through a full end to end use case. For running flows while we're in here, there's a variety of metrics that we provide. First at the canvas level, you can extend down and see how many users, how many end users or visitors have actually entered into this flow ever. How many have completed the flow? So we've gone all the way through it. And then ultimately, how many are currently in the flow. So as you can see in this one, there's been 15 people to go through it. 14 have gone all the way through it. There's still one somewhere in here on a wait state. And then to understand kind of where they are, you can expand the metrics here at the top, and it'll break down each individual steps metric. So the trigger is obviously the entries. It's going to mimic kind of what's on the canvas. And then if there were somebody waiting or processed along this way, you'd be able to see that. Ultimately, in this example, there is somebody already waiting on that last step. So you can see there's one kind of waiting and pending for that one day wait just to sort of visualize what can happen, they'll exit, then they'll leave the flow. In addition to the step level metrics, you can access by clicking one of the different steps. And then there's a metrics tab for each of these steps, which will give you an additional breakdown more granular of the way people have entered and exited this particular flow. So for the trigger step, it'll show on the 8th of April, we started testing this flow. Obviously, there's lots of people to enter and then kind of as a demo, there's been additional people to trickle in. You can change the cadence to a month to break it down and change it and show it differently. Similarly, if you go into one of the wait nodes, you'll see a breakdown over time for that particular wait state, how many users have been paused. One thing to note about all of the metrics is as of right now, they're calculated once every 24 hours. So you're not going to see real time counts on the flow canvas, you will see them sort of update on the daily basis. Just one thing to note as you're kind of like playing and testing on things. The only other things to note kind of at a high level on the canvas is at the top and we'll walk through this in more detail. You'll see where you can manage the different versions. We'll talk about versions and states here shortly. There's a toggle to sort of minify the view, which just gives you a little bit more area, especially if you compress the metrics as well as the details. Clicking again just expands it and then up in the right hand side is what we call the action menu. So this is where you're going to create new versions, it's where you're going to save and publish and all that stuff, which we'll again walk through in details. And the final thing to kind of mention about the canvas is there is a more details panel, which is just going to bring up things like the status, the ID of your flow, if you ever need that, the version that you're currently on, and so on and so forth. And then finally, there is a little action menu in the name or the label bar. This is where you can delete a version or delete the entire flow, which again, we'll demonstrate here momentarily. So in this flow, it's already running. Basically it's set up against our petsy.lytics.com sandbox site. So over on the right hand side, I have an incognito window set up and I'll just go to petsy.lytics.com. And we use our path for a personalization to surface a modal that comes up if you are an unknown user, unrelated to the flow. This is before they've actually entered in, but in this case, I'm going to just say mark.hayden plus demo live 123 content stack.com. So I'm going to submit this data to Lytics. We're going to collect it with our JavaScript tag with path for our personalization library. And that's going to ultimately make it into my CDP Lytics account. And then so what that means, I'm going to enter this flow and then as soon as it processes, it's going to hit this export node. That export node is configured to actually send a signal to SendGrid. We can walk through some of the details on exactly how that works here in a moment. But as a result, what you'll see is I get the first step of the welcome series here in my email, which is just a simple mock up of, hey, thanks for signing up. Start shopping. I'll leave this window open. So every five minutes or so, you'll get another kind of follow up to just demonstrate the drip. Definitely will not sit here for five minutes and wait, but just as they pop up, I'll kind of call them out. And then the other thing to know about a live running flow is that now if I refresh with this user so that they would come back to the site, if I access the profile, which there are a number of ways to do this. Oops, typo, of course. So this is just the profile that's coming back from our JavaScript tag into the console. Same thing as the Chrome extension, same thing as you'll see in the Red Panda demo for ContentCon. But it's going to return a few different things that show the flow state on that profile. So you'll get all the things like audience membership and the stuff that you probably see in previous demos. But specifically, it's going to come back with this flow steps slug array. So it shows you where you are across all of the different flows in this case. So there's this weight and personalized step. We've configured the key, which will double back to show you how to configure the key and kind of the importance in there. But we've named it drip weight one. You can see for this particular user, we're saying that they're actually in this flow as well as another flow in a different test. But they're currently on this weight state. Likewise, real quick while we're in the browser, if I go into this step, and we'll cover this again, and I copy just an example of how to use it, I can just paste this in. And it's going to come back and just say user as a candidate. Ultimately, this is where you could do whatever you want to do with JavaScript. You can customize things, you can set variables, you can redirect sort of the world is your oyster on that front. But all of that to say that you're getting a real time update as to where they are in that flow as they progress through if I would or progress through, if I would come back and refresh, you'll see that state reflected. So lots of stuff that you can cover and do with flows from a use case standpoint. Just wanted to show one kind of working version end to end so you can understand.

#### Key takeaways

- Connect **Example: End-to-end w/ Flows** 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

Example: End-to-end w/ Flows. Example: End-to-end w/ Flows in Automating Journeys with Flows (data-insights-automating-journeys-with-flows).

### Retrieval tags

- Example
- End
- Flows
- data-insights-automating-journeys-with-flows
- lesson 03
- Example: End-to-end w/ Flows
- data-insights-automating-journeys-with-flows lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "03" and topics: [Example, End, end, Flows].
Parent course slug: data-insights-automating-journeys-with-flows. 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: Example: End-to-end w/ Flows | `https://cdn.jwplayer.com/v2/media/adRsOgB6/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/` |
