Can I run two macros at the same time without the first one stopping?

I am 100% brand new to using macros and I have dowloaded the latest Keyboard Maestro on my imac. I have managed to get a macro set up and it is doing almost everything I need. However, I need to be able to start another macro on the same web page that does one click of button and that is it. I need them to work at the same time. The new macro I need will not be used 100% of the time like the other. Is this possible.

Yes, Keyboard Maestro can run multiple macros at once. Some things to consider:

  • Manage variables carefully to avoid overlap between between the macros. Use instance variables, local variables, or uniquely-named global variables.
  • Manage clipboards carefully to avoid overlap between the macros as well. Using named clipboards would be wise if both macros use clipboards.
  • Make sure the macros don’t have conflicting actions. (I.e. Don’t have one macro move the mouse pointer to a place that the other macro won’t expect it to be.)

I’m not sure what your specific use case is here. But, it might make sense to have one macro and use an action like If Then Else to fire the other actions you had planned for the second macro if certain conditions are true or false. You’d know best whether that could meet your needs.

1 Like

Ok so the mouse would move to an unexpected place during the other macro. I know that for sure. I have no idea how to use the if then else action. Is there a way to speak privately? I am not allowed to post pictures of what I do publicly.

I’m in Jakarta and not really able to talk live. Sorry!

I would read the wiki article on If Then Else and also search this forum for other posts about how that action can be used.

Also, if you can describe more about exactly what you’re trying to do, perhaps I or others here can help further.

ok so after some trial error, I did get it to work....once lol. However, the timing is difficult to nail down. Can the if then else be a separate macro altogether or does it have to be within the actions of the main macro? I will try to explain this the best I can. I am working with webpage based program and then a downloaded dialer that works with it. I dial for 15-20 seconds and either hangup at the end of that time, or I leave a voicemail if I need to. My VM is prerecorded and i just hit a button and it will initiate the drop and hang up the phone. So when I am dialing I have more times where I hang up myself rather than getting a voicemail and dropping my message. So my main Macro is the dial for 20 seconds, it sends a text on another browser and comes back and hangs up at the designated time. I need this other macro to drop my voicemail while allowing the other macro to keep going.

From what I'm gathering, this would be best as a single macro (or one macro that executes a second macro when needed). It sounds like you need (or at least would benefit from) timing and logic coordination across all the macro actions. But you will know your needs best.

Is there something on the webpage that Keyboard Maestro could look for to understand when a voicemail is needed or not needed? Could you then have Keyboard Maestro execute or not execute voicemail-related Actions based on that?

These Actions may help. They may need to be used in some combination and/or in some nested arrangement to achieve the logic flow you need:

If Then Else (You could execute or not execute Actions based on matching logic.)

Prompt For User Input (You could show a prompt asking you if a voicemail is needed and then use If Then Else and a Variable condition to leave a voicemail based on your response to the prompt.)

While and Until (You could potentially have Keyboard Maestro do something or not do something while or until specific conditions are met. This might help with detecting when a voicemail is needed or not needed.)

The Actions above use matching conditions. Some conditions that might be useful to you:

Variable (As noted above, you could use the Prompt For User Input to set a variable and then use the Variable condition to control later Actions, including If Then Else.)

Found Image (You could look for an image on the web page and then control later Actions, including If Then Else, based on whether the image was found.)

Finally, there are Tokens that allow you to capture the Title and URL of Chrome, Safari, or the Front Browser. If the Title or URL change based on whether a voicemail is needed, you could save a Token to a Variable and then use a Variable condition to control later Actions, including If Then Else, based on what the Token contained.

Overall, I think you're going to have to do a lot of experimenting with a lot of trial and error. But don't get frustrated. You're not just building one macro, You are learning Keyboard Maestro. The knowledge you gain now will help you build more powerful macros in the future, to build them faster, and to save you ever more time as your skills grow. (I've been using Keyboard Maestro for ~10 years and I still find things I didn't know it could do all the time!)

2 Likes