An action is something your device can do when a macro runs.
A macro must have at least one action to be valid.

Synchronous vs asynchronous

MacroDroid actions typically execute quickly, but certain actions like HTTP requests or shell scripts may take longer. To ensure that subsequent actions wait for these longer actions to complete before continuing, enable the 'Block next action until complete' option in the action's configuration GUI. Otherwise, the action will run asynchronously while other actions continue.

In traditional programming languages, you could pass a callback function to execute after the asynchronous action is complete. This allows you to perform additional actions or work with the data returned by the asynchronous action. However, MacroDroid's inner workings are arbitrary, so there is no systematic option for this. Instead, you must rely on different workarounds.

Control flow

If clause

If confirmed then

Repeat actions

Iterate Dictionary/Array

Break from loop

Continue loop

List of Actions

Accessibility Service

Action Block

Airplane Mode On/Off

Alarm Clock

Ambient Display

Animation Overlay

Android Shortcut

Android Wear

Answer Call

App Enable/Disable

Authenticate User

Array Manipulation

Autosync On/Off

Battery Saver

Screen Block Touch

Bluetooth Configure

Brightness

Calendar - Add Event

Call Reject

Camera Enable/Disable

Cancel Macro Actions

Car Mode

Check pixel colour

Check Text In Screenshot

Check Text On Screen

Clear App Data

Clear Call Log

Clear Dictionary/Array Entry

Clear MacroDroid Dialog

Clear Log

Clear Notifications

Clear Variables

Clipboard Refresh

Configure App Notifications

Configure Quick Tile

Confirm Next

Connectivity Check

Contact Via App

Control Media

Dark Theme

Daydream/Screensaver On

Delete Macro

Delete Variable

Demo Mode

Dim Screen

Disable MacroDroid

Display Bubble Notification

Display Dialog

Display Notification

Empty Action

Enable/Disable Category

Enable/Disable Macro

Enable/Disable Trigger

Exit Action Block

Expand/Collapse Status Bar

Export Log

Export Macros

File Operation

Fill Clipboard

Floating Button Configure

Floating text

Font Scale

Force Location Update

Force Screen Rotation

Get Light Level

Get Text From View ID

GPS Enable/Disable

Heads-up Enable/Disable

HotSpot On/Off

HTTP Request

HTTP Server

Immersive Mode

JavaScript Code

Invert Colours

JSON Parse

Keep Device Awake

Keyboard - Set Default

Keyboard Prompt

Kill Application

Kill Background Processes

Launch and Press

Launch Application

Launch Home Screen

Launch Shortcut

Locale/Tasker Plugin

Location Mode

Log Event

MacroDroid Drawer

MacroDroid Settings

Macro run

Make Call

Mobile Data On/Off

NFC Enable/Disable

Notification Interaction

Notification LED Enable/Disable

Notification Reply

Open Call Log

Open File

Open Last Photo

Open MacroDroid Log

Open Website / HTTP GET

Option Dialog

Play/Stop Sound

Popup Message

Press Back Button

Priority Mode / Do Not Disturb

Read Screen Contents

Read Screenshot Contents

Reboot/Power Off

Record Microphone

Restore Hidden Notifications

Ringtone Configure

Say Current Time

Screen On/Off

Secure Settings

Selection Dialog

Send Email

Send Intent

Send SMS

Set Button Bar Image

Set Location Update Rate

Set Digital Assistant

Set MacroDroid Icon

Set MacroDroid Mode

Set MacroDroid Notification Text

Set Notification Sound

Set Screen Lock

Set Screen Timeout

Set Variable

Set Wallpaper

Share Last Photo

Share Text

Share Location

Shell Script

Silent - Vibrate Off

Show Volume Popup

Speak Text

Speakerphone On/Off

Stopwatch

Sync Account

System Setting

Take Picture

Take Screenshot

Text from Image (OCR)

Text Manipulation

Torch On/Off

Translate Text

Touch Screen

UDP Command

UI Interaction

USB Tethering

Vibrate

Vibrate Enable/Disable

Voice Input

Voice Search

Volume Change

Volume Up/Down

Wait Before Next Action

Wait Until Trigger

WhatsApp Send

Widget Button Modify

Wifi Configure

Write to File