Magic text
(Updated to version 5.40, latest edition January 3, 2024)
About
In many triggers, actions and constraints you will have the option to configure some textual fields. Often you will find a button next to the text entry field that contains the "..." label. This button will display a complete list of "magic text" fields that are available in the context that is being used. If you wish to manually type them instead if you know them, be aware that there can be spelling/typing mistakes. Magic text for dictionaries/arrays is written like this : {lv=dictionary/array name[entry][sub-entry]} There can be as many [sub-entry] as you want. Be aware that it can get complicated pretty fast! Curly {} brackets were added so users would see the beginning and end of a dictionary/array magic text with ease. The magic text allows some other value to be substituted at the point of invocation, rather than standard static text that will never changed. For example it's possible to add and action that reference a variable via magic text and that variable's value will be substituted at the point that action is run. Magic text can be written in 2 ways : Curly brackets {value} and square brackets [value]. Curly brackets aren't supported on very old versions like v5.20 and below but it's recommended to use it when interacting with dictionaries/arrays as with square brackets it can get confusing where you are very quickly.
Requires a condition (loop)
This action is a specialized type of loop that can be used to iterate over all elements within a dictionary/array.
Iterate Dictionary/Array
- Iterator value
{iterator_value} The current dictionary key can be obtained within the loop using the magic text.
- Iterator dictionary key
{iterator_dictionary_key} The current dictionary key can be obtained within the loop using the magic text.
- Iterator array index
{iterator_array_index} The current array index can be obtained within the loop using the magic text.
Requires a trigger to operate
App Install/Remove/Update
- Application name
{app_name} Returns the name of the application that was launched, for example "MacroDroid".
- Application package
{app_package} Returns the package name of the application that was launched, for example, if it were MacroDroid the response would be "com.arlosoft.macrodroid".
Application Launched/Closed
- Application name
{app_name} Returns the name of the application that was launched, for example "MacroDroid".
- Application package
{app_package} Returns the package name of the application that was launched, for example, if it were MacroDroid the response would be "com.arlosoft.macrodroid".
Bluethooth (Device connected or device disconnected)
- Bluetooth device name
{bluetooth_device_name} Returns the name of the bluetooth device, may be more useful when using the "Any device" option. For example, if headphones are connected, it will return the device name. {bluetooth_device_name} = Headphones 1 Pro
Call (Active, Ended, Incoming, Missed, Outgoing)
- Call name
{call_name} Returns the number from which the call was received. e.g. If you receive a call from MacroDroid user {call_name} = MacroDroid user
- Call number
{call_number} Returns the name from where the call was received if available. e.g. If you receive a call from 1234567890 {call_number} = 1234567890
SMS received
- Incoming SMS contact
{sms_name} - Name of the person sending the SMS (the sender must be in your contact list). e.g. If you receive an SMS from Macrodroid user {sms_name} = Macrodroid user
- Incoming SMS message
{sms_message} - Contains the text of the sms. e.g. If you receive an SMS with a message "Hello, have a nice day" {sms_message} = Hello, have a nice day
- Incoming SMS number
{sms_number} - SMS sender number. e.g. If you receive an SMS from +1 1234567890 {sms_number} = +1 1234567890
Logcat
- Logcat entry line
{logcat_line} - Returns the reference logcat line configured in the trigger.
Notifications
- Notification title
{not_title} - is a prominent text element that concisely summarizes the key subject or purpose of a notification.
- Notification ticker text
{not_ticker} - is a brief text that scrolls temporarily across the status bar of an Android device when a new notification arrives. This feature was removed in Android 5.0 Lollipop, but it can still be found on some devices or restored using third-party apps.
- Notification text
{notification} - is the text displayed in a notification. It is the main part of the notification and usually contains information about the content of the notification.
- Notification sub text
{not_sub_text} - is a secondary text element that provides additional context or detail to a notification.
- Notification big text
{not_text_lines} - is a feature that allows to display a more significant amount of text within a notification.
- Notification actions names
{not_action_names} - are clickable buttons or links embedded within notifications that allow users to perform specific tasks directly without opening the associated app.
- Notification app name
{not_app_name} - is the name of the app that generated the notification.
- Notification app package
{not_app_package} - is the package name of the application that created the notification.
Spotify
- Spotify track id
{spotify_track_id} - Returns the Track ID of the song.
- Spotify artist
{spotify_artist} - Returns the artist of the song, "Started music" is not supported
- Spotify album name
{spotify_album} - Returns the album of the song, "Started music" is not supported
- Spotify track name
{spotify_track} - Returns the name of the song, "Started music" is not supported
- Spotify length (s)
{spotify_length_s} - Returns the length of the song in seconds.
- Spotify is playing
{spotify_is_playing}- Returns a boolean state (true or false).
System settings
- System setting category
{system_setting_category} - Category of the requested key (Global, Secure, System).
- System setting key
{system_setting_key} - Returns the name of the key.
- System setting value
{system_setting_value} - Returns the value of the key.
UI click
{ui_click_text} - Gets the text it matches, most useful when the text it needs to match is a regular expression or text that changes constantly using some variable.
Weather
- Temperature (Celsius)
{weather_temperature_c} - Temperature (Celsius).
- Temperature (Temperature (fahrenheit)
{weather_temperature_farenheit} - Temperature (fahrenheit).
- Wind speed m\s
{weather_wind_speed} - Wind speed m\s.
- Wind speed (mph)
{weather_wind_speed_mph} - Wind speed (mph).
- Wind speed (kmh)
{weather_wind_speed_kmh} - Wind speed (kmh).
- Temperature Wind direction
{weather_wind_direction} - Wind direction (degrees).
- Humidity
{weather_humidity} - Humidity.
- Weather conditions
{weather_conditions} - Weather conditions.
Webhook URL
- Webhook caller IP address
{webhook_caller_ip_address} Gets the IP from where the call to the webhook was made. Example: {webhook_caller_ip_address} = 189.172.30.212
Does not require a trigger to operate
This magic text list does not need a specific trigger to appear.
am/pm
{am_pm} am or pm depending on the time.
Android version
{android_version} Returns the number of the android version.
Android version (SDK level)
{android_version_sdk} Returns the SDK level of the Android version. e.g. Android 14 has an SDK level of 34
Battery current now (mA)
{battery_current_now} Amount of electrical current flowing from the battery at this moment, measured in milliamps (mA)
Battery temp ºC
{battery_temp} Temperature in degrees Celsius e.g. 34°
Cell connection type
{cell_connection:type}
cell connection type e.g. 3g, 4g, 5g.
Cell id
{cell_id} number that identifies an individual cell within a cellular network. Used for mobile phones to connect to the network and for the network to send data to mobile phones e.g. The cell identifier for a cell in New York City could be 310-200-0000. The LAC (310-200)
Cell tower signal strength
{cell_signal_strength} Returns the signal strength received by your mobile device from the nearest cell tower. It is expressed in units called decibels-milliwatts (dBm), with -50 dBm being the strongest signal and -110 dBm the weakest.
Clipboard text
{clipboard} Gets the text from the clipboard.
Current battery %
{battery} ({battery_int} for integer variables) Current battery level (numbers only) e.g. '80'
Current brightness
{current_brightness} Current brightness level (numbers only) e.g. '50'
Current brightness (Android 9+ alternative)
{current_brightness_alternative} Current brightness level (numbers only) e.g. '50' alternative method for devices with android 9+
Current IP address
{ip} Current IP in 172.217.12.141 format (randomly generated IP).
Current IP address (V6)
{ip6} Current IP in format in 2001:0db8:85a3:0000:0000:8a2e:0370:7334 format (randomly generated IP).
Current volume (Alarm)
{vol_alarm} Current volume level used for alarms.
Current volume (Bluetooth voice)
{vol_bt_voice} Current volume level used for multimedia/calls via Bluetooth.
Current volume (Media / Music)
{vol_music} Current volume level used for multimedia.
Current volume (Notification)
{vol_notif} Current volume level used for notification alerts.
Current volume (Ringer)
{vol_ring} Current volume level used for ringtone.
Current volume (System sounds)
{vol_system} Current volume level used for system sounds e.g. screen unlocking and locking, touch sounds among others.
Current volume (Voice call)
{vol_call} Current volume level used when a call is in progress.
Day of the month
{dayofmonth} Day of the month, includes 0 at the beginning (days 1 to 9) e.g. 04 or 24.
Day of the week
{dayofweek} Day of the week, e.g. Monday or Friday.
Device manufacturer
{device_manufacturer} Brand name of your device.
Device model
{device_model} Model name of your device.
Device uptime
{uptime} Time that the device has been on (this time is reset if the device is restarted) in hour : minute : second.
Device uptime (s)
{uptime_secs} Time that the device has been on (this time is reset if the device is restarted) in seconds e.g. 3000s
Device serial
{} Not available on android 10+.
Dictionary/Array size
{size=my_array} Size of an array or dictionary. e.g. to query the size of an array called "my_array" [0,1,2] it would look like this [size=my_array] the result would be 3.
Foreground app name
{fg_app_name} Name of the application in the foreground, if you are in macrodroid, the output will be MacroDroid.
Foreground app package
{fg_app_package} Package of the application in the foreground, if you are in macrodroid, the output will be MacroDroid.
Hour of day
{hour} Time of day in 24h format.
Hour of day (12h)
{hour12} Time of day in 12h format.
Hour of day (Leanding zero)
{hour_0} Time of day in 24h format, includes leading zero.
IMEI
{imei} Obtains the IMEI number, since Android 10+ this information is no longer available.
Language code
{language_code} Language code used e.g. English is 'en'
Last known location (accuracy meters)
{last_loc_accuracy} Obtains the precision of the most recent known location, for example 10 meters, due to different causes the GPS may have a greater or lesser margin of positioning error, useful to know how precise the last known location is.
Last known location (altitude)
{last_loc_alt} Gets the altitude above sea level of the last known location.
Last known location (lat)
{last_loc_lat} Gets the latitude above sea level of the last known location.
Last known location (lat,lon)
{last_loc_latlong} Gets the latitude and longitude above sea level of the last known location separated by ',' e.g. 23.44325,-23.215252
Last known location (link)
{last_loc_link} Gets a Google Maps link with the last known location.
Last known location (lon)
{last_loc_long} Gets the longitude above sea level of the last known location.
Last known location (time)
{last_loc_age_timestamp} Gets the last known time in format (year - month - day hour : minute : second).
Last location speed (kmh)
{last_loc_speed_kmh} Obtains the current speed in km h (You need something to be monitoring your route, for example Waze or Google Maps), otherwise the value will be equal to 0.
Last location speed (mph)
{last_loc_speed_kmh} Obtains the current speed in mph (You need something to be monitoring your route, for example Waze or Google Maps), otherwise the value will be equal to 0.
Location area code
{lac} The LAC is a 16-bit number that identifies a location area on a cellular network. Each location zone consists of 1 to 65534 radio transmission cells.
Macro category
Name of the category of the macro that was invoked, e.g. utilities, maps & navigation, notifications, productivity or custom names, etc.
Macro id
{macro_id} is a GUID number used to uniquely identify a macro file.
Macro name
{macro_name} Name of the macro that was invoked.
Macrodroid is pro
{macrodroid_is_pro} Boolean value (true or false) depending on whether macrodroid is pro or not.
Macrodroid version
{macrodroid_version} Version of macrodroid installed for example 5.40.x.
Minute
{minute} Current minute.
Mobile country code
{mcc} (MCC) is a three-digit country code used to identify the country of origin of a mobile network.
Mobile network code
{mnc} Mobile Network Code (MNC) is a two or three digit code that uniquely identifies a mobile network operator within a country.
Month
{month} Current month.
Month (as digit)
{month_digit} Current month (in numerical format).
New line
\n (Does not require { } ) is a special character that indicates the end of a line of text and the beginning of a new line. It is used to organize text in a readable and easy-to-read format. e.g. Hello\nworld, the output would look like this: Hello world
Power (on/off)
{power} Returns on or off depending on the current power state. e.g. If the charger is connected the response will be on.
RAM (Total)
{ram_total} Returns real value of total RAM (not theoretical) On a device with 6 GB of RAM, macrodroid will return, for example, 5.79, which is the real value.
RAM (available)
{ram_available} Returns available RAM value.
Screen resolution
{screen_res} Device screen resolution (X and Y) separated by ',' e.g. 1080,2400.
Screen resolution (X)
{screen_res_x} Device screen resolution (X) using a reference screen X 1080 Y 2400 the output will be 1080.
Screen resolution (Y)
{screen_res_y} Device screen resolution (Y) using a reference screen X 1080 Y 2400 the output will be 2400.
Screen timeout (seconds)
Time that must elapse before the screen turns off (in seconds).
Second
Current second.
Sim operator name
{sim_operator_name} Name of your telephone company.
Sim 2 operator name
{sim2_operator_name} Name of your telephone company in the 2nd sim slot.
Stopwatches
- Seconds
{stopwatch=f} It will not be visible if you do not have stopwatch created Gets the total stopwatch time in seconds format e.g. 0.0
- hh:mm:ss
{stopwatchtime=f} It will not be visible if you do not have stopwatch created Obtains the total time of the stopwatch in hour : minute : second format e.g. 00:00:00
Storage free (external)
{storage_external_free} Total amount of free space (external) e.g. 136GB.
Storage free (internal)
{storage_internal_free} Total amount of free space (internal) e.g. 136GB.
Storage total (external)
{storage_external_total} Actual amount of space on external storage, e.g. On a theoretical 256 GB device the real value can be 221GB.
Storage total (internal)
{storage_internal_total} Actual amount of space on internal storage, e.g. On a theoretical 256 GB device the real value can be 221GB.
String variable value
{strlen=my_var} Length of a string variable, for the example we have a variable called my_var with the value 'hello world' the output would be 11
System setting (Global)
{setting_global=development_settings_enabled} Caution: Particular care should be taken when modifying settings, as incorrect changes could affect the functionality or security of the device. For this example we will use the 'development_settings_enabled' key as a reference, which stores an int value (1 or 0) depending on whether the developer options are active or not.
System setting (Secure)
{setting_secure=assistant} Caution: Particular care should be taken when modifying settings, as incorrect changes could affect the functionality or security of the device. For this example we will use the 'assistant' key as a reference, which stores a value of the assistant used, the associated value is com.google.android.googlequicksearchbox/com.google.android.voiceinteraction.GsaVoiceInteractionService corresponds to the google assistant.
System setting (System)
{setting_system=time_12_24} Caution: Particular care should be taken when modifying settings, as incorrect changes could affect the functionality or security of the device. For this example we will use the key 'time_12_24' as a reference, which stores a value of the time format used, the associated value is 12
System time
{system_time} The current time as maintained by your operating system.
System time (ms)
{system_time_ms} The current time according to your device's internal clock, measured in milliseconds since the Unix epoch. The Unix epoch is a reference point in time, set as January 1, 1970, at 00:00:00 Coordinated Universal Time (UTC).
Week of year
{week_of_year} Returns the week number of the year, e.g. Wednesday, January 3, week is 1.
Webhook Base Url
{webhook_url} Returns the base url of your webhook e.g. https://trigger.macrodroid.com/0d5c-49e12-6/ but it does not include the identifier only the base url, a complete url should look like this Returns the base url of your webhook e.g. https://trigger.macrodroid.com/0d5c-49e12-6/mywebhook
Wifi SSID
{ssid} Name of the Wi-Fi network you are connected to.
Wifi signal strength
{wifi_strength} It represents the signal power in decibels per kilowatt. The higher the number (a negative number), the stronger the signal. For example, -60 dBm is louder than -70 dBm.
Year
{year} Current year.