Magic text is not an ideal place for trigger output variables.

FrameXX

Well-known member
A lot of MacroDroid triggers like SMS Received Trigger or Notification Received Trigger rely on injecting their output variables into magic text. The functionality is simple (It isn't. I know Jamie). If a trigger exists in a macro, its output variables can be used and appear in the Magic Text selection window. As always with MacroDroid 🙃 there are a few exceptions. AFAIK the intent received trigger and all plugin triggers show an output variable setup window. In my opinion this kind of output variable configuration should be used with every trigger. Here's why:

✅ It makes newbies and beginner users more aware of the trigger output variables.
For a new user, there's not much to be gleaned from the fact that the trigger output variables are hidden in the magic text. I am not saying that magic is some kind of hidden thing, but the output variable configuration window makes it much more straightforward and apparent what output variables are available for use.

✅ It's more consistent.
It goes hand by hand with actions output variables configuration. It makes it clear that triggers are things that have only output variables (not in the MacroDroid world 🙃) and actions have both input and output variables.

✅ It doesn't mislead its availability.
One problem with injecting output variables into magic text is that it makes the magic text available to the action at any position, even within a constraint that doesn't pass when its trigger is triggered. In this case, the magic text placeholder won't be replaced by the value (except for the SMS Received trigger, which is the only one I know that has special placeholder values when testing the trigger 🙃). This could lead some newbies and beginners to think that they can use the magic text and that it is available, even though it isn't and there is no clear indication for the newbie to know, rather than knowing properly how constraints work.

❌ You need to have more variables configured when you want to save the output. 🙄
I know. This is a bummer. But AFAIK MacroDroid has the relatively new feature to create the variables at runtime or am I wrong? That could be a partial solution. I never used it though. Maybe we could keep both approaches for convenience.

❌I have to click yet another OK button to confirm a window when setting up a trigger. Are you serious? 🙄
Man. If you are playing with MacroDroid more than a week I doubt you didn't already build a muscle memory for this. If you want you can read my take on this here.

I do realize that you can't just stop injecting the output variables into magic text as this would break compatibility with older macros, but I think that the variable configuration window could be added.
 
Last edited:

FrameXX

Well-known member
This is not fully relevant, rather a thought. At one point I think MacroDroid will need to get out of the clutches of keeping full compatibility with older macros/data and make major incompatible changes to the "engine" that were much needed and let the older macros use the older "engine" as a fallback.

Keep up Jamie. Do not lose faith or will. You make life easier for a lot of people.
 
Top