There are three separate parts to your solution:
How to display text (or play sounds) on the screen
How to let the player make choices
How to react to the player choices to display new text
To solve this, you could have a Blueprint class with text fields for “text to display” and an array of “choice text, target blueprint instance” for the chocies.
You then create a UMG User Widget that knows how to take an instance of this Blueprint, and fill out its “text displayed” and “possible choices” sub-widgets.
You then make the “possible choices” sub-widgets have an action that, when clicked, follow the “target blueprint instance” part of the choice, and tells the UMG User Widget that there’s a new Blueprint instance that’s now active. The UMG widget will then update its display.
You need to bootstrap this somehow by creating the widget, and configuring it with the “root” (first) question. You can do this in your level blueprint.
To configure the flow of questions/answers, create new instances of the Question Blueprint for each question, and configure the “blueprint after answer” field of each answer to some other Blueprint instance you’ve created.
It may be best to first create all questions/answers, and then go back and “link” each of them to the proper next question.