Project Solution: Marketing System Activity Diagram
In this lesson, we're going to walk through our activity diagram solution for our marketing system.
Guide Tasks
  • Read Tutorial
  • Watch Guide Video
Video locked
This video is viewable to users with a Bottega Bootcamp license

large

Now, this is going to have a few unique components that we haven't integrated into any previous activity diagrams and they are definitely very important especially in modern development architectures. And if you remember I said that you needed to research fork nodes and join nodes and I have added notes right here to show what those represent. And we'll talk about them more in detail but these are definitely very important elements to add whenever systems start to get more complex and we'll talk about how that really plays out once we get to this point.

Let's start at the beginning. This is where a user fills out the registration form and this triggers the event of a welcome email. Now this comes to our first fork node. And so what a fork node represents is that we have one activity that actually branches out and causes two other items to happen in this case it means that we have a delay of one day and then we have a marketer notification. So this essentially means that after their welcome email it's going to go into the queue. And there's going to be a one day delay before anything happens and then the marketer is going to be notified. Now why this is important for modern types of applications is because most of the apps that you'll be building will need to have some type of background processing. So that's a development mechanism that allows for a system to perform one task and then perform other tasks in the background.

And so right here we're performing a few different kinds of tasks. We have a marketer notification. So this is an email an SMS, whatever the marketer chose to get for their notification that lets them know that a user filled out a form, then it goes and it triggers another process where we have a delay in where any of the other actions are going to occur. Then we come to a join node. So what this represents is we might have a few different activities but then they come back together. So they're happening at the same time and then they come back together in this joint node and then everything continues on just like before. So those are the two most important items I want you to understand in this type of diagram. I'll give you another good example that's outside of what we have here with our marketing automation system.

I've built out a number of machine learning algorithms and many of those can be very slow very server intensive. And so it's not possible to just run those simultaneously along with all of the other types of tasks that are running on the system so what I have to do is build out a pretty complex background jobs system where it can go and when a new record comes in it goes in the background and it performs all kinds of the machine learning tasks. Some of them take a few split seconds others take a few minutes and so it can be a pretty long and tedious process.

And the way that I always visualize how that occurs is by using these fork and join nodes so that I can show that certain tasks can and might even have to take place at the same time. So after those two activities have been joined together we are taken to this first decision point and it asks was the welcome email opened? And so that's a pretty important thing from a marking perspective because if someone signs up but never even opens up the email that you send them then that means that you might need to change the way that you're communicating with them. So if it was opened then we're going to come down and it's going to delay one week before it starts the rest of the workflow. If the email was not open then it comes to this other branch here and it might perform a few different tasks. It's going to send a special offer email but then it is also going to come down and check to see was a special offer email opened. And so that is essentially it's the same thing we did here except it's on a secondary e-mail. If yes then they get redirected to this decision point. If no then they're going to contact them a second way. So if they filled in their e-mail and their phone number then it's going to come down and it's going to send an SMS message on their phones and say we have some discounts. It's going to delay one week so both ways we are going to get this one week delay in the automation process remember the whole point of this system is it's supposed to create these kinds of marketing funnels also called marketing journey's.

It's where you can set these entire little mini sales adventures essentially where you can dictate when the delays occur how you want them to be notified what happens when certain tasks occur such as opening an email or not opening one. And then no matter what happens you are taken to this branch right here. And then we check to see after all of that after we had them interact with the system after we sent them SMS messages regular e-mails. Did they buy something? If they did then we take them to the end. We're not going to continue to send them marketing material if they have not bought something then we delay a week and we take them all the way through the entire journey again and we'll keep on sending promotional materials and those kinds of elements.

Now I did not add in a secondary endpoint which is kind of a common sense thing so that's a reason why I didn't add it in. Which is if someone unsubscribed then that stops the journey entirely. So you definitely could put another End Point Inside of say this little area here and it can say something like "Did the user unsubscribe?" If so then their journey has ended as well. But I didn't feel the need to do that because nothing actually has to happen in the system. Besides for a basic unsubscribe process the more important element is what we have here which is following them all the way from when they filled out the form all the way till they purchase. And then also building in the ability to have this looping process occur until they have made a purchase.