Need Macro Help - occasionally cast on self

I am trying to make a macro that when holding shift, it casts a spell (in this case Concentrated Flame from the Heart of Azeroth) on myself, but when I press it without shift (alt, ctrl, nothing) it casts on my current target. Problem is, I can either get it to only self cast or only cast on target. Since I am here, I am curious if there is a way to specify the current Heart ability instead of how I currently have it for when I get more essences (not relevant for this macro exactly but…). Here’s the macro as I currently have it, and it currently only casts on target regardless of modifier:

#showtooltip
/use [mod:shift,@player] Concentrated Flame;Concentrated Flame

Edit: While I can turn on auto-self cast in the options somewhere, I can use a lot of modifiers on some characters and want to idiot-proof myself against breaking something else by doing so.

I don’t see anything wrong with the macro itself, so the most likely problem is a keybinding conflict. The easiest way to fix it would be to go into keybindings and bind something that doesn’t have a bind to shift + your keybind. Then unbind that. (That will override anything else it’s bound to, so you don’t have to go hunting for it to unbind it.)

Of course, make sure you’ve pulled the right macro to your action bar. (I once spent an unfortunate amount of time troubleshooting a macro only to discover I still just had the default spell from the spellbook on the action bar.)

Figured out part of my issue, and have a workaround; I’m using a Razor Basilisk and decided to use the clutch level as a button (WoW recognizes it on my laptop as the “num pad -” button) as I had fiddled with the mouse’s settings on my desktop since I don’t need it for it’s initial use. I don’t know why, but it conditionally functions as a modifier button, causing it to not behave correctly. I tried moving the macro to my 1 key, and seeing how the macro I had there worked. The older stopped working as intended while the new works as intended. I got another custom bind option that should work.

I’ll tinker with the mouse more later, see if I can’t eliminate the conditional part. Thanks for confirming the macro does in fact work as I thought it should; I should be able to prune it a little more now that I know what the issue really is.

Edit: Spelling and notation. Also sharing the pruned macro:

#showtooltip
/use [mod:shift,@player][]Concentrated Flame

Trimmed and adjusted.

#showtooltip
/cast [mod:shift,@player] [] Heart Essence

I don’t have a Razer basilisk but I’ve used several other Razer gaming mice and it’s Synapse software has a macro module you can chose to install and use and its always possible you have some kind of mouse-macro firing without your knowledge. If you don’t use the macro’s through the Razer Synapse Mouse software consider uninstalling that module. In my Synapse software it’s on the Module’s screen and you may need to scroll down until you see macros and then click its remove button.