I put all the text strings into a struct and binded it to a function at proper text boxes (main text window, button’s text)
It makes much sumplier to work with a great amount of text information in UMG
Also, you may put 2-3 (or how much you need) invisible button templates into you text window, which will become visible, usable, and showing proper text from struct at proper time.
also it would be useful to make another struct for all dialog variables (for example, booleans stating if some answer was selected).
it will make savegame scripting much easier.
warning - do not try to store such structs and variables in widgets, it will cause lots of issues.
put them all into gamestate, for example…