Bento

Example: Weekly Event Emails, Orchestrated By AI & Automation

View on YouTube

Orchestrate weekly event emails in Bento with AI-assisted drafting and automation so each send stays on schedule without manual rebuilds every week.

Hands-on time. You'll orchestrate weekly event emails with AI and automation.

Follow along in the video. Pause when you need to catch up in Bento. By the end you'll have a reusable weekly event email system you can adapt to your own calendar.

If a step feels unfamiliar, jump back to Events & Flows Overview or Flow With Events, Tags, Fields, & Emails.

Video transcript

In this video, I'm going to walk you through how I am saving many hours a month by automating my weekly coaching call emails that I run for my group coaching program. So in this case, basically, the flow every single week [clears throat] is that I have to go create a new event on the WordPress site, and that shows up like this. And I have a Zapier automation that handles some stuff in the back end, like watching for a new post to be created, then setting up a Zoom link, and then adding that Zoom link to the Circle community. But what's missing about all that is, number one, it's a manual process to go in and make these events.

Every week, I have to duplicate the event, wait for it to do, change the date, time, click publish, wait around, see if it actually published, because a lot of the time there's a glitch with Zapier, et cetera. It was this very manual process, and I would kind of dread scheduling events. Each time I would schedule a month of events at a time, it would take an hour or two because there are two events per week, and it was a very manual process, especially because I would then go in and every week of events, create these two emails. One email is the calls start soon email, which looks like this.

So it's basically, it goes out one hour before the calls. It's like, "Hey, remember they're happening today." And then the other one that happens is the top of the week call email that goes out on the Monday. So we do calls on Thursdays, and on the Monday we say, "Hey, here are this week's calls." I try to vary the content a little bit each time because of Google, Gmail, if you just send the same email again and again, it collapses it as if it's the same conversation or whatever, like the threading view. So I change the subject line so that it actually has the date there, stuff like that to try to avoid the actual links getting collapsed.

So there are different things that I've had to do over time to get these things coming through. So that's the task. And I have ADHD, and as a result, I really, really hate manual tasks like this. I prefer to automate them, and this is where this video is relevant because AI is super useful for it.

So I'm going to walk you through a little bit of how I do this, but again, this is like a high level inspirational thing to just let you know this is a thing that's possible versus a step-by-step. So basically, I have this skill, this agent skill that I created called DYF Community Event Creation. What you're seeing here is Cursor, which is what I use instead of Codex and instead of Claude Code. It's my preferred one.

And basically each time I want to go in, I just say something like this. "I want to schedule the next set of events. I'll be out of office on these, so just through September 3rd." And it'll go through the skill file. Let me pull it up in Obsidian so you can see it more nicely.

Nope, wrong one. Hold on. All right, there we go. So this is basically the skill.

A lot of these are my own conventions for how I like to build skills. So I like to break skills into pathways if things could be followed different ways depending on how we're doing them. So in this case, the only kinds of events I make with this skill are the regular calls for my cohort-based course, which is 200K Freelancer. And so it follows the pathway document for that specific type of call when we're creating those, which as of now, we always are.

The main skill document, the way I structure them, it's just kind of an overview of how stuff works. So it gives the executing agent an overview of how advanced custom fields works on the WordPress site, which is where all of the event details get stored, and kind of just walking through how the stuff works in general, because most of what this does just give you a high level overview. The way this automation works is, step one, we create markdown documents on my computer. So these live inside of Claude Code or Codex or Cursor or whatever, and that's what I view inside of Obsidian.

This Obsidian view is like the exact same folder as this Cursor view. They're the same place. We create these files, and then there's a script that synchronizes those files up to the WordPress site to create those community events, which kicks off the Zapier automation, and then the agent basically just sits there and waits until the Zapier automation does its thing, and then once it's done, it will be able to get that Zoom link back, takes that Zoom link, writes it back to the markdown document, and then creates Bento emails via API. So if you were doing this for yourself, you would be able to chop out presumably that WordPress step, the Zoom step, whatever, for any of these emails you're wanting to automate.

I just wanted to walk you through this because this is the context where I am most commonly using Bento for creating emails. And so this skill file is basically just giving the reading agent the overview of how it works, and then the pathway for these files specifically walks through how to do the markdown document properties to set the event date and time and stuff. And this is what the agent will use for basically customizing the newly created emails. And then I walk it through the steps on how to schedule and whatnot the new due events happening.

