How would you build an email drip campaign?

I’m using the SendGrid integration with Bubble and I’ve got that set up and working, but I’m getting a little lost in the sauce with emails and backend workflows, specifically around scheduling best practices. I know how powerful this kind of automation can be but the learning curve feels steep!

My goal is to set up a backend workflow that’s scheduled when a new user signs up. It should send a specific series of emails (one a week) for X weeks, in a specific order. I’m struggling to find a good tutorial specifically for this kind of drip campaign concept, but if it’s out there, please point me to it. Otherwise, more details below.

Some gotchas I know I need to navigate:

  1. Some of the emails will benefit from “skip” logic (i.e., this email isn’t relevant to this specific user because of something I know about them so skip to the next in the series instead)
  2. Emails should send at a reasonable cadence (once a week; not sending multiple times or too close together)
  3. Respecting suppression groups in SendGrid
  4. Stop sending altogether if a user deletes their account from my database
  5. Logging email sends as well as open rates and CTR (ideally both for individual users and for each type of email)

Things I’ve tried/considered so far:

  1. I created a datatype of “email sends” to log when an email actually sends out since SendGrid limits how long they show this info (it’s sort of the counterpart to the Bubble scheduler view). This has helped me troubleshoot workflows not working as expected, but I haven’t found a good way to turn this into more of a dashboard for the data I mentioned in #5 above.
  2. I also added a User field for 'last onboarding email send date" to try to address issue #2 above.
  3. I’m not sure when to schedule dates in a workflow associated with the signup action vs date conditionals on the backend workflow vs scheduled dates on the SendGrid send email action within that backend workflow. It just feels like there are a lot of places that scheduling could take place and I’m missing a mental model for how to decide where to place that to ensure I don’t fall into any of the gotchas I outlined.

Here’s what I’ve put together on the backend workflow side so far:

Am I on the right track? Would you approach this differently?

sounds like a series of backend workflows would best fit your use case.

each backend workflow would send an email using sendgrid (with conditionals) and then schedule another backend workflow (whenever you want in the future) Until it you finish your campaign

You can also cancel pending workflows if you want if, say, a user want to stop receiving emails, etc.

1 Like

So does that mean each email should be it’s own API workflow (rather than multiple send email actions within a single workflow) and each workflow contains:

  1. Email to send with appropriate conditionals
  2. Logging an email send
  3. Updating last send field on a User
  4. Scheduling the next appropriate workflow for the next email in the series

I can see why separating them out like this helps prevent or isolate issues, though it will make for a lot of workflows. Are there any downsides to this approach?

I suppose I should also just have a master workflow that cancels all scheduled emails for any user that deletes their account.

This topic was automatically closed after 70 days. New replies are no longer allowed.