There are a variety of ways you might link your interact action (e key) to the trigger box, the simplest is probably to defer to the character. Which would involve putting a boolean on the character that controls whether the action does anything, and toggle that from the trigger box on overlap start/end.
Then in the character check if that flag is set before proceeding with the morph.
I see a need for local variables so I would have the event graph simply call a function:
Which in turn does all the work:
Collects and saves controller and transform before destroying itself, to avoid problems accessing things in a destroyed actor (which may actually not be a problem, it certainly won’t be nulled for a while after you destroy it, some values may get defaulted though, or other things go awry, so a good idea to grab what you need from it before destroying).
NB: Above code not tested, maybe incomplete / non-functional, but I think it looks right.