How to make a proper Story Segment in game

I’m a little confused on this. I’m working on a single player game and I want to make a system where I can play all the NPC+Player dialogues in a proper sequence.
Let’s say it’s one particular chapter and 6 characters are interacting at a moment, so how must I properly set the dialogues to be played by individual NPC character along with the player? All NPCs are using some form of AI Controller as well. There will be cutscenes as well.

I was initially planning on making a Struct that contains ->[Facial Animation, Body Animation, Dialogue Audio, Dialogue Text and Chapter Number] then use it in a Data Table but now I’m confused on how to retrieve it and work with it to maintain the sequence of my story. Can I either make separate DT for all characters? or can I try and make 1 DT per chapter and have every relevant character’s dialogues in it? (to load 1 DT per chapter inside GameModeBP/GameInstanceBP).
This also needs to coincide with the fact that all chapters will have tasks for Player and NPCs (shooting/defending etc)

Please help.