So the first thing it does, since the events are every Thursday, we just have it calculate what the upcoming Thursdays are. It runs the calls by me, and I tell it if those look good. And then if so, it first generates the markdown files and sets all of those properties accordingly so that we basically have one markdown file per upcoming call. Check some environment variables since I sometimes post stuff on the dev site.

And then this is the script that'll actually create the post on the WordPress site, so we don't really need to cover that here since that's not the focus of this. And then polling, waiting for the Zapier thingy to run and write back to the WordPress site, the Zoom URL and stuff. We also don't need that here. But this part is what will be interesting.

And this is where things get a little bit complicated code-wise, so walking you through everything I do won't work really for the context of this video, but I'll try to give you a high level. So basically, I have this other skill called DYF Markdown to Bento Conversion, and it is a skill and script, set of scripts, that I created solely for the purpose of turning a markdown file into an actual HTML email that I can add to Bento. So if you're using the Stripo editor, you don't need to worry about this and it'll be much easier. But in my case, I have everything with these designed templates like this.

And so for me to assemble this, I need to locally mirror the Stripo concept of blocks and rows and modules and stuff like that. And so within that skill that does the markdown conversion, I essentially took the HTML from within the Stripo editor and turned it into some templates. So here's one I have as a draft. So if I go open the editor, with any email you create in Stripo, you can go to the code view and grab all the HTML.

So I basically selected all the HTML as the basis for some of these and created the outer wrapper just from what I was seeing in here, pulling things out and creating essentially the different core templates that every email is created from. So in this case, the weekly kickoff call template has all this HTML where we essentially inject some content. So that's what these little bracketed things are, is places where we will inject some variables, and what the script does in general is essentially allows us to pass in injectable content, turn the markdown to HTML, that kind of thing. Took a good amount of time and code collaboration to build.

As I say, this is a bit deep. It doesn't make sense for me to walk you through this. The main thing that I wanted to show you is that assuming you have the basis for creating an HTML email, if that's something you need to do, or just using Shoji. I meant to say Shoji earlier instead of Stripo, I think.

Basically, Shoji, plain text editor, Stripo, HTML editor. If you're doing Stripo, it's hard because you have to generate HTML. If you're doing Shoji, it's easy because you don't. So if you're doing Shoji style emails, you can have your agent just push those via the API or via the MCP like we covered in the lesson in the intermediate module.

And in my case, this stuff is kind of scary and complicated because of all the code. So all of these code things, they all just exist to basically minimize chances of the agent doing something wrong. But if you're not a developer, the simpler way is that you don't have this done with code and you just have an agent skill, and that skill, instead of saying, "Call this script," it would just say, "Call the MCP with the content from this file and pass in these general settings." And there's a chance the agent might execute it incorrectly, so you would want to double-check its work, but it would still work fine. And so that is basically what this step does, is it essentially, number one, creates the email HTML, which if you're using Shoji, you don't need to do.

And then number two, calls the Bento API to create a broadcast at the date and time that was set on the markdown document property to a predefined segment. So within Bento, I have a segment called Weekly Call Eligible or something like that. And you can actually, when creating a broadcast via MCP or via the API, you can create it just for that segment. So the end result here is that all of these emails are just pre-scheduled for me.

I don't have to do any of this manually, which is a dream come true for me, and it just freaking works. And then it makes sure all looks good, have some edge cases, et cetera. So in practice, the typical run looks like this. I say, "Hey, I'm scheduling these next events.

Please do yo thing." And I point it to that skill. So this orange thingy is the skill. And then it reads the skill, does some of the code things in it to find out when the most recent event is, stuff like that. Proposes the upcoming dates.

I say if it looks correct. If so, it creates new markdown files for every single one of these upcoming calls. And then once that's done, it one by one writes them to the WordPress site. So this takes a while.

I just Alt + Tabbed working on other stuff. Once they're all done, it tells me they look good, and then it creates the Bento broadcast once they're all made in WordPress and stuff. And then that's it. Everything from here is some little bugs and extra events and stuff.

So it's quite satisfying if you haven't used agent skills much for content creation yet. If you have any routine content you created, if you're like me, you don't like redoing manual tasks, it's very satisfying when an agent can just execute, save you a bunch of time, and everything looks good. And I think that's it. I think that's all to show you here, so hopefully you found this useful.