Project 7: Design a Marketing Automation System - Part 1
Welcome to the final project in this course. In this project we're going to build out a marketing automation system. At a high level this system is going to allow an organization to track and communicate with potential leads throughout the sales lifecycle.
Guide Tasks
  • Read Tutorial
  • Watch Guide Video
Video locked
This video is viewable to users with a Bottega Bootcamp license

A great example of this is something that we use for our Bottega code school. The user signs up and they say that they want more information about the school. That triggers what we call a "journey", where they communicate with different specialists along each stage of the cycle. This could be for more information about pricing, the curriculum, the experience, and so on. The journey ends when they sign up for the course or express that they're no longer interested.

This system will also communicate with outside services, such as Salesforce for customer management, Twilio for sending messages, or even HipChat and Slack.

As always, we're going to start off with our most high-level diagram: a Use Case diagram that outlines the entire behavior for the system.

This is slightly different and more advanced than we've done in the past. Usually, we use our Use Case diagrams to outline what roles each actor has, but in this one, I want to stretch it out build a diagram that would serve as a starting point if we wanted to get straight into the coding.

Use Case Diagram Requirements

Actors:

  • Marketing Specialist
  • Lead / Customer
  • System

Use cases:

  • Marketing Specialist
    • View Reports
    • Manage Contacts
    • Manage Forms
    • Send Communication (email, SMS, HipChat, Slack)
  • Lead/Customer
    • Submit Form
    • Notify Marketing Specialist (automatic)
  • System
    • Send Reminders
    • Send Special Offers
    • Send Communication (feeds in)

A key component of this system is that only the marketing specialist will be interacting with the system itself. The leads won't interact with the system at all, they will only receive various forms of communication.

Now, this is one of the more complex parts because we have concepts like "Send Communication", which can mean many different things. It could be an email, an SMS, or something else, so we'll define that.

Moving down the line, we're going to build another behavior diagram.

We have a few vague concepts here, so we're going to take a look at the high-level behavior and the experience we want the user to have. In this diagram, we'll model the entire journey process.

Activity Diagram Requirements

Marketing journey flow (8-12 activities)

  • Start point: User filling out a form
  • End point: User purchasing

Example activities:

  • Welcome Email
  • Delay 1 week
  • Marketer Notification

Example decisions:

  • User purchased product?
  • Was email opened?

Research:

  • Fork nodes
  • Join nodes

We're going to place decisions throughout this system because it's very dynamic. It needs to be able to change state and redirect users based on feedback. We wouldn't want to hardcode the flow.

Imagine there's a customer that signed up on day one. You don't want to send them marketing messages a week later asking them to sign up. Another example decision might be checking to see if a user purchased a product, or if an email was opened, which shows if they're interested or not.

Also, spend some time researching fork and join nodes. We haven't discussed either of them so far, so figure out how they could be incorporated into this diagram.

With our first structural diagram, we're ready to start putting the journey modules in place and organizing our dependencies.

Package Diagram Requirements

Journey system (5-6 packages)

  • Journeys
  • Insights/Reports
  • Channels and App drivers (Slack, HipChat, SMS, etc.)