Easiest way to store events in a way a data table can access them?

So for my current project, I wrote up the dialog system myself. When something in-game triggers dialog, the gameplay stops and visual novel-style text boxes and characters pop up. From what I’ve seen of Visual Novel Framework, the dialog system I wrote functions basically the same, where it pulls the character name/sprite/dialog/whatever there are choices/if a cutscene should start playing/ect from a single line of a data table.

Right now, the main thing stumping me is getting an event to trigger on a certain line of dialog. For example, I have a scene that plays out like this:
-Character interacts with an object to start the scene
-A few lines of dialog play
-The cutscene from the data table plays of three items walking in
-After more dialog, you’re allowed to walk up and choose one

Next what I need to happen is for an event to trigger a couple lines of dialog later that de-spawns the other two items and sets all three item IDs to certain parts of the memory based on which was chosen. The event itself is easy to do, but I’m not sure what the most effective way would be to store something in the dialog data table that would point toward the event, so my dialog controller can trigger it. (I don’t want to store all of these small one-time events in the dialog controller itself)

I can think of a few janky ways to do it, but I get the impression there’s probably some extremely straightforward way of doing it that makes more sense that I’m either not thinking of or just don’t know about. Maybe something along the lines of a stand-alone blueprint that I can store as a object reference in the data table, then have the dialog controller call the blueprint similar to how I call level sequencers? Or storing each of these small events in a single blueprint somewhere and somehow storing the name of whatever triggers them as a data table variable?

This is the first time I’ve had to ask for help with this project.

EDIT: My first thought was to put everything I need into an individual blueprint, attach an interface to the blueprint, put a reference to said blueprint in my datatable, then simply call the interface from the referenced object if there’s one. It does TECHNICALLY work if I spawn the object then make it self-destruct after it does what it needs to, but it’s a super janky way of doing it. There’s got to be a simpler way.